From 00f6992fa047809935c89654a0cddb39b62f4e2e Mon Sep 17 00:00:00 2001 From: Andrew Xu Date: Fri, 15 May 2026 14:49:36 +0800 Subject: [PATCH 01/16] Create Matrix class, a parent class for matrices including Sparse --- matrix/Matrix.cpp | 130 ++++++++++++++++++++++++++++++++++ resolve/matrix/CMakeLists.txt | 3 +- resolve/matrix/Csr.cpp | 51 +++++++++++++ resolve/matrix/Csr.hpp | 5 ++ resolve/matrix/Matrix.cpp | 129 +++++++++++++++++++++++++++++++++ resolve/matrix/Matrix.hpp | 61 ++++++++++++++++ resolve/matrix/Sparse.cpp | 94 ++++++++++++------------ resolve/matrix/Sparse.hpp | 23 +++--- resolve/matrix/io.cpp | 8 ++- 9 files changed, 445 insertions(+), 59 deletions(-) create mode 100644 matrix/Matrix.cpp create mode 100644 resolve/matrix/Matrix.cpp create mode 100644 resolve/matrix/Matrix.hpp diff --git a/matrix/Matrix.cpp b/matrix/Matrix.cpp new file mode 100644 index 000000000..e221c358b --- /dev/null +++ b/matrix/Matrix.cpp @@ -0,0 +1,130 @@ +#include "Matrix.hpp" + +namespace ReSolve { + /** + * @brief empty constructor that does absolutely nothing + */ + matrix::Matrix::Matrix() + { + } + + /** + * @brief basic constructor + * + * @param[in] n - number of rows + * @param[in] m - number of columns + * @param[in] nnz - number of non-zeros + */ + matrix::Matrix::Matrix(index_type n, + index_type m, + index_type nnz) + : n_{n}, + m_{m}, + nnz_{nnz} + { + } + + /** + * @brief get number of matrix rows + * + * @return number of matrix rows. + */ + index_type matrix::Matrix::getNumRows() + { + return this->n_; + } + + /** + * @brief get number of matrix columns + * + * @return number of matrix columns. + */ + index_type matrix::Matrix::getNumColumns() + { + return this->m_; + } + + /** + * @brief get number of non-zeros in the matrix. + * + * @return number of non-zeros. + */ + index_type matrix::Matrix::getNnz() + { + return this->nnz_; + } + + /** + * @brief Set number of non-zeros. + * + * @param[in] nnz_new - new number of non-zeros + */ + void matrix::Matrix::setNnz(index_type nnz_new) + { + this->nnz_ = nnz_new; + } + + /** + * @brief Loads or reloads pointer to the matrix handler for matrix operations. + * @param[in] matrixHandler - New matrix handler + */ + void matrix::Matrix::addMatrixHandler(MatrixHandler* matrixHandler) + { + this->matrixHandler_ = matrixHandler; + } + + /** + * @brief Implementation missing. + */ + int matrix::Matrix::transpose(Matrix* At, memory::MemorySpace memspace) + { + return -1; + } + + /** + * @brief Implementation missing. + */ + int matrix::Matrix::leftScale(vector_type* diag, memory::MemorySpace memspace) + { + return -1; + } + + /** + * @brief Implementation missing. + */ + int matrix::Matrix::rightScale(vector_type* diag, memory::MemorySpace memspace) + { + return -1; + } + + /** + * @brief Implementation missing. + */ + int matrix::Matrix::addConst(real_type alpha, memory::MemorySpace memspace) + { + return -1; + } + + int matrix::Matrix::matvec( + vector_type* vec_x, + vector_type* vec_result, + const real_type* alpha, + + /** + * @brief Implementation missing. + */ + const real_type* beta, + memory::MemorySpace memspace) + { + return -1; + } + + /** + * @brief Implementation missing. + */ + int matrix::Matrix::matrixInfNorm(real_type* norm, memory::MemorySpace memspace) + { + return -1; + } + +} diff --git a/resolve/matrix/CMakeLists.txt b/resolve/matrix/CMakeLists.txt index 9098d8c07..2d23b43e3 100644 --- a/resolve/matrix/CMakeLists.txt +++ b/resolve/matrix/CMakeLists.txt @@ -9,6 +9,7 @@ # C++ code set(Matrix_SRC io.cpp + Matrix.cpp Sparse.cpp Csr.cpp Csc.cpp @@ -24,7 +25,7 @@ set(Matrix_CUDASDK_SRC MatrixHandlerCuda.cpp) set(Matrix_ROCM_SRC MatrixHandlerHip.cpp) # Header files to be installed -set(Matrix_HEADER_INSTALL io.hpp Sparse.hpp Coo.hpp Csr.hpp Csc.hpp +set(Matrix_HEADER_INSTALL io.hpp Matrix.hpp Sparse.hpp Coo.hpp Csr.hpp Csc.hpp MatrixHandler.hpp ) diff --git a/resolve/matrix/Csr.cpp b/resolve/matrix/Csr.cpp index a851089f3..10fec0fd2 100644 --- a/resolve/matrix/Csr.cpp +++ b/resolve/matrix/Csr.cpp @@ -439,6 +439,57 @@ namespace ReSolve } // switch } + /** + * @brief Transpose the sparse CSR matrix. + * + * @param[out] At - Transposed matrix + * @param[in] memspace - Device where the transpose is computed + * + * @return 0 if successful, 1 otherwise + */ + int matrix::Csr::transpose(Csr* At, memory::MemorySpace memspace) + { + return matrixHandler_->transpose(this, At, memspace); + } + + + /** + * @brief Left diagonal scaling of the sparse CSR matrix + * + * @param[in] diag - vector representing the diagonal matrix + * @param[in] memspace - Device where the operation is computed + * + * @pre The diagonal vector must be of the same size as the number of rows in the matrix. + * @pre Current CSR matrix is unscaled and allocated + * @post Current CSR matrix is scaled + * @invariant diag + * + * @return 0 if successful, 1 otherwise + */ + int matrix::Csr::leftScale(vector_type* diag, memory::MemorySpace memspace) + { + return matrixHandler_->leftScale(diag, this, memspace); + } + + /** + * @brief Right diagonal scaling of the sparse CSR matrix + * + * @param[in] diag - vector representing the diagonal matrix + * @param[in] memspace - Device where the operation is computed + * + * @pre The diagonal vector must be of the same size as the number of columns in the matrix. + * @pre Current CSR matrix is unscaled and allocated + * @post Current CSR matrix is scaled + * @invariant diag + * + * @return 0 if successful, 1 otherwise + */ + int matrix::Csr::rightScale(vector_type* diag, memory::MemorySpace memspace) + { + return matrixHandler_->rightScale(this, diag, memspace); + } + + /** * @brief Prints matrix data. * diff --git a/resolve/matrix/Csr.hpp b/resolve/matrix/Csr.hpp index d9b3bb9cc..fc4b58170 100644 --- a/resolve/matrix/Csr.hpp +++ b/resolve/matrix/Csr.hpp @@ -56,6 +56,11 @@ namespace ReSolve virtual void print(std::ostream& file_out = std::cout, index_type indexing_base = 0); virtual int syncData(memory::MemorySpace memspaceOut); + + // Matrix operations + virtual int transpose(Csr* At, memory::MemorySpace memspace); + virtual int leftScale(vector_type* diag, memory::MemorySpace memspace); + virtual int rightScale(vector_type* diag, memory::MemorySpace memspace); }; } // namespace matrix diff --git a/resolve/matrix/Matrix.cpp b/resolve/matrix/Matrix.cpp new file mode 100644 index 000000000..9afa5c65a --- /dev/null +++ b/resolve/matrix/Matrix.cpp @@ -0,0 +1,129 @@ +#include "Matrix.hpp" + +namespace ReSolve { + /** + * @brief empty constructor that does absolutely nothing + */ + matrix::Matrix::Matrix() + { + } + + /** + * @brief basic constructor + * + * @param[in] n - number of rows + * @param[in] m - number of columns + * @param[in] nnz - number of non-zeros + */ + matrix::Matrix::Matrix(index_type n, + index_type m, + index_type nnz) + : n_{n}, + m_{m}, + nnz_{nnz} + { + } + + /** + * @brief get number of matrix rows + * + * @return number of matrix rows. + */ + index_type matrix::Matrix::getNumRows() + { + return this->n_; + } + + /** + * @brief get number of matrix columns + * + * @return number of matrix columns. + */ + index_type matrix::Matrix::getNumColumns() + { + return this->m_; + } + + /** + * @brief get number of non-zeros in the matrix. + * + * @return number of non-zeros. + */ + index_type matrix::Matrix::getNnz() + { + return this->nnz_; + } + + /** + * @brief Set number of non-zeros. + * + * @param[in] nnz_new - new number of non-zeros + */ + void matrix::Matrix::setNnz(index_type nnz_new) + { + this->nnz_ = nnz_new; + } + + /** + * @brief Loads or reloads pointer to the matrix handler for matrix operations. + * @param[in] matrixHandler - New matrix handler + */ + void matrix::Matrix::addMatrixHandler(MatrixHandler* matrixHandler) + { + this->matrixHandler_ = matrixHandler; + } + + /** + * @brief Implementation missing in MatrixHandler. + */ + int matrix::Matrix::transpose(Matrix* At, memory::MemorySpace memspace) + { + return -1; + } + + /** + * @brief Implementation missing in MatrixHandler. + */ + int matrix::Matrix::leftScale(vector_type* diag, memory::MemorySpace memspace) + { + return -1; + } + + /** + * @brief Implementation missing in MatrixHandler. + */ + int matrix::Matrix::rightScale(vector_type* diag, memory::MemorySpace memspace) + { + return -1; + } + + /** + * @brief Implementation missing in MatrixHandler. + */ + int matrix::Matrix::addConst(real_type alpha, memory::MemorySpace memspace) + { + return -1; + } + + /** + * @brief Implementation missing in MatrixHandler. + */ + int matrix::Matrix::matvec( + vector_type* vec_x, + vector_type* vec_result, + const real_type* alpha, + const real_type* beta, + memory::MemorySpace memspace) + { + return -1; + } + + /** + * @brief Implementation missing in MatrixHandler. + */ + int matrix::Matrix::matrixInfNorm(real_type* norm, memory::MemorySpace memspace) + { + return -1; + } + +} diff --git a/resolve/matrix/Matrix.hpp b/resolve/matrix/Matrix.hpp new file mode 100644 index 000000000..413f284b7 --- /dev/null +++ b/resolve/matrix/Matrix.hpp @@ -0,0 +1,61 @@ +#pragma once + +#include +#include +#include +#include + +namespace ReSolve +{ + using vector_type = vector::Vector; + + namespace matrix + { + /** + * @brief This class implements the matrix interface. + * + * This is a parent class for all matrix classes, including Sparse and, in the future, + * HyKKT matrices. This also provides an interface for matrix operations implemented + * in MatrixHandler. + */ + class Matrix + { + public: + Matrix(); + Matrix(index_type n, index_type m, index_type nnz); + + index_type getNumRows(); + index_type getNumColumns(); + index_type getNnz(); + + void setNnz(index_type nnz_new); // for resetting when removing duplicates + virtual int setUpdated(memory::MemorySpace memspace) = 0; + + void addMatrixHandler(MatrixHandler* matrixHandler); + + virtual int allocateMatrixData(memory::MemorySpace memspace) = 0; + virtual int destroyMatrixData(memory::MemorySpace memspace) = 0; + virtual void print(std::ostream& file_out, index_type indexing_base) = 0; + + // Matrix operations. They need to be properly implemented in MatrixHandler as well for the specific derived class. + virtual int transpose(Matrix* At, memory::MemorySpace memspace); + virtual int leftScale(vector_type* diag, memory::MemorySpace memspace); + virtual int rightScale(vector_type* diag, memory::MemorySpace memspace); + virtual int addConst(real_type alpha, memory::MemorySpace memspace); + virtual int matvec( + vector_type* vec_x, + vector_type* vec_result, + const real_type* alpha, + const real_type* beta, + memory::MemorySpace memspace); + virtual int matrixInfNorm(real_type* norm, memory::MemorySpace memspace); + + protected: + index_type n_{0}; ///< number of rows + index_type m_{0}; ///< number of columns + index_type nnz_{0}; ///< number of non-zeros + + MatrixHandler* matrixHandler_{nullptr}; + }; + } +} diff --git a/resolve/matrix/Sparse.cpp b/resolve/matrix/Sparse.cpp index edad7ca76..23c5181d2 100644 --- a/resolve/matrix/Sparse.cpp +++ b/resolve/matrix/Sparse.cpp @@ -26,9 +26,7 @@ namespace ReSolve matrix::Sparse::Sparse(index_type n, index_type m, index_type nnz) - : n_{n}, - m_{m}, - nnz_{nnz} + : Matrix(n, m, nnz) { this->is_symmetric_ = false; this->is_expanded_ = true; // default is a normal non-symmetric fully expanded matrix @@ -65,9 +63,7 @@ namespace ReSolve index_type nnz, bool symmetric, bool expanded) - : n_{n}, - m_{m}, - nnz_{nnz}, + : Matrix(n, m, nnz), is_symmetric_{symmetric}, is_expanded_{expanded} { @@ -107,36 +103,6 @@ namespace ReSolve d_data_updated_ = false; } - /** - * @brief get number of matrix rows - * - * @return number of matrix rows. - */ - index_type matrix::Sparse::getNumRows() - { - return this->n_; - } - - /** - * @brief get number of matrix columns - * - * @return number of matrix columns. - */ - index_type matrix::Sparse::getNumColumns() - { - return this->m_; - } - - /** - * @brief get number of non-zeros in the matrix. - * - * @return number of non-zeros. - */ - index_type matrix::Sparse::getNnz() - { - return this->nnz_; - } - matrix::Sparse::SparseFormat matrix::Sparse::getSparseFormat() const { return sparse_format_; @@ -182,16 +148,6 @@ namespace ReSolve this->is_expanded_ = expanded; } - /** - * @brief Set number of non-zeros. - * - * @param[in] nnz_new - new number of non-zeros - */ - void matrix::Sparse::setNnz(index_type nnz_new) - { - this->nnz_ = nnz_new; - } - /** * @brief Tags `memspace` as updated. * @@ -474,4 +430,50 @@ namespace ReSolve return 0; } + /** + * @brief Add a constant to the nonzero values of this sparse matrix. + * @param[in] alpha - scalar parameter + * @param[in] memspace - Device where the operation is computed + * @return 0 if successful, 1 otherwise + */ + int matrix::Sparse::addConst(real_type alpha, memory::MemorySpace memspace) + { + return matrixHandler_->addConst(this, alpha, memspace); + } + + /** + * @brief Matrix vector product: result = alpha * this * x + beta * result + * + * @param[in] vec_x - Vector multiplied by the matrix + * @param[out] vec_result - Vector where the result is stored + * @param[in] alpha - scalar parameter + * @param[in] beta - scalar parameter + * @param[in] memspace - Device where the product is computed + * @param[in,out] result := alpha * this * x + beta * result + * + * @return 0 if successful, 1 otherwise + */ + int matrix::Sparse::matvec( + vector_type* vec_x, + vector_type* vec_result, + const real_type* alpha, + const real_type* beta, + memory::MemorySpace memspace) + { + return matrixHandler_->matvec(this, vec_x, vec_result, alpha, beta, memspace); + } + + /** + * @bried Matrix infinity norm (maximum absolute row sum) + * + * @param[out] norm - Maximum absolute row sum + * @param[in] memspace - Device where the norm is computed + * + * @return 0 if successful, 1 otherwise + */ + int matrix::Sparse::matrixInfNorm(real_type* norm, memory::MemorySpace memspace) + { + return matrixHandler_->matrixInfNorm(this, norm, memspace); + } + } // namespace ReSolve diff --git a/resolve/matrix/Sparse.hpp b/resolve/matrix/Sparse.hpp index af0fea606..5f3c27d89 100644 --- a/resolve/matrix/Sparse.hpp +++ b/resolve/matrix/Sparse.hpp @@ -7,6 +7,7 @@ #include #include +#include namespace ReSolve { @@ -25,7 +26,7 @@ namespace ReSolve * * @author Kasia Swirydowicz */ - class Sparse + class Sparse : public Matrix { public: /// Supported sparse matrix formats @@ -48,17 +49,12 @@ namespace ReSolve bool expanded); virtual ~Sparse(); - // accessors - index_type getNumRows(); - index_type getNumColumns(); - index_type getNnz(); SparseFormat getSparseFormat() const; bool symmetric(); bool expanded(); void setSymmetric(bool symmetric); void setExpanded(bool expanded); - void setNnz(index_type nnz_new); // for resetting when removing duplicates int setUpdated(memory::MemorySpace what); virtual index_type* getRowData(memory::MemorySpace memspace) = 0; @@ -85,8 +81,6 @@ namespace ReSolve int destroyMatrixData(memory::MemorySpace memspace); - virtual void print(std::ostream& file_out, index_type indexing_base) = 0; - virtual int syncData(memory::MemorySpace memspaceOut) = 0; // update Values just updates values; it allocates if necessary. @@ -99,11 +93,18 @@ namespace ReSolve virtual int setValuesPointer(real_type* new_vals, memory::MemorySpace memspace); + // matrix operations + virtual int addConst(real_type alpha, memory::MemorySpace memspace); + virtual int matvec( + vector_type* vec_x, + vector_type* vec_result, + const real_type* alpha, + const real_type* beta, + memory::MemorySpace memspace); + virtual int matrixInfNorm(real_type* norm, memory::MemorySpace memspace); + protected: SparseFormat sparse_format_{NONE}; ///< Matrix format - index_type n_{0}; ///< number of rows - index_type m_{0}; ///< number of columns - index_type nnz_{0}; ///< number of non-zeros bool is_symmetric_{false}; ///< symmetry flag bool is_expanded_{false}; ///< "expanded" flag diff --git a/resolve/matrix/io.cpp b/resolve/matrix/io.cpp index ae8502ae8..2f3d8a3d0 100644 --- a/resolve/matrix/io.cpp +++ b/resolve/matrix/io.cpp @@ -736,7 +736,13 @@ namespace ReSolve int removeDuplicates(std::list& tmp) { std::list::iterator it = tmp.begin(); - while (it != tmp.end()) + + if (it == tmp.end()) + { + return 0; + } + + while (it != std::prev(tmp.end())) { std::list::iterator it_tmp = it; it++; From 144d1ff5a63f83e4d6078df804e88296aff02def Mon Sep 17 00:00:00 2001 From: Andrew Xu Date: Fri, 15 May 2026 15:03:09 +0800 Subject: [PATCH 02/16] Added CPU implementation for Schur Complement Conjugate Gradient and a simple test. --- resolve/hykkt/CMakeLists.txt | 1 + resolve/hykkt/sccg/CMakeLists.txt | 42 + .../sccg/SchurComplementConjugateGradient.cpp | 146 + .../sccg/SchurComplementConjugateGradient.hpp | 82 + tests/unit/hykkt/CMakeLists.txt | 8 + tests/unit/hykkt/HykktSCCGTests.hpp | 150 + .../CG_rhs_ACTIVSg200_AC_00.mtx | 1388 ++ .../H_matrix_ACTIVSg200_AC_00.mtx | 11307 ++++++++++++++++ .../JC_matrix_ACTIVSg200_AC_00.mtx | 6787 ++++++++++ tests/unit/hykkt/runHykktSCCGTests.cpp | 59 + 10 files changed, 19970 insertions(+) create mode 100644 resolve/hykkt/sccg/CMakeLists.txt create mode 100644 resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp create mode 100644 resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp create mode 100644 tests/unit/hykkt/HykktSCCGTests.hpp create mode 100644 tests/unit/hykkt/SCCGTestMatrices/CG_rhs_ACTIVSg200_AC_00.mtx create mode 100644 tests/unit/hykkt/SCCGTestMatrices/H_matrix_ACTIVSg200_AC_00.mtx create mode 100644 tests/unit/hykkt/SCCGTestMatrices/JC_matrix_ACTIVSg200_AC_00.mtx create mode 100644 tests/unit/hykkt/runHykktSCCGTests.cpp diff --git a/resolve/hykkt/CMakeLists.txt b/resolve/hykkt/CMakeLists.txt index 7bd3c2b92..eb55da8db 100644 --- a/resolve/hykkt/CMakeLists.txt +++ b/resolve/hykkt/CMakeLists.txt @@ -2,3 +2,4 @@ add_subdirectory(permutation) add_subdirectory(ruiz) add_subdirectory(cholesky) add_subdirectory(spgemm) +add_subdirectory(sccg) diff --git a/resolve/hykkt/sccg/CMakeLists.txt b/resolve/hykkt/sccg/CMakeLists.txt new file mode 100644 index 000000000..d5dcce446 --- /dev/null +++ b/resolve/hykkt/sccg/CMakeLists.txt @@ -0,0 +1,42 @@ + +# Add source files for the SCCG module +set(SCCG_SRC SchurComplementConjugateGradient.cpp +) +set(SCCG_HEADER_INSTALL + SchurComplementConjugateGradient.hpp +) + +# Build shared library ReSolve::hykkt +add_library(resolve_hykkt_sccg SHARED ${SCCG_SRC}) + +target_link_libraries( + resolve_hykkt_sccg PRIVATE resolve_hykkt resolve_hykkt_chol resolve_logger resolve_vector resolve_matrix ${suitesparse_cholmod} +) + +# Link to CUDA ReSolve backend if CUDA is support enabled + +target_include_directories( + resolve_hykkt_spgemm PUBLIC ${SUITESPARSE_INCLUDE_DIR} +) + +if(RESOLVE_USE_CUDA) + target_sources(resolve_hykkt_sccg PRIVATE ${Matrix_CUDASDK_SRC}) + target_link_libraries(resolve_hykkt_sccg PUBLIC resolve_backend_cuda) +endif() + +if(RESOLVE_USE_HIP) + target_sources(resolve_hykkt_sccg PRIVATE ${Matrix_ROCM_SRC}) + target_link_libraries(resolve_hykkt_sccg PUBLIC resolve_backend_hip) +endif() + +# Link to dummy device backend if GPU support is not enabled +if(NOT RESOLVE_USE_GPU) + target_link_libraries(resolve_hykkt_sccg PUBLIC resolve_backend_cpu) +endif() + +target_include_directories( + resolve_hykkt_sccg INTERFACE $ + $ +) + +install(FILES ${SCCG_HEADER_INSTALL} DESTINATION include/resolve/hykkt) diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp new file mode 100644 index 000000000..cf5b2a541 --- /dev/null +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp @@ -0,0 +1,146 @@ +#include "SchurComplementConjugateGradient.hpp" +#include + +namespace ReSolve +{ + namespace hykkt + { + /** Constructor for SchurComplementConjugateGradient. + * @param n[in] - Dimension of outer system. + * @param m[in] - Dimension of inner system. + * @param choleskySolver[in] - Factorization of Hgamma to use for direct solve. + * @param memspace[in] - Memory space of incoming data and for computation. + */ + SchurComplementConjugateGradient::SchurComplementConjugateGradient( + index_type n, + index_type m, + CholeskySolver* choleskySolver, + memory::MemorySpace memspace + ) + : n_(n), + m_(m), + choleskySolver_(choleskySolver), + memspace_(memspace), + mem_(), + workspace_(), + matrixhandler_(&workspace_), + vectorhandler_(&workspace_), + y_(m_), + z_(m_), + r_(n_), + p_(n_), + s_(n_), + w_(n_) + { + ; + } + + /** + * @brief Loads or reloads matrix pointers to the solver + * @param[in] jc - Pointer to the JC matrix in CSR format. + * @param[in] jc_tr - Pointer to the transposed JC matrix in CSR format. + */ + void SchurComplementConjugateGradient::addMatrixInfo(matrix::Csr* jc, matrix::Csr* jc_tr) { + jc_ = jc; + jc_tr_ = jc_tr; + } + + /** + * @brief Loads or reloads vector pointers to the solver + * @param[in] x0 - Pointer to the left-hand side vector. + * @param[in] b - Pointer to the right-hand side vector. + */ + void SchurComplementConjugateGradient::addVectorInfo(vector::Vector* x0, vector::Vector* b) { + x0_ = x0; + b_ = b; + } + + /** + * @brief Reloads pointer to the Cholesky solver + * @param[in] choleskySolver - Factorization of Hgamma to use for direct solve. + */ + void SchurComplementConjugateGradient::updateCholeskySolver(CholeskySolver* choleskySolver) { + choleskySolver_ = choleskySolver; + } + + void SchurComplementConjugateGradient::setSolverTolerance(double tol) + { + tol_ = tol; + } + + void SchurComplementConjugateGradient::setSolverItmax(int itmax) + { + itmax_ = itmax; + } + + void SchurComplementConjugateGradient::setup() { + y_.allocate(memspace_); + z_.allocate(memspace_); + r_.allocate(memspace_); + p_.allocate(memspace_); + s_.allocate(memspace_); + w_.allocate(memspace_); + + y_.setToZero(memspace_); + z_.setToZero(memspace_); + r_.setToZero(memspace_); + p_.setToZero(memspace_); + s_.setToZero(memspace_); + w_.setToZero(memspace_); + + beta_ = 0; + } + + int SchurComplementConjugateGradient::solve() { + using namespace constants; + + // MatrixHandler.hpp says: "Should compute vec_result := alpha*A*vec_x + beta*vec_result, but at least on cpu alpha and beta are flipped". MatrixHandlerCpu.cpp seems correct however. Fix? + matrixhandler_.matvec(jc_tr_, x0_, &y_, &ONE, &ZERO, memspace_); + choleskySolver_->solve(&z_, &y_); + matrixhandler_.matvec(jc_, &z_, &r_, &MINUS_ONE, &ONE, memspace_); + gam_i_ = vectorhandler_.dot(&r_, &r_, memspace_); + + matrixhandler_.matvec(jc_tr_, &r_, &y_, &ONE, &ZERO, memspace_); + choleskySolver_->solve(&z_, &y_); + matrixhandler_.matvec(jc_, &z_, &w_, &ONE, &ZERO, memspace_); + delta_ = vectorhandler_.dot(&w_, &r_, memspace_); + alpha_ = gam_i_ / delta_; + + size_t i; + for (i = 0; i < itmax_; i++) { + vectorhandler_.scal(beta_, &p_, memspace_); + vectorhandler_.axpy(ONE, &r_, &p_, memspace_); + vectorhandler_.scal(beta_, &s_, memspace_); + vectorhandler_.axpy(ONE, &w_, &s_, memspace_); + vectorhandler_.axpy(alpha_, &p_, x0_, memspace_); + minalpha_ = -alpha_; + vectorhandler_.axpy(minalpha_, &s_, &r_, memspace_); + gam_i1_ = vectorhandler_.dot(&r_, &r_, memspace_); + if(sqrt(gam_i1_) < tol_){ + printf("Convergence occured at iteration %d\n", i); + break; + } + + // Product with w=Ar starts here + matrixhandler_.matvec(jc_tr_, &r_, &y_, &ONE, &ZERO, memspace_); + choleskySolver_->solve(&z_, &y_); + matrixhandler_.matvec(jc_, &z_, &w_, &ONE, &ZERO, memspace_); + delta_ = vectorhandler_.dot(&w_, &r_, memspace_); + beta_ = gam_i1_ / gam_i_; + gam_i_ = gam_i1_; + alpha_ = gam_i_ / (delta_ - beta_ * gam_i_ / alpha_); + } + + printf("Error is %32.32g \n", sqrt(gam_i1_)); + if (i == itmax_){ + printf("No CG convergence in %d iterations\n", itmax_); + return 1; + } + + ; + + return 0; + } + + } // namespace hykkt +} // namespace ReSolve diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp new file mode 100644 index 000000000..f43e3c973 --- /dev/null +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp @@ -0,0 +1,82 @@ +/** + * @file SchurComplementConjugateGradient.hpp + * @brief Currently CPU-only. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace ReSolve +{ + using index_type = ReSolve::index_type; + using real_type = ReSolve::real_type; + + namespace hykkt + { + class SchurComplementConjugateGradient + { + public: + SchurComplementConjugateGradient(index_type n, index_type m, CholeskySolver* choleskySolver, memory::MemorySpace memspace); + + void addMatrixInfo(matrix::Csr* jc, matrix::Csr* jc_tr); + void addVectorInfo(vector::Vector* x0, vector::Vector* b); + void updateCholeskySolver(CholeskySolver* choleskySolver); + void setSolverTolerance(double tol); + void setSolverItmax(int itmax); + + void setup(); + int solve(); + + private: + index_type n_; // Dimension of outer system + index_type m_; // Dimension of inner system + int itmax_ = 100; // Maximum iterations for conjugate gradient + double tol_ = 1e-12; // Solver tolerance for Schur + +#ifdef RESOLVE_USE_CUDA + LinAlgWorkspaceCUDA workspace_; +#elif RESOLVE_USE_HIP + LinAlgWorkspaceHIP workspace_; +#else + LinAlgWorkspaceCpu workspace_; +#endif + MatrixHandler matrixhandler_; + VectorHandler vectorhandler_; + + CholeskySolver* choleskySolver_; // Cholesky factorization on 1,1 block + + matrix::Csr* jc_; + matrix::Csr* jc_tr_; + + vector::Vector* x0_; // LHS of entire system + vector::Vector* b_; // RHS of entire system + + // scalars used for conjugate gradient + double beta_; + double delta_; + double alpha_; + double minalpha_; + double gam_i_; + double gam_i1_; + + // Vectors used for conjugate gradient + vector::Vector y_; // Internal RHS of system + vector::Vector z_; // Internal LHS of system + vector::Vector r_; // Residual + vector::Vector p_; + vector::Vector s_; + vector::Vector w_; + + MemoryHandler mem_; + memory::MemorySpace memspace_; + }; // class SchurComplementConjugateGradient + } // namespace hykkt +} // namespace ReSolve diff --git a/tests/unit/hykkt/CMakeLists.txt b/tests/unit/hykkt/CMakeLists.txt index fcdc012aa..8d1d00166 100644 --- a/tests/unit/hykkt/CMakeLists.txt +++ b/tests/unit/hykkt/CMakeLists.txt @@ -29,6 +29,13 @@ target_link_libraries( resolve_vector ) +add_executable(runHykktSCCGTests.exe runHykktSCCGTests.cpp) +target_link_libraries( + runHykktSCCGTests.exe PRIVATE resolve_hykkt resolve_hykkt_sccg resolve_hykkt_chol resolve_matrix + resolve_vector +) +target_compile_definitions(runHykktSCCGTests.exe PRIVATE SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}") # For file paths + # Install tests set(installable_tests runHykktPermutationTests.exe runHykktRuizScalingTests.exe runHykktCholeskyTests.exe runHykktSpGEMMTests.exe @@ -44,3 +51,4 @@ add_test(NAME hykkt_ruiz_test ) add_test(NAME hykkt_chol_test COMMAND $) add_test(NAME hykkt_spgemm_test COMMAND $) +add_test(NAME hykkt_sccg_test COMMAND $) diff --git a/tests/unit/hykkt/HykktSCCGTests.hpp b/tests/unit/hykkt/HykktSCCGTests.hpp new file mode 100644 index 000000000..91436cfd6 --- /dev/null +++ b/tests/unit/hykkt/HykktSCCGTests.hpp @@ -0,0 +1,150 @@ +/** + * @file HykktSchurComplementConjugateGradientTests.hpp + * @brief Implementation of tests for class hykkt::SchurComplementConjugateGradient + * + */ +#pragma once + +#include + +#include +#include +#include +#include +#include +#include + +namespace ReSolve +{ + namespace tests + { + /** + * @brief Tests for class hykkt::SchurComplementConjugateGradient. This is only + * a placeholder test. The test will always pass, and a proper validateResult() + * function needs to be written. + */ + class HykktSchurComplementConjugateGradientTests : public TestBase + { + public: + HykktSchurComplementConjugateGradientTests(memory::MemorySpace memspace, MatrixHandler& matrixHandler) + : memspace_(memspace), matrixHandler_(matrixHandler) + { + } + + virtual ~HykktSchurComplementConjugateGradientTests() + { + } + + /** + * @brief Test the SchurComplementConjugateGradient implementation with matrices in tests\unit\hykkt\SCCGTestMatrices + * + * @return TestOutcome Result of the test + */ + TestOutcome SCCGTest() + { + constexpr double tol = 1e-12; + + std::string sourceDir = std::string(SOURCE_DIR); + std::string jcFileName = sourceDir + "/SCCGTestMatrices/JC_matrix_ACTIVSg200_AC_00.mtx"; + std::string hFileName = sourceDir + "/SCCGTestMatrices/H_matrix_ACTIVSg200_AC_00.mtx"; + std::string bFileName = sourceDir + "/SCCGTestMatrices/CG_rhs_ACTIVSg200_AC_00.mtx"; // rhs + std::ifstream jcFile(jcFileName); + std::ifstream hFile(hFileName); + std::ifstream bFile(bFileName); + + matrix::Csr* h = new matrix::Csr(2278, 2278, 11304, true, false); + h->allocateMatrixData(memspace_); + io::updateMatrixFromFile(hFile, h); + hykkt::CholeskySolver choleskySolver(memspace_); + choleskySolver.addMatrixInfo(h); + choleskySolver.symbolicAnalysis(); + choleskySolver.setPivotTolerance(tol); + choleskySolver.numericalFactorization(); + + matrix::Csr* jc = new matrix::Csr(1386, 2278, 6784, false, false); + jc->allocateMatrixData(memspace_); + io::updateMatrixFromFile(jcFile, jc); + + index_type n = jc->getNumRows(); + index_type m = jc->getNumColumns(); + index_type nnz = jc->getNnz(); + hykkt::SchurComplementConjugateGradient sccg(n, m, &choleskySolver, memspace_); + sccg.setSolverTolerance(tol); + LinAlgWorkspaceCpu workspace; + MatrixHandler matrix_handler(&workspace); + + matrix::Csr* jc_tr = new matrix::Csr(m, n, nnz); + jc_tr->allocateMatrixData(memspace_); + matrix_handler.transpose(jc, jc_tr, memspace_); + + vector::Vector* x0 = new vector::Vector(n); + x0->allocate(memspace_); + randomVector(x0); + + vector::Vector* b = new vector::Vector(n); + b->allocate(memspace_); + io::updateVectorFromFile(bFile, b); + + sccg.addMatrixInfo(jc, jc_tr); + sccg.addVectorInfo(x0, b); + sccg.setup(); + sccg.solve(); + + // // // + // real_type* x0_output_data = x0.getData(0, memspace_); + // for (index_type i = 0; i < n; i++) { + // std::cout << x0_output_data[i] << ", "; + // } + // // // + + TestStatus status; + std::string testname(__func__); + testname += " n=" + std::to_string(n) + ", m=" + std::to_string(m) + ", nnz =" + std::to_string(nnz); + status *= validateResult(x0, tol); + + delete h; + delete jc; + delete jc_tr; + delete x0; + delete b; + + return status.report(testname.c_str()); + } + + private: + memory::MemorySpace memspace_; + MatrixHandler& matrixHandler_; + + /** + * @brief Generate a random vector of doubles between 0 and RAND_MAX. Copied from HykktCholeskyTests.hpp. + * @param[in] vec Target vector to write to. + */ + void randomVector(vector::Vector* vec) + { + for (index_type i = 0; i < vec->getSize(); ++i) + { + vec->getData(memory::HOST)[i] = static_cast(rand()) / RAND_MAX; + } + vec->setDataUpdated(memory::HOST); + if (memspace_ == memory::DEVICE) + { + vec->syncData(memory::DEVICE); + } + } + + /** + * @brief Validate the results of the scaling + * @param[in] x0 Pointer to the output x0 vector + * @param[in] tol Solver tolerance + */ + bool validateResult(vector::Vector* x0, real_type tol) + { + bool test_passed = true; + + // To be implemented + + return test_passed; + } + }; // class HykktPermutationTests + } // namespace tests +} // namespace ReSolve diff --git a/tests/unit/hykkt/SCCGTestMatrices/CG_rhs_ACTIVSg200_AC_00.mtx b/tests/unit/hykkt/SCCGTestMatrices/CG_rhs_ACTIVSg200_AC_00.mtx new file mode 100644 index 000000000..f99d579a0 --- /dev/null +++ b/tests/unit/hykkt/SCCGTestMatrices/CG_rhs_ACTIVSg200_AC_00.mtx @@ -0,0 +1,1388 @@ +%%MatrixMarket matrix array real general +1386 1 + 6.5629642315157e-05 + 6.314339712465422e-05 + 6.308390138465292e-05 + 6.22726208848734e-05 + 6.200198436800974e-05 + 5.434265822878981e-05 +-0.01105218604097091 +-0.009996661880947944 +-0.0107448836620353 +-0.009690610642623998 +-0.009930749865835198 +-0.008961639975863633 +-0.009664967328763652 +-0.008698091689241294 +-0.01331756585599808 +-0.0121627326857694 +-0.01290902664476712 +-0.01174985473267343 +-0.01079933294353164 +-0.009749291632438206 +-0.01048111792960926 +-0.009433402804129187 +-0.01100089732112236 +-0.009951919482099503 +-0.01076398667712297 +-0.009715813662970252 +-0.01028576803559256 +-0.009269682099565024 +-0.01003011743293492 +-0.009016724435746304 +-0.01004147522691246 +-0.009027992222082504 +-0.01223109488557883 +-0.01117523946807397 +-0.0108381018049446 +-0.009801125792064269 +-0.01051516658299634 +-0.009479677853897139 +-0.007987074133143146 +-0.007105981025381958 +-0.007862918505118111 +-0.006987664627915779 +-0.007784516154213161 +-0.006910962992166647 +-0.007816169971678888 +-0.00694194839903739 +-0.007866447305888924 +-0.006991159169965067 +-0.009655755217107487 +-0.008670119480166827 +-0.009394610140924797 +-0.008413489642814187 +-0.00937871079880781 +-0.008397822709398595 +-0.01256783616294888 +-0.01144177215478814 +-0.01214438835208842 +-0.0110160401119167 +-0.01015039906313442 +-0.009152283303131448 +-0.009946294165603775 +-0.008950264421340837 +-0.01075428330409545 +-0.009710682913463442 +-0.01043374500770822 +-0.009392397378890971 +-0.01051991845418865 +-0.009493051151260534 +-0.01029635015302544 +-0.009271332808675092 +-0.01026610730752953 +-0.009241295219277967 +-0.01046634190292917 +-0.009475170244852116 +-0.01022019746140646 +-0.00922964066486065 +-0.01012707897845555 +-0.009131735086486792 +-0.009854461363073996 +-0.008861733056808596 +-0.009881207095131739 +-0.008888263322977652 +-0.009401213734937075 +-0.008470757358756353 +-0.009131759980372078 +-0.008204346644251292 +-0.01366473959056891 +-0.01257462111719998 +-0.01299444428074653 +-0.01196304272589294 +-0.01216262731625023 +-0.0111025643160832 +-0.01299579887790825 +-0.01196224667043699 +-0.0126499133957157 +-0.01157940714332761 +-0.01285067111340576 +-0.01177681683156284 +-0.01152438324255733 +-0.01051439542080801 +-0.01445486650033168 +-0.01329760048274586 +-0.01471268148018434 +-0.01354681377159694 +-0.01468596636720321 +-0.01352343386757915 +-0.01473138470393975 +-0.01356342972945979 +-0.01468135842530949 +-0.01351922460579846 +-0.01472243647427696 +-0.01355625414644968 +-0.01124907171197842 +-0.0102439397658447 +-0.01260848839840767 +-0.01153805411397302 +-0.01278478639859471 +-0.01171613869930965 +-0.01020016470048279 +-0.009237964386557662 +-0.01106096427797088 +-0.01004955142211816 +-0.01272991760529729 +-0.01164518613182297 +-0.0120855460893099 +-0.01105221076994911 +-0.01287091449686517 +-0.01179777481769151 +-0.01132151046388952 +-0.01033940806533362 +-0.01243854160080549 +-0.01139982911160864 +-0.0130748145882692 +-0.01193458263476521 +-0.01324658475945173 +-0.01210782663974586 +-0.01168920015201769 +-0.01067331128418703 +-0.011860716644848 +-0.01084661327802594 +-0.01186863314056508 +-0.01085232884216047 +-0.01185481508484465 +-0.01083941932881238 +-0.01186488504906213 +-0.01084922606939998 +-0.01185180725602719 +-0.0108363309409838 +-0.01184980052028128 +-0.0108343121289195 +-0.0118612087214508 +-0.01084588662138231 +-0.01457349576582791 +-0.01342381087954429 +-0.01341665431324524 +-0.01234786984760028 +-0.01372281207663595 +-0.01263671502564789 +-0.01436545306155834 +-0.01317249333731596 +-0.01360485796246136 +-0.01253501036834603 +-0.01361944446598773 +-0.01254856268431859 +-0.01358821546891237 +-0.01250668723360682 +-0.01319749591346397 +-0.012122926989524 +-0.01371121344100112 +-0.01260116476901496 +-0.01048144674979312 +-0.009488815296115227 +-0.01210635702672236 +-0.01104842115130378 +-0.009067439562548962 +-0.0081566564322757 +-0.01108593192516671 +-0.01003421646105612 +-0.01299778789409516 +-0.01193360010942214 +-0.01303639923376559 +-0.01197506876809851 +-0.01293011685790191 +-0.01187446014908389 +-0.0138801228553791 +-0.0126955142726175 +-0.01315865065915278 +-0.012097028992062 +-0.01313726911819335 +-0.01207864281594806 +-0.01093132472221114 +-0.00991098365649945 +-0.01111220488652298 +-0.01009142354127113 +-0.01206560586445526 +-0.0110326329910615 +-0.01322066769009811 +-0.01214812439897139 +-0.01252519570279109 +-0.01149048660529239 +-0.01164176510793608 +-0.0105838737458136 +-0.01156204388535684 +-0.01050563895443255 +-0.01352259534491118 +-0.01243827380286899 +-0.0111373607455576 +-0.01008362427651566 +-0.0125821366765087 +-0.01151260508137572 +-0.0127893313485905 +-0.01171787204679453 +-0.01274931085892128 +-0.01168136348997095 +-0.01273741111595006 +-0.01166934584976909 +-0.0128998247344021 +-0.01183241795198797 +-0.01183908350691348 +-0.01079345058451969 +-0.01311590462349277 +-0.01205763608375732 +-0.009289372252598405 +-0.00835918227626653 +-0.01108581219788174 +-0.01003541600223723 +-0.0143435469864442 +-0.01324134760037581 +-0.01236338714952812 +-0.01129055403457047 +-0.01193880407441927 +-0.01088390875943412 +-0.01257514690319483 +-0.01150004937908922 +-0.01252101689343621 +-0.01144970119978983 +-0.0119060622672317 +-0.01086532390926279 +-0.01187161904841599 +-0.01081466182594437 +-0.01187683874168755 +-0.01082346352055674 +-0.01205348488789904 +-0.01098429288867564 +-0.008589137298673943 +-0.007694114402871488 +-0.01271417710190414 +-0.01164772107279788 +-0.01296115446626911 +-0.01188987420083987 +-0.01164444694012731 +-0.01058336472397781 +-0.01105783021056972 +-0.01000741313260889 +-0.01181400778223041 +-0.01075316796454873 +-0.01180348658361663 +-0.01074259231959351 +-0.01177283195131695 +-0.01071176625839121 +-0.01223695203771524 +-0.01116936790974865 +-0.01209306203111682 +-0.01105249885382875 +-0.01290111742670957 +-0.0118395041301933 +-0.01148187870874162 +-0.01042696420371092 +-0.01208919419177448 +-0.01103039437771799 +-0.01187150559921558 +-0.01082856759626072 +-0.01153001870548298 +-0.01049699462926368 +-0.01200183909946229 +-0.01095868988044579 +-0.0119893235856563 +-0.01094604528187493 +-0.01025255228880084 +-0.009273982329568664 +-0.01400980125558959 +-0.01291480019524538 +-0.01323844145918041 +-0.0121383230497778 +-0.01118941778903482 +-0.01015059283572728 +-0.01104342471412605 +-0.009992732562568274 +-0.01136764630976383 +-0.01031242930029763 +-0.01348361337475434 +-0.01240644112334494 +-0.01264986896440762 +-0.01158388699495727 +-0.01329908427999349 +-0.01223574802364646 +-0.01082105744724648 +-0.009822005762715968 +-0.01098907507232572 +-0.009991468506242551 +-0.01098431142632483 +-0.009934589181594844 +-0.01299213627021767 +-0.01192577172485743 +-0.01302626090594949 +-0.01196494301172679 +-0.01324198276908195 +-0.01216705657146111 +-0.0131700861569386 +-0.01210377567505927 +-0.01317628065939558 +-0.01210969833973441 +-0.01316250812246811 +-0.01209621456713095 +-0.01316173078024729 +-0.01209543182245609 +-0.0120805807007649 +-0.01103809585117554 +-0.01284282767204914 +-0.01178712661601367 +-0.01045785463509807 +-0.009457720823195293 +-0.01034322732424187 +-0.009385204761977128 +-0.01217818871927445 +-0.01117115868332252 +-0.01234289062519389 +-0.01133581375255788 +-0.01236010272549148 +-0.01130001454891982 +-0.01430934033379902 +-0.01320611488295084 +-0.01448493716030363 +-0.01338082353102565 +-0.01452034154916859 +-0.01341558693979827 +-0.01453522423999087 +-0.01342832520334658 +-0.01450257033971269 +-0.013398128727929 +-0.01455674784066907 +-0.01344776495693023 +-0.01453789689176821 +-0.0134307878115516 +-0.01453390299693924 +-0.01342710485133081 +-0.01445609315704371 +-0.01332997208587955 +-0.01311567486184123 +-0.0120226079329207 +-0.01404452559424252 +-0.01295048446098801 +-0.01360416615086835 +-0.01252118184664019 +-0.01425077904596056 +-0.01315035902121914 +-0.01321624349867601 +-0.01215314436028403 +-0.01082296249758896 +-0.009807587521824424 +-0.01320550471319992 +-0.01213414722327799 +-0.01372268139643262 +-0.01262274116285722 +-0.01308962275651679 +-0.01200565394267318 +-0.01283122484846499 +-0.01180061722023529 +-0.01302864411335014 +-0.011996763089687 +-0.0130042331813216 +-0.01197363090120596 +-0.01307574098254571 +-0.01201370587455441 +-0.0132419002110202 +-0.0121790125915705 +-0.01043522087854143 +-0.009454559045254385 +-0.01266371298923064 +-0.01159717797345539 +-0.01310324186521616 +-0.01203346637082614 +-0.01259198497593794 +-0.01152261425138135 +-0.01457703923670356 +-0.01343768285876967 +-0.01201477456190991 +-0.01095669714538605 +-0.0114253333605534 +-0.01037951836307283 +-0.01104073796841523 +-0.009991289103489148 +-0.0129518078612449 +-0.01189972655165747 +-0.01419190854645613 +-0.01308274361584805 +-0.01434427390369752 +-0.01323444711487942 +-0.01438236603355025 +-0.01327270042809514 +-0.01247661711414016 +-0.0114133586467311 +-0.01296797900801172 +-0.0118645301708602 +-0.01282808739629829 +-0.01179246299216349 +-0.1629537334962439 +-0.1629559536851712 +-0.1545863015628655 +-0.1545878689963356 +-0.02287646963494283 +-0.02374384054580503 +-0.02182486472822442 +-0.0227468496712937 +-0.03569526956733643 +-0.03608374664675523 +-0.03396069056795081 +-0.03441061422125458 +-0.04914990262862123 +-0.04917558390617255 +-0.04682659727361749 +-0.04681833460215801 +-0.1479701620198415 +-0.1479754491585834 +-0.1400537432902684 +-0.1400577985926716 +-0.03499757856908259 +-0.03514185925374758 +-0.03332352044353692 +-0.03343398653207963 +-0.04594850205050238 +-0.04610844384509494 +-0.04371678958528102 +-0.04383868558654003 +-0.1958912863461468 +-0.1958891928379241 +-0.187594329274491 +-0.1875928682654058 +-0.05938261512815654 +-0.05927271154767069 +-0.05730247535814237 +-0.05720869654989946 +-0.04956600497717048 +-0.04942816880920306 +-0.04763569050954564 +-0.04751895454819666 +-0.162696915040597 +-0.1626993614814327 +-0.1540198767067622 +-0.1540216412787139 +-0.06096514132503383 +-0.06092670304700776 +-0.05800847151022537 +-0.05796965228000039 +-0.04773551914140134 +-0.04767829802253493 +-0.0454366621255331 +-0.04537340106211207 +-0.0408767629531995 +-0.04107550558095588 +-0.03887605783116066 +-0.03908379837299658 +-0.1511456560681099 +-0.1511480245623316 +-0.1435038059233102 +-0.1435056771511665 +-0.02383007549683525 +-0.02374058308784566 +-0.02272471306527946 +-0.02259420185004091 +-0.06109407668697037 +-0.06111613125372223 +-0.05831866552688081 +-0.05828034450703568 +-0.04376260190648479 +-0.04383758371118768 +-0.04168011664172155 +-0.04175653254946754 +-0.05345013099113416 +-0.05349666213938331 +-0.05091266556913832 +-0.05094750216321087 +-0.1490594244089349 +-0.1490639974116659 +-0.1409328556384946 +-0.1409364190960218 +-0.1472358700209531 +-0.1472405559205614 +-0.139225387348592 +-0.1392288894843166 +-0.01107198419067834 +-0.01088063519758031 +-0.01004447455014024 +-0.00980649406456191 +-0.02607862914593079 +-0.02680842499543162 +-0.02476853598834472 +-0.02556930423635495 +-0.0288952558231359 +-0.02878619794701998 +-0.02751865077298588 +-0.02730770381889291 +-0.06267012772507623 +-0.06234716723742235 +-0.06011110081264603 +-0.05954246230845461 +-0.03710465258922899 +-0.03664258828249914 +-0.03580648230853389 +-0.035230576502704 +-0.02871710777393363 +-0.0287984120155225 +-0.0277043631621996 +-0.02775661269439778 +-0.1637121812316664 +-0.1637147112859578 +-0.1552401916467661 +-0.1552418664875663 +-0.1108941903962184 +-0.1109046524651283 +-0.1036000137161537 +-0.1036089278026573 +-0.1232644912400245 +-0.1232740388260902 +-0.115036107086862 +-0.1150436301592705 +-0.118456081016892 +-0.1184661610375874 +-0.1105960221510962 +-0.110603654325427 +-0.1102953230798054 +-0.1103060414642112 +-0.1030459730380962 +-0.103054583342395 +-0.02794035593012878 +-0.0275124387559964 +-0.02633250749230154 +-0.02592775733832386 +-0.02377388550277204 +-0.02357043624901656 +-0.02235939257991149 +-0.02214525325710248 +-0.1451301983602082 +-0.1451373423912639 +-0.1366823325747362 +-0.1366876533969759 +-0.1475315624937634 +-0.147538683669783 +-0.138919715380073 +-0.1389246746449082 +-0.01023114804003211 +-0.01032338636836694 +-0.009217538655134305 +-0.00930811273852683 +-0.01881805203946246 +-0.01894661779022938 +-0.0178428436733209 +-0.01799334636976502 +-0.1923605288038592 +-0.1923599252499331 +-0.1835679703121349 +-0.1835675956553426 +-0.04945970109468168 +-0.04961331440871696 +-0.04747625320661747 +-0.04760512175148118 +-0.04484302651001079 +-0.04501849480326905 +-0.04310075169375716 +-0.0432439411767731 +-0.1395975976268695 +-0.1396040332310888 +-0.1321183766114586 +-0.1321235645048482 +-0.01901944922268975 +-0.01957952573407637 +-0.01809446423345595 +-0.01865473610834112 +-0.01280412448527379 +-0.01275081379184761 +-0.0121731819654789 +-0.01212476560578146 +-0.1626977274271857 +-0.1627003366898494 +-0.1540469493229402 +-0.1540487199934752 +-0.03314452349211866 +-0.03343738100851595 +-0.03151677952655163 +-0.0318521207662168 +-0.04143988464480919 +-0.04197854893316766 +-0.03943792681324482 +-0.04004754285333861 +-0.1455038407564184 +-0.1455078041304323 +-0.137804628353468 +-0.1378076720440777 +-0.1504944251115252 +-0.1504981905145946 +-0.1424869604044421 +-0.1424900114358021 +-0.03957196739908098 +-0.03906728041812835 +-0.03774264484405077 +-0.03712438120241668 +-0.02847702804786667 +-0.0287850407810627 +-0.0271032162240048 +-0.02749080418091809 +-0.1488489295496582 +-0.1488536934207167 +-0.1413878013966361 +-0.1413915362426508 +-0.0466339178846642 +-0.04685181206454336 +-0.04459801383351802 +-0.04476826150649565 +-0.04047164976268847 +-0.04029509761633476 +-0.03853931687832635 +-0.03840429899025244 +-0.1505223427170646 +-0.1505275763107021 +-0.1423605381061215 +-0.1423647092510052 +-0.1463162557297375 +-0.146321725655798 +-0.1384219887272806 +-0.1384261343037458 +-0.03223001700521533 +-0.03201663176414093 +-0.03073152852102723 +-0.03050219555133538 +-0.0265205296865374 +-0.02663170082798816 +-0.02521501666981507 +-0.02534793398035173 +-0.1444080022181868 +-0.1444139318988675 +-0.1364392362721922 +-0.1364438952837261 +-0.03053036904408724 +-0.03067501848771337 +-0.0289229540714171 +-0.02908986714506412 +-0.03889057261623374 +-0.03898838528098036 +-0.0370080810778104 +-0.03713690005207093 +-0.06982158461719917 +-0.07048063859799264 +-0.06759470976925153 +-0.06827812257096921 +-0.08465445902021129 +-0.08450811659551893 +-0.08210773747521882 +-0.08197669426016629 +-0.04866413218623467 +-0.04795422187917953 +-0.04711181998828051 +-0.04633981187241365 +-0.03953250422270105 +-0.03980841277923042 +-0.03829226445976627 +-0.03860250429212907 +-0.04885053412859368 +-0.04863301831300788 +-0.04733915802390942 +-0.04709356352123928 +-0.04773220405653919 +-0.04775441704880934 +-0.04587934877842867 +-0.04587096505524882 +-0.03935659474961551 +-0.03933118322163408 +-0.03779706639812894 +-0.03780773935214224 +-0.03347564270887102 +-0.03318986840154206 +-0.03244128655825618 +-0.03212333462559247 +-0.05172451334996295 +-0.05178974949762182 +-0.04987592839153721 +-0.04993349605229269 +-0.0825024525636321 +-0.08255339728961396 +-0.07947421099059282 +-0.07951205692578611 +-0.07389546869473822 +-0.07395357892681716 +-0.07118912395134447 +-0.07122792038636633 +-0.06205870329087609 +-0.06221104130553085 +-0.05983136531389643 +-0.05993730898368144 +-0.05175800281508809 +-0.05193217476705674 +-0.049929664781589 +-0.05011731781528728 +-0.04367894691140607 +-0.04356433450897522 +-0.0421844317431922 +-0.0420313688185967 +-0.04753823062561779 +-0.04745281519040279 +-0.04560718156386678 +-0.04554367855847441 +-0.04646925017888226 +-0.04656557290846652 +-0.04466168396157566 +-0.04473226670927688 +-0.01805536487218232 +-0.01796193071329275 +-0.01749447033137208 +-0.0174078780205108 +-0.02067445810511254 +-0.02060317076293588 +-0.02003399788372462 +-0.01996743686429892 +-0.01685144352136677 +-0.0167434710849003 +-0.01632722715651669 +-0.01622707363409903 +-0.02131608395366896 +-0.02124875670904564 +-0.02065579571518761 +-0.02059304539637741 +-0.01736654418002194 +-0.01726554496950737 +-0.01682762762213041 +-0.01673301469977961 +-0.05549778752118173 +-0.05544865305988878 +-0.05377254364657924 +-0.05374465585946808 +-0.04628852917330278 +-0.04643624524956819 +-0.04444883260476296 +-0.0445653502092227 +-0.01640400145659045 +-0.01631061687383888 +-0.01582246525597109 +-0.01572128425271435 +-0.05773677632507304 +-0.0586741324968286 +-0.05563055156313612 +-0.05672810300530617 +-0.1180109435646994 +-0.1183702901445476 +-0.1135629334412107 +-0.1139652136975841 +-0.03667023351132502 +-0.03669737388253981 +-0.03528359692144312 +-0.03533004301789622 +-0.04438714143589818 +-0.044357997686608 +-0.04269359816042356 +-0.04269544882938331 +-0.0658786164781465 +-0.06597514262123641 +-0.06354592226518396 +-0.06363133972912949 +-0.04044827931326939 +-0.04032185541012151 +-0.03858932012455041 +-0.03849320422006741 +-0.04106432712400387 +-0.04062301390461931 +-0.03945024411757214 +-0.03894630277845978 +-0.02572174004668548 +-0.02593654795289158 +-0.0245398916888484 +-0.02481177885302044 +-0.04143595633382668 +-0.04057783648490787 +-0.03987598456115504 +-0.03896381841375429 +-0.04586913718694349 +-0.04665865437488562 +-0.04418751517098918 +-0.04502799841020111 +-0.03877346172942595 +-0.03906130620945206 +-0.03737283958112508 +-0.03768642501987635 +-0.04190718615486388 +-0.04215902848010063 +-0.04023884439835912 +-0.04052022113237552 +-0.05366334921169397 +-0.05349026390553285 +-0.05178052041698955 +-0.05159489160800645 +-0.03789495139523025 +-0.03768247700343519 +-0.03632861780707497 +-0.03611271059258625 +-0.04533709375146744 +-0.04554168932183206 +-0.0436818403838295 +-0.04389275089818723 +-0.03744993813061004 +-0.03714379604967044 +-0.03609769713895794 +-0.03574810389781713 +-0.02910338326124398 +-0.02942656308690214 +-0.02809534547405704 +-0.0284547892159089 +-0.03722105017914173 +-0.03720939389232342 +-0.03579463801408822 +-0.03578320331538054 +-0.0276046465294951 +-0.02761501608497188 +-0.02655995859077298 +-0.02656711495367892 +-0.02062387987812502 +-0.02062777966615288 +-0.01984057485658197 +-0.01984607294686314 +-0.0343811924728827 +-0.03439047732368876 +-0.03307450210834673 +-0.0330832926137945 +-0.02375879191032553 +-0.02376607922216884 +-0.02285710545595454 +-0.02286494444239007 +-0.03710344026024167 +-0.03711249937212594 +-0.03569215701211848 +-0.03570075969988551 +-0.03877845285593677 +-0.03878740060584503 +-0.03730281373171462 +-0.03731120353586803 +-0.02770630539962012 +-0.02771533009017484 +-0.02665485268907986 +-0.02666360201170526 +-0.05480014763315055 +-0.05485752525468146 +-0.05247313953355048 +-0.05244966076138802 +-0.05273869293395655 +-0.05266882162043235 +-0.05115032402701569 +-0.05110599717978603 +-0.01386443810735425 +-0.01374085910351543 +-0.0134346465511051 +-0.01332344356593662 +-0.01427196778238296 +-0.01350736165947672 +-0.01307876233465083 +-0.01243904906912491 +-0.0285817756647949 +-0.02855488980381473 +-0.02771101418482269 +-0.02768538256603503 +-0.02313121388759378 +-0.02309166515553149 +-0.022426725163328 +-0.02238926809545405 +-0.0441038131063215 +-0.04457530813551214 +-0.04266612552708127 +-0.04321031332690017 +-0.03573494257919904 +-0.03602329044977817 +-0.0345122254440034 +-0.03492530946684225 +-0.03066842288493407 +-0.03065767088245888 +-0.02971254975046889 +-0.0296972658110104 +-0.03189454835750347 +-0.03188385220467652 +-0.03089915011133271 +-0.03089606163917424 +-0.056875874459818 +-0.05727816522683461 +-0.0548994079151921 +-0.05551619142682829 +-0.04975759269149929 +-0.04927588958753512 +-0.04816583429752641 +-0.04761915222345414 +-0.07679355598604831 +-0.07640373129512079 +-0.07444416244362317 +-0.07398303323458721 +-0.04960445923187007 +-0.04933384680184694 +-0.04736093747661085 +-0.04705151808011276 +-0.03958977700959415 +-0.0398020550125498 +-0.03773146329443922 +-0.03796390949195683 +-0.05023687327811845 +-0.05025942723752484 +-0.0482529234025087 +-0.04824574655254826 +-0.03494914858112264 +-0.03512194749221642 +-0.03301816464907059 +-0.03320426301878765 +-0.04563990872980472 +-0.04572222517083002 +-0.04349328333222502 +-0.04357421220735169 +-0.06565288930404745 +-0.06562936897001659 +-0.06262566247176315 +-0.06258698741873148 +-0.03549067199805761 +-0.03535084003033956 +-0.03382740010382834 +-0.03367256904473148 +-0.05497865212850676 +-0.05498651785965977 +-0.05314373844810749 +-0.05316744012310659 +-0.1071418000172506 +-0.1071367730609536 +-0.1034914863957173 +-0.1034781531775599 +-0.05115639835619862 +-0.05122345919672217 +-0.04946957493378368 +-0.04953242234019961 +-0.07383200382021748 +-0.07392931062351918 +-0.07142060573453013 +-0.07152133756392431 +-0.06301093284699438 +-0.06302793462177264 +-0.06093612685961725 +-0.06094973478976362 +-0.01378644338412143 +-0.01302111557326441 +-0.01260159247832641 +-0.01196592519160845 +-0.01658899031742184 +-0.01653210130719623 +-0.01604733248888907 +-0.01599581881903695 +-0.01952467988411352 +-0.01948719963248938 +-0.0188891500451391 +-0.01885479891095079 +-0.04704849957615163 +-0.04663053226070859 +-0.045428674936902 +-0.04495230507455653 +-0.05094897786861829 +-0.05066306780124696 +-0.04930770289446151 +-0.04893078064010759 +-0.01874684912223203 +-0.01875064301173699 +-0.01790976064518301 +-0.01791525825362583 +-0.02636432279979268 +-0.02775788294939257 +-0.02519380093372696 +-0.02662785348953718 +-0.0419093096810513 +-0.04204829654938497 +-0.04050727373312524 +-0.04064611334295465 +-0.03714806378543092 +-0.0371723103051502 +-0.03596643758605012 +-0.03598167571272248 +-0.04410533185874434 +-0.04421734969106682 +-0.04265026641762637 +-0.04276790726515733 +-0.03854582937982216 +-0.03884024392648837 +-0.03724963114706453 +-0.03757065020942224 +-0.05971842694429458 +-0.05974907422647095 +-0.0571192906181035 +-0.05717601210156942 +-0.05356648439209877 +-0.05360710937992888 +-0.05124895028796739 +-0.05130437130324905 +-0.0337025202190962 +-0.03367006552948809 +-0.03222410079176008 +-0.03217523996842653 +-0.04419126119460365 +-0.04443109822039742 +-0.04279109434625994 +-0.04305623522142898 +-0.04615591754097409 +-0.04688733832080011 +-0.04465878781811661 +-0.04544311761400843 +-0.0399683185575449 +-0.03965872645303978 +-0.03871109167803699 +-0.03835699229353473 +-0.08744543799551463 +-0.0875326504640862 +-0.08328299842316156 +-0.08339847715356363 +-0.05269966511959315 +-0.05316050757026811 +-0.05033534042809307 +-0.0508791189300577 +-0.06654070382771099 +-0.06631251317688586 +-0.06341083648474033 +-0.06315221575025731 +-0.03680608613655544 +-0.03689353840750571 +-0.03546604575388329 +-0.03557914677556639 +-0.03852260812257725 +-0.03851785087661437 +-0.03713525568715473 +-0.0371302204603921 +-0.04677694498584516 +-0.04677392863115969 +-0.04508794686694734 +-0.0450845550838806 +-0.05561376889406448 +-0.05599360704251739 +-0.05346548373166593 +-0.0539060186468846 +-0.04656142008164951 +-0.04637954910452556 +-0.04495582586516778 +-0.04474336268054346 +-0.0525020088569563 +-0.05268893240185415 +-0.05069224298974362 +-0.05090793698911655 +-0.04322459126700207 +-0.0432497656046219 +-0.04151101473754587 +-0.04148451413994819 +-0.05697370656344372 +-0.05644268121663806 +-0.05474990426540627 +-0.05423231197453071 +-0.0650220127590255 +-0.06458644275950493 +-0.06230856390411121 +-0.06184888396690891 +-0.01945895877250561 +-0.01897117815069113 +-0.01883418827066813 +-0.01827457140577843 +-0.03613180648391368 +-0.03567553969289994 +-0.03434944453420874 +-0.03392372799093168 +-0.06066348513590225 +-0.06056216051864438 +-0.0578135284347101 +-0.05767663549050273 +-0.06914753990895628 +-0.06881904982035136 +-0.06719719794977408 +-0.06685583382560889 +-0.05437804615089803 +-0.05394810197088429 +-0.05285507244572429 +-0.05240164773730249 +-0.03549633585594605 +-0.03569374551128799 +-0.03414844846422357 +-0.03424009795796648 +-0.0169269286426428 +-0.01689009128683991 +-0.01628610579068213 +-0.01625320066611666 +-0.04472828517897411 +-0.04472610670783901 +-0.04303160692094637 +-0.04302920559865986 +-0.1132994224374923 +-0.1131757028672632 +-0.1087929055672864 +-0.1087180910701996 +-0.05561628656959491 +-0.05546086880548109 +-0.05325536987383428 +-0.05315847038678623 +-0.05710920730162841 +-0.0573468039164223 +-0.05472491062720586 +-0.05512893353668269 +-0.06364923566801781 +-0.0633930785973125 +-0.06116914378374116 +-0.06083654997952137 +-0.03544256936087889 +-0.03546561267998358 +-0.0340369076543269 +-0.03402487807351831 +-0.02290214200549424 +-0.02310399306240139 +-0.02198999806074192 +-0.02221707729297123 +-0.04827146892004469 +-0.04824856068564337 +-0.04619159704838993 +-0.0462467493644072 +-0.02832647638728583 +-0.02791670210218186 +-0.02716831163775812 +-0.02676942946580241 +-0.04240796348109671 +-0.04286514429631645 +-0.04071914513585889 +-0.04125238308330764 +-0.04607474188270642 +-0.04605059198788609 +-0.04444713970563052 +-0.04446499076159072 +-0.03469102095752166 +-0.03444677262319815 +-0.03355075151315501 +-0.03323671331233125 +-0.1286577494601032 +-0.1287966465391913 +-0.1239317763161129 +-0.124083684367433 +-0.0774821760845413 +-0.07665238000040678 +-0.07421666503033419 +-0.07290669052391907 +-0.03266119160125713 +-0.03266443097322591 +-0.03127612237157984 +-0.0312797547995477 +-0.04108701465510976 +-0.04109073892035755 +-0.03934090782626432 +-0.03934499469195585 +-0.0591430861285944 +-0.05914648388763957 +-0.05661390229446783 +-0.05661736886181057 +-0.1020995581053597 +-0.1020962661289663 +-0.09783026357022973 +-0.09777409543502413 +-0.1171278811784573 +-0.1177550945781407 +-0.112209428958197 +-0.1129342307990222 +-0.02977123849188512 +-0.02999943456051368 +-0.02832913222607969 +-0.02862011870014181 +-0.0471805506730467 +-0.04671172965762128 +-0.04543644715875896 +-0.04484415121885232 +-0.01647288930760565 +-0.01669230960163201 +-0.01579729893560944 +-0.01606542541038203 +-0.01629266479338057 +-0.01609600425092414 +-0.01574462706661239 +-0.01551791953225856 +-0.0907399932864156 +-0.09096916222593462 +-0.08695920916666 +-0.08727914208892251 +-0.05866639086982822 +-0.05866952049607194 +-0.05635857892328344 +-0.05636187712263963 +-0.06471763952600226 +-0.06472061078728211 +-0.06216475949279832 +-0.06216784623769067 +-0.07842675764751511 +-0.07781666421467731 +-0.07539472869714881 +-0.07472440630542621 +-0.03369076963205953 +-0.03314076391162268 +-0.03228081723138942 +-0.03166454570165567 +-0.02510695628657322 +-0.02442916174804677 +-0.02401327473920256 +-0.02336022500922219 +-0.01717495166420197 +-0.01639010225238063 +-0.01667502029521484 +-0.01581876433398177 +-0.05250209512170989 +-0.0532287857066609 +-0.05091552152273104 +-0.05169432853546452 +-0.03544924258065224 +-0.03524135465827088 +-0.03377095352607151 +-0.03355597616277972 +-0.0716822395000401 +-0.07165427884363645 +-0.06828147543569063 +-0.06822585327972686 +-0.05051465637583047 +-0.05071074783763579 +-0.04863961303299258 +-0.04886512226919298 +-0.04811906096250249 +-0.04827445256987997 +-0.04658962610446782 +-0.04675239134225462 +-0.04298258051440587 +-0.04316379535097367 +-0.04161985078102903 +-0.04180960828889924 +-0.03078682414484144 +-0.03080059559556483 +-0.02944512494073526 +-0.02946004602058871 +-0.03059918898350161 +-0.0302837714068348 +-0.02925242711955223 +-0.02888134551174715 +-0.08212897893750332 +-0.08209378932097561 +-0.07937129376805063 +-0.07933348825163167 +-0.01498522301736866 +-0.01491060811266637 +-0.01448804330727199 +-0.01442025566390309 +-0.03132959937127458 +-0.03131734241675874 +-0.03029705211526235 +-0.0302845139337935 +-0.02745246345143535 +-0.02743604656537487 +-0.0265482130755666 +-0.02653199014684526 +-0.03672957809494271 +-0.03672068211935924 +-0.03551728096426254 +-0.03550799451721898 +-0.03729346581406768 +-0.0372848261812943 +-0.03606235005181502 +-0.03605331642828968 +-0.03520080849626006 +-0.03501104917897857 +-0.03407035682805959 +-0.03387381611448936 +-0.07888630003033098 +-0.07888794011237371 +-0.07626673182477406 +-0.07628134510499152 +-0.05241762367023552 +-0.05260065569041926 +-0.05044362534565738 +-0.05080410596317131 +-0.03898541230706425 +-0.0389825132502483 +-0.03767309204133913 +-0.03766982999514711 +-0.06505008316172974 +-0.06489535540154827 +-0.06289832759981118 +-0.06273970389889025 +-0.03851340494012845 +-0.03848844424718456 +-0.03743995344428885 +-0.03741598608527341 +-0.02368605403767971 +-0.02363364742089962 +-0.02302946400556527 +-0.02297733091519505 +-0.02105501655720478 +-0.02098915071693595 +-0.02046981600788278 +-0.02040652803159804 +-0.02927845001192307 +-0.02924134882973418 +-0.02846459027987014 +-0.02842842366102727 +-0.01860587934002016 +-0.01852179247265813 +-0.0180881619311366 +-0.01800784360701368 +-0.02067580483389309 +-0.02060762404190396 +-0.02010113627186616 +-0.02003562519679247 +-0.02125278762948134 +-0.02118807161981119 +-0.02066208964202054 +-0.0205999091252459 +-0.05950336982796434 +-0.05949360708685725 +-0.05768171916279252 +-0.05774284364026006 +-0.04979890201852433 +-0.0498916160238041 +-0.04835044624888979 +-0.04841299902722368 +-0.04097767582820089 +-0.04108857415082856 +-0.03979104458735883 +-0.03986913742942977 +-0.03582501502483085 +-0.03579738349053038 +-0.03459544871972087 +-0.03454681310713559 +-0.02455083182901055 +-0.02459337515822899 +-0.02366267459457516 +-0.0237231018860018 +-0.03422984052897193 +-0.03368716465249 +-0.03321445028582004 +-0.03266190195747787 +-0.05329430937743362 +-0.05374516628028703 +-0.051742711438028 +-0.05220459939611866 +-0.02687257096164375 +-0.02656009595496636 +-0.02601430713103259 +-0.02570904535331398 +-0.06341587025888885 +-0.06402266632927676 +-0.06120085803559649 +-0.06213250198572928 +-0.02383576105491383 +-0.02244995492363797 +-0.02301612526709595 +-0.0215591699261386 +-0.03731528283399116 +-0.03753203381170284 +-0.03599480961601076 +-0.03619158215539509 +-0.02136697933791072 +-0.02133969470519152 +-0.02070261015525288 +-0.02067662346867888 +-0.03442305937827568 +-0.03441403115029316 +-0.03335085482424921 +-0.03334154496150959 +-0.0680231999755089 +-0.06800999346843647 +-0.0658087103395949 +-0.06581392335369129 +-0.05475938924286794 +-0.05484210762890229 +-0.05279711333751358 +-0.05301616468511494 +-0.1274269330590398 +-0.1274263693355899 +-0.1226867710257952 +-0.1226859945743436 +-0.05240143282529894 +-0.05238708946397899 +-0.05087697040237016 +-0.0508627164263844 +-0.02945035078325004 +-0.02941814699064687 +-0.02860037277658734 +-0.02856786114206056 diff --git a/tests/unit/hykkt/SCCGTestMatrices/H_matrix_ACTIVSg200_AC_00.mtx b/tests/unit/hykkt/SCCGTestMatrices/H_matrix_ACTIVSg200_AC_00.mtx new file mode 100644 index 000000000..f455bfc46 --- /dev/null +++ b/tests/unit/hykkt/SCCGTestMatrices/H_matrix_ACTIVSg200_AC_00.mtx @@ -0,0 +1,11307 @@ +%%MatrixMarket matrix coordinate real symmetric +% Generated 13-May-2021 +2278 2278 11304 +1 1 2 +2 1 -1 +3 1 -100 +4 1 -100 +2 2 2 +3 2 100 +4 2 100 +3 3 11800.72211698274 +4 3 10000 +27 3 3590.34535665874 +28 3 542.6409560537578 +209 3 -4242.313186202483 +210 3 -641.1786762994642 +4 4 11953.31377671783 +209 4 -4415.646521217251 +210 4 -667.3714877975385 +2265 4 2011.557347137403 +2266 4 304.0225283202892 +5 5 2 +6 5 -1 +7 5 -100 +8 5 -100 +6 6 2 +7 6 100 +8 6 100 +7 7 11290.0579780081 +8 7 10000 +27 7 -3590.34535665874 +28 7 -585.3072186442018 +2271 7 2977.065618553049 +2276 7 485.3287981572266 +8 8 11800.72211698274 +27 8 -3590.34535665874 +28 8 -542.6409560537578 +209 8 4242.313186202483 +210 8 641.1786762994642 +9 9 2 +10 9 -1 +11 9 -100 +12 9 -100 +10 10 2 +11 10 100 +12 10 100 +11 11 11624.34933189916 +12 11 10000 +27 11 -464.8602040022914 +28 11 3409.883111696685 +209 11 549.2737821229996 +210 11 -4029.080952151689 +12 12 11761.98700748633 +209 12 571.7121837227164 +210 12 -4193.701999167336 +2265 12 -260.4447249320067 +2266 12 1910.450038877744 +13 13 2 +14 13 -1 +15 13 -100 +16 13 -100 +14 14 2 +15 14 100 +16 14 100 +15 15 11163.73028354343 +16 15 10000 +27 15 501.4107947944914 +28 15 -3409.883111696684 +2271 15 -415.7630226812527 +2276 15 2827.42877542122 +16 16 11624.34933189916 +27 16 464.8602040022914 +28 16 -3409.883111696685 +209 16 -549.2737821229996 +210 16 4029.080952151689 +17 17 2 +18 17 -1 +19 17 -100 +20 17 -100 +21 17 -100 +18 18 2 +19 18 100 +20 18 100 +21 18 100 +19 19 10876.36992733543 +20 19 10000 +21 19 10000 +2258 19 -376.8336277928846 +2264 19 2764.212434710328 +2271 19 403.0521872338755 +2276 19 -2956.535154026695 +20 20 10800.43534800799 +21 20 10000 +2271 20 415.7562285437666 +2273 20 -327.7246171619644 +2276 20 -2827.428775421221 +2277 20 2228.753171595832 +21 21 11163.73028354343 +27 21 -501.4107947944914 +28 21 3409.883111696684 +2271 21 415.7630226812527 +2276 21 -2827.42877542122 +22 22 2 +23 22 -1 +24 22 -100 +25 22 -100 +26 22 -100 +23 23 2 +24 23 100 +25 23 100 +26 23 100 +24 24 10971.47664837737 +25 24 10000 +26 24 10000 +2258 24 2910.503660884249 +2264 24 439.8857082154722 +2271 24 -3113.00473193531 +2276 24 -470.4911763517415 +25 25 10887.29196971707 +26 25 10000 +2271 25 -2977.065618553049 +2273 25 2346.706129992801 +2276 25 -485.3208672196473 +2277 25 382.5597417202089 +26 26 11290.0579780081 +27 26 3590.34535665874 +28 26 585.3072186442018 +2271 26 -2977.065618553049 +2276 26 -485.3287981572266 +27 27 35023.89281203172 +28 27 531.7017722423201 +209 27 -17240.93556676435 +210 27 -250.7067096256817 +2271 27 -16942.31213874624 +2276 27 -264.945136169517 +28 28 35183.94857648359 +209 28 -250.7067096256814 +210 28 -17313.00528283947 +2271 28 -264.9451361695172 +2276 28 -17024.46337747072 +29 29 2 +30 29 -1 +31 29 -100 +32 29 -100 +33 29 -100 +30 30 2 +31 30 100 +32 30 100 +33 30 100 +31 31 10401.92879255637 +32 31 10000 +33 31 10000 +207 31 -26.03452744367302 +208 31 2002.320635054166 +2259 31 26.03452744367302 +2262 31 -2002.320635054166 +32 32 11266.94890166082 +33 32 10000 +2257 32 -216.8626593302133 +2259 32 468.7056754159032 +2261 32 1631.283968741111 +2262 32 -3525.697124278577 +33 33 10640.32901643113 +2259 33 319.3959686640316 +2262 33 -2402.568569791306 +2270 33 -335.1501052830056 +2275 33 2521.074741435444 +34 34 2 +35 34 -1 +36 34 -100 +37 34 -100 +38 34 -100 +35 35 2 +36 35 100 +37 35 100 +38 35 100 +36 36 10445.48868836798 +37 36 10000 +38 36 10000 +207 36 2108.290037845784 +208 36 30.39064376948234 +2259 36 -2108.290037845784 +2262 36 -30.39064376948234 +37 37 11404.49103702993 +38 37 10000 +2257 37 1717.616889115955 +2259 37 -3712.288628228104 +2261 37 253.1482793711619 +2262 37 -547.129854579366 +38 38 10709.79049154123 +2259 38 -2529.720411534081 +2262 38 -372.8375376153127 +2270 38 2654.49832009008 +2275 38 391.2276679880978 +39 39 2 +40 39 -1 +41 39 -100 +42 39 -100 +43 39 -100 +44 39 -100 +2267 39 -100 +40 40 2 +41 40 100 +42 40 100 +43 40 100 +44 40 100 +2267 40 100 +41 41 11953.31377671783 +42 41 10000 +43 41 10000 +44 41 10000 +209 41 4415.646521217251 +210 41 667.3714877975385 +2265 41 -2011.557347137403 +2266 41 -304.0225283202892 +2267 41 10000 +42 42 10374.4923320136 +43 42 10000 +44 42 10000 +2265 42 -1932.594970534697 +2266 42 -315.0777473936756 +2267 42 10000 +2269 42 1647.610789853503 +2274 42 268.6157752469616 +43 43 10856.45642038548 +44 43 10000 +207 43 2909.66038250019 +208 43 439.772200165126 +2265 43 -2667.182844979725 +2266 43 -403.1236343024774 +2267 43 10000 +44 44 10935.93353980259 +2265 44 -1932.594970534697 +2266 44 -292.0809441664791 +2267 44 10000 +2272 44 3057.668294309561 +2278 44 462.1178549909769 +45 45 2 +46 45 -1 +47 45 -100 +48 45 -100 +49 45 -100 +50 45 -100 +2268 45 -100 +46 46 2 +47 46 100 +48 46 100 +49 46 100 +50 46 100 +2268 46 100 +47 47 11761.98700748633 +48 47 10000 +49 47 10000 +50 47 10000 +209 47 -571.7121837227164 +210 47 4193.701999167336 +2265 47 260.4447249320067 +2266 47 -1910.450038877744 +2268 47 10000 +48 48 10337.89007981978 +49 48 10000 +50 48 10000 +2265 48 269.9153174783519 +2266 48 -1835.456563963794 +2268 48 10000 +2269 48 -230.1130843267306 +2274 48 1564.79660001262 +49 49 10772.62168281278 +50 49 10000 +207 49 -376.7363896930853 +208 49 2763.411542195927 +2265 49 345.3409345339388 +2266 49 -2533.121701519905 +2268 49 10000 +50 50 10844.31004374894 +2265 50 250.2148165848365 +2266 50 -1835.456563963794 +2268 50 10000 +2272 50 -395.8790761140506 +2278 50 2903.980102805355 +51 51 2 +52 51 -1 +53 51 -100 +54 51 -100 +55 51 -100 +52 52 2 +53 52 100 +54 52 100 +55 52 100 +53 53 10499.73981912626 +54 53 10000 +55 53 10000 +205 53 -242.1962086677812 +206 53 1742.243518767916 +207 53 309.9153374588569 +208 53 -2229.382495392847 +54 54 10772.62168281278 +55 54 10000 +207 54 376.7363896930853 +208 54 -2763.411542195927 +2265 54 -345.3409345339388 +2266 54 2533.121701519905 +55 55 10401.92879255637 +207 55 26.03452744367302 +208 55 -2002.320635054166 +2259 55 -26.03452744367302 +2262 55 2002.320635054166 +56 56 2 +57 56 -1 +58 56 -100 +59 56 -100 +60 56 -100 +57 57 2 +58 57 100 +59 57 100 +60 57 100 +58 58 10690.82904013343 +59 58 10000 +60 58 10000 +2260 58 -386.1985709539971 +2263 58 2626.459670608764 +2269 58 230.0900400341866 +2274 58 -1564.79660001262 +59 59 10245.85883994111 +60 59 10000 +205 59 -217.5298830016963 +206 59 1564.79660001262 +2269 59 217.5298830016963 +2274 59 -1564.79660001262 +60 60 10337.89007981978 +2265 60 -269.9153174783519 +2266 60 1835.456563963794 +2269 60 230.1130843267308 +2274 60 -1564.796600012621 +61 61 2 +62 61 -1 +63 61 -100 +64 61 -100 +65 61 -100 +62 62 2 +63 62 100 +64 62 100 +65 62 100 +63 63 10553.92663474436 +64 63 10000 +65 63 10000 +205 63 1834.448783983299 +206 63 282.72065686103 +207 63 -2347.368759677877 +208 63 -361.7706002073004 +64 64 10856.45642038548 +65 64 10000 +207 64 -2909.66038250019 +208 64 -439.772200165126 +2265 64 2667.182844979725 +2266 64 403.1236343024774 +65 65 10445.48868836798 +207 65 -2108.290037845784 +208 65 -30.39064376948234 +2259 65 2108.290037845784 +2262 65 30.39064376948234 +66 66 2 +67 66 -1 +68 66 -100 +69 66 -100 +70 66 -100 +67 67 2 +68 67 100 +69 67 100 +70 67 100 +68 68 10765.77721465698 +69 68 10000 +70 68 10000 +2260 68 2765.460566807965 +2263 68 450.8176005705988 +2269 68 -1647.610789853503 +2274 68 -268.5888751663997 +69 69 10272.46213148417 +70 69 10000 +205 69 1647.610789853503 +206 69 253.9271433992675 +2269 69 -1647.610789853503 +2274 69 -253.9271433992675 +70 70 10374.4923320136 +2265 70 1932.594970534697 +2266 70 315.0777473936756 +2269 70 -1647.610789853503 +2274 70 -268.6157752469616 +71 71 2 +72 71 -1 +73 71 -100 +74 71 -100 +75 71 -100 +72 72 2 +73 72 100 +74 72 100 +75 72 100 +73 73 11494.04901955834 +74 73 10000 +75 73 10000 +109 73 -488.2795559865627 +110 73 3320.666645289909 +2272 73 565.6025406472329 +2278 73 -3846.520846902267 +74 74 10844.31004374894 +75 74 10000 +2265 74 -250.2148165848365 +2266 74 1835.456563963794 +2272 74 395.8790761140506 +2278 74 -2903.980102805355 +75 75 12252.68915674971 +2272 75 654.5654735073782 +2273 75 -502.3673797514581 +2277 75 3613.578282245523 +2278 75 -4708.354233796474 +76 76 2 +77 76 -1 +78 76 -100 +79 76 -100 +80 76 -100 +77 77 2 +78 77 100 +79 77 100 +80 77 100 +78 78 11656.26500638957 +79 78 10000 +80 78 10000 +109 78 3496.40726100898 +110 78 569.9788512779356 +2272 78 -4050.091398908648 +2278 78 -660.239574738336 +79 79 10935.93353980259 +80 79 10000 +2265 79 1932.594970534697 +2266 79 292.0809441664791 +2272 79 -3057.668294309561 +2278 79 -462.1178549909769 +80 80 12497.32946916716 +2272 80 -4957.535847146476 +2273 80 3804.820746517466 +2277 80 586.4238601014096 +2278 80 -764.0878511124894 +81 81 2 +82 81 -1 +83 81 -100 +84 81 -100 +82 82 2 +83 82 100 +84 82 100 +83 83 10430.30707213747 +84 83 10000 +107 83 -337.7555321249511 +108 83 -2071.972664244085 +205 83 1647.610789853503 +206 83 268.5796336337307 +84 84 10695.77447196498 +105 84 2635.857492287807 +106 84 398.3692310275717 +107 84 -313.1467309519247 +108 84 -2071.972664244084 +85 85 2 +86 85 -1 +87 85 -100 +88 85 -100 +86 86 2 +87 86 100 +88 86 100 +87 87 10697.77910514317 +88 87 10000 +105 87 2635.857492287807 +106 87 429.7156857023329 +109 87 -2639.65737387104 +110 87 -430.3351686314762 +88 88 11656.26500638957 +109 88 -3496.40726100898 +110 88 -569.9788512779356 +2272 88 4050.091398908648 +2278 88 660.239574738336 +89 89 2 +90 89 -1 +91 89 -100 +92 89 -100 +90 90 2 +91 90 100 +92 90 100 +91 91 10697.77910514317 +92 91 10000 +105 91 -2635.857492287807 +106 91 -429.7156857023329 +109 91 2639.65737387104 +110 91 430.3351686314762 +92 92 10695.77447196498 +105 92 -2635.857492287807 +106 92 -398.3692310275717 +107 92 313.1467309519247 +108 92 2071.972664244084 +93 93 2 +94 93 -1 +95 93 -100 +96 93 -100 +94 94 2 +95 94 100 +96 94 100 +95 95 10388.23497486508 +96 95 10000 +107 95 -1967.828688847392 +108 95 289.3425271625698 +205 95 -230.0821231589235 +206 95 1564.79660001262 +96 96 10627.68656691057 +105 96 -341.2680151355311 +106 96 2503.370861279979 +107 96 -1967.828688847391 +108 96 268.2610879421737 +97 97 2 +98 97 -1 +99 97 -100 +100 97 -100 +98 98 2 +99 98 100 +100 98 100 +99 99 10629.49474601768 +100 99 10000 +105 99 -368.1213500198492 +106 99 2503.37086127998 +109 99 368.6520378671354 +110 99 -2506.979748657091 +100 100 11494.04901955834 +109 100 488.2795559865627 +110 100 -3320.666645289909 +2272 100 -565.6025406472329 +2278 100 3846.520846902267 +101 101 2 +102 101 -1 +103 101 -100 +104 101 -100 +102 102 2 +103 102 100 +104 102 100 +103 103 10629.49474601768 +104 103 10000 +105 103 368.1213500198492 +106 103 -2503.37086127998 +109 103 -368.6520378671354 +110 103 2506.979748657091 +104 104 10627.68656691057 +105 104 341.2680151355311 +106 104 -2503.370861279979 +107 104 1967.828688847391 +108 104 -268.2610879421737 +105 105 40745.44222763823 +106 105 614.8372859406653 +107 105 -232.8531249415838 +108 105 -16013.59975979043 +109 105 -20403.06232979729 +110 105 -319.0727843893465 +106 106 40929.38208180607 +107 106 -16080.53524900671 +108 106 -232.8531249415838 +109 106 -319.0727843893471 +110 106 -20501.99951559498 +107 107 33171.94596444179 +108 107 502.5419473156078 +203 107 337.7555321249511 +204 107 1967.828688847392 +205 107 -254.065192844644 +206 107 -16326.39666296357 +108 108 33020.27289958621 +203 108 2071.972664244085 +204 108 -289.3425271625698 +205 108 -16247.62425336944 +206 108 -254.0651928446447 +109 109 35522.79851872346 +110 109 555.5095788211373 +2272 109 -17479.91588111797 +2278 109 -273.3456372875947 +110 110 35695.03872849017 +2272 110 -273.3456372875947 +2278 110 -17564.66972135155 +111 111 2 +112 111 1 +113 111 -1 +114 111 -100 +112 112 2 +113 112 -1 +114 112 -100 +113 113 2 +114 113 100 +114 114 11260.49012305545 +119 114 -3548.929589405018 +120 114 244.7756474403896 +205 114 -107.9266554129703 +206 114 1564.79660001262 +115 115 2 +116 115 1 +117 115 -1 +118 115 -100 +116 116 2 +117 116 -1 +118 116 -100 +117 117 2 +118 117 100 +118 118 11397.33052852054 +119 118 -285.7316892307605 +120 118 -3736.750631926803 +205 118 1647.610789853503 +206 118 125.9850229655065 +119 119 20117.06473472684 +120 119 149.8719668509921 +197 119 285.7316892307605 +198 119 3548.929589405018 +205 119 -66.08165596346863 +206 119 -8869.975191540949 +120 120 20095.28149480007 +197 120 3736.750631926803 +198 120 -244.7756474403896 +205 120 -8860.364476068708 +206 120 -66.08165596346871 +121 121 2 +122 121 -1 +191 121 -100 +192 121 -100 +193 121 -100 +194 121 -100 +195 121 -100 +196 121 -100 +197 121 -100 +200 121 -100 +202 121 -100 +203 121 -100 +122 122 2 +191 122 100 +192 122 100 +193 122 100 +194 122 100 +195 122 100 +196 122 100 +197 122 100 +200 122 100 +202 122 100 +203 122 100 +123 123 2 +124 123 1 +125 123 -1 +126 123 -100 +124 124 2 +125 124 -1 +126 124 -100 +125 125 2 +126 125 100 +126 126 13347.32521014342 +131 126 -5784.743045411278 +132 126 134.773855080423 +205 126 -36.45687778089468 +206 126 1564.79660001262 +127 127 2 +128 127 1 +129 127 -1 +130 127 -100 +128 128 2 +129 128 -1 +130 128 -100 +129 129 2 +130 129 100 +130 130 13710.89495173313 +131 130 -157.3243158743932 +132 130 -6090.890699834576 +205 130 1647.610789853502 +206 130 42.55686944899715 +131 131 20013.67783532722 +132 131 50.62571389210562 +190 131 5784.743045411278 +191 131 157.3243158743932 +205 131 -13.69446219991025 +206 131 -5413.691006289166 +132 132 20011.22707243545 +190 132 -134.773855080423 +191 132 6090.890699834576 +205 132 -5413.018230216059 +206 132 -13.69446219991025 +133 133 2 +134 133 1 +135 133 -1 +136 133 -100 +134 134 2 +135 134 -1 +136 134 -100 +135 135 2 +136 135 100 +136 136 14244.63863958343 +141 136 -6514.321637425822 +142 136 265.0449040450337 +205 136 -63.66608647592469 +206 136 1564.79660001262 +137 137 2 +138 137 1 +139 137 -1 +140 137 -100 +138 138 2 +139 138 -1 +140 138 -100 +139 139 2 +140 139 100 +140 140 14705.6992080293 +141 140 -309.3924127939864 +142 140 -6859.080993857197 +205 140 1647.610789853503 +206 140 74.31874300284635 +141 141 20041.11715244059 +142 141 88.40968494151502 +189 141 6514.321637425822 +192 141 309.3924127939864 +205 141 -21.23677369718222 +206 141 -4813.948356079958 +142 142 20033.57828475923 +189 142 -265.0449040450337 +192 142 6859.080993857197 +205 142 -4812.126379552342 +206 142 -21.23677369718222 +143 143 2 +144 143 1 +145 143 -1 +146 143 -100 +144 144 2 +145 144 -1 +146 144 -100 +145 145 2 +146 145 100 +146 146 12185.67307903741 +151 146 -4674.048650835175 +152 146 236.6636946302183 +205 146 -79.23121310207557 +206 146 1564.79660001262 +147 147 2 +148 147 1 +149 147 -1 +150 147 -100 +148 148 2 +149 148 -1 +150 148 -100 +149 149 2 +150 149 100 +150 150 12423.03226468859 +151 150 -276.2624384958607 +152 150 -4921.414699747004 +205 150 1647.610789853503 +206 150 92.4882380914616 +151 151 20063.24069540649 +152 151 110.0241427677104 +188 151 4674.048650835175 +193 151 276.2624384958607 +205 151 -36.83432017581867 +206 151 -6716.778389308511 +152 152 20051.51733898335 +188 152 -236.6636946302183 +193 152 4921.414699747004 +205 152 -6712.845651006126 +206 152 -36.83432017581874 +153 153 2 +154 153 1 +155 153 -1 +156 153 -100 +154 154 2 +155 154 -1 +156 154 -100 +155 155 2 +156 155 100 +156 156 15451.58654084718 +161 156 -7382.808775017256 +162 156 257.0578886100129 +205 156 -54.48377742960448 +206 156 1564.79660001262 +157 157 2 +158 157 1 +159 157 -1 +160 157 -100 +158 158 2 +159 158 -1 +160 158 -100 +159 159 2 +160 159 100 +160 160 16043.77893570508 +161 160 -300.0690040479573 +162 160 -7773.531331193746 +205 160 1647.610789853502 +206 160 63.60004323724601 +161 161 20030.34638289527 +162 161 75.65870408567432 +187 161 7382.808775017256 +194 161 300.0690040479573 +205 161 -16.03596768146649 +206 161 -4245.344281049406 +162 162 20024.85075397516 +187 162 -257.0578886100129 +194 162 7773.531331193746 +205 162 -4244.166923247165 +206 162 -16.03596768146653 +163 163 2 +164 163 1 +165 163 -1 +166 163 -100 +164 164 2 +165 164 -1 +166 164 -100 +165 165 2 +166 165 100 +166 166 14403.35960795996 +171 166 -6635.027963739089 +172 166 260.1892623066465 +205 166 -61.36270641846573 +206 166 1564.79660001262 +167 167 2 +168 167 1 +169 167 -1 +170 167 -100 +168 168 2 +169 168 -1 +170 168 -100 +169 169 2 +170 169 100 +170 170 14881.66480680895 +171 170 -303.7243215001142 +172 170 -6986.175496513778 +205 170 1647.610789853503 +206 170 71.62995969600827 +171 171 20038.24183353907 +172 171 85.21110440276105 +186 171 6635.027963739089 +195 171 303.7243215001142 +205 171 -20.096079049171 +206 171 -4725.689775985235 +172 172 20031.24359680914 +186 172 -260.1892623066465 +195 172 6986.175496513778 +205 172 -4724.028040400059 +206 172 -20.09607904917103 +173 173 2 +174 173 1 +175 173 -1 +176 173 -100 +174 174 2 +175 174 -1 +176 174 -100 +175 175 2 +176 175 100 +176 176 14165.26409416978 +181 176 -6453.110950673155 +182 176 267.5779102724115 +205 176 -64.88420971424246 +206 176 1564.79660001262 +177 177 2 +178 177 1 +179 177 -1 +180 177 -100 +178 178 2 +179 178 -1 +180 178 -100 +179 179 2 +180 179 100 +180 180 14617.70081969765 +181 180 -312.3492434907859 +182 180 -6794.630835959855 +205 180 1647.610789853503 +206 180 75.74068351945979 +181 181 20042.68126171909 +182 181 90.10122745151894 +185 181 6453.110950673155 +196 181 312.3492434907859 +205 181 -21.84839148913018 +206 181 -4859.992042686564 +182 182 20034.84850840283 +185 182 -267.5779102724115 +196 182 6794.630835959855 +205 182 -4858.081729506262 +206 182 -21.84839148913032 +183 183 2 +184 183 -1 +185 183 -100 +186 183 -100 +187 183 -100 +188 183 -100 +189 183 -100 +190 183 -100 +198 183 -100 +199 183 -100 +201 183 -100 +204 183 -100 +184 184 2 +185 184 100 +186 184 100 +187 184 100 +188 184 100 +189 184 100 +190 184 100 +198 184 100 +199 184 100 +201 184 100 +204 184 100 +185 185 14165.26409416978 +186 185 10000 +187 185 10000 +188 185 10000 +189 185 10000 +190 185 10000 +198 185 10000 +199 185 10000 +201 185 10000 +204 185 10000 +205 185 64.88420971424246 +206 185 -1564.79660001262 +186 186 14403.35960795996 +187 186 10000 +188 186 10000 +189 186 10000 +190 186 10000 +198 186 10000 +199 186 10000 +201 186 10000 +204 186 10000 +205 186 61.36270641846573 +206 186 -1564.79660001262 +187 187 15451.58654084718 +188 187 10000 +189 187 10000 +190 187 10000 +198 187 10000 +199 187 10000 +201 187 10000 +204 187 10000 +205 187 54.48377742960448 +206 187 -1564.79660001262 +188 188 12185.67307903741 +189 188 10000 +190 188 10000 +198 188 10000 +199 188 10000 +201 188 10000 +204 188 10000 +205 188 79.23121310207557 +206 188 -1564.79660001262 +189 189 14244.63863958343 +190 189 10000 +198 189 10000 +199 189 10000 +201 189 10000 +204 189 10000 +205 189 63.66608647592469 +206 189 -1564.79660001262 +190 190 13347.32521014342 +198 190 10000 +199 190 10000 +201 190 10000 +204 190 10000 +205 190 36.45687778089468 +206 190 -1564.79660001262 +191 191 13710.89495173313 +192 191 10000 +193 191 10000 +194 191 10000 +195 191 10000 +196 191 10000 +197 191 10000 +200 191 10000 +202 191 10000 +203 191 10000 +205 191 -1647.610789853502 +206 191 -42.55686944899715 +192 192 14705.6992080293 +193 192 10000 +194 192 10000 +195 192 10000 +196 192 10000 +197 192 10000 +200 192 10000 +202 192 10000 +203 192 10000 +205 192 -1647.610789853503 +206 192 -74.31874300284635 +193 193 12423.03226468859 +194 193 10000 +195 193 10000 +196 193 10000 +197 193 10000 +200 193 10000 +202 193 10000 +203 193 10000 +205 193 -1647.610789853503 +206 193 -92.4882380914616 +194 194 16043.77893570508 +195 194 10000 +196 194 10000 +197 194 10000 +200 194 10000 +202 194 10000 +203 194 10000 +205 194 -1647.610789853502 +206 194 -63.60004323724601 +195 195 14881.66480680895 +196 195 10000 +197 195 10000 +200 195 10000 +202 195 10000 +203 195 10000 +205 195 -1647.610789853503 +206 195 -71.62995969600827 +196 196 14617.70081969765 +197 196 10000 +200 196 10000 +202 196 10000 +203 196 10000 +205 196 -1647.610789853503 +206 196 -75.74068351945979 +197 197 11397.33052852054 +200 197 10000 +202 197 10000 +203 197 10000 +205 197 -1647.610789853503 +206 197 -125.9850229655065 +198 198 11260.49012305545 +199 198 10000 +201 198 10000 +204 198 10000 +205 198 107.9266554129703 +206 198 -1564.79660001262 +199 199 10245.85883994111 +201 199 10000 +204 199 10000 +205 199 217.5298830016963 +206 199 -1564.79660001262 +2269 199 -217.5298830016963 +2274 199 1564.79660001262 +200 200 10272.46213148417 +202 200 10000 +203 200 10000 +205 200 -1647.610789853503 +206 200 -253.9271433992675 +2269 200 1647.610789853503 +2274 200 253.9271433992675 +201 201 10499.73981912626 +204 201 10000 +205 201 242.1962086677812 +206 201 -1742.243518767916 +207 201 -309.9153374588569 +208 201 2229.382495392847 +202 202 10553.92663474436 +203 202 10000 +205 202 -1834.448783983299 +206 202 -282.72065686103 +207 202 2347.368759677877 +208 202 361.7706002073004 +203 203 10430.30707213747 +205 203 -1647.610789853503 +206 203 -268.5796336337307 +204 204 10388.23497486508 +205 204 230.0821231589235 +206 204 -1564.79660001262 +205 205 57679.94406770254 +206 205 751.6572335658726 +207 205 -15876.76528467061 +208 205 -235.2488265104322 +2269 205 -20386.50228033519 +2274 205 -302.0720997012599 +206 206 57892.29699881718 +207 206 -235.2488265104326 +208 206 -15945.72412129599 +2269 206 -302.0720997012599 +2274 206 -20475.04964174846 +207 207 60480.51151489688 +208 207 622.4544281358126 +2259 207 -20003.3811321701 +2262 207 -28.25307081540673 +2265 207 -18480.97429990603 +2266 207 -268.744005669848 +208 208 60653.8017572463 +2259 208 -28.25307081540673 +2262 208 -20004.15574682953 +2265 208 -268.7440056698477 +2266 208 -18558.23075345092 +209 209 40717.28127821259 +210 209 592.0802009459613 +2265 209 -9268.390436826305 +2266 209 -134.7741378741257 +210 210 40887.46612562446 +2265 210 -134.7741378741255 +2266 210 -9307.133184747736 +211 211 2 +212 211 -1 +213 211 -100 +214 211 -100 +215 211 -100 +216 211 -100 +212 212 2 +213 212 100 +214 212 100 +215 212 100 +216 212 100 +213 213 10096.15461290882 +214 213 10000 +215 213 10000 +216 213 10000 +2248 213 975.4722595175124 +2252 213 143.7909396190617 +2257 213 -975.4722595175124 +2261 213 -143.7909396190617 +214 214 10775.73567085734 +215 214 10000 +216 214 10000 +2257 214 -975.4722595175122 +2258 214 2783.407391772425 +2261 214 -12.80958708602453 +2264 214 36.55080811670502 +215 215 11143.15431205994 +216 215 10000 +975 215 3347.114954542695 +976 215 493.3450922632092 +2257 215 -1774.615504595448 +2261 215 -261.5679060135474 +216 216 11404.49103702993 +2257 216 -1717.616889115955 +2259 216 3712.288628228104 +2261 216 -253.1482793711619 +2262 216 547.129854579366 +217 217 2 +218 217 -1 +219 217 -100 +220 217 -100 +221 217 -100 +222 217 -100 +218 218 2 +219 218 100 +220 218 100 +221 218 100 +222 218 100 +219 219 10086.82945991219 +220 219 10000 +221 219 10000 +222 219 10000 +2248 219 -123.1803179971847 +2252 219 926.4419027234902 +2257 219 123.1803179971847 +2261 219 -926.4419027234902 +220 220 10699.81156752866 +221 220 10000 +222 220 10000 +2257 220 10.97349398264839 +2258 220 -31.31170975582766 +2261 220 -926.4419027234899 +2264 220 2643.504430729512 +221 221 11031.22317829637 +222 221 10000 +975 221 -422.6302819101712 +976 221 3178.878247808453 +2257 221 224.0754384522791 +2261 221 -1685.417651439115 +222 222 11266.94890166082 +2257 222 216.8626593302133 +2259 222 -468.7056754159032 +2261 222 -1631.283968741111 +2262 222 3525.697124278577 +223 223 2 +224 223 -1 +236 223 -100 +238 223 -100 +240 223 -100 +224 224 2 +236 224 100 +238 224 100 +240 224 100 +225 225 2 +226 225 -1 +235 225 -100 +237 225 -100 +239 225 -100 +226 226 2 +235 226 100 +237 226 100 +239 226 100 +227 227 2 +228 227 -1 +229 227 -100 +228 228 2 +229 228 100 +229 229 10037.53620120032 +233 229 -604.4518276944892 +234 229 99.20649691319723 +969 229 -99.20649691319723 +974 229 604.4518276944892 +230 230 2 +231 230 -1 +232 230 -100 +231 231 2 +232 231 100 +232 232 10041.50576673711 +233 232 -115.8058011166216 +234 232 -636.4414092209038 +969 232 636.4414092209038 +974 232 115.8058011166216 +233 233 20662.18016094574 +234 233 356.6383167009973 +235 233 604.4518276944892 +236 233 115.8058011166216 +969 233 -356.6383167009973 +974 233 -20662.17650732562 +234 234 20538.75349394802 +235 234 -99.20649691319723 +236 234 636.4414092209038 +969 234 -20538.74944337135 +974 234 -356.6383167009973 +235 235 10037.53620120032 +237 235 10000 +239 235 10000 +969 235 99.20649691319723 +974 235 -604.4518276944892 +236 236 10041.50576673711 +238 236 10000 +240 236 10000 +969 236 -636.4414092209038 +974 236 -115.8058011166216 +237 237 19228.42770167349 +239 237 10000 +367 237 -1125.499660467025 +368 237 7653.733329040145 +969 237 1074.814588087818 +974 237 -7309.059721948542 +238 238 19258.21705853337 +240 238 10000 +367 238 7292.499176487331 +368 238 1188.890612186898 +969 238 -6964.093170187706 +974 238 -1135.350829949517 +239 239 10306.32972946844 +969 239 13.28499172755564 +974 239 -604.4518276944891 +975 239 -38.40467901719981 +976 239 1747.368677378757 +240 240 10339.50302969222 +969 240 -636.4414092209038 +974 240 -15.50784633775948 +975 240 1839.845182867898 +976 240 44.83057822417572 +241 241 2 +242 241 -1 +243 241 -100 +244 241 -100 +242 242 2 +243 242 100 +244 242 100 +243 243 12940.74874652746 +244 243 10000 +2249 243 -5400.770038288273 +2253 243 -816.2811147488883 +2260 243 3524.776535799574 +2263 243 532.7404239553787 +244 244 11796.49059329119 +365 244 4009.280142840455 +366 244 653.5987637526983 +2249 244 -4237.322967737048 +2253 244 -690.7746414975471 +245 245 2 +246 245 -1 +247 245 -100 +248 245 -100 +246 246 2 +247 246 100 +248 246 100 +247 247 12652.65334058763 +248 247 10000 +2249 247 699.2774896404877 +2253 247 -5129.310056360427 +2260 247 -456.3787885845288 +2263 247 3347.609989561824 +248 248 11620.5324975708 +365 248 -559.9136063434642 +366 248 3807.760895139976 +2249 248 591.7607898625839 +2253 248 -4024.34155803257 +249 249 2 +250 249 -1 +251 249 -100 +250 250 2 +251 250 100 +251 251 10041.06332795872 +255 251 -632.9559855055063 +256 251 90.86034826188508 +367 251 -90.86034826188508 +368 251 632.9559855055063 +252 252 2 +253 252 -1 +254 252 -100 +253 253 2 +254 253 100 +254 254 10045.41610686647 +255 254 -106.0631687197808 +256 254 -666.4541009437387 +367 254 666.4541009437387 +368 254 106.0631687197807 +255 255 20506.5497867948 +256 255 311.9252040966708 +268 255 632.9559855055063 +273 255 106.0631687197807 +367 255 -311.9252040966708 +368 255 -20506.54578046201 +256 256 20412.13210583153 +268 256 -90.86034826188508 +273 256 666.4541009437387 +367 256 -20412.12766422084 +368 256 -311.9252040966708 +257 257 2 +258 257 -1 +259 257 -100 +258 258 2 +259 258 100 +259 259 10042.15583766306 +263 259 -641.5281573170257 +264 259 104.5884955145023 +367 259 -103.19097220577 +368 259 632.9559855055064 +260 260 2 +261 260 -1 +262 260 -100 +261 261 2 +262 261 100 +262 262 10046.62731497755 +263 262 -122.0883196917712 +264 262 -675.4799403205775 +367 262 666.4541009437387 +368 262 120.4569617526989 +263 263 20653.36527928558 +264 263 354.2564571010029 +267 263 641.5281573170256 +274 263 122.0883196917712 +367 263 -349.5228422456395 +368 263 -20377.38861540239 +264 264 20531.58180742484 +267 264 -104.5884955145023 +274 264 675.4799403205775 +367 264 -20257.23198689662 +368 264 -349.5228422456393 +265 265 2 +266 265 -1 +267 265 -100 +268 265 -100 +269 265 -100 +276 265 -100 +278 265 -100 +266 266 2 +267 266 100 +268 266 100 +269 266 100 +276 266 100 +278 266 100 +267 267 10042.15583766306 +268 267 10000 +269 267 10000 +276 267 10000 +278 267 10000 +367 267 103.19097220577 +368 267 -632.9559855055065 +268 268 10041.06332795872 +269 268 10000 +276 268 10000 +278 268 10000 +367 268 90.86034826188508 +368 268 -632.9559855055063 +269 269 11165.74526823485 +276 269 10000 +278 269 10000 +367 269 155.5123281530317 +368 269 -1118.635148196018 +566 269 -470.1136796956907 +568 269 3381.633417756225 +270 270 2 +271 270 -1 +272 270 -100 +273 270 -100 +274 270 -100 +275 270 -100 +277 270 -100 +271 271 2 +272 271 100 +273 271 100 +274 271 100 +275 271 100 +277 271 100 +272 272 11292.2918856725 +273 272 10000 +274 272 10000 +275 272 10000 +277 272 10000 +367 272 -1177.837004542486 +368 272 -181.5327655509331 +566 272 3560.600595872588 +568 272 548.7734471732975 +273 273 10045.41610686647 +274 273 10000 +275 273 10000 +277 273 10000 +367 273 -666.4541009437387 +368 273 -106.0631687197808 +274 274 10046.62731497755 +275 274 10000 +277 274 10000 +367 274 -666.4541009437387 +368 274 -120.4569617526989 +275 275 11608.43272637748 +277 275 10000 +365 275 4009.280142840456 +366 275 605.9701199902464 +367 275 -666.4541009437386 +368 275 -100.7291227174643 +276 276 11450.90430345572 +278 276 10000 +365 276 -519.1119292699547 +366 276 3807.760895139976 +367 276 86.29087062638428 +368 276 -632.9559855055064 +277 277 19258.21705853337 +367 277 -7292.499176487331 +368 277 -1188.890612186898 +969 277 6964.093170187706 +974 277 1135.350829949517 +278 278 19228.42770167349 +367 278 1125.499660467025 +368 278 -7653.733329040145 +969 278 -1074.814588087818 +974 278 7309.059721948542 +279 279 2 +280 279 1 +281 279 -1 +282 279 -100 +280 280 2 +281 280 -1 +282 280 -100 +281 281 2 +282 281 100 +282 282 13116.39351227249 +287 282 -5581.571026397934 +288 282 201.7623894377192 +365 282 -137.6427770922318 +366 282 3807.760895139976 +283 283 2 +284 283 1 +285 283 -1 +286 283 -100 +284 284 2 +285 284 -1 +286 284 -100 +285 285 2 +286 285 100 +286 286 13454.87311095998 +287 286 -235.5214211875941 +288 286 -5876.96614841364 +365 286 4009.280142840455 +366 286 160.6732680323282 +287 287 20032.4321981341 +288 287 78.54767578802254 +291 287 5581.571026397934 +296 287 235.5214211875941 +365 287 -53.58540935074027 +366 287 -13665.9598758998 +288 288 20026.47888321218 +291 288 -201.7623894377192 +296 288 5876.96614841364 +365 288 -13661.87541928602 +366 288 -53.58540935074048 +289 289 2 +290 289 -1 +291 289 -100 +292 289 -100 +298 289 -100 +300 289 -100 +290 290 2 +291 290 100 +292 290 100 +298 290 100 +300 290 100 +291 291 13116.39351227249 +292 291 10000 +298 291 10000 +300 291 10000 +365 291 137.6427770922318 +366 291 -3807.760895139976 +292 292 12689.90777031543 +298 292 10000 +300 292 10000 +363 292 -123.8080072362483 +364 292 908.1618076577882 +365 292 703.4683957753828 +366 292 -5160.111564661793 +293 293 2 +294 293 -1 +295 293 -100 +296 293 -100 +297 293 -100 +299 293 -100 +294 294 2 +295 294 100 +296 294 100 +297 294 100 +299 294 100 +295 295 12982.05077549879 +296 295 10000 +297 295 10000 +299 295 10000 +363 295 956.2247216141478 +364 295 144.5236542843689 +365 295 -5433.20166385589 +366 295 -821.1732463880156 +296 296 13454.87311095998 +297 296 10000 +299 296 10000 +365 296 -4009.280142840455 +366 296 -160.6732680323282 +297 297 11608.43272637748 +299 297 10000 +365 297 -4009.280142840456 +366 297 -605.9701199902464 +367 297 666.4541009437386 +368 297 100.7291227174643 +298 298 11450.90430345572 +300 298 10000 +365 298 519.1119292699547 +366 298 -3807.760895139976 +367 298 -86.29087062638428 +368 298 632.9559855055064 +299 299 11796.49059329119 +365 299 -4009.280142840455 +366 299 -653.5987637526983 +2249 299 4237.322967737048 +2253 299 690.7746414975471 +300 300 11620.5324975708 +365 300 559.9136063434642 +366 300 -3807.760895139976 +2249 300 -591.7607898625839 +2253 300 4024.34155803257 +301 301 2 +302 301 -1 +323 301 -100 +324 301 -100 +326 301 -100 +328 301 -100 +302 302 2 +323 302 100 +324 302 100 +326 302 100 +328 302 100 +303 303 2 +304 303 -1 +305 303 -100 +304 304 2 +305 304 100 +305 305 10038.02627899376 +309 305 -608.4922266862379 +310 305 110.4875840057544 +361 305 -108.5032800140672 +362 305 597.5639982776847 +306 306 2 +307 306 -1 +308 306 -100 +307 307 2 +308 307 100 +308 308 10042.04909023906 +309 308 -128.9744480184776 +310 308 -640.6956394346355 +361 308 629.1890531858091 +362 308 126.658128819975 +309 309 20810.46786369935 +310 309 394.5554297708048 +322 309 608.4922266862379 +323 309 128.9744480184776 +361 309 -387.4694035780768 +362 309 -20436.71821056243 +310 310 20659.40097389966 +322 310 -110.4875840057544 +323 310 640.6956394346355 +361 310 -20288.36401455831 +362 310 -387.4694035780773 +311 311 2 +312 311 -1 +313 311 -100 +312 312 2 +313 312 100 +313 313 10036.70827320376 +317 313 -597.5639982776846 +318 313 127.1249080900251 +361 313 -127.1249080900251 +362 313 597.5639982776846 +314 314 2 +315 314 -1 +316 314 -100 +315 315 2 +316 315 100 +316 316 10040.58788646488 +317 316 -148.3955414343821 +318 316 -629.1890531858088 +361 316 629.1890531858088 +362 316 148.3955414343821 +317 317 21112.52756157567 +318 317 462.2701059316458 +321 317 597.5639982776846 +324 317 148.3955414343821 +361 317 -462.2701059316458 +362 317 -21112.52399074835 +318 318 20905.157908109 +321 318 -127.1249080900251 +324 318 629.1890531858088 +361 318 -20905.15394932035 +362 318 -462.2701059316458 +319 319 2 +320 319 -1 +321 319 -100 +322 319 -100 +325 319 -100 +327 319 -100 +320 320 2 +321 320 100 +322 320 100 +325 320 100 +327 320 100 +321 321 10036.70827320376 +322 321 10000 +325 321 10000 +327 321 10000 +361 321 127.1249080900251 +362 321 -597.5639982776846 +322 322 10038.02627899376 +325 322 10000 +327 322 10000 +361 322 108.5032800140672 +362 322 -597.5639982776847 +323 323 10042.04909023906 +324 323 10000 +326 323 10000 +328 323 10000 +361 323 -629.1890531858091 +362 323 -126.658128819975 +324 324 10040.58788646488 +326 324 10000 +328 324 10000 +361 324 -629.1890531858088 +362 324 -148.3955414343821 +325 325 12557.87107309228 +327 325 10000 +361 325 216.1746478339175 +362 325 -1554.992039253894 +566 325 -692.2005059391681 +568 325 4979.151288498338 +326 326 12835.66862621251 +328 326 10000 +361 326 -1637.287339447412 +362 326 -252.3451492840699 +566 326 5242.664373872407 +568 326 808.0200049171634 +327 327 19254.19404993158 +361 327 974.5365592213992 +362 327 -6627.391970657406 +363 327 -1092.917861157863 +364 327 7432.450829153709 +328 328 19284.06658955572 +361 328 -6314.598171966754 +362 328 -1029.424892061253 +363 328 7081.660572786563 +364 328 1154.473724570295 +329 329 2 +330 329 -1 +331 329 -100 +330 330 2 +331 330 100 +331 331 10045.91047245131 +335 331 -670.1527620722304 +336 331 94.25003795001984 +363 331 -94.25003795001984 +364 331 670.1527620722304 +332 332 2 +333 332 -1 +334 332 -100 +333 333 2 +334 333 100 +334 334 10050.78988130682 +335 334 -110.0200237855802 +336 334 -705.6194534365866 +363 334 705.6194534365866 +364 334 110.0200237855802 +335 335 20486.22399252347 +336 335 305.6027822240837 +339 335 670.1527620722304 +344 335 110.0200237855802 +363 335 -305.6027822240837 +364 335 -20486.21950147622 +336 336 20395.59510167998 +339 336 -94.25003795001984 +344 336 705.6194534365866 +363 336 -20395.59012269185 +364 336 -305.6027822240837 +337 337 2 +338 337 -1 +339 337 -100 +340 337 -100 +346 337 -100 +348 337 -100 +338 338 2 +339 338 100 +340 338 100 +346 338 100 +348 338 100 +339 339 10045.91047245131 +340 339 10000 +346 339 10000 +348 339 10000 +363 339 94.25003795001984 +364 339 -670.1527620722304 +340 340 19254.19404993158 +346 340 10000 +348 340 10000 +361 340 -974.5365592213992 +362 340 6627.391970657406 +363 340 1092.917861157863 +364 340 -7432.450829153709 +341 341 2 +342 341 -1 +343 341 -100 +344 341 -100 +345 341 -100 +347 341 -100 +342 342 2 +343 342 100 +344 342 100 +345 342 100 +347 342 100 +343 343 19284.06658955572 +344 343 10000 +345 343 10000 +347 343 10000 +361 343 6314.598171966754 +362 343 1029.424892061253 +363 343 -7081.660572786563 +364 343 -1154.473724570295 +344 344 10050.78988130682 +345 344 10000 +347 344 10000 +363 344 -705.6194534365866 +364 344 -110.0200237855802 +345 345 16502.283716722 +347 345 10000 +363 345 -2762.495735083911 +364 345 -450.3524406947014 +566 345 7887.500158793919 +568 345 1285.849929967326 +346 346 15865.15784883568 +348 346 10000 +363 346 385.8000858923904 +364 346 -2623.643860813163 +566 346 -1101.539524601838 +568 346 7491.049164698142 +347 347 12982.05077549879 +363 347 -956.2247216141478 +364 347 -144.5236542843689 +365 347 5433.20166385589 +366 347 821.1732463880156 +348 348 12689.90777031543 +363 348 123.8080072362483 +364 348 -908.1618076577882 +365 348 -703.4683957753828 +366 348 5160.111564661793 +349 349 2 +350 349 -1 +351 349 -100 +352 349 -100 +353 349 -100 +354 349 -100 +350 350 2 +351 350 100 +352 350 100 +353 350 100 +354 350 100 +351 351 10406.89772817045 +352 351 10000 +353 351 10000 +354 351 10000 +565 351 2014.690368693039 +566 351 -2014.690368693039 +567 351 328.4153326010787 +568 351 -328.4153326010787 +352 352 16502.283716722 +353 352 10000 +354 352 10000 +363 352 2762.495735083911 +364 352 450.3524406947014 +566 352 -7887.500158793919 +568 352 -1285.849929967326 +353 353 12835.66862621251 +354 353 10000 +361 353 1637.287339447412 +362 353 252.3451492840699 +566 353 -5242.664373872407 +568 353 -808.0200049171634 +354 354 11292.2918856725 +367 354 1177.837004542486 +368 354 181.532765550933 +566 354 -3560.600595872588 +568 354 -548.7734471732977 +355 355 2 +356 355 -1 +357 355 -100 +358 355 -100 +359 355 -100 +360 355 -100 +356 356 2 +357 356 100 +358 356 100 +359 356 100 +360 356 100 +357 357 10367.11974683601 +358 357 10000 +359 357 10000 +360 357 10000 +565 357 -281.3411276964017 +566 357 281.3411276964017 +567 357 1913.425584745868 +568 357 -1913.425584745868 +358 358 15865.15784883568 +359 358 10000 +360 358 10000 +363 358 -385.8000858923904 +364 358 2623.643860813163 +566 358 1101.539524601838 +568 358 -7491.049164698142 +359 359 12557.87107309228 +360 359 10000 +361 359 -216.1746478339175 +362 359 1554.992039253894 +566 359 692.2005059391681 +568 359 -4979.151288498338 +360 360 11165.74526823485 +367 360 -155.5123281530317 +368 360 1118.635148196018 +566 360 470.1136796956907 +568 360 -3381.633417756225 +361 361 51553.08299813735 +362 361 875.8550498916885 +363 361 -9864.491944491572 +364 361 -5.05415995605496 +566 361 -6173.308384229743 +568 361 -91.47466642969476 +362 362 52840.2667746026 +363 362 -5.054159956054405 +364 362 -10902.69679831367 +566 362 -91.47466642969546 +568 362 -6200.12360656071 +363 363 34481.64135840351 +364 363 357.864060360434 +365 363 -3550.371879027893 +366 363 -51.62754817490567 +566 363 -6847.980464646502 +568 363 -107.0899947758011 +364 364 35750.83229647203 +365 364 -51.62754817490567 +366 364 -3565.213146007904 +566 364 -107.0899947758014 +568 364 -6881.185986680187 +365 365 68157.37804681454 +366 365 912.193997967678 +367 365 -3386.347173990404 +368 365 -49.24302947539115 +2249 365 -19332.82024879323 +2253 365 -302.3261891255075 +366 366 68418.33225889444 +367 366 -49.24302947539108 +368 366 -3400.503158557848 +2249 366 -302.3261891255075 +2253 366 -19426.56157623883 +367 367 54915.91109391081 +368 367 703.4451782591943 +566 367 -6621.057114206579 +568 367 -98.10925477573757 +969 367 -11234.31635634337 +974 367 -5.756210923706373 +368 368 56378.87845472412 +566 368 -98.10925477573743 +568 368 -6649.817209228461 +969 368 -5.756210923706096 +974 368 -12416.69079722886 +369 369 2 +370 369 -1 +371 369 -100 +372 369 -100 +370 370 2 +371 370 100 +372 370 100 +371 371 11899.24828855275 +372 371 10000 +385 371 707.2457792882766 +386 371 4338.4925065162 +387 371 -684.8017537735137 +388 371 -4200.81301889897 +372 372 11045.23262092147 +387 372 -488.3981184978898 +388 372 -3231.458836069966 +565 372 2014.690368693039 +567 372 304.4974531138344 +373 373 2 +374 373 -1 +375 373 -100 +376 373 -100 +374 374 2 +375 374 100 +376 374 100 +375 375 11114.80267597528 +376 375 10000 +385 375 -504.401821102097 +386 375 -3337.368238560556 +2265 375 1932.594970534697 +2266 375 292.0877628448033 +376 376 11899.24828855275 +385 376 -707.2457792882766 +386 376 -4338.4925065162 +387 376 684.8017537735137 +388 376 4200.81301889897 +377 377 2 +378 377 -1 +379 377 -100 +380 377 -100 +378 378 2 +379 378 100 +380 378 100 +379 379 11713.21993769073 +380 379 10000 +385 379 4120.425992099998 +386 379 -605.8709973361052 +387 379 -3989.666716036944 +388 379 586.6440404265131 +380 380 10942.89781384813 +387 380 -3069.035375892766 +388 380 418.3923945777001 +565 380 -260.8515752332052 +567 380 1913.425584745869 +381 381 2 +382 381 -1 +383 381 -100 +384 381 -100 +382 382 2 +383 382 100 +384 382 100 +383 383 11005.65000282557 +384 383 10000 +385 383 -3169.621432956266 +386 383 432.1021678161336 +2265 383 -250.2206578914342 +2266 383 1835.456563963794 +384 384 11713.21993769073 +385 384 -4120.425992099998 +386 384 605.8709973361052 +387 384 3989.666716036944 +388 384 -586.6440404265131 +385 385 40815.42025733423 +386 385 613.0495215341208 +387 385 -19712.40439577985 +388 385 -306.7657102678672 +2265 385 -171.5399774444792 +2266 385 -11846.10311047835 +2267 385 504.401821102097 +2268 385 3169.621432956266 +386 386 40632.04357172958 +387 386 -306.7657102678672 +388 386 -19617.28943430032 +2265 386 -11796.79159197895 +2266 386 -171.539977444479 +2267 386 3337.368238560556 +2268 386 -432.1021678161337 +387 387 39543.79456081472 +388 387 593.2623400452758 +563 387 488.3981184978898 +564 387 3069.035375892766 +565 387 -184.6890516017066 +567 387 -12754.06426428273 +388 388 39366.55184185589 +563 388 3231.458836069966 +564 388 -418.3923945777001 +565 388 -12700.97251734154 +567 388 -184.6890516017064 +389 389 2 +390 389 -1 +402 389 -100 +404 389 -100 +406 389 -100 +390 390 2 +402 390 100 +404 390 100 +406 390 100 +391 391 2 +392 391 -1 +401 391 -100 +403 391 -100 +405 391 -100 +392 392 2 +401 392 100 +403 392 100 +405 392 100 +393 393 2 +394 393 -1 +395 393 -100 +394 394 2 +395 394 100 +395 395 10042.72938486088 +399 395 -645.9828547328439 +400 395 96.01806519748712 +465 395 -96.01806519748712 +466 395 645.9828547328439 +396 396 2 +397 396 -1 +398 396 -100 +397 397 2 +398 397 100 +398 398 10047.26317662283 +399 398 -112.0838786555703 +400 398 -680.1703949955016 +465 398 680.1703949955016 +466 398 112.0838786555703 +399 399 20543.10548035178 +400 399 322.9843958621492 +401 399 645.9828547328439 +402 399 112.0838786555703 +465 399 -322.9843958621492 +466 399 -20543.1013074133 +400 400 20441.87401284256 +401 400 -96.01806519748712 +402 400 680.1703949955016 +465 400 -20441.8693865249 +466 400 -322.9843958621492 +401 401 10042.72938486088 +403 401 10000 +405 401 10000 +465 401 96.01806519748712 +466 401 -645.9828547328439 +402 402 10047.26317662283 +404 402 10000 +406 402 10000 +465 402 -680.1703949955016 +466 402 -112.0838786555703 +403 403 10592.76810789172 +405 403 10000 +443 403 -356.7952640958529 +444 403 2426.550749963666 +465 403 110.919383633481 +466 403 -754.3584251976602 +404 404 10657.06221099177 +406 404 10000 +443 404 2554.971807668167 +444 404 416.494510731386 +465 404 -794.2815575919191 +466 404 -129.4784966782595 +405 405 10485.8839575605 +465 405 89.80835158650373 +466 405 -645.9828547328444 +467 405 2202.008078006306 +468 405 -306.1361678828113 +406 406 10538.56536898367 +465 406 -680.1703949955015 +466 406 -104.8351511850908 +467 406 357.3590971916011 +468 406 2318.54559796366 +407 407 2 +408 407 -1 +409 407 -100 +410 407 -100 +408 408 2 +409 408 100 +410 408 100 +409 409 10645.90670424679 +410 409 10000 +970 409 -2539.501337362882 +971 409 2531.322384832855 +972 409 -391.4370309616298 +973 409 390.1763327105101 +410 410 10822.76210340143 +441 410 728.5773373818824 +442 410 112.3014923521255 +970 410 -2861.131003405433 +972 410 -441.0091626675875 +411 411 2 +412 411 -1 +413 411 -100 +414 411 -100 +412 412 2 +413 412 100 +414 412 100 +413 413 10657.06221099177 +414 413 10000 +443 413 -2554.971807668167 +444 413 -416.494510731386 +465 413 794.2815575919191 +466 413 129.4784966782595 +414 414 10479.69480798722 +441 414 646.6754302586523 +442 414 105.4244218520384 +443 414 -2187.909522780174 +444 414 -356.684490721121 +415 415 2 +416 415 -1 +417 415 -100 +418 415 -100 +416 416 2 +417 416 100 +418 416 100 +417 417 10582.70584091696 +418 417 10000 +970 417 335.3294587090618 +971 417 -334.2494656866724 +972 417 -2411.857874993809 +973 417 2404.09002278656 +418 418 10742.22940922304 +441 418 -96.20448670925431 +442 418 691.9567093165167 +970 418 377.7960491876784 +972 418 -2717.321404964577 +419 419 2 +420 419 -1 +421 419 -100 +422 419 -100 +420 420 2 +421 420 100 +422 420 100 +421 421 10592.76810789172 +422 421 10000 +443 421 356.795264095853 +444 421 -2426.550749963667 +465 421 -110.9193836334811 +466 421 754.3584251976609 +422 422 10432.78271211805 +441 422 -90.3131577191663 +442 422 614.1714540910549 +443 422 305.558257760123 +444 422 -2077.938189932625 +423 423 2 +424 423 -1 +436 423 -100 +438 423 -100 +440 423 -100 +424 424 2 +436 424 100 +438 424 100 +440 424 100 +425 425 2 +426 425 -1 +435 425 -100 +437 425 -100 +439 425 -100 +426 426 2 +435 426 100 +437 426 100 +439 426 100 +427 427 2 +428 427 -1 +429 427 -100 +428 428 2 +429 428 100 +429 429 10038.72065750203 +433 429 -614.1714540910548 +434 429 101.1903135936505 +441 429 -101.1903135936505 +442 429 614.1714540910548 +430 430 2 +431 430 -1 +432 430 -100 +431 431 2 +432 431 100 +432 432 10042.81891121002 +433 432 -118.1215514666156 +434 432 -646.6754302586523 +441 432 646.6754302586523 +442 432 118.1215514666156 +433 433 20667.29522070283 +434 433 358.0130822508071 +435 433 614.1714540910548 +436 433 118.1215514666156 +441 433 -358.0130822508071 +442 433 -20667.29144863708 +434 434 20542.91516188292 +435 434 -101.1903135936505 +436 434 646.6754302586523 +441 434 -20542.9109799918 +442 434 -358.0130822508071 +435 435 10038.72065750203 +437 435 10000 +439 435 10000 +441 435 101.1903135936505 +442 435 -614.1714540910548 +436 436 10042.81891121002 +438 436 10000 +440 436 10000 +441 436 -646.6754302586523 +442 436 -118.1215514666156 +437 437 10742.22940922304 +439 437 10000 +441 437 96.20448670925431 +442 437 -691.9567093165167 +970 437 -377.7960491876784 +972 437 2717.321404964577 +438 438 10822.76210340143 +440 438 10000 +441 438 -728.5773373818824 +442 438 -112.3014923521255 +970 438 2861.131003405433 +972 438 441.0091626675875 +439 439 10432.78271211805 +441 439 90.3131577191663 +442 439 -614.1714540910549 +443 439 -305.558257760123 +444 439 2077.938189932625 +440 440 10479.69480798722 +441 440 -646.6754302586523 +442 440 -105.4244218520384 +443 440 2187.909522780174 +444 440 356.684490721121 +441 441 23644.79272989964 +442 441 405.4423878638287 +443 441 -6039.177642625416 +444 441 -94.44261077557289 +970 441 -5171.447405295266 +972 441 -76.63607898690778 +442 442 23783.54951141538 +443 442 -94.44261077557262 +444 442 -6068.461842466952 +970 442 -76.63607898690749 +972 442 -5193.914848682002 +443 443 40762.94927465316 +444 443 637.4411976038156 +465 443 -6320.26122476955 +466 443 -98.83137833363676 +444 444 40960.59134265232 +465 444 -98.83137833363698 +466 444 -6350.904030802367 +445 445 2 +446 445 -1 +447 445 -100 +448 445 -100 +446 446 2 +447 446 100 +448 446 100 +447 447 10621.57571466371 +448 447 10000 +463 447 -405.8515198088303 +464 447 -2489.55118202807 +565 447 2095.755891357285 +567 447 341.6542386418284 +448 448 10573.76615539543 +463 448 -368.8484669022508 +464 448 -2393.253340947068 +467 448 357.3345013752025 +468 448 2318.545597963659 +449 449 2 +450 449 -1 +451 449 -100 +452 449 -100 +450 450 2 +451 450 100 +452 450 100 +451 451 10560.75928855123 +452 451 10000 +463 451 -2364.418374282013 +464 451 347.6778119827033 +565 451 -292.6824031644854 +567 451 1990.416494871272 +452 452 10517.6350665593 +463 452 -2272.960770799394 +464 452 315.9786810362438 +467 452 2202.008078006304 +468 452 -306.1150975671612 +453 453 2 +454 453 -1 +455 453 -100 +456 453 -100 +457 453 -100 +454 454 2 +455 454 100 +456 454 100 +457 454 100 +455 455 10517.6350665593 +456 455 10000 +457 455 10000 +463 455 2272.960770799394 +464 455 -315.9786810362438 +467 455 -2202.008078006304 +468 455 306.1150975671612 +456 456 10485.8839575605 +457 456 10000 +465 456 -89.80835158650365 +466 456 645.9828547328436 +467 456 -2202.008078006304 +468 456 306.1361678828109 +457 457 10551.19105839088 +467 457 -2343.264119025886 +468 457 344.5434933759165 +565 457 -299.3896079982088 +567 457 2036.169422784597 +458 458 2 +459 458 -1 +460 458 -100 +461 458 -100 +462 458 -100 +459 459 2 +460 459 100 +461 459 100 +462 459 100 +460 460 10573.76615539543 +461 460 10000 +462 460 10000 +463 460 368.8484669022508 +464 460 2393.253340947068 +467 460 -357.3345013752025 +468 460 -2318.545597963659 +461 461 10538.56536898367 +462 461 10000 +465 461 680.1703949955015 +466 461 104.8351511850908 +467 461 -357.3590971916011 +468 461 -2318.54559796366 +462 462 10610.96792057923 +467 462 -402.1927647019813 +468 462 -2467.277373910752 +565 462 2143.930214906283 +567 462 349.4836979332111 +463 463 40980.52444155887 +464 463 621.1921757945099 +467 463 -19835.91114089591 +468 463 -292.6458643882374 +557 463 405.8515198088303 +559 463 2364.418374282013 +565 463 -268.6390920420191 +567 463 -17261.88222326815 +464 464 40793.03291855661 +467 464 -292.6458643882374 +468 464 -19750.12597206538 +557 464 2489.55118202807 +559 464 -347.6778119827033 +565 464 -17178.58589869797 +567 464 -268.6390920420197 +465 465 24161.17595587168 +466 465 379.7073535783113 +467 465 -88.62319422571089 +468 465 -5980.618770184578 +466 466 24279.55521541856 +467 466 -6006.59924658401 +468 466 -88.62319422571076 +467 467 60182.20035170802 +468 467 904.4678344950679 +558 467 402.1927647019813 +560 467 2343.264119025886 +565 467 -277.0728793954081 +567 467 -17804.97020241758 +468 468 59911.67509178127 +558 468 2467.277373910752 +560 468 -344.5434933759165 +565 468 -17719.06473487582 +567 468 -277.0728793954086 +469 469 2 +470 469 1 +471 469 -1 +472 469 -100 +470 470 2 +471 470 -1 +472 470 -100 +471 471 2 +472 471 100 +472 472 11639.77692579957 +477 472 -4048.180981378636 +478 472 556.3413928022286 +565 472 -262.9620216432136 +567 472 1913.425584745868 +473 473 2 +474 473 1 +475 473 -1 +476 473 -100 +474 474 2 +475 474 -1 +476 474 -100 +475 475 2 +476 475 100 +476 476 11817.82587980742 +477 476 -649.4288448081319 +478 476 -4262.424051883416 +565 476 2014.690368693039 +567 476 306.9610209730903 +477 477 20464.44372878489 +478 477 298.6283503209086 +555 477 649.4288448081319 +556 477 4048.180981378636 +565 477 -141.1505879956687 +567 477 -9672.709006983241 +478 478 20377.92161835638 +555 478 4262.424051883416 +556 478 -556.3413928022286 +565 478 -9631.804786335939 +567 478 -141.1505879956687 +479 479 2 +480 479 -1 +549 479 -100 +550 479 -100 +551 479 -100 +552 479 -100 +553 479 -100 +554 479 -100 +555 479 -100 +557 479 -100 +558 479 -100 +562 479 -100 +563 479 -100 +480 480 2 +549 480 100 +550 480 100 +551 480 100 +552 480 100 +553 480 100 +554 480 100 +555 480 100 +557 480 100 +558 480 100 +562 480 100 +563 480 100 +481 481 2 +482 481 1 +483 481 -1 +484 481 -100 +482 482 2 +483 482 -1 +484 482 -100 +483 483 2 +484 483 100 +484 484 12940.86856880437 +489 484 -5422.055485518728 +490 484 133.889182078253 +565 484 -47.24905290870847 +567 484 1913.425584745868 +485 485 2 +486 485 1 +487 485 -1 +488 485 -100 +486 486 2 +487 486 -1 +488 486 -100 +487 487 2 +488 487 100 +488 488 13260.27782784113 +489 488 -156.2916187332757 +490 488 -5709.008519735395 +565 488 2014.690368693039 +567 488 55.15479927571896 +489 489 20015.28323992247 +490 489 53.65758384492943 +548 489 5422.055485518728 +549 489 156.2916187332757 +565 489 -18.93558522570376 +567 489 -7063.224014861847 +490 490 20012.52124376923 +548 490 -133.889182078253 +549 490 5709.008519735395 +565 490 -7062.238043636784 +567 490 -18.93558522570379 +491 491 2 +492 491 1 +493 491 -1 +494 491 -100 +492 492 2 +493 492 -1 +494 492 -100 +493 493 2 +494 493 100 +494 494 11056.37405129408 +499 494 -3248.652107096239 +500 494 143.2409438914941 +565 494 -84.36757085390573 +567 494 1913.425584745868 +495 495 2 +496 495 1 +497 495 -1 +498 495 -100 +496 496 2 +497 496 -1 +498 496 -100 +497 497 2 +498 497 100 +498 498 11171.03776357955 +499 498 -167.208124227687 +500 498 -3420.581476269128 +565 498 2014.690368693039 +567 498 98.48401500910347 +499 499 20047.89639967989 +500 499 95.81059784697018 +547 499 3248.652107096239 +550 499 167.208124227687 +565 499 -56.43154242639222 +567 499 -11807.9605599254 +500 500 20038.9998396425 +547 500 -143.2409438914941 +550 500 3420.581476269128 +565 500 -11802.71381602118 +567 500 -56.43154242639222 +501 501 2 +502 501 1 +503 501 -1 +504 501 -100 +502 502 2 +503 502 -1 +504 502 -100 +503 503 2 +504 503 100 +504 504 12214.82503771687 +509 504 -4705.130218938546 +510 504 154.3697755067592 +565 504 -62.77723765799286 +567 504 1913.425584745868 +505 505 2 +506 505 1 +507 505 -1 +508 505 -100 +506 506 2 +507 506 -1 +508 506 -100 +507 507 2 +508 507 100 +508 508 12455.35150969509 +509 508 -180.1990401535402 +510 508 -4954.141206803746 +565 508 2014.690368693039 +567 508 73.28117134539508 +509 509 20026.68189066163 +510 509 71.29190292332777 +546 509 4705.130218938546 +551 509 180.1990401535402 +565 509 -28.99213086380588 +567 509 -8144.119317670361 +510 510 20021.77380996291 +546 510 -154.3697755067592 +551 510 4954.141206803746 +565 510 -8142.113577192984 +567 510 -28.99213086380598 +511 511 2 +512 511 1 +513 511 -1 +514 511 -100 +512 512 2 +513 512 -1 +514 512 -100 +513 513 2 +514 513 100 +514 514 10906.72771348692 +519 514 -3009.531048995705 +520 514 123.6626816197677 +565 514 -78.62332537439913 +567 514 1913.425584745868 +515 515 2 +516 515 1 +517 515 -1 +518 515 -100 +516 516 2 +517 516 -1 +518 516 -100 +517 517 2 +518 517 100 +518 518 11005.13273095053 +519 518 -144.3540126785976 +520 518 -3168.805344211806 +565 518 2014.690368693039 +567 518 91.77863814102558 +519 519 20041.59520723674 +520 519 89.28724310294997 +545 519 3009.531048995705 +552 519 144.3540126785976 +565 519 -56.76781284633028 +567 519 -12742.16052271195 +520 520 20033.86874915966 +545 520 -123.6626816197677 +552 520 3168.805344211806 +565 520 -12737.24187213451 +567 520 -56.76781284633041 +521 521 2 +522 521 1 +523 521 -1 +524 521 -100 +522 522 2 +523 522 -1 +524 522 -100 +523 523 2 +524 523 100 +524 524 10829.88968978467 +529 524 -2879.044441797776 +530 524 129.3144943362192 +565 524 -85.94298106315102 +567 524 1913.425584745868 +525 525 2 +526 525 1 +527 525 -1 +528 525 -100 +526 526 2 +527 526 -1 +528 526 -100 +527 527 2 +528 527 100 +528 528 10919.94645097689 +529 528 -150.9514908655601 +530 528 -3031.412955994099 +565 528 2014.69036869304 +567 528 100.3230240160296 +529 529 20049.67522935032 +530 529 97.59968567389615 +544 529 2879.044441797776 +553 529 150.9514908655601 +565 529 -64.8651798910664 +567 529 -13325.04715483134 +530 530 20040.44042027287 +544 530 -129.3144943362192 +553 530 3031.412955994099 +565 530 -13318.90367493455 +567 530 -64.86517989106655 +531 531 2 +532 531 1 +533 531 -1 +534 531 -100 +532 532 2 +533 532 -1 +534 532 -100 +533 533 2 +534 533 100 +534 534 11627.90924208353 +539 534 -4033.496302320762 +540 534 180.2581256000014 +565 534 -85.51154718622767 +567 534 1913.425584745868 +535 535 2 +536 535 1 +537 535 -1 +538 535 -100 +536 536 2 +537 536 -1 +538 536 -100 +537 537 2 +538 537 100 +538 538 11804.66880237411 +539 538 -210.4190480705485 +540 538 -4246.962211244771 +565 538 2014.690368693039 +567 538 99.81940230474517 +539 539 20049.25837382634 +540 539 97.10973512463791 +543 539 4033.496302320762 +554 539 210.4190480705485 +565 539 -46.06729194432751 +567 539 -9510.967596179566 +540 540 20040.12481000507 +543 540 -180.2581256000014 +554 540 4246.962211244771 +565 540 -9506.626395640475 +567 540 -46.06729194432766 +541 541 2 +542 541 -1 +543 541 -100 +544 541 -100 +545 541 -100 +546 541 -100 +547 541 -100 +548 541 -100 +556 541 -100 +559 541 -100 +560 541 -100 +561 541 -100 +564 541 -100 +542 542 2 +543 542 100 +544 542 100 +545 542 100 +546 542 100 +547 542 100 +548 542 100 +556 542 100 +559 542 100 +560 542 100 +561 542 100 +564 542 100 +543 543 11627.90924208353 +544 543 10000 +545 543 10000 +546 543 10000 +547 543 10000 +548 543 10000 +556 543 10000 +559 543 10000 +560 543 10000 +561 543 10000 +564 543 10000 +565 543 85.51154718622767 +567 543 -1913.425584745868 +544 544 10829.88968978467 +545 544 10000 +546 544 10000 +547 544 10000 +548 544 10000 +556 544 10000 +559 544 10000 +560 544 10000 +561 544 10000 +564 544 10000 +565 544 85.94298106315102 +567 544 -1913.425584745868 +545 545 10906.72771348692 +546 545 10000 +547 545 10000 +548 545 10000 +556 545 10000 +559 545 10000 +560 545 10000 +561 545 10000 +564 545 10000 +565 545 78.62332537439913 +567 545 -1913.425584745868 +546 546 12214.82503771687 +547 546 10000 +548 546 10000 +556 546 10000 +559 546 10000 +560 546 10000 +561 546 10000 +564 546 10000 +565 546 62.77723765799286 +567 546 -1913.425584745868 +547 547 11056.37405129408 +548 547 10000 +556 547 10000 +559 547 10000 +560 547 10000 +561 547 10000 +564 547 10000 +565 547 84.36757085390573 +567 547 -1913.425584745868 +548 548 12940.86856880437 +556 548 10000 +559 548 10000 +560 548 10000 +561 548 10000 +564 548 10000 +565 548 47.24905290870847 +567 548 -1913.425584745868 +549 549 13260.27782784113 +550 549 10000 +551 549 10000 +552 549 10000 +553 549 10000 +554 549 10000 +555 549 10000 +557 549 10000 +558 549 10000 +562 549 10000 +563 549 10000 +565 549 -2014.690368693039 +567 549 -55.15479927571896 +550 550 11171.03776357955 +551 550 10000 +552 550 10000 +553 550 10000 +554 550 10000 +555 550 10000 +557 550 10000 +558 550 10000 +562 550 10000 +563 550 10000 +565 550 -2014.690368693039 +567 550 -98.48401500910347 +551 551 12455.35150969509 +552 551 10000 +553 551 10000 +554 551 10000 +555 551 10000 +557 551 10000 +558 551 10000 +562 551 10000 +563 551 10000 +565 551 -2014.690368693039 +567 551 -73.28117134539508 +552 552 11005.13273095053 +553 552 10000 +554 552 10000 +555 552 10000 +557 552 10000 +558 552 10000 +562 552 10000 +563 552 10000 +565 552 -2014.690368693039 +567 552 -91.77863814102558 +553 553 10919.94645097689 +554 553 10000 +555 553 10000 +557 553 10000 +558 553 10000 +562 553 10000 +563 553 10000 +565 553 -2014.69036869304 +567 553 -100.3230240160296 +554 554 11804.66880237411 +555 554 10000 +557 554 10000 +558 554 10000 +562 554 10000 +563 554 10000 +565 554 -2014.690368693039 +567 554 -99.81940230474517 +555 555 11817.82587980742 +557 555 10000 +558 555 10000 +562 555 10000 +563 555 10000 +565 555 -2014.690368693039 +567 555 -306.9610209730903 +556 556 11639.77692579957 +559 556 10000 +560 556 10000 +561 556 10000 +564 556 10000 +565 556 262.9620216432136 +567 556 -1913.425584745868 +557 557 10621.57571466371 +558 557 10000 +562 557 10000 +563 557 10000 +565 557 -2095.755891357285 +567 557 -341.6542386418284 +558 558 10610.96792057923 +562 558 10000 +563 558 10000 +565 558 -2143.930214906283 +567 558 -349.4836979332111 +559 559 10560.75928855123 +560 559 10000 +561 559 10000 +564 559 10000 +565 559 292.6824031644854 +567 559 -1990.416494871272 +560 560 10551.19105839088 +561 560 10000 +564 560 10000 +565 560 299.3896079982088 +567 560 -2036.169422784597 +561 561 10367.11974683601 +564 561 10000 +565 561 281.3411276964017 +566 561 -281.3411276964017 +567 561 -1913.425584745868 +568 561 1913.425584745868 +562 562 10406.89772817045 +563 562 10000 +565 562 -2014.690368693039 +566 562 2014.690368693039 +567 562 -328.4153326010787 +568 562 328.4153326010787 +563 563 11045.23262092147 +565 563 -2014.690368693039 +567 563 -304.4974531138344 +564 564 10942.89781384813 +565 564 260.8515752332052 +567 564 -1913.425584745869 +565 565 96976.64149504191 +566 565 -20432.38765905155 +567 565 1121.036450542374 +568 565 -319.5002697210542 +566 566 79767.48789447035 +567 566 -319.5002697210542 +568 566 1214.754520416151 +567 567 97286.42302765239 +568 567 -20531.44732380559 +568 568 80134.15750081497 +569 569 2 +570 569 -1 +571 569 -100 +572 569 -100 +573 569 -100 +570 570 2 +571 570 100 +572 570 100 +573 570 100 +571 571 11772.70897734582 +572 571 10000 +573 571 10000 +2246 571 -298.6724045320788 +2247 571 613.8466421868462 +2250 571 2031.122496511315 +2251 571 -4174.465753898343 +572 572 10625.28917877809 +573 572 10000 +2245 572 -278.1785098696451 +2247 572 340.6331267134541 +2251 572 -2498.577953112712 +2256 572 2040.46711045438 +573 573 10679.78374073378 +687 573 -362.1891053411193 +688 573 2605.347847665996 +2247 573 347.3462149300509 +2251 573 -2498.577953112712 +574 574 2 +575 574 -1 +576 574 -100 +577 574 -100 +578 574 -100 +575 575 2 +576 575 100 +577 575 100 +578 575 100 +576 576 11965.20066139174 +577 576 10000 +578 576 10000 +2246 576 2138.616188672213 +2247 576 -4395.39223049269 +2250 576 348.6464914543708 +2251 576 -716.5559149154814 +577 577 10693.11661369613 +578 577 10000 +2245 577 2148.455350362291 +2247 577 -2630.810927634545 +2251 577 -397.6281126066417 +2256 577 324.7235432279118 +578 578 10753.53187150895 +687 578 2743.231436661785 +688 578 422.7908534704156 +2247 578 -2630.810927634546 +2251 578 -405.4644396928583 +579 579 2 +580 579 -1 +592 579 -100 +594 579 -100 +596 579 -100 +580 580 2 +592 580 100 +594 580 100 +596 580 100 +581 581 2 +582 581 -1 +591 581 -100 +593 581 -100 +595 581 -100 +582 582 2 +591 582 100 +593 582 100 +595 582 100 +583 583 2 +584 583 -1 +585 583 -100 +584 584 2 +585 584 100 +585 585 10036.3124903347 +589 585 -594.243134875791 +590 585 91.84955194456457 +685 585 -91.84955194456457 +686 585 594.243134875791 +586 586 2 +587 586 -1 +588 586 -100 +587 587 2 +588 587 100 +588 588 10040.14910279154 +589 588 -107.2178866919357 +590 588 -625.6924387551886 +685 588 625.6924387551886 +686 588 107.2178866919357 +589 589 20587.28009224182 +590 589 335.8632227161679 +591 589 594.243134875791 +592 589 107.2178866919357 +685 589 -335.8632227161679 +686 589 -20587.27656099279 +590 590 20477.81446366827 +591 590 -91.84955194456457 +592 590 625.6924387551886 +685 590 -20477.810548758 +686 590 -335.8632227161679 +591 591 10036.3124903347 +593 591 10000 +595 591 10000 +685 591 91.84955194456457 +686 591 -594.243134875791 +592 592 10040.14910279154 +594 592 10000 +596 592 10000 +685 592 -625.6924387551886 +686 592 -107.2178866919357 +593 593 10578.96488376619 +595 593 10000 +685 593 81.01006996607801 +686 593 -594.243134875791 +971 593 -327.73706505065 +973 593 2404.09002278656 +594 594 10641.75930159559 +596 594 10000 +685 594 -625.6924387551886 +686 594 -94.56473459740967 +971 594 2531.322384832856 +973 594 382.5742723988066 +595 595 10820.4871837037 +673 595 -389.1310356294338 +674 595 2854.468640223157 +685 595 96.77758684924031 +686 595 -709.9114731128739 +596 596 10909.52238647243 +673 596 3005.53652205801 +674 596 454.2407273974864 +685 596 -747.4823264136261 +686 596 -112.9704840300515 +597 597 2 +598 597 -1 +599 597 -100 +600 597 -100 +598 598 2 +599 598 100 +600 598 100 +599 599 10909.52238647243 +600 599 10000 +673 599 -3005.53652205801 +674 599 -454.2407273974864 +685 599 747.4823264136261 +686 599 112.9704840300515 +600 600 10633.94208842724 +671 600 2515.834033530914 +672 600 410.112351680718 +673 600 -2515.834033530914 +674 600 -410.112351680718 +601 601 2 +602 601 -1 +603 601 -100 +604 601 -100 +602 602 2 +603 602 100 +604 602 100 +603 603 10820.4871837037 +604 603 10000 +673 603 389.1310356294338 +674 603 -2854.468640223157 +685 603 -96.77758684924031 +686 603 709.9114731128739 +604 604 10571.91375756487 +671 604 -351.3279072272447 +672 604 2389.380165576147 +673 604 351.3279072272447 +674 604 -2389.380165576147 +605 605 2 +606 605 -1 +607 605 -100 +608 605 -100 +606 606 2 +607 606 100 +608 606 100 +607 607 10753.53187150895 +608 607 10000 +687 607 -2743.231436661785 +688 607 -422.7908534704156 +2247 607 2630.810927634546 +2251 607 405.4644396928583 +608 608 10969.64739813085 +669 608 706.1829741733062 +670 608 106.7285640071801 +687 608 -3106.080398398742 +688 608 -469.4357025529072 +609 609 2 +610 609 -1 +611 609 -100 +612 609 -100 +610 610 2 +611 610 100 +612 610 100 +611 611 10633.94208842724 +612 611 10000 +671 611 -2515.834033530914 +672 611 -410.112351680718 +673 611 2515.834033530914 +674 611 410.112351680718 +612 612 11224.84191522894 +669 612 862.7301257012618 +670 612 132.9720214282311 +671 612 -3480.085808675855 +672 612 -536.3833149412552 +613 613 2 +614 613 -1 +615 613 -100 +616 613 -100 +614 614 2 +615 614 100 +616 614 100 +615 615 10679.78374073378 +616 615 10000 +687 615 362.1891053411193 +688 615 -2605.347847665996 +2247 615 -347.3462149300509 +2251 615 2498.577953112712 +616 616 10874.71994363097 +669 616 -91.43036750866673 +670 616 670.6879584537338 +687 616 402.1480023212342 +688 616 -2949.958859648132 +617 617 2 +618 617 -1 +619 617 -100 +620 617 -100 +618 618 2 +619 618 100 +620 618 100 +619 619 10571.91375756487 +620 619 10000 +671 619 351.3279072272447 +672 619 -2389.380165576147 +673 619 -351.3279072272447 +674 619 2389.380165576147 +620 620 11104.90539555509 +669 620 -113.9121555756674 +670 620 819.3665492721311 +671 620 459.4995169924393 +672 620 -3305.165561371655 +621 621 2 +622 621 -1 +661 621 -100 +662 621 -100 +663 621 -100 +664 621 -100 +666 621 -100 +668 621 -100 +622 622 2 +661 622 100 +662 622 100 +663 622 100 +664 622 100 +666 622 100 +668 622 100 +623 623 2 +624 623 -1 +625 623 -100 +624 624 2 +625 624 100 +625 625 10045.23996137535 +629 625 -665.1312755791272 +630 625 80.93350069709203 +669 625 -72.07609041575705 +670 625 592.338914591291 +626 626 2 +627 626 -1 +628 626 -100 +627 627 2 +628 627 100 +628 628 10050.04652090412 +629 628 -94.47535370188629 +630 628 -700.3322133396476 +669 628 623.6874408615487 +670 628 84.1359150021599 +629 629 20363.96877019493 +630 629 264.4055324414541 +660 629 665.1312755791272 +661 629 94.47535370188629 +669 629 -235.4688342717559 +670 629 -18135.32001949612 +630 630 20296.12774614877 +660 630 -80.93350069709203 +661 630 700.3322133396476 +669 630 -18074.90312927473 +670 630 -235.4688342717567 +631 631 2 +632 631 -1 +633 631 -100 +632 632 2 +633 632 100 +633 633 10036.08653897392 +637 633 -592.3389145912911 +638 633 93.91326979322037 +669 633 -93.91326979322037 +670 633 592.3389145912911 +634 634 2 +635 634 -1 +636 634 -100 +635 635 2 +636 635 100 +636 636 10039.89860238884 +637 636 -109.6269073325029 +638 636 -623.6874408615488 +669 636 623.6874408615488 +670 636 109.6269073325029 +637 637 20617.92076393999 +638 637 344.513526743202 +659 637 592.3389145912911 +662 637 109.6269073325029 +669 637 -344.513526743202 +670 637 -20617.91725528609 +638 638 20502.74382951689 +659 638 -93.91326979322037 +662 638 623.6874408615488 +669 638 -20502.73993965665 +670 638 -344.513526743202 +639 639 2 +640 639 -1 +641 639 -100 +640 640 2 +641 640 100 +641 641 10039.30644265686 +645 641 -618.9219874657859 +646 641 109.6757986238929 +669 641 -104.9651568848183 +670 641 592.338914591291 +642 642 2 +643 642 -1 +644 642 -100 +643 643 2 +644 643 100 +644 644 10043.46834043528 +645 644 -128.0268341080351 +646 644 -651.6773775057916 +669 644 623.6874408615487 +670 644 122.5280043202617 +645 645 20771.91392101873 +646 645 385.0565150501528 +658 645 618.9219874657859 +663 645 128.0268341080351 +669 645 -368.518105351236 +670 645 -19879.74401636598 +646 646 20628.03337037024 +658 646 -109.6757986238929 +663 646 651.6773775057916 +669 646 -19742.04282388405 +670 646 -368.5181053512354 +647 647 2 +648 647 -1 +649 647 -100 +648 648 2 +649 648 100 +649 649 10045.76234474057 +653 649 -669.0466705736251 +654 649 99.98967295947372 +669 649 -88.52562452836411 +670 649 592.3389145912911 +650 650 2 +651 650 -1 +652 650 -100 +651 651 2 +652 651 100 +652 652 10050.62565989623 +653 652 -116.720018756357 +654 652 -704.4548239328843 +669 652 623.6874408615487 +670 652 103.3377972898939 +653 653 20549.05763973787 +654 653 324.7493690781156 +657 653 669.0466705736251 +664 653 116.720018756357 +669 653 -287.5160990323905 +670 653 -18193.0564519697 +654 654 20446.71680290808 +657 654 -99.98967295947372 +664 654 704.4548239328843 +669 654 -18102.44879940157 +670 654 -287.5160990323911 +655 655 2 +656 655 -1 +657 655 -100 +658 655 -100 +659 655 -100 +660 655 -100 +665 655 -100 +667 655 -100 +656 656 2 +657 656 100 +658 656 100 +659 656 100 +660 656 100 +665 656 100 +667 656 100 +657 657 10045.76234474057 +658 657 10000 +659 657 10000 +660 657 10000 +665 657 10000 +667 657 10000 +669 657 88.52562452836411 +670 657 -592.3389145912911 +658 658 10039.30644265686 +659 658 10000 +660 658 10000 +665 658 10000 +667 658 10000 +669 658 104.9651568848183 +670 658 -592.338914591291 +659 659 10036.08653897392 +660 659 10000 +665 659 10000 +667 659 10000 +669 659 93.91326979322037 +670 659 -592.3389145912911 +660 660 10045.23996137535 +665 660 10000 +667 660 10000 +669 660 72.07609041575705 +670 660 -592.338914591291 +661 661 10050.04652090412 +662 661 10000 +663 661 10000 +664 661 10000 +666 661 10000 +668 661 10000 +669 661 -623.6874408615487 +670 661 -84.1359150021599 +662 662 10039.89860238884 +663 662 10000 +664 662 10000 +666 662 10000 +668 662 10000 +669 662 -623.6874408615488 +670 662 -109.6269073325029 +663 663 10043.46834043528 +664 663 10000 +666 663 10000 +668 663 10000 +669 663 -623.6874408615487 +670 663 -122.5280043202617 +664 664 10050.62565989623 +666 664 10000 +668 664 10000 +669 664 -623.6874408615487 +670 664 -103.3377972898939 +665 665 10874.71994363097 +667 665 10000 +669 665 91.43036750866673 +670 665 -670.6879584537338 +687 665 -402.1480023212342 +688 665 2949.958859648132 +666 666 10969.64739813085 +668 666 10000 +669 666 -706.1829741733062 +670 666 -106.7285640071801 +687 666 3106.080398398742 +688 666 469.4357025529072 +667 667 11104.90539555509 +669 667 113.9121555756674 +670 667 -819.3665492721311 +671 667 -459.4995169924393 +672 667 3305.165561371655 +668 668 11224.84191522894 +669 668 -862.7301257012618 +670 668 -132.9720214282311 +671 668 3480.085808675855 +672 668 536.3833149412552 +669 669 73809.24523795437 +670 669 1195.077306527314 +671 669 -5001.306619889601 +672 669 -74.11071699528232 +687 669 -4613.080975054867 +688 669 -67.07856412585058 +670 670 74200.00298037363 +671 670 -74.1107169952826 +672 670 -5023.032472691909 +687 670 -67.07856412585103 +688 670 -4632.363224263227 +671 671 40606.76218622611 +672 671 618.4527399658213 +673 671 -20432.39910323112 +674 671 -319.504497864696 +672 672 40793.4561416423 +673 672 -319.504497864696 +674 672 -20531.46138983748 +673 673 40687.60328542317 +674 673 614.0338364164799 +685 673 -5037.489886304308 +686 673 -73.24997502509284 +674 674 40871.32421726387 +685 674 -73.24997502509312 +686 674 -5058.546185948128 +675 675 2 +676 675 -1 +677 675 -100 +678 675 -100 +679 675 -100 +676 676 2 +677 676 100 +678 676 100 +679 676 100 +677 677 10582.70584091696 +678 677 10000 +679 677 10000 +970 677 -335.3294587090618 +971 677 334.2494656866724 +972 677 2411.857874993809 +973 677 -2404.09002278656 +678 678 10740.38427616497 +679 678 10000 +967 678 -377.4336201087972 +968 678 2714.705210946064 +971 678 370.0319398368799 +973 678 -2661.468353036748 +679 679 10578.96488376619 +685 679 -81.01006996607801 +686 679 594.243134875791 +971 679 327.73706505065 +973 679 -2404.09002278656 +680 680 2 +681 680 -1 +682 680 -100 +683 680 -100 +684 680 -100 +681 681 2 +682 681 100 +683 681 100 +684 681 100 +682 682 10645.90670424679 +683 682 10000 +684 682 10000 +970 682 2539.501337362882 +971 682 -2531.322384832855 +972 682 391.4370309616298 +973 682 -390.1763327105101 +683 683 10820.71650131929 +684 683 10000 +967 683 2858.376351782839 +968 683 440.586091688027 +971 683 -2802.322024013608 +973 683 -431.9459568161298 +684 684 10641.75930159559 +685 684 625.6924387551886 +686 684 94.56473459740967 +971 684 -2531.322384832856 +973 684 -382.5742723988066 +685 685 22975.31640357187 +686 685 372.1794866800658 +971 685 -5035.475459174107 +973 685 -73.22137213231231 +686 686 23095.22148767628 +971 686 -73.22137213231203 +973 686 -5056.523742193963 +687 687 40676.80226335461 +688 687 597.1169564326595 +2247 687 -19551.05671807616 +2251 687 -289.6986271617747 +688 688 40850.15695807557 +2247 688 -289.6986271617735 +2251 688 -19635.9786922918 +689 689 2 +690 689 -1 +691 689 -100 +692 689 -100 +690 690 2 +691 690 100 +692 690 100 +691 691 10667.64965642758 +692 691 10000 +965 691 1919.398843870209 +966 691 290.0804145534674 +967 691 -2581.955957075132 +968 691 -390.2132466001397 +692 692 10820.71650131929 +967 692 -2858.376351782839 +968 692 -440.586091688027 +971 692 2802.322024013608 +973 692 431.9459568161298 +693 693 2 +694 693 -1 +695 693 -100 +696 693 -100 +694 694 2 +695 694 100 +696 694 100 +695 695 10602.31798357117 +696 695 10000 +965 695 -248.5010377156921 +966 695 1822.923716846567 +967 695 334.2810884347755 +968 695 -2452.178589685452 +696 696 10740.38427616497 +967 696 377.4336201087972 +968 696 -2714.705210946064 +971 696 -370.0319398368799 +973 696 2661.468353036748 +697 697 2 +698 697 -1 +712 697 -100 +714 697 -100 +716 697 -100 +698 698 2 +712 698 100 +714 698 100 +716 698 100 +699 699 2 +700 699 -1 +711 699 -100 +713 699 -100 +715 699 -100 +700 700 2 +711 700 100 +713 700 100 +715 700 100 +701 701 2 +702 701 1 +703 701 -1 +704 701 -100 +702 702 2 +703 702 -1 +704 702 -100 +703 703 2 +704 703 100 +704 704 10891.3776661758 +709 704 -2983.919680849001 +710 704 49.06305150903015 +965 704 -29.97339398600312 +966 704 1822.923716846567 +705 705 2 +706 705 1 +707 705 -1 +708 705 -100 +706 706 2 +707 706 -1 +708 706 -100 +707 707 2 +708 707 100 +708 708 10988.11493995527 +709 708 -57.27231745921546 +710 708 -3141.838538109928 +965 708 1919.398843870209 +966 708 34.98856436560124 +709 709 20006.73490688355 +710 709 35.7286830855133 +711 709 2983.919680849001 +712 709 57.27231745921546 +965 709 -21.82721746375755 +966 709 -12222.37632046008 +710 710 20005.50581707363 +711 710 -49.06305150903015 +712 710 3141.838538109928 +965 710 -12221.61954022696 +966 710 -21.82721746375751 +711 711 10891.3776661758 +713 711 10000 +715 711 10000 +965 711 29.97339398600312 +966 711 -1822.923716846567 +712 712 10988.11493995527 +714 712 10000 +716 712 10000 +965 712 -1919.398843870209 +966 712 -34.98856436560124 +713 713 10333.30508774417 +715 713 10000 +963 713 -249.5811460320979 +964 713 1795.057436754147 +965 713 253.455617109577 +966 713 -1822.923716846567 +714 714 10369.40919218503 +716 714 10000 +963 714 1890.057788455734 +964 714 291.3412473896833 +965 714 -1919.398843870208 +966 714 -295.8639978242968 +715 715 10602.31798357117 +965 715 248.5010377156921 +966 715 -1822.923716846567 +967 715 -334.2810884347755 +968 715 2452.178589685452 +716 716 10667.64965642758 +965 716 -1919.398843870209 +966 716 -290.0804145534673 +967 716 2581.955957075132 +968 716 390.2132466001398 +717 717 2 +718 717 -1 +719 717 -100 +720 717 -100 +718 718 2 +719 718 100 +720 718 100 +719 719 10700.84237651494 +720 719 10000 +765 719 -399.8200367205274 +766 719 -2645.453413906469 +963 719 1890.057788455733 +964 719 285.6534801980858 +720 720 11072.06462058449 +761 720 3272.712362222639 +762 720 494.6316621857147 +765 720 -399.8289108630237 +766 720 -2645.453413906469 +721 721 2 +722 721 -1 +723 721 -100 +724 721 -100 +722 722 2 +723 722 100 +724 722 100 +723 723 10632.25781676502 +724 723 10000 +765 723 -2512.484461175867 +766 723 342.5108660904235 +963 723 -244.7086486883082 +964 723 1795.057436754147 +724 724 10967.10027728148 +761 724 -423.732438225442 +762 724 3108.215367830043 +765 724 -2512.484461175866 +766 724 342.5184682362715 +725 725 2 +726 725 -1 +727 725 -100 +728 725 -100 +726 726 2 +727 726 100 +728 726 100 +727 727 10788.13805974417 +728 727 10000 +763 727 -424.0289839352363 +764 727 -2805.598081950039 +2246 727 1280.043860509881 +2250 727 193.4616725954149 +728 728 10998.77368777381 +759 728 3158.755590060448 +760 728 514.9211287310683 +763 728 -457.3515392166789 +764 728 -2805.598081950039 +729 729 2 +730 729 -1 +731 729 -100 +732 729 -100 +730 730 2 +731 730 100 +732 730 100 +731 731 10710.99852218316 +732 731 10000 +763 731 -2664.579745819523 +764 731 363.249765385366 +2246 731 -165.7313764949575 +2250 731 1215.704760570904 +732 732 10900.99185660377 +759 732 -441.1136650793111 +760 732 2999.986427642257 +763 732 -2664.579745819523 +764 732 391.7959517231228 +733 733 2 +734 733 -1 +735 733 -100 +736 733 -100 +734 734 2 +735 734 100 +736 734 100 +735 735 11499.51583034096 +736 735 10000 +757 735 3860.771414087289 +758 735 595.0518238553876 +761 735 -3860.252489225892 +762 735 -594.9718431592781 +736 736 11072.06462058449 +761 736 -3272.712362222639 +762 736 -494.6316621857147 +765 736 399.8289108630237 +766 736 2645.453413906469 +737 737 2 +738 737 -1 +739 737 -100 +740 737 -100 +738 738 2 +739 738 100 +740 738 100 +739 739 10998.77368777381 +740 739 10000 +759 739 -3158.755590060448 +760 739 -514.9211287310683 +763 739 457.3515392166789 +764 739 2805.598081950039 +740 740 11072.35260144529 +757 740 3273.152305416431 +758 740 533.6066498695827 +759 740 -3158.755590060448 +760 740 -514.9570905636574 +741 741 2 +742 741 -1 +743 741 -100 +744 741 -100 +742 742 2 +743 742 100 +744 742 100 +743 743 11072.35260144529 +744 743 10000 +757 743 -3273.152305416431 +758 743 -533.6066498695827 +759 743 3158.755590060448 +760 743 514.9570905636574 +744 744 11499.51583034096 +757 744 -3860.771414087289 +758 744 -595.0518238553876 +761 744 3860.252489225892 +762 744 594.9718431592781 +745 745 2 +746 745 -1 +747 745 -100 +748 745 -100 +746 746 2 +747 746 100 +748 746 100 +747 747 11352.66126429707 +748 747 10000 +757 747 -509.7586334820396 +758 747 3666.716690248714 +761 747 509.6901170121806 +762 747 -3666.223848211154 +748 748 10967.10027728148 +761 748 423.7324382254425 +762 748 -3108.215367830045 +765 748 2512.484461175869 +766 748 -342.5184682362719 +749 749 2 +750 749 -1 +751 749 -100 +752 749 -100 +750 750 2 +751 750 100 +752 750 100 +751 751 10900.99185660377 +752 751 10000 +759 751 441.1136650793111 +760 751 -2999.986427642257 +763 751 2664.579745819523 +764 751 -391.7959517231228 +752 752 10967.36003601511 +757 752 -457.1208519151651 +758 752 3108.633198071315 +759 752 441.1444722357691 +760 752 -2999.986427642256 +753 753 2 +754 753 -1 +755 753 -100 +756 753 -100 +754 754 2 +755 754 100 +756 754 100 +755 755 10967.36003601511 +756 755 10000 +757 755 457.1208519151651 +758 755 -3108.633198071315 +759 755 -441.1444722357691 +760 755 2999.986427642256 +756 756 11352.66126429707 +757 756 509.7586334820396 +758 756 -3666.716690248714 +761 756 -509.6901170121806 +762 756 3666.223848211154 +757 757 40710.8281585838 +758 757 620.0152242978285 +759 757 -19718.3521350612 +760 757 -308.3620632816714 +761 757 -20275.52830567685 +762 757 -300.4452082351472 +758 758 40897.98314867584 +759 758 -308.3620632816703 +760 758 -19813.96723255667 +761 758 -300.4452082351467 +762 758 -20363.60408485719 +759 759 39461.70197536968 +760 759 617.0921188611172 +763 759 -283.7855227656178 +764 759 -18148.00780947998 +760 760 39653.02957848569 +763 760 -18235.99621257056 +764 760 -283.7855227656172 +761 761 40644.60903209066 +762 761 596.6356112976968 +765 761 -239.4542070436666 +766 761 -16467.1912148233 +762 762 40817.81838317574 +765 762 -16536.02585680276 +766 762 -239.4542070436664 +763 763 36654.07935666286 +764 763 548.2855909085149 +2246 763 -135.1529709855138 +2250 763 -9333.361310246773 +2254 763 424.0289839352363 +2255 763 2664.579745819523 +764 764 36490.78166904201 +2246 764 -9294.509953053632 +2250 764 -135.1529709855148 +2254 764 2805.598081950039 +2255 764 -363.249765385366 +765 765 33823.57368114572 +766 765 489.7838274184535 +799 765 399.8200367205274 +800 765 2512.484461175867 +963 765 -211.6389100545293 +964 765 -14615.49053191324 +766 766 33682.78684773001 +799 766 2645.453413906469 +800 766 -342.5108660904235 +963 766 -14554.65315742795 +964 766 -211.6389100545296 +767 767 2 +768 767 1 +769 767 -1 +770 767 -100 +768 768 2 +769 768 -1 +770 768 -100 +769 769 2 +770 769 100 +770 770 13306.45068003084 +775 770 -5749.304897142644 +776 770 201.544227477036 +963 770 -62.92647038902498 +964 770 1795.057436754147 +771 771 2 +772 771 1 +773 771 -1 +774 771 -100 +772 772 2 +773 772 -1 +774 772 -100 +773 773 2 +774 773 100 +774 774 13665.57950765751 +775 774 -235.2667562068095 +776 774 -6053.577048041518 +963 774 1890.057788455734 +964 774 73.45537380700516 +775 775 20030.53889309834 +776 775 76.17362173985384 +790 775 5749.304897142644 +795 775 235.2667562068095 +963 775 -23.78305354036436 +964 775 -6253.864614613914 +776 776 20024.94409020812 +790 776 -201.544227477036 +795 776 6053.577048041518 +963 776 -6252.10658326867 +964 776 -23.78305354036423 +777 777 2 +778 777 1 +779 777 -1 +780 777 -100 +778 778 2 +779 778 -1 +780 778 -100 +779 779 2 +780 779 100 +780 780 11269.75147582404 +785 780 -3561.953783843976 +786 780 136.999705189486 +963 780 -69.04141787267071 +964 780 1795.057436754146 +781 781 2 +782 781 1 +783 781 -1 +784 781 -100 +782 782 2 +783 782 -1 +784 782 -100 +783 783 2 +784 783 100 +784 784 11407.59810376346 +785 784 -159.9225968647108 +786 784 -3750.464109631575 +963 784 1890.057788455733 +964 784 80.59347881185451 +785 785 20036.49154380386 +786 785 83.57587541304819 +789 785 3561.953783843976 +796 785 159.9225968647108 +963 785 -42.11831646269378 +964 785 -10097.38687995423 +786 786 20029.72709904555 +789 786 -136.999705189486 +796 786 3750.464109631575 +963 786 -10093.97097063346 +964 786 -42.11831646269378 +787 787 2 +788 787 -1 +789 787 -100 +790 787 -100 +791 787 -100 +798 787 -100 +800 787 -100 +788 788 2 +789 788 100 +790 788 100 +791 788 100 +798 788 100 +800 788 100 +789 789 11269.75147582404 +790 789 10000 +791 789 10000 +798 789 10000 +800 789 10000 +963 789 69.04141787267071 +964 789 -1795.057436754146 +790 790 13306.45068003084 +791 790 10000 +798 790 10000 +800 790 10000 +963 790 62.92647038902498 +964 790 -1795.057436754147 +791 791 10333.30508774417 +798 791 10000 +800 791 10000 +963 791 249.5811460320979 +964 791 -1795.057436754147 +965 791 -253.455617109577 +966 791 1822.923716846567 +792 792 2 +793 792 -1 +794 792 -100 +795 792 -100 +796 792 -100 +797 792 -100 +799 792 -100 +793 793 2 +794 793 100 +795 793 100 +796 793 100 +797 793 100 +799 793 100 +794 794 10369.40919218503 +795 794 10000 +796 794 10000 +797 794 10000 +799 794 10000 +963 794 -1890.057788455734 +964 794 -291.3412473896833 +965 794 1919.398843870208 +966 794 295.8639978242968 +795 795 13665.57950765751 +796 795 10000 +797 795 10000 +799 795 10000 +963 795 -1890.057788455734 +964 795 -73.45537380700516 +796 796 11407.59810376346 +797 796 10000 +799 796 10000 +963 796 -1890.057788455733 +964 796 -80.59347881185451 +797 797 10358.23184437022 +799 797 10000 +961 797 1640.438302421554 +962 797 267.4495773236156 +963 797 -1890.057788455734 +964 797 -308.1463995893661 +798 798 10323.22312012464 +800 798 10000 +961 798 -229.1140461993913 +962 798 1557.984624747427 +963 798 263.9774911525356 +964 798 -1795.057436754147 +799 799 10700.84237651494 +963 799 -1890.057788455733 +964 799 -285.6534801980858 +800 800 10632.25781676502 +963 800 244.7086486883082 +964 800 -1795.057436754147 +801 801 2 +802 801 -1 +803 801 -100 +804 801 -100 +805 801 -100 +802 802 2 +803 802 100 +804 802 100 +805 802 100 +803 803 10306.32972946844 +804 803 10000 +805 803 10000 +969 803 -13.28499172755564 +974 803 604.4518276944891 +975 803 38.40467901719981 +976 803 -1747.368677378757 +804 804 11733.94943914109 +805 804 10000 +959 804 -357.3939110471462 +960 804 2688.258354117874 +975 804 545.8644742395917 +976 804 -4105.903004310461 +805 805 11031.22317829637 +975 805 422.6302819101712 +976 805 -3178.878247808453 +2257 805 -224.0754384522791 +2261 805 1685.417651439115 +806 806 2 +807 806 -1 +808 806 -100 +809 806 -100 +810 806 -100 +807 807 2 +808 807 100 +809 807 100 +810 807 100 +808 808 10339.50302969222 +809 808 10000 +810 808 10000 +969 808 636.4414092209038 +974 808 15.50784633775948 +975 808 -1839.845182867898 +976 808 -44.83057822417572 +809 809 11922.2299977272 +810 809 10000 +959 809 2830.52984018671 +960 809 417.1933237319219 +975 809 -4323.200914380355 +976 809 -637.1989205074951 +810 810 11143.15431205994 +975 810 -3347.114954542695 +976 810 -493.3450922632092 +2257 810 1774.615504595448 +2261 810 261.5679060135474 +811 811 2 +812 811 -1 +813 811 -100 +814 811 -100 +815 811 -100 +812 812 2 +813 812 100 +814 812 100 +815 812 100 +813 813 10323.22312012464 +814 813 10000 +815 813 10000 +961 813 229.1140461993913 +962 813 -1557.984624747427 +963 813 -263.9774911525356 +964 813 1795.057436754147 +814 814 10382.68046237549 +815 814 10000 +955 814 -270.9648854022728 +957 814 1949.027432807942 +961 814 250.9822628467502 +962 814 -1805.29412403496 +815 815 10243.73160909494 +956 815 -208.3735295588599 +958 815 1498.683170165083 +961 815 216.618670123117 +962 815 -1557.984624747427 +816 816 2 +817 816 -1 +818 816 -100 +819 816 -100 +820 816 -100 +817 817 2 +818 817 100 +819 817 100 +820 817 100 +818 818 10358.23184437022 +819 818 10000 +820 818 10000 +961 818 -1640.438302421554 +962 818 -267.4495773236156 +963 818 1890.057788455734 +964 818 308.1463995893661 +819 819 10424.14907596243 +820 819 10000 +955 819 2052.176383811761 +957 819 316.3029297964202 +961 819 -1900.836234942701 +962 819 -292.9768001027354 +820 820 10270.10378240517 +956 820 1577.99841954918 +958 820 243.2387421478617 +961 820 -1640.438302421554 +962 820 -252.8634657100533 +821 821 2 +822 821 -1 +823 821 -100 +824 821 -100 +822 822 2 +823 822 100 +824 822 100 +823 823 10146.10661029919 +824 823 10000 +829 823 -177.5629260148132 +830 823 -1204.602051713293 +959 823 1204.602051713293 +960 823 177.5629260148132 +824 824 10559.50095527136 +829 824 -40.998760928674 +830 824 -1600.062953154436 +955 824 2352.466002382233 +957 824 60.27774784383344 +825 825 2 +826 825 -1 +827 825 -100 +828 825 -100 +826 826 2 +827 826 100 +828 826 100 +827 827 10131.88616106927 +828 827 10000 +829 827 -1144.054898461055 +830 827 152.1115151549907 +959 827 -152.1115151549907 +960 827 1144.054898461055 +828 828 10504.76785618705 +829 828 -1519.638669715702 +830 828 35.1221045085592 +955 828 -51.63769127059246 +957 828 2234.223534370218 +829 829 29608.70848744992 +830 829 311.9333249246575 +899 829 177.5629260148132 +900 829 1144.054898461055 +953 829 1519.638669715702 +954 829 40.998760928674 +955 829 -33.84747544303339 +957 829 -13488.12379420268 +959 829 -288.9114867942194 +960 829 -20434.55763496832 +830 830 29526.58811934004 +899 830 1204.602051713293 +900 830 -152.1115151549907 +953 830 -35.1221045085592 +954 830 1600.062953154436 +955 830 -13486.4742253264 +957 830 -33.84747544303313 +959 830 -20353.55782236597 +960 830 -288.9114867942194 +831 831 2 +832 831 -1 +890 831 -100 +891 831 -100 +892 831 -100 +893 831 -100 +894 831 -100 +896 831 -100 +898 831 -100 +899 831 -100 +832 832 2 +890 832 100 +891 832 100 +892 832 100 +893 832 100 +894 832 100 +896 832 100 +898 832 100 +899 832 100 +833 833 2 +834 833 1 +835 833 -1 +836 833 -100 +834 834 2 +835 834 -1 +836 834 -100 +835 835 2 +836 835 100 +836 836 16944.9313542264 +841 836 -8333.025473515845 +842 836 286.8240749290477 +959 836 -39.37855331920505 +960 836 1144.054898461055 +837 837 2 +838 837 1 +839 837 -1 +840 837 -100 +838 838 2 +839 838 -1 +840 838 -100 +839 839 2 +840 839 100 +840 840 17699.37187316348 +841 840 -334.8156906069893 +842 840 -8774.03662698275 +959 840 1204.602051713293 +960 840 45.96740189238051 +841 841 20029.81783599414 +842 841 74.79326187543877 +889 841 8333.025473515845 +890 841 334.8156906069893 +959 841 -10.26849106515135 +960 841 -2749.831601920651 +842 842 20024.4647862766 +889 842 -286.8240749290477 +890 842 8774.03662698275 +959 842 -2749.0863150008 +960 842 -10.26849106515137 +843 843 2 +844 843 1 +845 843 -1 +846 843 -100 +844 844 2 +845 844 -1 +846 844 -100 +845 845 2 +846 845 100 +846 846 11572.29446418337 +851 846 -3963.95568111371 +852 846 66.16089915680449 +959 846 -19.09499168408053 +960 846 1144.054898461055 +847 847 2 +848 847 1 +849 847 -1 +850 847 -100 +848 848 2 +849 848 -1 +850 848 -100 +849 849 2 +850 849 100 +850 850 11743.01161999741 +851 850 -77.23098958078953 +852 850 -4173.741271326488 +959 850 1204.602051713293 +960 850 22.2899797704278 +851 851 20007.0051041478 +852 851 36.26788170606132 +888 851 3963.95568111371 +891 851 77.23098958078953 +959 851 -10.4674348203025 +960 851 -5774.265473571564 +852 852 20005.74574065 +888 852 -66.16089915680449 +891 852 4173.741271326488 +959 852 -5773.897075921358 +960 852 -10.4674348203025 +853 853 2 +854 853 1 +855 853 -1 +856 853 -100 +854 854 2 +855 854 -1 +856 854 -100 +855 855 2 +856 855 100 +856 856 12049.40656134229 +861 856 -4525.932568368963 +862 856 127.8335752660452 +959 856 -32.31347921376862 +960 856 1144.054898461055 +857 857 2 +858 857 1 +859 857 -1 +860 857 -100 +858 858 2 +859 858 -1 +860 858 -100 +859 859 2 +860 859 100 +860 860 12271.96073567072 +861 860 -149.2227833247581 +862 860 -4765.459826365892 +959 860 1204.602051713293 +960 860 37.72019437890237 +861 861 20019.81542987806 +862 861 61.37428394971643 +887 861 4525.932568368963 +892 861 149.2227833247581 +959 861 -15.51405133230189 +960 861 -5060.511444636048 +862 862 20016.18234956055 +887 862 -127.8335752660452 +892 862 4765.459826365892 +959 862 -5059.587457216897 +960 862 -15.51405133230186 +863 863 2 +864 863 1 +865 863 -1 +866 863 -100 +864 864 2 +865 864 -1 +866 864 -100 +865 865 2 +866 865 100 +866 866 11142.90943846044 +871 866 -3379.215054506657 +872 866 77.63083918951685 +959 866 -26.28241778455719 +960 866 1144.054898461055 +867 867 2 +868 867 1 +869 867 -1 +870 867 -100 +868 868 2 +869 868 -1 +870 868 -100 +869 869 2 +870 869 100 +870 870 11266.97500094716 +871 870 -90.62008843597918 +872 870 -3558.054244874803 +959 870 1204.602051713293 +960 870 30.68001130496021 +871 871 20013.08759155918 +872 871 49.91924767133025 +886 871 3379.215054506657 +893 871 90.62008843597918 +959 871 -16.9004810006724 +960 871 -6775.520315349515 +872 872 20010.68180790521 +886 872 -77.63083918951685 +893 872 3558.054244874803 +959 872 -6774.701621566847 +960 872 -16.90048100067236 +873 873 2 +874 873 1 +875 873 -1 +876 873 -100 +874 874 2 +875 874 -1 +876 874 -100 +875 875 2 +876 875 100 +876 876 11108.50670238332 +881 876 -3327.922328395487 +882 876 78.83026251416132 +959 876 -27.09983559615683 +960 876 1144.054898461055 +877 877 2 +878 877 1 +879 877 -1 +880 877 -100 +878 878 2 +879 878 -1 +880 878 -100 +879 879 2 +880 879 100 +880 880 11228.83449490446 +881 880 -92.02020015557699 +882 880 -3504.046938761609 +959 880 1204.602051713293 +960 880 31.63420006743729 +881 881 20013.90368004601 +882 881 51.47180202621026 +885 881 3327.922328395487 +894 881 92.02020015557699 +959 881 -17.69469399518553 +960 881 -6880.232042157367 +882 882 20011.34476571773 +885 882 -78.83026251416132 +894 882 3504.046938761609 +959 882 -6879.348216051521 +960 882 -17.69469399518553 +883 883 2 +884 883 -1 +885 883 -100 +886 883 -100 +887 883 -100 +888 883 -100 +889 883 -100 +895 883 -100 +897 883 -100 +900 883 -100 +884 884 2 +885 884 100 +886 884 100 +887 884 100 +888 884 100 +889 884 100 +895 884 100 +897 884 100 +900 884 100 +885 885 11108.50670238332 +886 885 10000 +887 885 10000 +888 885 10000 +889 885 10000 +895 885 10000 +897 885 10000 +900 885 10000 +959 885 27.09983559615683 +960 885 -1144.054898461055 +886 886 11142.90943846044 +887 886 10000 +888 886 10000 +889 886 10000 +895 886 10000 +897 886 10000 +900 886 10000 +959 886 26.28241778455719 +960 886 -1144.054898461055 +887 887 12049.40656134229 +888 887 10000 +889 887 10000 +895 887 10000 +897 887 10000 +900 887 10000 +959 887 32.31347921376862 +960 887 -1144.054898461055 +888 888 11572.29446418337 +889 888 10000 +895 888 10000 +897 888 10000 +900 888 10000 +959 888 19.09499168408053 +960 888 -1144.054898461055 +889 889 16944.9313542264 +895 889 10000 +897 889 10000 +900 889 10000 +959 889 39.37855331920505 +960 889 -1144.054898461055 +890 890 17699.37187316348 +891 890 10000 +892 890 10000 +893 890 10000 +894 890 10000 +896 890 10000 +898 890 10000 +899 890 10000 +959 890 -1204.602051713293 +960 890 -45.96740189238051 +891 891 11743.01161999741 +892 891 10000 +893 891 10000 +894 891 10000 +896 891 10000 +898 891 10000 +899 891 10000 +959 891 -1204.602051713293 +960 891 -22.2899797704278 +892 892 12271.96073567072 +893 892 10000 +894 892 10000 +896 892 10000 +898 892 10000 +899 892 10000 +959 892 -1204.602051713293 +960 892 -37.72019437890237 +893 893 11266.97500094716 +894 893 10000 +896 893 10000 +898 893 10000 +899 893 10000 +959 893 -1204.602051713293 +960 893 -30.68001130496021 +894 894 11228.83449490446 +896 894 10000 +898 894 10000 +899 894 10000 +959 894 -1204.602051713293 +960 894 -31.63420006743729 +895 895 10225.60512445361 +897 895 10000 +900 895 10000 +956 895 -28.95768496872843 +958 895 1498.683170165083 +959 895 22.10552703605563 +960 895 -1144.054898461055 +896 896 10250.00790120997 +898 896 10000 +899 896 10000 +956 896 1577.99841954918 +958 896 33.8029061667255 +959 896 -1204.602051713293 +960 896 -25.8042401170101 +897 897 11733.94943914109 +900 897 10000 +959 897 357.3939110471462 +960 897 -2688.258354117874 +975 897 -545.8644742395917 +976 897 4105.903004310461 +898 898 11922.2299977272 +899 898 10000 +959 898 -2830.52984018671 +960 898 -417.1933237319219 +975 898 4323.200914380355 +976 898 637.1989205074951 +899 899 10146.10661029919 +959 899 -1204.602051713293 +960 899 -177.5629260148132 +900 900 10131.88616106927 +959 900 152.1115151549907 +960 900 -1144.054898461055 +901 901 2 +902 901 -1 +903 901 -100 +904 901 -100 +905 901 -100 +953 901 -100 +902 902 2 +903 902 100 +904 902 100 +905 902 100 +953 902 100 +903 903 10283.92172772082 +904 903 10000 +905 903 10000 +951 903 -247.3593346483207 +952 903 1682.027727835733 +953 903 10000 +955 903 247.3593346483207 +957 903 -1682.027727835733 +904 904 10382.68046237549 +905 904 10000 +953 904 10000 +955 904 270.9648854022728 +957 904 -1949.027432807942 +961 904 -250.9822628467502 +962 904 1805.29412403496 +905 905 10583.73559621851 +953 905 10000 +955 905 352.9612752601384 +956 905 -314.487754392141 +957 905 -2400.187977232533 +958 905 2138.562442926783 +906 906 2 +907 906 -1 +908 906 -100 +909 906 -100 +910 906 -100 +954 906 -100 +907 907 2 +908 907 100 +909 907 100 +910 907 100 +954 907 100 +908 908 10314.66045542301 +909 908 10000 +910 908 10000 +951 908 1771.046175070021 +952 908 288.7476808871438 +954 908 10000 +955 908 -1771.046175070021 +957 908 -288.7476808871438 +909 909 10424.14907596243 +910 909 10000 +954 909 10000 +955 909 -2052.176383811761 +957 909 -316.3029297964202 +961 909 1900.836234942701 +962 909 292.9768001027354 +910 910 10647.04833984847 +954 910 10000 +955 910 -2527.213830176446 +956 910 2251.742210913046 +957 910 -412.0190160570749 +958 910 367.1080773128724 +911 911 2 +912 911 -1 +913 911 -100 +914 911 -100 +915 911 -100 +916 911 -100 +912 912 2 +913 912 100 +914 912 100 +915 912 100 +916 912 100 +913 913 10270.10378240517 +914 913 10000 +915 913 10000 +916 913 10000 +956 913 -1577.99841954918 +958 913 -243.2387421478617 +961 913 1640.438302421554 +962 913 252.8634657100533 +914 914 11398.71041191745 +915 914 10000 +916 914 10000 +949 914 3727.069911067567 +950 914 574.4717016147505 +956 914 -1910.963298415696 +958 914 -294.5462156489983 +915 915 10647.04833984847 +916 915 10000 +955 915 2527.213830176446 +956 915 -2251.742210913046 +957 915 412.0190160570749 +958 915 -367.1080773128724 +916 916 10250.00790120997 +956 916 -1577.99841954918 +958 916 -33.8029061667255 +959 916 1204.602051713293 +960 916 25.8042401170101 +917 917 2 +918 917 -1 +919 917 -100 +920 917 -100 +921 917 -100 +922 917 -100 +918 918 2 +919 918 100 +920 918 100 +921 918 100 +922 918 100 +919 919 10243.73160909494 +920 919 10000 +921 919 10000 +922 919 10000 +956 919 208.3735295588599 +958 919 -1498.683170165083 +961 919 -216.618670123117 +962 919 1557.984624747427 +920 920 11261.73477786595 +921 920 10000 +922 920 10000 +949 920 -492.1284127689779 +950 920 3539.735452549706 +956 920 252.3267224251532 +958 920 -1814.912168896189 +921 921 10583.73559621851 +922 921 10000 +955 921 -352.9612752601384 +956 921 314.487754392141 +957 921 2400.187977232533 +958 921 -2138.562442926783 +922 922 10225.60512445361 +956 922 28.95768496872843 +958 922 -1498.683170165083 +959 922 -22.10552703605563 +960 922 1144.054898461055 +923 923 2 +924 923 -1 +925 923 -100 +926 923 -100 +924 924 2 +925 924 100 +926 924 100 +925 925 10948.20397915976 +926 925 10000 +947 925 -2747.097557419036 +948 925 -415.2037945518991 +949 925 3077.667914443929 +950 925 465.1670971774035 +926 926 10755.65449899776 +947 926 -2747.097557419036 +948 926 -423.3993443241229 +951 926 1771.046175070021 +952 926 272.9643828146038 +927 927 2 +928 927 -1 +929 927 -100 +930 927 -100 +928 928 2 +929 928 100 +930 928 100 +929 929 10755.65449899776 +930 929 10000 +947 929 2747.097557419036 +948 929 423.3993443241229 +951 929 -1771.046175070021 +952 929 -272.9643828146038 +930 930 10314.66045542301 +951 930 -1771.046175070021 +952 930 -288.7476808871438 +955 930 1771.046175070021 +957 930 288.7476808871438 +931 931 2 +932 931 -1 +933 931 -100 +934 931 -100 +932 932 2 +933 932 100 +934 932 100 +933 933 11398.71041191745 +934 933 10000 +949 933 -3727.069911067567 +950 933 -574.4717016147505 +956 933 1910.963298415696 +958 933 294.5462156489983 +934 934 10948.20397915976 +947 934 2747.097557419036 +948 934 415.2037945518991 +949 934 -3077.667914443929 +950 934 -465.1670971774035 +935 935 2 +936 935 -1 +937 935 -100 +938 935 -100 +936 936 2 +937 936 100 +938 936 100 +937 937 10855.37797992898 +938 937 10000 +947 937 355.6895558373594 +948 937 -2609.019644824306 +949 937 -398.4912478069925 +950 937 2922.974478042837 +938 938 10681.69835070791 +947 938 362.710376688651 +948 938 -2609.019644824307 +951 938 -233.8383737256751 +952 938 1682.027727835733 +939 939 2 +940 939 -1 +941 939 -100 +942 939 -100 +940 940 2 +941 940 100 +942 940 100 +941 941 10681.69835070791 +942 941 10000 +947 941 -362.710376688651 +948 941 2609.019644824307 +951 941 233.8383737256751 +952 941 -1682.027727835733 +942 942 10283.92172772082 +951 942 247.3593346483207 +952 942 -1682.027727835733 +955 942 -247.3593346483207 +957 942 1682.027727835733 +943 943 2 +944 943 -1 +945 943 -100 +946 943 -100 +944 944 2 +945 944 100 +946 944 100 +945 945 11261.73477786595 +946 945 10000 +949 945 492.1284127689779 +950 945 -3539.735452549706 +956 945 -252.3267224251532 +958 945 1814.912168896189 +946 946 10855.37797992898 +947 946 -355.6895558373594 +948 946 2609.019644824306 +949 946 398.4912478069925 +950 946 -2922.974478042837 +947 947 36617.13413578153 +948 947 538.1066836443333 +949 947 -18183.60770514494 +950 947 -264.4208346194055 +951 947 -13143.1462556911 +952 947 -194.7547302490793 +948 948 36773.53226689971 +949 948 -264.4208346194053 +950 948 -18259.62167480716 +951 948 -194.7547302490798 +952 948 -13200.23817239175 +949 949 40632.88553964476 +950 949 596.4842820934024 +956 949 -10388.36432829534 +958 949 -153.9429840845333 +950 950 40806.05840521182 +956 950 -153.9429840845347 +958 950 -10433.49497037058 +951 951 28905.91534973537 +952 951 445.1121853654075 +955 951 -20432.53405053455 +957 951 -319.554351005682 +952 952 29041.81247911674 +955 952 -319.554351005682 +957 952 -20531.62725345955 +953 953 10504.76785618705 +955 953 51.63769127059246 +957 953 -2234.223534370218 +954 954 10559.50095527136 +955 954 -2352.466002382233 +957 954 -60.27774784383344 +955 955 80750.23448884046 +956 955 -17997.71250270942 +957 955 985.8820040611644 +958 955 -281.4667054147985 +961 955 -18793.60096033966 +962 955 -278.4906601973908 +956 956 60234.00988222717 +957 956 -281.466705414799 +958 956 651.2630104823841 +959 956 -15273.16842061432 +960 956 -32.05092923746994 +961 956 -19610.65509532327 +962 956 -290.6223181525308 +957 957 81037.84835879369 +958 957 -18084.99211555214 +961 957 -278.4906601973902 +962 957 -18875.24221573629 +958 958 60418.5856275859 +959 958 -32.05092923746979 +960 958 -15274.47428660553 +961 958 -290.6223181525319 +962 958 -19695.86020856085 +959 959 48481.87328187948 +960 959 454.0063164885267 +975 959 -12963.81352874651 +976 959 -184.0007210092559 +960 960 48598.66415995986 +975 960 -184.0007210092559 +976 960 -13015.39570336888 +961 961 53186.17880311279 +962 961 800.7925611554405 +963 961 -17734.00268112267 +964 961 -277.3466648071177 +962 962 53425.01821502493 +963 962 -277.3466648071177 +964 962 -17820.00605185852 +963 963 57638.24484906404 +964 963 792.3634499545901 +965 963 -20074.98916486834 +966 963 -297.504035574489 +964 964 57868.95697356133 +965 964 -297.504035574489 +966 964 -20162.21201303983 +965 965 39110.99778644104 +966 965 479.1545655475382 +967 965 -15144.07960794616 +968 965 -220.2042477775687 +966 966 39247.08839167495 +967 966 -220.2042477775684 +968 966 -15207.37751950682 +967 967 40691.55736658395 +968 967 597.3386321337742 +971 967 -19921.34466143878 +973 967 -295.2169304810742 +968 968 40864.97899041246 +971 968 -295.2169304810742 +973 968 -20007.89387857075 +969 969 33661.53569597693 +974 969 367.8501379559729 +975 969 -6921.765518086996 +976 969 -16.52061931160177 +970 970 40695.00105584542 +971 970 -20320.94825363114 +972 970 603.0638166942126 +973 970 -301.1401007188552 +971 971 60157.92993671892 +972 971 -301.1401007188547 +973 971 885.824632683937 +972 972 40871.79603487347 +973 972 -20409.23440079164 +973 973 60415.93104350167 +974 974 34914.35532125719 +975 974 -16.52061931160177 +976 974 -6922.531167395309 +975 975 59774.31466466127 +976 975 612.1605446095085 +2257 975 -10584.96584278146 +2261 975 -150.240290563409 +976 976 59934.74935802649 +2257 976 -150.240290563409 +2261 976 -10627.08475140197 +977 977 2 +978 977 -1 +979 977 -100 +980 977 -100 +981 977 -100 +978 978 2 +979 978 100 +980 978 100 +981 978 100 +979 979 10500.3927970558 +980 979 10000 +981 979 10000 +1287 979 -39.84269761579347 +1288 979 1832.493524394854 +2270 979 48.54029179981141 +2275 979 -2232.523792769788 +980 980 10640.32901643113 +981 980 10000 +2259 980 -319.3959686640316 +2262 980 2402.568569791306 +2270 980 335.1501052830056 +2275 980 -2521.074741435444 +981 981 10442.45567672079 +2233 981 -133.3645441600682 +2239 981 1003.121564023191 +2270 981 279.3382263590431 +2275 981 -2101.084664454975 +982 982 2 +983 982 -1 +984 982 -100 +985 982 -100 +986 982 -100 +983 983 2 +984 983 100 +985 983 100 +986 983 100 +984 984 10554.65055706878 +985 984 10000 +986 984 10000 +1287 984 1929.475117152787 +1288 984 46.50920715486409 +2270 984 -2350.67630485809 +2275 984 -56.66208921004608 +985 985 10709.79049154123 +986 985 10000 +2259 985 2529.720411534081 +2262 985 372.8375376153127 +2270 985 -2654.49832009008 +2275 985 -391.2276679880978 +986 986 10490.41871564545 +2233 986 1056.210061043079 +2239 986 155.6791980118313 +2270 986 -2212.280984968797 +2275 986 -326.0773043353159 +987 987 2 +988 987 -1 +989 987 -100 +990 987 -100 +988 988 2 +989 988 100 +990 988 100 +989 989 10330.74124868393 +990 989 10000 +1285 989 1815.877883239753 +1286 989 279.8996218287731 +1287 989 -1815.877883239753 +1288 989 -279.8996218287731 +990 990 10554.65055706878 +1287 990 -1929.475117152787 +1288 990 -46.50920715486409 +2270 990 2350.67630485809 +2275 990 56.66208921004608 +991 991 2 +992 991 -1 +993 991 -100 +994 991 -100 +992 992 2 +993 992 100 +994 992 100 +993 993 10298.42660308474 +994 993 10000 +1285 993 -239.7795335053877 +1286 993 1724.606050913475 +1287 993 239.7795335053877 +1288 993 -1724.606050913475 +994 994 10500.3927970558 +1287 994 39.84269761579347 +1288 994 -1832.493524394854 +2270 994 -48.54029179981141 +2275 994 2232.523792769788 +995 995 2 +996 995 -1 +997 995 -100 +998 995 -100 +1012 995 -100 +1085 995 -100 +996 996 2 +997 996 100 +998 996 100 +1012 996 100 +1085 996 100 +997 997 10503.8617620784 +998 997 10000 +1012 997 10000 +1085 997 10000 +1733 997 -949.453623156552 +1735 997 2228.988234879982 +1736 997 -154.7845684750019 +1737 997 363.3805524115273 +998 998 10947.81739193094 +1012 998 10000 +1085 998 10000 +1733 998 -1355.556741880533 +1734 998 3041.041353882654 +1736 998 -220.9737004252491 +1738 998 495.7300128812185 +999 999 2 +1000 999 -1 +1001 999 -100 +1000 1000 2 +1001 1000 100 +1001 1001 10039.52159795949 +1005 1001 -620.657699215003 +1006 1001 118.8102907655766 +1733 1001 -118.8102907655766 +1736 1001 620.657699215003 +1002 1002 2 +1003 1002 -1 +1004 1002 -100 +1003 1003 2 +1004 1003 100 +1004 1004 10043.70687181551 +1005 1004 -138.6897162092621 +1006 1004 -653.5049488374667 +1733 1004 653.5049488374667 +1736 1004 138.6897162092621 +1005 1005 20900.78803814749 +1006 1005 415.9599271729592 +1009 1005 620.657699215003 +1012 1005 138.6897162092621 +1733 1005 -415.9599271729592 +1736 1005 -20900.78418598769 +1006 1006 20732.88587163463 +1009 1006 -118.8102907655766 +1012 1006 653.5049488374667 +1733 1006 -20732.88160094744 +1736 1006 -415.9599271729592 +1007 1007 2 +1008 1007 -1 +1009 1007 -100 +1010 1007 -100 +1011 1007 -100 +1086 1007 -100 +1008 1008 2 +1009 1008 100 +1010 1008 100 +1011 1008 100 +1086 1008 100 +1009 1009 10039.52159795949 +1010 1009 10000 +1011 1009 10000 +1086 1009 10000 +1733 1009 118.8102907655766 +1736 1009 -620.657699215003 +1010 1010 10454.5813044717 +1011 1010 10000 +1086 1010 10000 +1733 1010 132.5981485086573 +1735 1010 -311.2945232754481 +1736 1010 -901.7310462728502 +1737 1010 2116.952154530655 +1011 1011 10855.02927825237 +1086 1011 10000 +1733 1011 189.2999013672793 +1734 1011 -424.6733541712104 +1736 1011 -1287.422122919847 +1738 1011 2888.188885602322 +1012 1012 10043.70687181551 +1085 1012 10000 +1733 1012 -653.5049488374667 +1736 1012 -138.6897162092621 +1013 1013 2 +1014 1013 -1 +1015 1013 -100 +1016 1013 -100 +1014 1014 2 +1015 1014 100 +1016 1014 100 +1015 1015 10912.16139859881 +1016 1015 10000 +1047 1015 2802.979311551595 +1048 1015 456.9439429176086 +1049 1015 -492.0856367757104 +1050 1015 -3018.54501142323 +1016 1016 12455.33037191681 +1049 1016 -801.3087922830858 +1050 1016 -4915.312478599322 +1733 1016 1064.148792776386 +1736 1016 173.4806866627002 +1017 1017 2 +1018 1017 -1 +1019 1017 -100 +1020 1017 -100 +1018 1018 2 +1019 1018 100 +1020 1018 100 +1019 1019 10822.86757261585 +1020 1019 10000 +1047 1019 -391.4467792240283 +1048 1019 2662.09260320008 +1049 1019 -2866.823281292125 +1050 1019 421.5513535168777 +1020 1020 12214.80597144107 +1049 1020 -4668.253146846477 +1050 1020 686.4512611772759 +1733 1020 -148.6144134400559 +1736 1020 1010.661269699551 +1021 1021 2 +1022 1021 -1 +1023 1021 -100 +1024 1021 -100 +1022 1022 2 +1023 1022 100 +1024 1022 100 +1023 1023 10786.66930209863 +1024 1023 10000 +1045 1023 2802.979311551595 +1046 1023 456.9334755620527 +1047 1023 -2802.979311551595 +1048 1023 -456.9334755620527 +1024 1024 10912.16139859881 +1047 1024 -2802.979311551595 +1048 1024 -456.9439429176086 +1049 1024 492.0856367757104 +1050 1024 3018.54501142323 +1025 1025 2 +1026 1025 -1 +1027 1025 -100 +1028 1025 -100 +1026 1026 2 +1027 1026 100 +1028 1026 100 +1027 1027 10710.4531682962 +1028 1027 10000 +1083 1027 -2663.556209837135 +1084 1027 -434.2354772234821 +1285 1027 1815.877883239753 +1286 1027 296.039781813501 +1028 1028 16589.25607259841 +1045 1028 7980.969054588525 +1046 1028 1206.231606062273 +1083 1028 -7583.987365964536 +1084 1028 -1146.232393363795 +1029 1029 2 +1030 1029 -1 +1031 1029 -100 +1032 1029 -100 +1030 1030 2 +1031 1030 100 +1032 1030 100 +1031 1031 16589.25607259841 +1032 1031 10000 +1045 1031 -7980.969054588525 +1046 1031 -1206.231606062273 +1083 1031 7583.987365964536 +1084 1031 1146.232393363795 +1032 1032 10786.66930209863 +1045 1032 -2802.979311551595 +1046 1032 -456.9334755620527 +1047 1032 2802.979311551595 +1048 1032 456.9334755620527 +1033 1033 2 +1034 1033 -1 +1035 1033 -100 +1036 1033 -100 +1034 1034 2 +1035 1034 100 +1036 1034 100 +1035 1035 10709.67370280126 +1036 1035 10000 +1045 1035 -391.4378122321622 +1046 1035 2662.092603200079 +1047 1035 391.4378122321622 +1048 1035 -2662.09260320008 +1036 1036 10822.86757261585 +1047 1036 391.4467792240283 +1048 1036 -2662.09260320008 +1049 1036 2866.823281292125 +1050 1036 -421.5513535168777 +1037 1037 2 +1038 1037 -1 +1039 1037 -100 +1040 1037 -100 +1038 1038 2 +1039 1038 100 +1040 1038 100 +1039 1039 10640.92675085762 +1040 1039 10000 +1083 1039 371.9932863068719 +1084 1039 -2529.677352663029 +1285 1039 -253.6062046761257 +1286 1039 1724.606050913475 +1040 1040 15943.60691298474 +1045 1040 -1033.333485452155 +1046 1040 7579.82001473569 +1083 1040 981.9344048191261 +1084 1040 -7202.791895927776 +1041 1041 2 +1042 1041 -1 +1043 1041 -100 +1044 1041 -100 +1042 1042 2 +1043 1042 100 +1044 1042 100 +1043 1043 15943.60691298474 +1044 1043 10000 +1045 1043 1033.333485452155 +1046 1043 -7579.82001473569 +1083 1043 -981.9344048191261 +1084 1043 7202.791895927776 +1044 1044 10709.67370280126 +1045 1044 391.4378122321622 +1046 1044 -2662.09260320008 +1047 1044 -391.4378122321622 +1048 1044 2662.092603200079 +1045 1045 40128.04990711901 +1046 1045 605.9128044457024 +1047 1045 -20432.42344181656 +1048 1045 -319.5134897636626 +1083 1045 -18715.87089303725 +1084 1045 -272.1535153579768 +1046 1046 40309.43996515109 +1047 1046 -319.5134897636626 +1048 1046 -20531.49130437327 +1083 1046 -272.1535153579757 +1084 1046 -18794.1056135979 +1047 1047 38050.83335605605 +1048 1047 595.0274563314134 +1049 1047 -296.7026213618923 +1050 1047 -18973.28531068718 +1048 1048 38235.32091384685 +1049 1048 -19065.28257778496 +1050 1048 -296.7026213618929 +1049 1049 40742.72575428626 +1050 1049 634.0595422611478 +1085 1049 801.3087922830858 +1086 1049 4668.253146846477 +1733 1049 -68.09658889548848 +1736 1049 -4375.641927570379 +1050 1050 40546.13336121337 +1085 1050 4915.312478599322 +1086 1050 -686.4512611772759 +1733 1050 -4354.527240766495 +1736 1050 -68.09658889548875 +1051 1051 2 +1052 1051 1 +1053 1051 -1 +1054 1051 -100 +1052 1052 2 +1053 1052 -1 +1054 1052 -100 +1053 1053 2 +1054 1053 100 +1054 1054 10668.10964489874 +1059 1054 -2582.84657867776 +1060 1054 116.4449127306177 +1285 1054 -77.75204410171422 +1286 1054 1724.606050913475 +1055 1055 2 +1056 1055 1 +1057 1055 -1 +1058 1055 -100 +1056 1056 2 +1057 1056 -1 +1058 1056 -100 +1057 1057 2 +1058 1057 100 +1058 1058 10740.5894147886 +1059 1058 -135.9285613776208 +1060 1058 -2719.53932640917 +1285 1058 1815.877883239753 +1286 1058 90.76157344344362 +1059 1059 20050.03111940177 +1060 1059 97.96512384570855 +1074 1059 2582.84657867776 +1079 1059 135.9285613776208 +1285 1059 -65.41280723274247 +1286 1059 -13387.66701237534 +1060 1060 20040.72520062125 +1074 1060 -116.4449127306177 +1079 1060 2719.53932640917 +1285 1060 -13381.44846889863 +1286 1060 -65.41280723274257 +1061 1061 2 +1062 1061 1 +1063 1061 -1 +1064 1061 -100 +1062 1062 2 +1063 1062 -1 +1064 1062 -100 +1063 1063 2 +1064 1063 100 +1064 1064 12124.35278011625 +1069 1064 -4607.985221456607 +1070 1064 65.13684407934443 +1285 1064 -24.37841920880449 +1286 1064 1724.606050913475 +1065 1065 2 +1066 1065 1 +1067 1065 -1 +1068 1065 -100 +1066 1066 2 +1067 1066 -1 +1068 1066 -100 +1067 1067 2 +1068 1067 100 +1068 1068 12355.04967091175 +1069 1068 -76.03558885278507 +1070 1068 -4851.854976101146 +1285 1068 1815.877883239753 +1286 1068 28.45743428379117 +1069 1069 20005.12422039551 +1070 1069 30.71603948867081 +1073 1069 4607.985221456607 +1080 1069 76.03558885278507 +1285 1069 -11.49592826721651 +1286 1069 -7487.13166969722 +1070 1070 20004.23173425947 +1073 1070 -65.13684407934443 +1080 1070 4851.854976101146 +1285 1070 -7486.789009501917 +1286 1070 -11.49592826721653 +1071 1071 2 +1072 1071 -1 +1073 1071 -100 +1074 1071 -100 +1075 1071 -100 +1082 1071 -100 +1284 1071 -100 +1072 1072 2 +1073 1072 100 +1074 1072 100 +1075 1072 100 +1082 1072 100 +1284 1072 100 +1073 1073 12124.35278011625 +1074 1073 10000 +1075 1073 10000 +1082 1073 10000 +1284 1073 10000 +1285 1073 24.37841920880449 +1286 1073 -1724.606050913475 +1074 1074 10668.10964489874 +1075 1074 10000 +1082 1074 10000 +1284 1074 10000 +1285 1074 77.75204410171422 +1286 1074 -1724.606050913475 +1075 1075 10640.92675085762 +1082 1075 10000 +1083 1075 -371.9932863068719 +1084 1075 2529.677352663029 +1284 1075 10000 +1285 1075 253.6062046761257 +1286 1075 -1724.606050913475 +1076 1076 2 +1077 1076 -1 +1078 1076 -100 +1079 1076 -100 +1080 1076 -100 +1081 1076 -100 +1283 1076 -100 +1077 1077 2 +1078 1077 100 +1079 1077 100 +1080 1077 100 +1081 1077 100 +1283 1077 100 +1078 1078 10710.4531682962 +1079 1078 10000 +1080 1078 10000 +1081 1078 10000 +1083 1078 2663.556209837135 +1084 1078 434.2354772234821 +1283 1078 10000 +1285 1078 -1815.877883239753 +1286 1078 -296.039781813501 +1079 1079 10740.5894147886 +1080 1079 10000 +1081 1079 10000 +1283 1079 10000 +1285 1079 -1815.877883239753 +1286 1079 -90.76157344344362 +1080 1080 12355.04967091175 +1081 1080 10000 +1283 1080 10000 +1285 1080 -1815.877883239753 +1286 1080 -28.45743428379117 +1081 1081 10330.74124868393 +1283 1081 10000 +1285 1081 -1815.877883239753 +1286 1081 -279.8996218287731 +1287 1081 1815.877883239753 +1288 1081 279.8996218287731 +1082 1082 10298.42660308474 +1284 1082 10000 +1285 1082 239.7795335053877 +1286 1082 -1724.606050913475 +1287 1082 -239.7795335053877 +1288 1082 1724.606050913475 +1083 1083 38217.47887396889 +1084 1083 578.152137920166 +1285 1083 -13929.83390300047 +1286 1083 -217.8433585054806 +1084 1084 38390.89687668384 +1285 1084 -217.8433585054801 +1286 1084 -13997.38280136651 +1085 1085 12455.33037191681 +1733 1085 -1064.148792776386 +1736 1085 -173.4806866627002 +1086 1086 12214.80597144107 +1733 1086 148.6144134400559 +1736 1086 -1010.661269699551 +1087 1087 2 +1088 1087 -1 +1089 1087 -100 +1090 1087 -100 +1091 1087 -100 +1282 1087 -100 +1088 1088 2 +1089 1088 100 +1090 1088 100 +1091 1088 100 +1282 1088 100 +1089 1089 10765.77721465698 +1090 1089 10000 +1091 1089 10000 +1282 1089 10000 +2260 1089 -2765.460566807965 +2263 1089 -450.8176005705988 +2269 1089 1647.610789853503 +2274 1089 268.5888751663997 +1090 1090 11211.03767267875 +1091 1090 10000 +1280 1090 3467.343511644649 +1281 1090 565.2693543857929 +1282 1090 10000 +2260 1090 -3378.52546243467 +2263 1090 -550.7896464577727 +1091 1091 12940.74874652746 +1282 1091 10000 +2249 1091 5400.770038288273 +2253 1091 816.2811147488883 +2260 1091 -3524.776535799574 +2263 1091 -532.7404239553787 +1092 1092 2 +1093 1092 -1 +1094 1092 -100 +1095 1092 -100 +1096 1092 -100 +1279 1092 -100 +1093 1093 2 +1094 1093 100 +1095 1093 100 +1096 1093 100 +1279 1093 100 +1094 1094 10690.82904013343 +1095 1094 10000 +1096 1094 10000 +1279 1094 10000 +2260 1094 386.1985709539971 +2263 1094 -2626.459670608764 +2269 1094 -230.0900400341866 +2274 1094 1564.79660001262 +1095 1095 11092.45396890997 +1096 1095 10000 +1279 1095 10000 +1280 1095 -484.2451062060843 +1281 1095 3293.06373295831 +2260 1095 471.8408821860931 +2263 1095 -3208.709963075627 +1096 1096 12652.65334058763 +1279 1096 10000 +2249 1096 -699.2774896404877 +2253 1096 5129.310056360427 +2260 1096 456.3787885845288 +2263 1096 -3347.609989561824 +1097 1097 2 +1098 1097 -1 +1110 1097 -100 +1112 1097 -100 +1114 1097 -100 +1098 1098 2 +1110 1098 100 +1112 1098 100 +1114 1098 100 +1099 1099 2 +1100 1099 -1 +1109 1099 -100 +1111 1099 -100 +1113 1099 -100 +1100 1100 2 +1109 1100 100 +1111 1100 100 +1113 1100 100 +1101 1101 2 +1102 1101 -1 +1103 1101 -100 +1102 1102 2 +1103 1102 100 +1103 1103 10039.59569925218 +1107 1103 -621.2543702235303 +1108 1103 122.7088785377608 +1251 1103 -122.7088785377608 +1254 1103 621.2543702235303 +1104 1104 2 +1105 1104 -1 +1106 1104 -100 +1105 1105 2 +1106 1105 100 +1106 1106 10043.7890240256 +1107 1106 -143.2406185617187 +1108 1106 -654.133197640943 +1251 1106 654.133197640943 +1254 1106 143.2406185617187 +1107 1107 20959.02899618768 +1108 1107 429.1964410917842 +1109 1107 621.2543702235303 +1110 1107 143.2406185617187 +1251 1107 -429.1964410917842 +1254 1107 -20959.02513661775 +1108 1108 20780.27094921765 +1109 1108 -122.7088785377608 +1110 1108 654.133197640943 +1251 1108 -20780.26667031525 +1254 1108 -429.1964410917842 +1109 1109 10039.59569925218 +1111 1109 10000 +1113 1109 10000 +1251 1109 122.7088785377608 +1254 1109 -621.2543702235303 +1110 1110 10043.7890240256 +1112 1110 10000 +1114 1110 10000 +1251 1110 -654.133197640943 +1254 1110 -143.2406185617187 +1111 1111 10493.34558746532 +1113 1111 10000 +1251 1111 84.69459125145518 +1252 1111 -302.4971202743491 +1253 1111 2218.886178841359 +1254 1111 -621.25437022353 +1112 1112 10546.8376860411 +1114 1112 10000 +1251 1112 -654.133197640943 +1252 1112 2336.316943484123 +1253 1112 353.1111614544063 +1254 1112 -98.86575270066639 +1113 1113 10640.32220145117 +1153 1113 -344.5440292972782 +1154 1113 2527.29041153559 +1251 1113 87.20735800745094 +1254 1113 -639.6811465782768 +1114 1114 10709.78293613099 +1153 1114 2661.042943923673 +1154 1114 402.1933902941009 +1251 1114 -673.535179690273 +1254 1114 -101.7989574428106 +1115 1115 2 +1116 1115 -1 +1128 1115 -100 +1130 1115 -100 +1132 1115 -100 +1116 1116 2 +1128 1116 100 +1130 1116 100 +1132 1116 100 +1117 1117 2 +1118 1117 -1 +1127 1117 -100 +1129 1117 -100 +1131 1117 -100 +1118 1118 2 +1127 1118 100 +1129 1118 100 +1131 1118 100 +1119 1119 2 +1120 1119 -1 +1121 1119 -100 +1120 1120 2 +1121 1120 100 +1121 1121 10036.38986450891 +1125 1121 -594.8938099267248 +1126 1121 112.2258064605464 +1277 1121 -112.2258064605464 +1278 1121 594.8938099267248 +1122 1122 2 +1123 1122 -1 +1124 1122 -100 +1123 1123 2 +1124 1123 100 +1124 1124 10040.23488347342 +1125 1124 -131.0035111359085 +1126 1124 -626.3775496728617 +1277 1124 626.3775496728617 +1278 1124 131.0035111359085 +1125 1125 20874.83320129773 +1126 1125 409.9235478841306 +1127 1125 594.8938099267248 +1128 1125 131.0035111359085 +1277 1125 -409.9235478841306 +1278 1125 -20874.82966231128 +1126 1126 20711.76882061294 +1127 1126 -112.2258064605464 +1128 1126 626.3775496728617 +1277 1126 -20711.76489712459 +1278 1126 -409.9235478841306 +1127 1127 10036.38986450891 +1129 1127 10000 +1131 1127 10000 +1277 1127 112.2258064605464 +1278 1127 -594.8938099267248 +1128 1128 10040.23488347342 +1130 1128 10000 +1132 1128 10000 +1277 1128 -626.3775496728617 +1278 1128 -131.0035111359085 +1129 1129 10727.57561740652 +1131 1129 10000 +1277 1129 87.47263589601485 +1278 1129 -594.8938099267245 +1280 1129 -396.3448081236274 +1281 1129 2695.506663702623 +1130 1130 10806.51621429327 +1132 1130 10000 +1277 1130 -626.3775496728617 +1278 1130 -102.108621823265 +1280 1130 2838.161754187503 +1281 1130 462.6615136237566 +1131 1131 10603.45152934449 +1153 1131 -334.6243239882068 +1154 1131 2454.488804913341 +1277 1131 81.10280991830693 +1278 1131 -594.8938099267248 +1132 1132 10668.90635907239 +1153 1132 2584.388436501738 +1154 1132 390.6139125794213 +1277 1132 -626.377549672862 +1278 1132 -94.67299186681797 +1133 1133 2 +1134 1133 -1 +1148 1133 -100 +1150 1133 -100 +1152 1133 -100 +1134 1134 2 +1148 1134 100 +1150 1134 100 +1152 1134 100 +1135 1135 2 +1136 1135 -1 +1147 1135 -100 +1149 1135 -100 +1151 1135 -100 +1136 1136 2 +1147 1136 100 +1149 1136 100 +1151 1136 100 +1137 1137 10001 +1138 1137 10000 +1138 1138 10002 +1139 1138 1 +1140 1138 -1 +1141 1138 -100 +1139 1139 2 +1140 1139 -1 +1141 1139 -100 +1140 1140 2 +1141 1140 100 +1141 1141 11249.59431556913 +1145 1141 -46.88694403165153 +1146 1141 -3533.545408749017 +1153 1141 2584.388436501737 +1154 1141 34.29249152374801 +1142 1142 2 +1143 1142 -1 +1144 1142 -100 +1143 1143 2 +1144 1143 100 +1144 1144 11127.23206041961 +1145 1144 -3355.938110900755 +1146 1144 40.16629066501626 +1153 1144 -29.37709442612934 +1154 1144 2454.488804913341 +1145 1145 20003.63399999466 +1146 1145 26.00742564534794 +1147 1145 3355.938110900755 +1148 1145 46.88694403165153 +1153 1145 -19.02148757862189 +1154 1145 -14630.31130362355 +1146 1146 20002.9898656101 +1147 1146 -40.16629066501626 +1148 1146 3533.545408749017 +1153 1146 -14629.83124282949 +1154 1146 -19.02148757862193 +1147 1147 11127.23206041961 +1149 1147 10000 +1151 1147 10000 +1153 1147 29.37709442612934 +1154 1147 -2454.488804913341 +1148 1148 11249.59431556913 +1150 1148 10000 +1152 1148 10000 +1153 1148 -2584.388436501737 +1154 1148 -34.29249152374801 +1149 1149 10603.45152934449 +1151 1149 10000 +1153 1149 334.6243239882068 +1154 1149 -2454.488804913341 +1277 1149 -81.10280991830693 +1278 1149 594.8938099267248 +1150 1150 10668.90635907239 +1152 1150 10000 +1153 1150 -2584.388436501738 +1154 1150 -390.6139125794213 +1277 1150 626.377549672862 +1278 1150 94.67299186681797 +1151 1151 10640.32220145117 +1153 1151 344.5440292972782 +1154 1151 -2527.29041153559 +1251 1151 -87.20735800745094 +1254 1151 639.6811465782768 +1152 1152 10709.78293613099 +1153 1152 -2661.042943923673 +1154 1152 -402.1933902941009 +1251 1152 673.535179690273 +1254 1152 101.7989574428106 +1153 1153 51424.37328127282 +1154 1153 606.111377371139 +1251 1153 -5151.414416586341 +1254 1153 -74.90970294046245 +1277 1153 -4937.489896118715 +1278 1153 -71.79999723536542 +1154 1154 51594.95913262125 +1251 1154 -74.90970294046259 +1254 1154 -5172.948759823686 +1277 1154 -71.79999723536542 +1278 1154 -4958.130616774311 +1155 1155 2 +1156 1155 -1 +1157 1155 -100 +1158 1155 -100 +1156 1156 2 +1157 1156 100 +1158 1156 100 +1157 1157 10683.56925740733 +1158 1157 10000 +1249 1157 -2612.602643739245 +1250 1157 -402.6959437565776 +1252 1157 2336.316943484124 +1253 1157 360.1103898158357 +1158 1158 10763.80227142311 +1179 1158 2761.887527440439 +1180 1158 425.6788594687606 +1249 1158 -2612.602643739244 +1250 1158 -402.6701676236067 +1159 1159 2 +1160 1159 -1 +1161 1159 -100 +1162 1159 -100 +1160 1160 2 +1161 1160 100 +1162 1160 100 +1161 1161 11217.5944537725 +1162 1161 10000 +1255 1161 -525.6707340035306 +1256 1161 -3477.934471710285 +1285 1161 2171.105566679371 +1286 1161 328.1507073002052 +1162 1162 10847.16330325152 +1179 1162 2761.887527440439 +1180 1162 425.6806773479834 +1255 1162 -448.3374749721269 +1256 1162 -2908.888624976069 +1163 1163 2 +1164 1163 -1 +1165 1163 -100 +1166 1163 -100 +1164 1164 2 +1165 1164 100 +1166 1164 100 +1165 1165 10847.16330325152 +1166 1165 10000 +1179 1165 -2761.887527440439 +1180 1165 -425.6806773479834 +1255 1165 448.3374749721269 +1256 1165 2908.888624976069 +1166 1166 10763.80227142311 +1179 1166 -2761.887527440439 +1180 1166 -425.6788594687606 +1249 1166 2612.602643739244 +1250 1166 402.6701676236067 +1167 1167 2 +1168 1167 -1 +1169 1167 -100 +1170 1167 -100 +1168 1168 2 +1169 1168 100 +1170 1168 100 +1169 1169 10616.67746349906 +1170 1169 10000 +1249 1169 344.9745480454166 +1250 1169 -2481.284875823527 +1252 1169 -308.4930973336815 +1253 1169 2218.886178841359 +1170 1170 10689.04764135581 +1179 1170 -364.6631520244248 +1180 1170 2623.066223631816 +1249 1170 344.952466596721 +1250 1170 -2481.284875823526 +1171 1171 2 +1172 1171 -1 +1173 1171 -100 +1174 1171 -100 +1172 1172 2 +1173 1172 100 +1174 1172 100 +1173 1173 11098.36818539234 +1174 1173 10000 +1255 1173 -3303.122357485192 +1256 1173 450.3224497170224 +1285 1173 -281.114433102166 +1286 1173 2061.978854429829 +1174 1174 10764.23929124893 +1179 1174 -364.6647093335387 +1180 1174 2623.066223631816 +1255 1174 -2762.678575674212 +1256 1174 384.0739401483143 +1175 1175 2 +1176 1175 -1 +1177 1175 -100 +1178 1175 -100 +1176 1176 2 +1177 1176 100 +1178 1176 100 +1177 1177 10764.23929124893 +1178 1177 10000 +1179 1177 364.6647093335387 +1180 1177 -2623.066223631816 +1255 1177 2762.678575674212 +1256 1177 -384.0739401483143 +1178 1178 10689.04764135581 +1179 1178 364.6631520244248 +1180 1178 -2623.066223631816 +1249 1178 -344.952466596721 +1250 1178 2481.284875823526 +1179 1179 38764.75041974543 +1180 1179 574.4148419604717 +1249 1179 -19284.61229712468 +1250 1179 -285.7587789306204 +1255 1179 -286.8223292520145 +1256 1179 -19356.30713733755 +1180 1180 38933.1317186962 +1249 1180 -285.7587789306193 +1250 1180 -19368.38184767283 +1255 1180 -19440.38882437 +1256 1180 -286.8223292520139 +1181 1181 2 +1182 1181 1 +1183 1181 -1 +1184 1181 -100 +1182 1182 2 +1183 1182 -1 +1184 1182 -100 +1183 1183 2 +1184 1183 100 +1184 1184 15914.59664795271 +1189 1184 -7689.991318559928 +1190 1184 372.6955251087799 +1252 1184 -107.5383463156831 +1253 1184 2218.886178841359 +1185 1185 2 +1186 1185 1 +1187 1185 -1 +1188 1185 -100 +1186 1186 2 +1187 1186 -1 +1188 1186 -100 +1187 1187 2 +1188 1187 100 +1188 1188 16557.09391589453 +1189 1188 -435.0552151394502 +1190 1188 -8096.97098666812 +1252 1188 2336.316943484124 +1253 1188 125.5317417037806 +1189 1189 20058.33093528654 +1190 1189 105.3120121414711 +1243 1189 435.0552151394502 +1244 1189 7689.991318559928 +1252 1189 -30.38694824566382 +1253 1189 -5787.502128348418 +1190 1190 20047.632758056 +1243 1190 8096.97098666812 +1244 1190 -372.6955251087799 +1252 1190 -5784.396715164299 +1253 1190 -30.38694824566372 +1191 1191 2 +1192 1191 -1 +1239 1191 -100 +1240 1191 -100 +1241 1191 -100 +1242 1191 -100 +1243 1191 -100 +1246 1191 -100 +1248 1191 -100 +1192 1192 2 +1239 1192 100 +1240 1192 100 +1241 1192 100 +1242 1192 100 +1243 1192 100 +1246 1192 100 +1248 1192 100 +1193 1193 2 +1194 1193 1 +1195 1193 -1 +1196 1193 -100 +1194 1194 2 +1195 1194 -1 +1196 1194 -100 +1195 1195 2 +1196 1195 100 +1196 1196 14494.72653256308 +1201 1196 -6703.526335118766 +1202 1196 342.1255911766717 +1252 1196 -113.2445384323826 +1253 1196 2218.886178841359 +1197 1197 2 +1198 1197 1 +1199 1197 -1 +1200 1197 -100 +1198 1198 2 +1199 1198 -1 +1200 1198 -100 +1199 1199 2 +1200 1199 100 +1200 1200 14982.95851589408 +1201 1200 -399.3702973241633 +1202 1200 -7058.299027311098 +1252 1200 2336.316943484123 +1253 1200 132.1926980923318 +1201 1201 20064.47906454087 +1202 1201 110.9000706718807 +1238 1201 6703.526335118766 +1239 1201 399.3702973241633 +1252 1201 -36.70823708966687 +1253 1201 -6641.250582094316 +1202 1202 20052.5930081593 +1238 1202 -342.1255911766717 +1239 1202 7058.299027311098 +1252 1202 -6637.300103193789 +1253 1202 -36.70823708966702 +1203 1203 2 +1204 1203 1 +1205 1203 -1 +1206 1203 -100 +1204 1204 2 +1205 1204 -1 +1206 1204 -100 +1205 1205 2 +1206 1205 100 +1206 1206 16807.14156219166 +1211 1206 -8249.934279854391 +1212 1206 347.177775030855 +1252 1206 -93.37625494762794 +1253 1206 2218.886178841359 +1207 1207 2 +1208 1207 1 +1209 1207 -1 +1210 1207 -100 +1208 1208 2 +1209 1208 -1 +1210 1208 -100 +1209 1209 2 +1210 1209 100 +1210 1210 17546.61156991485 +1211 1210 -405.2678163055468 +1212 1210 -8686.547973686009 +1252 1210 2336.316943484123 +1253 1210 109.0000387670322 +1211 1211 20044.21373308535 +1212 1211 91.44311430922188 +1237 1211 8249.934279854391 +1240 1211 405.2678163055468 +1252 1211 -24.59436107102229 +1253 1211 -5390.869442601893 +1212 1212 20036.17328008137 +1237 1212 -347.177775030855 +1240 1212 8686.547973686009 +1252 1212 -5388.687009456442 +1253 1212 -24.59436107102225 +1213 1213 2 +1214 1213 1 +1215 1213 -1 +1216 1213 -100 +1214 1214 2 +1215 1214 -1 +1216 1214 -100 +1215 1215 2 +1216 1215 100 +1216 1216 14225.6004145782 +1221 1216 -6499.692619330702 +1222 1216 352.9892757847842 +1252 1216 -120.504625555467 +1253 1216 2218.88617884136 +1217 1217 2 +1218 1217 1 +1219 1217 -1 +1220 1217 -100 +1218 1218 2 +1219 1218 -1 +1220 1218 -100 +1219 1219 2 +1220 1219 100 +1220 1220 14684.59252819353 +1221 1220 -412.0517016501477 +1222 1220 -6843.677759942776 +1252 1220 2336.316943484123 +1253 1220 140.6675483453438 +1221 1221 20072.92518260357 +1222 1221 118.0098543857747 +1236 1221 6499.692619330702 +1241 1221 412.0517016501477 +1252 1221 -40.2865874125969 +1253 1221 -6852.416179403102 +1222 1222 20059.45686305977 +1236 1222 -352.9892757847842 +1241 1222 6843.677759942776 +1252 1222 -6847.802651507261 +1253 1222 -40.2865874125969 +1223 1223 2 +1224 1223 1 +1225 1223 -1 +1226 1223 -100 +1224 1224 2 +1225 1224 -1 +1226 1224 -100 +1225 1225 2 +1226 1225 100 +1226 1226 16401.54630414014 +1231 1226 -8000.341432801567 +1232 1226 279.5221535407939 +1252 1226 -77.52517169188464 +1253 1226 2218.886178841359 +1227 1227 2 +1228 1227 1 +1229 1227 -1 +1230 1227 -100 +1228 1228 2 +1229 1228 -1 +1230 1228 -100 +1229 1229 2 +1230 1229 100 +1230 1230 17096.9494164185 +1231 1230 -326.2920063487175 +1232 1230 -8423.745851115469 +1252 1230 2336.316943484123 +1253 1230 90.49674057473987 +1231 1231 20030.64773004048 +1232 1231 75.92019128245379 +1235 1231 8000.341432801567 +1242 1231 326.2920063487175 +1252 1231 -21.05638422392156 +1253 1231 -5555.30130387075 +1232 1232 20025.12395915601 +1235 1232 -279.5221535407939 +1242 1232 8423.745851115469 +1252 1232 -5553.75000496553 +1253 1232 -21.05638422392159 +1233 1233 2 +1234 1233 -1 +1235 1233 -100 +1236 1233 -100 +1237 1233 -100 +1238 1233 -100 +1244 1233 -100 +1245 1233 -100 +1247 1233 -100 +1234 1234 2 +1235 1234 100 +1236 1234 100 +1237 1234 100 +1238 1234 100 +1244 1234 100 +1245 1234 100 +1247 1234 100 +1235 1235 16401.54630414014 +1236 1235 10000 +1237 1235 10000 +1238 1235 10000 +1244 1235 10000 +1245 1235 10000 +1247 1235 10000 +1252 1235 77.52517169188464 +1253 1235 -2218.886178841359 +1236 1236 14225.6004145782 +1237 1236 10000 +1238 1236 10000 +1244 1236 10000 +1245 1236 10000 +1247 1236 10000 +1252 1236 120.504625555467 +1253 1236 -2218.88617884136 +1237 1237 16807.14156219166 +1238 1237 10000 +1244 1237 10000 +1245 1237 10000 +1247 1237 10000 +1252 1237 93.37625494762794 +1253 1237 -2218.886178841359 +1238 1238 14494.72653256308 +1244 1238 10000 +1245 1238 10000 +1247 1238 10000 +1252 1238 113.2445384323826 +1253 1238 -2218.886178841359 +1239 1239 14982.95851589408 +1240 1239 10000 +1241 1239 10000 +1242 1239 10000 +1243 1239 10000 +1246 1239 10000 +1248 1239 10000 +1252 1239 -2336.316943484123 +1253 1239 -132.1926980923318 +1240 1240 17546.61156991485 +1241 1240 10000 +1242 1240 10000 +1243 1240 10000 +1246 1240 10000 +1248 1240 10000 +1252 1240 -2336.316943484123 +1253 1240 -109.0000387670322 +1241 1241 14684.59252819353 +1242 1241 10000 +1243 1241 10000 +1246 1241 10000 +1248 1241 10000 +1252 1241 -2336.316943484123 +1253 1241 -140.6675483453438 +1242 1242 17096.9494164185 +1243 1242 10000 +1246 1242 10000 +1248 1242 10000 +1252 1242 -2336.316943484123 +1253 1242 -90.49674057473987 +1243 1243 16557.09391589453 +1246 1243 10000 +1248 1243 10000 +1252 1243 -2336.316943484124 +1253 1243 -125.5317417037806 +1244 1244 15914.59664795271 +1245 1244 10000 +1247 1244 10000 +1252 1244 107.5383463156831 +1253 1244 -2218.886178841359 +1245 1245 10616.67746349906 +1247 1245 10000 +1249 1245 -344.9745480454166 +1250 1245 2481.284875823527 +1252 1245 308.4930973336815 +1253 1245 -2218.886178841359 +1246 1246 10683.56925740733 +1248 1246 10000 +1249 1246 2612.602643739245 +1250 1246 402.6959437565776 +1252 1246 -2336.316943484124 +1253 1246 -360.1103898158357 +1247 1247 10493.34558746532 +1251 1247 -84.69459125145518 +1252 1247 302.4971202743491 +1253 1247 -2218.886178841359 +1254 1247 621.25437022353 +1248 1248 10546.8376860411 +1251 1248 654.133197640943 +1252 1248 -2336.316943484123 +1253 1248 -353.1111614544063 +1254 1248 98.86575270066639 +1249 1249 38628.90351131121 +1250 1249 572.4194709337199 +1252 1249 -18230.68511121272 +1253 1249 -270.1583557836661 +1250 1250 38796.70598615002 +1252 1250 -270.1583557836656 +1253 1250 -18309.88650200452 +1251 1251 23681.11111701567 +1252 1251 -5703.768415266088 +1253 1251 -82.94118449624507 +1254 1251 471.3790663242257 +1252 1252 45867.92197689825 +1253 1252 584.9498424236771 +1254 1252 -82.94118449624536 +1253 1253 46028.69636559844 +1254 1253 -5727.61138955319 +1254 1254 23871.99538030925 +1255 1255 40814.50705996193 +1256 1255 596.6292195307487 +1283 1255 525.6707340035306 +1284 1255 3303.122357485192 +1285 1255 -183.8675216646851 +1286 1255 -12696.85570454 +1256 1256 40641.28475732345 +1283 1256 3477.934471710285 +1284 1256 -450.3224497170224 +1285 1256 -12643.99804412756 +1286 1256 -183.8675216646843 +1257 1257 2 +1258 1257 -1 +1259 1257 -100 +1260 1257 -100 +1258 1258 2 +1259 1258 100 +1260 1258 100 +1259 1259 12816.03432766869 +1260 1259 10000 +1275 1259 -859.8522734027557 +1276 1259 -5274.420637010769 +1280 1259 4094.458286429101 +1281 1259 667.4911821090744 +1260 1260 11337.69064573262 +1275 1260 -552.5912481609529 +1276 1260 -3656.078015760354 +2260 1260 2765.460566807965 +2263 1260 417.9804970694796 +1261 1261 2 +1262 1261 -1 +1263 1261 -100 +1264 1261 -100 +1262 1262 2 +1263 1262 100 +1264 1262 100 +1263 1263 12540.16093599798 +1264 1263 10000 +1275 1263 -5009.311380246969 +1276 1263 736.603271033307 +1280 1263 -571.814721361016 +1281 1263 3888.65771270376 +1264 1264 11206.69494936462 +1275 1264 -3472.311837039726 +1276 1264 473.3842469578231 +2260 1264 -358.068252993142 +2263 1264 2626.459670608764 +1265 1265 2 +1266 1265 -1 +1267 1265 -100 +1268 1265 -100 +1269 1265 -100 +1266 1266 2 +1267 1266 100 +1268 1266 100 +1269 1266 100 +1267 1267 11092.45396890997 +1268 1267 10000 +1269 1267 10000 +1280 1267 484.2451062060843 +1281 1267 -3293.06373295831 +2260 1267 -471.8408821860931 +2263 1267 3208.709963075627 +1268 1268 12540.16093599798 +1269 1268 10000 +1275 1268 5009.311380246969 +1276 1268 -736.603271033307 +1280 1268 571.814721361016 +1281 1268 -3888.65771270376 +1269 1269 10727.57561740652 +1277 1269 -87.47263589601485 +1278 1269 594.8938099267245 +1280 1269 396.3448081236274 +1281 1269 -2695.506663702623 +1270 1270 2 +1271 1270 -1 +1272 1270 -100 +1273 1270 -100 +1274 1270 -100 +1271 1271 2 +1272 1271 100 +1273 1271 100 +1274 1271 100 +1272 1272 11211.03767267875 +1273 1272 10000 +1274 1272 10000 +1280 1272 -3467.343511644649 +1281 1272 -565.2693543857929 +2260 1272 3378.52546243467 +2263 1272 550.7896464577727 +1273 1273 12816.03432766869 +1274 1273 10000 +1275 1273 859.8522734027557 +1276 1273 5274.420637010769 +1280 1273 -4094.458286429101 +1281 1273 -667.4911821090744 +1274 1274 10806.51621429327 +1277 1274 626.3775496728617 +1278 1274 102.108621823265 +1280 1274 -2838.161754187503 +1281 1274 -462.6615136237566 +1275 1275 40747.24430028882 +1276 1275 612.0107724039891 +1279 1275 3472.311837039726 +1280 1275 -245.1278829091212 +1281 1275 -15751.02575185606 +1282 1275 552.5912481609529 +2260 1275 -224.0766888904541 +2263 1275 -15473.60562349595 +1276 1276 40564.18501357749 +1279 1276 -473.3842469578231 +1280 1276 -15675.0189766841 +1281 1276 -245.1278829091218 +1282 1276 3656.078015760354 +2260 1276 -15409.18932929143 +2263 1276 -224.076688890454 +1277 1277 22903.68369160236 +1278 1277 442.8882324818908 +1280 1277 -4509.398649491457 +1281 1277 -70.51497980028313 +1278 1278 23076.57597888973 +1280 1278 -70.51497980028313 +1281 1278 -4531.262070971916 +1279 1279 11206.69494936462 +2260 1279 358.068252993142 +2263 1279 -2626.459670608764 +1280 1280 52901.71037472991 +1281 1280 827.2727647465362 +2260 1280 -19780.90392190123 +2263 1280 -309.342692052188 +1281 1281 53158.21179255492 +2260 1281 -309.3426920521874 +2263 1281 -19876.82387166028 +1282 1282 11337.69064573262 +2260 1282 -2765.460566807965 +2263 1282 -417.9804970694796 +1283 1283 11217.5944537725 +1285 1283 -2171.105566679371 +1286 1283 -328.1507073002052 +1284 1284 11098.36818539234 +1285 1284 281.114433102166 +1286 1284 -2061.978854429829 +1285 1285 49513.37190907666 +1286 1285 613.388445223565 +1287 1285 -20386.61117796299 +1288 1285 -302.1146513497724 +1286 1286 49685.26934121989 +1287 1286 -302.1146513497724 +1288 1286 -20475.18348773518 +1287 1287 33841.46359405507 +1288 1287 333.8832817350929 +2270 1287 -16391.9839997977 +2275 1287 -38.70366921070484 +1288 1288 33931.48916655133 +2270 1288 -38.7036692107047 +2275 1288 -16393.7584442292 +1289 1289 2 +1290 1289 1 +1291 1289 -1 +1292 1289 -100 +1290 1290 2 +1291 1290 -1 +1292 1290 -100 +1291 1291 2 +1292 1291 100 +1292 1292 10372.59110632352 +1297 1292 -1927.669853277568 +1298 1292 23.49113659312849 +2237 1292 -13.22751101718428 +2244 1292 1085.442337821223 +1293 1293 2 +1294 1293 1 +1295 1293 -1 +1296 1293 -100 +1294 1294 2 +1295 1294 -1 +1296 1294 -100 +1295 1295 2 +1296 1295 100 +1296 1296 10412.96353698075 +1297 1296 -27.42169088671189 +1298 1296 -2029.688490829942 +2237 1296 1142.887521319789 +2244 1296 15.44074791255118 +1297 1297 20003.68772069479 +1298 1297 26.48018144160901 +1312 1297 1927.669853277568 +1321 1297 27.42169088671189 +2237 1297 -14.91059789156307 +2244 1297 -11263.75929654498 +1298 1298 20003.01130779634 +1312 1298 -23.49113659312849 +1321 1298 2029.688490829942 +2237 1298 -11263.3761451505 +2244 1298 -14.91059789156302 +1299 1299 2 +1300 1299 1 +1301 1299 -1 +1302 1299 -100 +1300 1300 2 +1301 1300 -1 +1302 1300 -100 +1301 1301 2 +1302 1301 100 +1302 1302 10305.70875075265 +1307 1302 -1745.590876329994 +1308 1302 25.94352989146087 +2237 1302 -16.13219117868403 +2244 1302 1085.442337821222 +1303 1303 2 +1304 1303 1 +1305 1303 -1 +1306 1303 -100 +1304 1304 2 +1305 1304 -1 +1306 1304 -100 +1305 1305 2 +1306 1305 100 +1306 1306 10338.81458321492 +1307 1306 -30.28442043974619 +1308 1306 -1837.973294732321 +2237 1306 1142.887521319789 +2244 1306 18.83144130014612 +1307 1307 20005.46034967215 +1308 1307 32.29506661588192 +1311 1307 1745.590876329994 +1322 1307 30.28442043974619 +2237 1307 -20.08170017555024 +2244 1307 -12439.76516560057 +1308 1308 20004.45155247125 +1311 1308 -25.94352989146087 +1322 1308 1837.973294732321 +2237 1308 -12439.13581730696 +2244 1308 -20.08170017555024 +1309 1309 2 +1310 1309 -1 +1311 1309 -100 +1312 1309 -100 +1313 1309 -100 +1314 1309 -100 +1315 1309 -100 +1324 1309 -100 +1347 1309 -100 +1310 1310 2 +1311 1310 100 +1312 1310 100 +1313 1310 100 +1314 1310 100 +1315 1310 100 +1324 1310 100 +1347 1310 100 +1311 1311 10305.70875075265 +1312 1311 10000 +1313 1311 10000 +1314 1311 10000 +1315 1311 10000 +1324 1311 10000 +1347 1311 10000 +2237 1311 16.13219117868403 +2244 1311 -1085.442337821222 +1312 1312 10372.59110632352 +1313 1312 10000 +1314 1312 10000 +1315 1312 10000 +1324 1312 10000 +1347 1312 10000 +2237 1312 13.22751101718428 +2244 1312 -1085.442337821223 +1313 1313 10211.1696185313 +1314 1313 10000 +1315 1313 10000 +1324 1313 10000 +1347 1313 10000 +1729 1313 -167.90922765928 +1731 1313 1262.760768669947 +2237 1313 191.8861189201802 +2244 1313 -1443.078896869358 +1314 1314 10148.79380648747 +1315 1314 10000 +1324 1314 10000 +1347 1314 10000 +2237 1314 15.46945577793489 +2244 1314 -1085.442337821222 +2246 1314 -17.32592361416992 +2250 1314 1215.704760570904 +1315 1315 14765.48265549241 +1324 1315 10000 +1347 1315 10000 +2235 1315 -839.6250274115462 +2237 1315 891.0391440597404 +2241 1315 6316.0283190241 +2244 1315 -6702.787891626066 +1316 1316 2 +1317 1316 -1 +1318 1316 -100 +1319 1316 -100 +1320 1316 -100 +1321 1316 -100 +1322 1316 -100 +1323 1316 -100 +1348 1316 -100 +1317 1317 2 +1318 1317 100 +1319 1317 100 +1320 1317 100 +1321 1317 100 +1322 1317 100 +1323 1317 100 +1348 1317 100 +1318 1318 10234.00401420445 +1319 1318 10000 +1320 1318 10000 +1321 1318 10000 +1322 1318 10000 +1323 1318 10000 +1348 1318 10000 +1729 1318 1329.590227539815 +1731 1318 196.0039234221707 +2237 1318 -1519.45138497404 +2244 1318 -223.9926458057881 +1319 1319 10164.8512284829 +1320 1319 10000 +1321 1319 10000 +1322 1319 10000 +1323 1319 10000 +1348 1319 10000 +2237 1319 -1142.887521319789 +2244 1319 -18.0578165235425 +2246 1319 1280.043860509882 +2250 1319 20.22490992681578 +1320 1320 15283.13160443956 +1321 1320 10000 +1322 1320 10000 +1323 1320 10000 +1348 1320 10000 +2235 1320 6650.293339952595 +2237 1320 -7057.521502956647 +2241 1320 980.1117060109074 +2244 1320 -1040.128470561693 +1321 1321 10412.96353698075 +1322 1321 10000 +1323 1321 10000 +1348 1321 10000 +2237 1321 -1142.887521319789 +2244 1321 -15.44074791255118 +1322 1322 10338.81458321492 +1323 1322 10000 +1348 1322 10000 +2237 1322 -1142.887521319789 +2244 1322 -18.83144130014612 +1323 1323 10131.61918863885 +1348 1323 10000 +1728 1323 1000.079432978999 +1730 1323 147.3987442636712 +2237 1323 -1142.887521319789 +2244 1323 -168.446805245613 +1324 1324 10118.81850687348 +1347 1324 10000 +1728 1324 -126.270989249296 +1730 1324 949.8122409159703 +2237 1324 144.302075573987 +2244 1324 -1085.442337821222 +1325 1325 2 +1326 1325 -1 +1327 1325 -100 +1328 1325 -100 +1329 1325 -100 +1346 1325 -100 +1326 1326 2 +1327 1326 100 +1328 1326 100 +1329 1326 100 +1346 1326 100 +1327 1327 10471.41923820802 +1328 1327 10000 +1329 1327 10000 +1346 1327 10000 +1727 1327 1319.814872200452 +1732 1327 203.4098944305222 +2234 1327 -2167.352236707926 +2240 1327 -334.0323699546538 +1328 1328 12773.19504010939 +1329 1328 10000 +1346 1328 10000 +2234 1328 -4371.147764428927 +2238 1328 5202.174125722668 +2240 1328 -712.5692247758914 +2243 1328 848.0402364983178 +1329 1329 11140.85267217892 +1346 1329 10000 +2234 1329 -2269.502472060355 +2236 1329 3371.23263650622 +2240 1329 -343.0186343660251 +2242 1329 509.5370590430379 +1330 1330 2 +1331 1330 -1 +1332 1330 -100 +1333 1330 -100 +1334 1330 -100 +1345 1330 -100 +1331 1331 2 +1332 1331 100 +1333 1331 100 +1334 1331 100 +1345 1331 100 +1332 1332 10425.31814825823 +1333 1332 10000 +1334 1332 10000 +1345 1332 10000 +1727 1332 -174.2536459258515 +1732 1332 1253.476753966262 +2234 1332 286.1530334343325 +2240 1332 -2058.414178831556 +1333 1333 12501.51989903888 +1334 1333 10000 +1345 1333 10000 +2234 1333 610.4313939072819 +2238 1333 -726.4843409676313 +2240 1333 -4151.439892269294 +2243 1333 4940.696209769452 +1334 1334 11029.14709914623 +1345 1334 10000 +2234 1334 293.8512299321929 +2236 1334 -436.5013340239079 +2240 1334 -2155.430016524743 +2242 1334 3201.78369791179 +1335 1335 2 +1336 1335 -1 +1337 1335 -100 +1338 1335 -100 +1336 1336 2 +1337 1336 100 +1338 1336 100 +1337 1337 10349.29545887882 +1338 1337 10000 +1343 1337 -275.0330047506213 +1344 1337 -1866.267555520421 +2237 1337 1142.887521319789 +2244 1337 168.4280413870871 +1338 1338 10430.57814913231 +1343 1338 -29.07374617240834 +1344 1338 -1866.26755552042 +2234 1338 2072.626712971527 +2240 1338 32.2885230388542 +1339 1339 2 +1340 1339 -1 +1341 1339 -100 +1342 1339 -100 +1340 1340 2 +1341 1340 100 +1342 1340 100 +1341 1341 10315.16250049888 +1342 1341 10000 +1343 1341 -1772.462977043188 +1344 1341 235.6104847402471 +2237 1341 -144.2860012784423 +2244 1341 1085.442337821222 +1342 1342 10388.47948631178 +1343 1342 -1772.462977043187 +1344 1342 24.90639054431724 +2234 1342 -27.66036960410981 +2240 1342 1968.449862993159 +1343 1343 36654.02598201154 +1344 1343 313.6029184429989 +1345 1343 1772.462977043188 +1346 1343 29.07374617240834 +1347 1343 1772.462977043188 +1348 1343 275.0330047506213 +2234 1343 -27.49387906366462 +2237 1343 -176.8872813120542 +2240 1343 -18013.08909804489 +2244 1343 -12513.8420005267 +1344 1344 36572.3325063587 +1345 1344 -24.90639054431724 +1346 1344 1866.26755552042 +1347 1344 -235.6104847402471 +1348 1344 1866.267555520421 +2234 1344 -18012.27444325219 +2237 1344 -12464.260687362 +2240 1344 -27.49387906366448 +2244 1344 -176.8872813120542 +1345 1345 10388.47948631178 +2234 1345 27.66036960410981 +2240 1345 -1968.449862993159 +1346 1346 10430.57814913231 +2234 1346 -2072.626712971527 +2240 1346 -32.2885230388542 +1347 1347 10315.16250049888 +2237 1347 144.2860012784423 +2244 1347 -1085.442337821222 +1348 1348 10349.29545887882 +2237 1348 -1142.887521319789 +2244 1348 -168.4280413870871 +1349 1349 2 +1350 1349 -1 +1351 1349 -100 +1352 1349 -100 +1350 1350 2 +1351 1350 100 +1352 1350 100 +1351 1351 11157.32283507936 +1352 1351 10000 +1375 1351 3370.236749901069 +1376 1351 509.3637258487225 +1546 1351 -2965.472819547681 +1548 1351 -448.1893695783427 +1352 1352 10291.51890128854 +1545 1352 1704.461502318364 +1546 1352 -1704.461502318364 +1547 1352 262.6739497008111 +1548 1352 -262.6739497008111 +1353 1353 2 +1354 1353 -1 +1355 1353 -100 +1356 1353 -100 +1354 1354 2 +1355 1354 100 +1356 1354 100 +1355 1355 11044.00318592118 +1356 1355 10000 +1375 1355 -436.3528459616433 +1376 1355 3200.837867753762 +1546 1355 383.9470637988603 +1548 1355 -2816.418667585107 +1356 1356 10263.04804611808 +1545 1356 -225.0229446962531 +1546 1356 225.0229446962531 +1547 1356 1618.789813774723 +1548 1356 -1618.789813774723 +1357 1357 2 +1358 1357 -1 +1359 1357 -100 +1360 1357 -100 +1358 1358 2 +1359 1358 100 +1360 1358 100 +1359 1359 10376.23843614549 +1360 1359 10000 +1373 1359 -42.9767686919489 +1374 1359 -1937.107214754754 +1375 1359 1937.107214754754 +1376 1359 42.97676869194891 +1360 1360 10471.08494538035 +1373 1360 -319.0090021442711 +1374 1360 -2164.269968493686 +1728 1360 1117.35781397039 +1730 1360 164.6962747077633 +1361 1361 2 +1362 1361 -1 +1363 1361 -100 +1364 1361 -100 +1362 1362 2 +1363 1362 100 +1364 1362 100 +1363 1363 11157.32283507936 +1364 1363 10000 +1375 1363 -3370.236749901069 +1376 1363 -509.3637258487225 +1546 1363 2965.472819547681 +1548 1363 448.1893695783427 +1364 1364 10376.23843614549 +1373 1364 42.97676869194891 +1374 1364 1937.107214754754 +1375 1364 -1937.107214754754 +1376 1364 -42.9767686919489 +1365 1365 2 +1366 1365 -1 +1367 1365 -100 +1368 1365 -100 +1366 1366 2 +1367 1366 100 +1368 1366 100 +1367 1367 10339.46506572965 +1368 1367 10000 +1373 1367 -1839.742008352393 +1374 1367 36.81658975169481 +1375 1367 -36.81658975169481 +1376 1367 1839.742008352393 +1368 1368 10425.01661613095 +1373 1368 -2055.486835279503 +1374 1368 273.2830763342936 +1728 1368 -141.0891363892621 +1730 1368 1061.19583524569 +1369 1369 2 +1370 1369 -1 +1371 1369 -100 +1372 1369 -100 +1370 1370 2 +1371 1370 100 +1372 1370 100 +1371 1371 11044.00318592118 +1372 1371 10000 +1375 1371 436.3528459616433 +1376 1371 -3200.837867753762 +1546 1371 -383.9470637988603 +1548 1371 2816.418667585107 +1372 1372 10339.46506572965 +1373 1372 1839.742008352393 +1374 1372 -36.81658975169481 +1375 1372 36.81658975169481 +1376 1372 -1839.742008352393 +1373 1373 40371.4375435504 +1374 1373 331.3531728188796 +1375 1373 -43.48467364607665 +1376 1373 -20009.84442140936 +1423 1373 2055.486835279503 +1424 1373 319.0090021442712 +1728 1373 -148.6192210903001 +1730 1373 -10512.15776795445 +1374 1374 40288.9020557508 +1375 1374 -20008.00946046248 +1376 1374 -43.48467364607665 +1423 1374 -273.2830763342936 +1424 1374 2164.269968493686 +1728 1374 -10470.49222969702 +1730 1374 -148.6192210903004 +1375 1375 40019.04407940779 +1376 1375 334.466212363268 +1546 1375 -17607.68526997802 +1548 1375 -256.0347857109213 +1376 1376 40104.52104956936 +1546 1376 -256.0347857109207 +1548 1376 -17681.28514688544 +1377 1377 2 +1378 1377 1 +1379 1377 -1 +1380 1377 -100 +1378 1378 2 +1379 1378 -1 +1380 1378 -100 +1379 1379 2 +1380 1379 100 +1380 1380 11162.35197891727 +1385 1380 -3407.861468600609 +1386 1380 138.6721761801115 +1728 1380 -38.64961402448436 +1730 1380 949.8122409159705 +1381 1381 2 +1382 1381 1 +1383 1381 -1 +1384 1381 -100 +1382 1382 2 +1383 1382 -1 +1384 1382 -100 +1383 1383 2 +1384 1383 100 +1384 1384 11288.52992408225 +1385 1384 -161.8749069345156 +1386 1384 -3588.216721551596 +1728 1384 1000.079432979 +1730 1384 45.11649593745723 +1385 1385 20040.81963265445 +1386 1385 88.42131730258565 +1411 1385 3407.861468600609 +1416 1385 161.8749069345156 +1728 1385 -24.64409140621484 +1730 1385 -5585.58664248408 +1386 1386 20033.24528061819 +1411 1386 -138.6721761801115 +1416 1386 3588.216721551596 +1728 1386 -5583.47206215764 +1730 1386 -24.64409140621484 +1387 1387 2 +1388 1387 1 +1389 1387 -1 +1390 1387 -100 +1388 1388 2 +1389 1388 -1 +1390 1388 -100 +1389 1389 2 +1390 1389 100 +1390 1390 10733.55174043934 +1395 1390 -2706.569305300232 +1396 1390 57.60462333698656 +1728 1390 -20.21510266582824 +1730 1390 949.8122409159703 +1391 1391 2 +1392 1391 1 +1393 1391 -1 +1394 1391 -100 +1392 1392 2 +1393 1392 -1 +1394 1392 -100 +1393 1393 2 +1394 1393 100 +1394 1394 10813.14162792706 +1395 1394 -67.24307138269235 +1396 1394 -2849.80986721405 +1728 1394 1000.079432978999 +1730 1394 23.59750854744243 +1395 1395 20011.20833431171 +1396 1395 46.2474478008295 +1410 1395 2706.569305300232 +1417 1395 67.24307138269235 +1728 1395 -16.22954636569984 +1730 1395 -7022.477132053174 +1396 1396 20009.14075889285 +1410 1396 -57.60462333698656 +1417 1396 2849.80986721405 +1728 1396 -7021.748767927072 +1730 1396 -16.22954636569984 +1397 1397 2 +1398 1397 1 +1399 1397 -1 +1400 1397 -100 +1398 1398 2 +1399 1398 -1 +1400 1398 -100 +1399 1399 2 +1400 1399 100 +1400 1400 10352.69129760952 +1405 1400 -1875.343428840478 +1406 1400 56.20152939105284 +1728 1400 -28.46460000493136 +1730 1400 949.8122409159703 +1401 1401 2 +1402 1401 1 +1403 1401 -1 +1404 1401 -100 +1402 1402 2 +1403 1402 -1 +1404 1402 -100 +1403 1403 2 +1404 1403 100 +1404 1404 10390.90166455283 +1405 1404 -65.60521072329514 +1406 1404 -1974.592779670865 +1728 1404 1000.079432978999 +1730 1404 33.22731786325942 +1405 1405 20022.11275466141 +1406 1405 65.12037681237371 +1409 1405 1875.343428840479 +1418 1405 65.60521072329514 +1728 1405 -32.98176220858706 +1730 1405 -10140.65695213252 +1406 1406 20018.00140167544 +1409 1406 -56.20152939105287 +1418 1406 1974.592779670865 +1728 1406 -10138.57272446514 +1730 1406 -32.98176220858706 +1407 1407 2 +1408 1407 -1 +1409 1407 -100 +1410 1407 -100 +1411 1407 -100 +1412 1407 -100 +1420 1407 -100 +1422 1407 -100 +1423 1407 -100 +1408 1408 2 +1409 1408 100 +1410 1408 100 +1411 1408 100 +1412 1408 100 +1420 1408 100 +1422 1408 100 +1423 1408 100 +1409 1409 10352.69129760952 +1410 1409 10000 +1411 1409 10000 +1412 1409 10000 +1420 1409 10000 +1422 1409 10000 +1423 1409 10000 +1728 1409 28.46460000493137 +1730 1409 -949.8122409159704 +1410 1410 10733.55174043934 +1411 1410 10000 +1412 1410 10000 +1420 1410 10000 +1422 1410 10000 +1423 1410 10000 +1728 1410 20.21510266582824 +1730 1410 -949.8122409159703 +1411 1411 11162.35197891727 +1412 1411 10000 +1420 1411 10000 +1422 1411 10000 +1423 1411 10000 +1728 1411 38.64961402448436 +1730 1411 -949.8122409159705 +1412 1412 10091.21432929938 +1420 1412 10000 +1422 1412 10000 +1423 1412 10000 +1728 1412 126.2516001116106 +1729 1412 -126.2516001116106 +1730 1412 -949.8122409159701 +1731 1412 949.8122409159701 +1413 1413 2 +1414 1413 -1 +1415 1413 -100 +1416 1413 -100 +1417 1413 -100 +1418 1413 -100 +1419 1413 -100 +1421 1413 -100 +1424 1413 -100 +1414 1414 2 +1415 1414 100 +1416 1414 100 +1417 1414 100 +1418 1414 100 +1419 1414 100 +1421 1414 100 +1424 1414 100 +1415 1415 10101.01588722676 +1416 1415 10000 +1417 1415 10000 +1418 1415 10000 +1419 1415 10000 +1421 1415 10000 +1424 1415 10000 +1728 1415 -1000.079432978999 +1729 1415 1000.079432978999 +1730 1415 -147.3761109211737 +1731 1415 147.3761109211737 +1416 1416 11288.52992408225 +1417 1416 10000 +1418 1416 10000 +1419 1416 10000 +1421 1416 10000 +1424 1416 10000 +1728 1416 -1000.079432979 +1730 1416 -45.11649593745723 +1417 1417 10813.14162792706 +1418 1417 10000 +1419 1417 10000 +1421 1417 10000 +1424 1417 10000 +1728 1417 -1000.079432978999 +1730 1417 -23.59750854744243 +1418 1418 10390.90166455283 +1419 1418 10000 +1421 1418 10000 +1424 1418 10000 +1728 1418 -1000.079432978999 +1730 1418 -33.22731786325942 +1419 1419 10215.93493520507 +1421 1419 10000 +1424 1419 10000 +1728 1419 -1000.079432978999 +1730 1419 -19.81804702837929 +1734 1419 1466.065943963893 +1738 1419 29.05225611693171 +1420 1420 10194.87130945076 +1422 1420 10000 +1423 1420 10000 +1728 1420 16.97737939195791 +1730 1420 -949.8122409159704 +1734 1420 -24.88798081784628 +1738 1420 1392.376778931493 +1421 1421 10131.61918863885 +1424 1421 10000 +1728 1421 -1000.079432978999 +1730 1421 -147.3987442636712 +2237 1421 1142.887521319789 +2244 1421 168.446805245613 +1422 1422 10118.81850687348 +1423 1422 10000 +1728 1422 126.270989249296 +1730 1422 -949.8122409159703 +2237 1422 -144.302075573987 +2244 1422 1085.442337821222 +1423 1423 10425.01661613095 +1728 1423 141.0891363892621 +1730 1423 -1061.19583524569 +1424 1424 10471.08494538035 +1728 1424 -1117.35781397039 +1730 1424 -164.6962747077632 +1425 1425 2 +1426 1425 -1 +1427 1425 -100 +1426 1426 2 +1427 1426 100 +1427 1427 10045.93645237992 +1431 1427 -670.3465699167509 +1432 1427 93.88502440694779 +1723 1427 -93.88502440694779 +1725 1427 670.3465699167509 +1428 1428 2 +1429 1428 -1 +1430 1428 -100 +1429 1429 2 +1430 1429 100 +1430 1430 10050.81868388874 +1431 1430 -109.5939359073753 +1432 1430 -705.8235182305589 +1723 1430 705.8235182305589 +1725 1430 109.5939359073753 +1431 1431 20482.18627165024 +1432 1431 304.3312248583674 +1435 1431 670.3465699167509 +1444 1431 109.5939359073753 +1723 1431 -304.3312248583674 +1725 1431 -20482.181778005 +1432 1432 20392.30999666448 +1435 1432 -93.88502440694779 +1444 1432 705.8235182305589 +1723 1432 -20392.3050147961 +1725 1432 -304.3312248583674 +1433 1433 2 +1434 1433 -1 +1435 1433 -100 +1436 1433 -100 +1437 1433 -100 +1438 1433 -100 +1446 1433 -100 +1434 1434 2 +1435 1434 100 +1436 1434 100 +1437 1434 100 +1438 1434 100 +1446 1434 100 +1435 1435 10045.93645237992 +1436 1435 10000 +1437 1435 10000 +1438 1435 10000 +1446 1435 10000 +1723 1435 93.88502440694779 +1725 1435 -670.3465699167509 +1436 1436 10304.46845611095 +1437 1436 10000 +1438 1436 10000 +1446 1436 10000 +1723 1436 98.57496506973018 +1724 1436 -256.1674929565048 +1725 1436 -670.3465699167509 +1726 1436 1742.034603878317 +1437 1437 10382.33486256354 +1438 1437 10000 +1446 1437 10000 +1723 1437 124.3104081499625 +1725 1437 -894.2273625187337 +1735 1437 -270.2055518369739 +1737 1437 1943.724596782037 +1438 1438 10570.39690550366 +1446 1438 10000 +1543 1438 -322.8038689311172 +1544 1438 2367.593897219102 +1723 1438 148.5087202183949 +1725 1438 -1089.232111241889 +1439 1439 2 +1440 1439 -1 +1441 1439 -100 +1442 1439 -100 +1443 1439 -100 +1444 1439 -100 +1445 1439 -100 +1440 1440 2 +1441 1440 100 +1442 1440 100 +1443 1440 100 +1444 1440 100 +1445 1440 100 +1441 1441 10337.43953370808 +1442 1441 10000 +1443 1441 10000 +1444 1441 10000 +1445 1441 10000 +1723 1441 -705.8235182305588 +1724 1441 1834.228812629667 +1725 1441 -115.0686008995094 +1726 1441 299.0296267372607 +1442 1442 10423.765927608 +1443 1442 10000 +1444 1442 10000 +1445 1442 10000 +1723 1442 -941.552819744255 +1725 1442 -145.1101172893604 +1735 1442 2046.592904238101 +1737 1442 315.4165439791572 +1443 1443 10632.26043423914 +1444 1443 10000 +1445 1443 10000 +1543 1443 2492.894764097799 +1544 1443 376.8156502675589 +1723 1443 -1146.877862031764 +1725 1443 -173.3573087732688 +1444 1444 10050.81868388874 +1445 1444 10000 +1723 1444 -705.8235182305589 +1725 1444 -109.5939359073753 +1445 1445 12149.21798795492 +1723 1445 -2191.023829259045 +1725 1445 -337.6997230665501 +1734 1445 4550.975329559335 +1738 1445 701.4360537532908 +1446 1446 11938.69260410428 +1723 1446 289.2947176303475 +1725 1446 -2080.895961403621 +1734 1446 -600.8940228426366 +1738 1446 4322.228748616627 +1447 1447 2 +1448 1447 -1 +1449 1447 -100 +1450 1447 -100 +1448 1448 2 +1449 1448 100 +1450 1448 100 +1449 1449 10332.14589403281 +1450 1449 10000 +1541 1449 -1492.98272137807 +1542 1449 -243.400404752688 +1735 1449 1814.817972767549 +1737 1449 295.8690832780342 +1450 1450 10160.29759591121 +1541 1450 -1262.131514190231 +1542 1450 -205.7911222918112 +1727 1450 1262.131514190231 +1732 1450 205.7911222918112 +1451 1451 2 +1452 1451 -1 +1453 1451 -100 +1454 1451 -100 +1452 1452 2 +1453 1452 100 +1454 1452 100 +1453 1453 10299.69359317568 +1454 1453 10000 +1541 1453 208.5120198637673 +1542 1453 -1417.940632992405 +1735 1453 -253.4599736275204 +1737 1453 1723.599414932795 +1454 1454 10144.68642995239 +1541 1454 176.2935547403736 +1542 1454 -1198.692746087963 +1727 1454 -176.2935547403736 +1732 1454 1198.692746087963 +1455 1455 2 +1456 1455 -1 +1457 1455 -100 +1458 1455 -100 +1459 1455 -100 +1460 1455 -100 +1461 1455 -100 +1462 1455 -100 +1456 1456 2 +1457 1456 100 +1458 1456 100 +1459 1456 100 +1460 1456 100 +1461 1456 100 +1462 1456 100 +1457 1457 10236.37796382406 +1458 1457 10000 +1459 1457 10000 +1460 1457 10000 +1461 1457 10000 +1462 1457 10000 +1543 1457 1534.20325845065 +1544 1457 250.1440282057088 +1735 1457 -1534.20325845065 +1737 1457 -250.1440282057088 +1458 1458 11365.94721926524 +1459 1458 10000 +1460 1458 10000 +1461 1458 10000 +1462 1458 10000 +1734 1458 3481.530465557429 +1735 1458 -3643.339105341746 +1737 1458 -550.6416854330793 +1738 1458 526.1864866299163 +1459 1459 10332.14589403281 +1460 1459 10000 +1461 1459 10000 +1462 1459 10000 +1541 1459 1492.98272137807 +1542 1459 243.400404752688 +1735 1459 -1814.817972767549 +1737 1459 -295.8690832780342 +1460 1460 10974.56455295516 +1461 1460 10000 +1462 1460 10000 +1545 1460 3090.396469977542 +1547 1460 503.8345335174932 +1735 1460 -2781.697520122892 +1737 1460 -453.5066248144108 +1461 1461 10423.765927608 +1462 1461 10000 +1723 1461 941.552819744255 +1725 1461 145.1101172893604 +1735 1461 -2046.592904238101 +1737 1461 -315.4165439791572 +1462 1462 10503.8617620784 +1733 1462 949.453623156552 +1735 1462 -2228.988234879982 +1736 1462 154.7845684750019 +1737 1462 -363.3805524115273 +1463 1463 2 +1464 1463 -1 +1465 1463 -100 +1466 1463 -100 +1467 1463 -100 +1468 1463 -100 +1469 1463 -100 +1470 1463 -100 +1464 1464 2 +1465 1464 100 +1466 1464 100 +1467 1464 100 +1468 1464 100 +1469 1464 100 +1470 1464 100 +1465 1465 10213.31092106495 +1466 1465 10000 +1467 1465 10000 +1468 1465 10000 +1469 1465 10000 +1470 1465 10000 +1543 1465 -214.2890297615888 +1544 1465 1457.089293986305 +1735 1465 214.2890297615888 +1737 1465 -1457.089293986305 +1466 1466 11232.18237841441 +1467 1466 10000 +1468 1466 10000 +1469 1466 10000 +1470 1466 10000 +1734 1466 -450.7642756950318 +1735 1466 471.7141295122373 +1737 1466 -3460.213225016994 +1738 1466 3306.53760517617 +1467 1467 10299.69359317568 +1468 1467 10000 +1469 1467 10000 +1470 1467 10000 +1541 1467 -208.5120198637673 +1542 1467 1417.940632992405 +1735 1467 253.4599736275204 +1737 1467 -1723.599414932795 +1468 1468 10879.15521723436 +1469 1468 10000 +1470 1468 10000 +1545 1468 -431.6161937676125 +1547 1468 2935.063255650226 +1735 1468 388.5021574131471 +1737 1468 -2641.880502699832 +1469 1469 10382.33486256354 +1470 1469 10000 +1723 1469 -124.3104081499625 +1725 1469 894.2273625187337 +1735 1469 270.2055518369739 +1737 1469 -1943.724596782037 +1470 1470 10454.5813044717 +1733 1470 -132.5981485086573 +1735 1470 311.2945232754481 +1736 1470 901.7310462728502 +1737 1470 -2116.952154530655 +1471 1471 2 +1472 1471 -1 +1473 1471 -100 +1474 1471 -100 +1475 1471 -100 +1476 1471 -100 +1472 1472 2 +1473 1472 100 +1474 1472 100 +1475 1472 100 +1476 1472 100 +1473 1473 10291.51890128854 +1474 1473 10000 +1475 1473 10000 +1476 1473 10000 +1545 1473 -1704.461502318364 +1546 1473 1704.461502318364 +1547 1473 -262.6739497008111 +1548 1473 262.6739497008111 +1474 1474 10321.36665434346 +1475 1474 10000 +1476 1474 10000 +1539 1474 669.7882431977549 +1540 1474 109.191024988387 +1545 1474 -1788.490206262835 +1547 1474 -291.5654026281143 +1475 1475 10974.56455295516 +1476 1475 10000 +1545 1475 -3090.396469977542 +1547 1475 -503.8345335174932 +1735 1475 2781.697520122892 +1737 1475 453.5066248144108 +1476 1476 10590.67483387666 +1545 1476 -2414.717396663262 +1547 1476 -393.6158210875077 +1727 1476 1788.066741341302 +1732 1476 291.4673822803741 +1477 1477 2 +1478 1477 -1 +1479 1477 -100 +1480 1477 -100 +1481 1477 -100 +1482 1477 -100 +1478 1478 2 +1479 1478 100 +1480 1478 100 +1481 1478 100 +1482 1478 100 +1479 1479 10263.04804611808 +1480 1479 10000 +1481 1479 10000 +1482 1479 10000 +1545 1479 225.0229446962531 +1546 1479 -225.0229446962531 +1547 1479 -1618.789813774723 +1548 1479 1618.789813774723 +1480 1480 10289.97071908141 +1481 1480 10000 +1482 1480 10000 +1539 1480 -93.53986569766469 +1540 1480 636.1225431022234 +1545 1480 249.7731714380368 +1547 1480 -1698.594966208491 +1481 1481 10879.15521723436 +1482 1481 10000 +1545 1481 431.6161937676125 +1547 1481 -2935.063255650226 +1735 1481 -388.5021574131471 +1737 1481 2641.880502699832 +1482 1482 10532.88669438383 +1545 1482 337.1959466899166 +1547 1482 -2293.345974400888 +1727 1482 -249.689201073584 +1732 1482 1698.192785988793 +1483 1483 2 +1484 1483 -1 +1485 1483 -100 +1486 1483 -100 +1487 1483 -100 +1488 1483 -100 +1489 1483 -100 +1484 1484 2 +1485 1484 100 +1486 1484 100 +1487 1484 100 +1488 1484 100 +1489 1484 100 +1485 1485 10144.68642995239 +1486 1485 10000 +1487 1485 10000 +1488 1485 10000 +1489 1485 10000 +1541 1485 -176.2935547403736 +1542 1485 1198.692746087963 +1727 1485 176.2935547403736 +1732 1485 -1198.692746087963 +1486 1486 10532.88669438383 +1487 1486 10000 +1488 1486 10000 +1489 1486 10000 +1545 1486 -337.1959466899166 +1547 1486 2293.345974400888 +1727 1486 249.689201073584 +1732 1486 -1698.192785988793 +1487 1487 10475.98340369448 +1488 1487 10000 +1489 1487 10000 +1539 1487 -160.5494159414669 +1540 1487 1091.821456412968 +1727 1487 317.4498969779449 +1732 1487 -2158.828213881322 +1488 1488 10250.62223668767 +1489 1488 10000 +1543 1488 -232.0419047567785 +1544 1488 1577.915025977212 +1727 1488 190.8921774172329 +1732 1488 -1298.091546886255 +1489 1489 10425.31814825823 +1727 1489 174.2536459258515 +1732 1489 -1253.476753966262 +2234 1489 -286.1530334343325 +2240 1489 2058.414178831556 +1490 1490 2 +1491 1490 -1 +1492 1490 -100 +1493 1490 -100 +1494 1490 -100 +1495 1490 -100 +1496 1490 -100 +1491 1491 2 +1492 1491 100 +1493 1491 100 +1494 1491 100 +1495 1491 100 +1496 1491 100 +1492 1492 10160.29759591121 +1493 1492 10000 +1494 1492 10000 +1495 1492 10000 +1496 1492 10000 +1541 1492 1262.131514190231 +1542 1492 205.7911222918112 +1727 1492 -1262.131514190231 +1732 1492 -205.7911222918112 +1493 1493 10590.67483387666 +1494 1493 10000 +1495 1493 10000 +1496 1493 10000 +1545 1493 2414.717396663262 +1547 1493 393.6158210875077 +1727 1493 -1788.066741341302 +1732 1493 -291.4673822803741 +1494 1494 10527.58914506629 +1495 1494 10000 +1496 1494 10000 +1539 1494 1149.604243877487 +1540 1494 187.4126625817179 +1727 1494 -2273.080513213248 +1732 1494 -370.5658477799699 +1495 1495 10277.74305919843 +1496 1495 10000 +1543 1495 1661.423486126604 +1544 1495 270.8673273333861 +1727 1495 -1366.790826903745 +1732 1495 -222.8323972777851 +1496 1496 10471.41923820802 +1727 1496 -1319.814872200452 +1732 1496 -203.4098944305222 +2234 1496 2167.352236707926 +2240 1496 334.0323699546538 +1497 1497 2 +1498 1497 -1 +1499 1497 -100 +1500 1497 -100 +1498 1498 2 +1499 1498 100 +1500 1498 100 +1499 1499 10969.99270691272 +1500 1499 10000 +1537 1499 -3105.000936223829 +1538 1499 -506.1678655579461 +1543 1499 1794.696688185605 +1544 1499 292.5660283657117 +1500 1500 10705.54242475587 +1537 1500 -2654.321805576465 +1538 1500 -432.6993181974721 +1539 1500 638.3195564830784 +1540 1500 104.0568767140711 +1501 1501 2 +1502 1501 -1 +1503 1501 -100 +1504 1501 -100 +1502 1502 2 +1503 1502 100 +1504 1502 100 +1503 1503 10875.03141214884 +1504 1503 10000 +1537 1503 433.6150720244584 +1538 1503 -2948.933654695877 +1543 1503 -250.6303700687708 +1544 1503 1704.489490492137 +1504 1504 10636.49726023233 +1537 1504 370.6773163450686 +1538 1504 -2520.907099106043 +1539 1504 -89.14163296651773 +1540 1504 606.2355732661208 +1505 1505 2 +1506 1505 -1 +1507 1505 -100 +1506 1506 2 +1507 1506 100 +1507 1507 10037.75215702933 +1511 1507 -606.235573266121 +1512 1507 114.4667683176246 +1539 1507 -114.4667683176246 +1540 1507 606.235573266121 +1508 1508 2 +1509 1508 -1 +1510 1508 -100 +1509 1509 2 +1510 1509 100 +1510 1510 10041.74518561888 +1511 1510 -133.6194323830604 +1512 1510 -638.3195564830781 +1539 1510 638.3195564830781 +1540 1510 133.6194323830604 +1511 1511 20876.38464828951 +1512 1511 410.2868398336862 +1515 1511 606.235573266121 +1520 1511 133.6194323830604 +1539 1511 -410.2868398336862 +1540 1511 -20876.3809730738 +1512 1512 20713.03112425739 +1515 1512 -114.4667683176246 +1520 1512 638.3195564830781 +1539 1512 -20713.02704973883 +1540 1512 -410.2868398336862 +1513 1513 2 +1514 1513 -1 +1515 1513 -100 +1516 1513 -100 +1522 1513 -100 +1524 1513 -100 +1514 1514 2 +1515 1514 100 +1516 1514 100 +1522 1514 100 +1524 1514 100 +1515 1515 10037.75215702933 +1516 1515 10000 +1522 1515 10000 +1524 1515 10000 +1539 1515 114.4667683176246 +1540 1515 -606.235573266121 +1516 1516 10636.49726023233 +1522 1516 10000 +1524 1516 10000 +1537 1516 -370.6773163450686 +1538 1516 2520.907099106043 +1539 1516 89.14163296651773 +1540 1516 -606.2355732661208 +1517 1517 2 +1518 1517 -1 +1519 1517 -100 +1520 1517 -100 +1521 1517 -100 +1523 1517 -100 +1518 1518 2 +1519 1518 100 +1520 1518 100 +1521 1518 100 +1523 1518 100 +1519 1519 10705.54242475587 +1520 1519 10000 +1521 1519 10000 +1523 1519 10000 +1537 1519 2654.321805576465 +1538 1519 432.6993181974721 +1539 1519 -638.3195564830784 +1540 1519 -104.0568767140711 +1520 1520 10041.74518561888 +1521 1520 10000 +1523 1520 10000 +1539 1520 -638.3195564830781 +1540 1520 -133.6194323830604 +1521 1521 10527.58914506629 +1523 1521 10000 +1539 1521 -1149.604243877487 +1540 1521 -187.4126625817179 +1727 1521 2273.080513213248 +1732 1521 370.5658477799699 +1522 1522 10475.98340369448 +1524 1522 10000 +1539 1522 160.5494159414669 +1540 1522 -1091.821456412968 +1727 1522 -317.4498969779449 +1732 1522 2158.828213881322 +1523 1523 10321.36665434346 +1539 1523 -669.7882431977549 +1540 1523 -109.191024988387 +1545 1523 1788.490206262835 +1547 1523 291.5654026281143 +1524 1524 10289.97071908141 +1539 1524 93.53986569766469 +1540 1524 -636.1225431022234 +1545 1524 -249.7731714380368 +1547 1524 1698.594966208491 +1525 1525 2 +1526 1525 -1 +1527 1525 -100 +1528 1525 -100 +1529 1525 -100 +1530 1525 -100 +1526 1526 2 +1527 1526 100 +1528 1526 100 +1529 1526 100 +1530 1526 100 +1527 1527 10277.74305919843 +1528 1527 10000 +1529 1527 10000 +1530 1527 10000 +1543 1527 -1661.423486126604 +1544 1527 -270.8673273333861 +1727 1527 1366.790826903745 +1732 1527 222.8323972777851 +1528 1528 10632.26043423914 +1529 1528 10000 +1530 1528 10000 +1543 1528 -2492.894764097799 +1544 1528 -376.8156502675589 +1723 1528 1146.877862031764 +1725 1528 173.3573087732688 +1529 1529 10236.37796382406 +1530 1529 10000 +1543 1529 -1534.20325845065 +1544 1529 -250.1440282057088 +1735 1529 1534.20325845065 +1737 1529 250.1440282057088 +1530 1530 10969.99270691272 +1537 1530 3105.000936223829 +1538 1530 506.1678655579461 +1543 1530 -1794.696688185605 +1544 1530 -292.5660283657117 +1531 1531 2 +1532 1531 -1 +1533 1531 -100 +1534 1531 -100 +1535 1531 -100 +1536 1531 -100 +1532 1532 2 +1533 1532 100 +1534 1532 100 +1535 1532 100 +1536 1532 100 +1533 1533 10250.62223668767 +1534 1533 10000 +1535 1533 10000 +1536 1533 10000 +1543 1533 232.0419047567785 +1544 1533 -1577.915025977212 +1727 1533 -190.8921774172329 +1732 1533 1298.091546886255 +1534 1534 10570.39690550366 +1535 1534 10000 +1536 1534 10000 +1543 1534 322.8038689311172 +1544 1534 -2367.593897219102 +1723 1534 -148.5087202183949 +1725 1534 1089.232111241889 +1535 1535 10213.31092106495 +1536 1535 10000 +1543 1535 214.2890297615888 +1544 1535 -1457.089293986305 +1735 1535 -214.2890297615888 +1737 1535 1457.089293986305 +1536 1536 10875.03141214884 +1537 1536 -433.6150720244584 +1538 1536 2948.933654695877 +1543 1536 250.6303700687708 +1544 1536 -1704.489490492137 +1537 1537 40761.81208119902 +1538 1537 637.4141734023003 +1539 1537 -4913.652471417582 +1540 1537 -76.83751770619307 +1543 1537 -11750.38667301842 +1544 1537 -183.7474149653123 +1538 1538 40959.44067887338 +1539 1538 -76.83751770619321 +1540 1538 -4937.476569731231 +1543 1538 -183.7474149653126 +1544 1538 -11807.35908197504 +1539 1539 29883.85165002048 +1540 1539 553.70089105649 +1545 1539 -7640.07026058155 +1547 1539 -119.4764522158347 +1727 1539 -10139.39157219348 +1732 1539 -158.5615789601133 +1540 1540 30091.6734321022 +1545 1540 -119.4764522158342 +1547 1540 -7677.116339797994 +1727 1540 -158.5615789601133 +1732 1540 -10188.55691194239 +1541 1541 34186.06117730405 +1542 1541 534.6652651870637 +1727 1541 -20432.60059357444 +1732 1541 -319.5789309203944 +1735 1541 -16718.20992171277 +1737 1541 -261.4514820128273 +1542 1542 34351.86253669527 +1727 1542 -319.5789309203944 +1732 1542 -20531.70904145632 +1735 1542 -261.4514820128267 +1737 1542 -16799.28140758641 +1543 1543 67659.6770037331 +1544 1543 1036.161962953287 +1723 1543 -9226.599102657014 +1725 1543 -134.1818102795791 +1727 1543 -16765.91932789328 +1732 1543 -262.2032408229985 +1735 1543 -20432.5711371401 +1737 1543 -319.5680504267168 +1544 1544 67974.39230585762 +1723 1544 -134.1818102795788 +1725 1544 -9265.176164184797 +1727 1544 -262.2032408229985 +1732 1544 -16847.22574857925 +1735 1544 -319.5680504267168 +1737 1544 -20531.67283657658 +1545 1545 81035.3548732171 +1546 1545 -20386.45833380461 +1547 1545 1250.476834844473 +1548 1545 -302.0549259369465 +1727 1545 -14960.84718061051 +1732 1545 -233.9374721996956 +1735 1545 -18041.84512322274 +1737 1545 -282.1559392293776 +1546 1546 35879.49750873807 +1547 1546 -302.0549259369465 +1548 1546 527.3400480894895 +1547 1547 81417.96232515173 +1548 1547 -20474.99562710309 +1727 1547 -233.9374721996955 +1732 1547 -15033.37699039557 +1735 1547 -282.1559392293788 +1737 1547 -18129.33814959868 +1548 1548 36032.79251947141 +1549 1549 2 +1550 1549 -1 +1551 1549 -100 +1552 1549 -100 +1550 1550 2 +1551 1550 100 +1552 1550 100 +1551 1551 10584.68192806327 +1552 1551 10000 +1721 1551 2415.951009568014 +1722 1551 393.8280538981917 +1724 1551 -1834.228812629667 +1726 1551 -299.0005843748862 +1552 1552 10337.43953370808 +1723 1552 705.8235182305588 +1724 1552 -1834.228812629667 +1725 1552 115.0686008995094 +1726 1552 -299.0296267372607 +1553 1553 2 +1554 1553 -1 +1555 1553 -100 +1556 1553 -100 +1554 1554 2 +1555 1554 100 +1556 1554 100 +1555 1555 10527.48109339882 +1556 1555 10000 +1721 1555 -337.377758598085 +1722 1555 2294.517581974093 +1724 1555 256.142613451286 +1726 1555 -1742.034603878317 +1556 1556 10304.46845611095 +1723 1556 -98.57496506973018 +1724 1556 256.1674929565048 +1725 1556 670.3465699167509 +1726 1556 -1742.034603878317 +1557 1557 2 +1558 1557 -1 +1559 1557 -100 +1560 1557 -100 +1561 1557 -100 +1558 1558 2 +1559 1558 100 +1560 1558 100 +1561 1558 100 +1559 1559 10507.22701794913 +1560 1559 10000 +1561 1559 10000 +1663 1559 -27.70886895850216 +1664 1559 2249.948928196216 +1729 1559 11.69725347491386 +1731 1559 -949.8122409159703 +1560 1560 10211.1696185313 +1561 1560 10000 +1729 1560 167.90922765928 +1731 1560 -1262.760768669947 +2237 1560 -191.8861189201802 +2244 1560 1443.078896869358 +1561 1561 10091.21432929938 +1728 1561 -126.2516001116106 +1729 1561 126.2516001116106 +1730 1561 949.8122409159701 +1731 1561 -949.8122409159701 +1562 1562 2 +1563 1562 -1 +1564 1562 -100 +1565 1562 -100 +1566 1562 -100 +1563 1563 2 +1564 1563 100 +1565 1563 100 +1566 1563 100 +1564 1564 10562.2272987179 +1565 1564 10000 +1566 1564 10000 +1663 1564 2369.023635842199 +1664 1564 32.3451373409796 +1729 1564 -1000.079432978999 +1731 1564 -13.65444655012696 +1565 1565 10234.00401420445 +1566 1565 10000 +1729 1565 -1329.590227539815 +1731 1565 -196.0039234221707 +2237 1565 1519.45138497404 +2244 1565 223.9926458057881 +1566 1566 10101.01588722676 +1728 1566 1000.079432978999 +1729 1566 -1000.079432978999 +1730 1566 147.3761109211737 +1731 1566 -147.3761109211737 +1567 1567 2 +1568 1567 -1 +1569 1567 -100 +1570 1567 -100 +1568 1568 2 +1569 1568 100 +1570 1568 100 +1569 1569 10814.63595003156 +1570 1569 10000 +1661 1569 -2852.430454948128 +1662 1569 -439.6482800583185 +1721 1569 2415.951009568014 +1722 1569 372.373217450117 +1570 1570 14433.88411385044 +1649 1570 6573.874682653323 +1650 1570 1071.686753661319 +1661 1570 -6274.291410405888 +1662 1570 -1022.848064154006 +1571 1571 2 +1572 1571 -1 +1573 1571 -100 +1574 1571 -100 +1572 1572 2 +1573 1572 100 +1574 1572 100 +1573 1573 10734.89961896297 +1574 1573 10000 +1661 1573 376.6302319740856 +1662 1573 -2709.058173910205 +1721 1573 -318.9982029511653 +1722 1573 2294.517581974093 +1574 1574 13999.46142729516 +1649 1574 -918.073944430026 +1650 1574 6243.450707942747 +1661 1574 876.2356664410629 +1662 1574 -5958.925449477348 +1575 1575 2 +1576 1575 -1 +1577 1575 -100 +1578 1575 -100 +1576 1576 2 +1577 1576 100 +1578 1576 100 +1577 1577 14433.88411385044 +1578 1577 10000 +1649 1577 -6573.874682653323 +1650 1577 -1071.686753661319 +1661 1577 6274.291410405888 +1662 1577 1022.848064154006 +1578 1578 10894.18948097614 +1647 1578 2988.627579636081 +1648 1578 487.2125856548621 +1649 1578 -2988.627579636081 +1650 1578 -487.2125856548621 +1579 1579 2 +1580 1579 -1 +1581 1579 -100 +1582 1579 -100 +1580 1580 2 +1581 1580 100 +1582 1580 100 +1581 1581 11338.14805367164 +1582 1581 10000 +1647 1581 3645.012207684551 +1648 1581 594.2006102111443 +1663 1581 -2889.326235150897 +1664 1581 -471.0106068797867 +1582 1582 10562.2272987179 +1663 1582 -2369.023635842199 +1664 1582 -32.3451373409796 +1729 1582 1000.079432978999 +1731 1582 13.65444655012696 +1583 1583 2 +1584 1583 -1 +1585 1583 -100 +1586 1583 -100 +1584 1584 2 +1585 1584 100 +1586 1584 100 +1585 1585 13999.46142729516 +1586 1585 10000 +1649 1585 918.073944430026 +1650 1585 -6243.450707942747 +1661 1585 -876.2356664410629 +1662 1585 5958.925449477348 +1586 1586 10806.65690309615 +1647 1586 -417.3767929480901 +1648 1586 2838.409595347639 +1649 1586 417.3767929480901 +1650 1586 -2838.409595347639 +1587 1587 2 +1588 1587 -1 +1589 1587 -100 +1590 1587 -100 +1588 1588 2 +1589 1588 100 +1590 1588 100 +1589 1589 11207.10753132113 +1590 1589 10000 +1647 1589 -509.0294306013902 +1648 1589 3461.802231882946 +1663 1589 403.4971639326271 +1664 1589 -2744.099454151662 +1590 1590 10507.22701794913 +1663 1590 27.70886895850216 +1664 1590 -2249.948928196216 +1729 1590 -11.69725347491386 +1731 1590 949.8122409159703 +1591 1591 2 +1592 1591 -1 +1639 1591 -100 +1640 1591 -100 +1641 1591 -100 +1642 1591 -100 +1644 1591 -100 +1646 1591 -100 +1592 1592 2 +1639 1592 100 +1640 1592 100 +1641 1592 100 +1642 1592 100 +1644 1592 100 +1646 1592 100 +1593 1593 2 +1594 1593 1 +1595 1593 -1 +1596 1593 -100 +1594 1594 2 +1595 1594 -1 +1596 1594 -100 +1595 1595 2 +1596 1595 100 +1596 1596 18717.34490360321 +1601 1596 -9336.13672972028 +1602 1596 434.8377065606814 +1647 1596 -132.201097140292 +1648 1596 2838.409595347639 +1597 1597 2 +1598 1597 1 +1599 1597 -1 +1600 1597 -100 +1598 1598 2 +1599 1598 -1 +1600 1598 -100 +1599 1599 2 +1600 1599 100 +1600 1600 19664.35365654927 +1601 1600 -507.5950722061561 +1602 1600 -9830.23583468335 +1647 1600 2988.627579636081 +1648 1600 154.3210821789558 +1601 1601 20054.19737759888 +1602 1601 101.2067724154685 +1638 1601 9336.13672972028 +1639 1601 507.5950722061561 +1647 1601 -30.7692873674139 +1648 1601 -6096.692224598175 +1602 1602 20044.35237231993 +1638 1602 -434.8377065606814 +1639 1602 9830.23583468335 +1647 1602 -6093.670315414545 +1648 1602 -30.76928736741376 +1603 1603 2 +1604 1603 1 +1605 1603 -1 +1606 1603 -100 +1604 1604 2 +1605 1604 -1 +1606 1604 -100 +1605 1605 2 +1606 1605 100 +1606 1606 20001 +1611 1606 -4109.275590773894 +1612 1606 135.4894847931115 +1647 1606 -40.49276110033765 +1648 1606 1166.380726678046 +1607 1607 2 +1608 1607 1 +1609 1607 -1 +1610 1607 -100 +1608 1608 2 +1609 1608 -1 +1610 1608 -100 +1609 1609 2 +1610 1609 100 +1610 1610 20001 +1611 1610 -150.2100734630467 +1612 1610 -3706.566542648244 +1647 1610 1107.754699511489 +1648 1610 42.63577138353855 +1611 1611 3382.741789419982 +1637 1611 4109.275590773894 +1640 1611 150.2100734630467 +1647 1611 4.336808689942018e-15 +1648 1611 -959.8768344077769 +1612 1612 2752.398587113772 +1637 1612 -135.4894847931115 +1640 1612 3706.566542648244 +1647 1612 -822.2905700019962 +1613 1613 2 +1614 1613 1 +1615 1613 -1 +1616 1613 -100 +1614 1614 2 +1615 1614 -1 +1616 1614 -100 +1615 1615 2 +1616 1615 100 +1616 1616 12016.61434466851 +1621 1616 -4489.559382242883 +1622 1616 200.8244466982731 +1647 1616 -126.966142544703 +1648 1616 2838.409595347638 +1617 1617 2 +1618 1617 1 +1619 1617 -1 +1620 1617 -100 +1618 1618 2 +1619 1618 -1 +1620 1618 -100 +1619 1619 2 +1620 1619 100 +1620 1620 12235.60572787727 +1621 1620 -234.4265411774863 +1622 1620 -4727.16165143236 +1647 1620 2988.62757963608 +1648 1620 148.2102111209669 +1621 1621 20049.38769080204 +1622 1621 97.19914411417798 +1636 1621 4489.559382242883 +1641 1621 234.4265411774863 +1647 1621 -61.45168374528359 +1648 1621 -12675.58738917444 +1622 1622 20040.24149130207 +1636 1622 -200.8244466982731 +1641 1622 4727.16165143236 +1647 1622 -12669.79109227081 +1648 1622 -61.45168374528387 +1623 1623 2 +1624 1623 1 +1625 1623 -1 +1626 1623 -100 +1624 1624 2 +1625 1624 -1 +1626 1624 -100 +1625 1625 2 +1626 1625 100 +1626 1626 13085.08684305867 +1631 1626 -5553.455539624559 +1632 1626 202.789855436473 +1647 1626 -103.6472998483677 +1648 1626 2838.409595347639 +1627 1627 2 +1628 1627 1 +1629 1627 -1 +1630 1627 -100 +1628 1628 2 +1629 1628 -1 +1630 1628 -100 +1629 1629 2 +1630 1629 100 +1630 1630 13420.16505158791 +1631 1630 -236.7208035547579 +1632 1630 -5847.362697479874 +1647 1630 2988.627579636081 +1648 1630 120.9896424728832 +1631 1631 20033.08643372266 +1632 1631 79.34736484145652 +1635 1631 5553.455539624559 +1642 1631 236.7208035547579 +1647 1631 -40.55498781336535 +1648 1631 -10238.89161658478 +1632 1632 20027.01024820957 +1635 1632 -202.789855436473 +1642 1632 5847.362697479874 +1647 1632 -10235.76890999967 +1648 1632 -40.55498781336535 +1633 1633 2 +1634 1633 -1 +1635 1633 -100 +1636 1633 -100 +1637 1633 -100 +1638 1633 -100 +1643 1633 -100 +1645 1633 -100 +1634 1634 2 +1635 1634 100 +1636 1634 100 +1637 1634 100 +1638 1634 100 +1643 1634 100 +1645 1634 100 +1635 1635 13085.08684305867 +1636 1635 10000 +1637 1635 10000 +1638 1635 10000 +1643 1635 10000 +1645 1635 10000 +1647 1635 103.6472998483677 +1648 1635 -2838.409595347639 +1636 1636 12016.61434466851 +1637 1636 10000 +1638 1636 10000 +1643 1636 10000 +1645 1636 10000 +1647 1636 126.966142544703 +1648 1636 -2838.409595347638 +1637 1637 20001 +1638 1637 10000 +1643 1637 10000 +1645 1637 10000 +1647 1637 40.49276110033765 +1648 1637 -1166.380726678046 +1638 1638 18717.34490360321 +1643 1638 10000 +1645 1638 10000 +1647 1638 132.201097140292 +1648 1638 -2838.409595347639 +1639 1639 19664.35365654927 +1640 1639 10000 +1641 1639 10000 +1642 1639 10000 +1644 1639 10000 +1646 1639 10000 +1647 1639 -2988.627579636081 +1648 1639 -154.3210821789558 +1640 1640 20001 +1641 1640 10000 +1642 1640 10000 +1644 1640 10000 +1646 1640 10000 +1647 1640 -1107.754699511489 +1648 1640 -42.63577138353855 +1641 1641 12235.60572787727 +1642 1641 10000 +1644 1641 10000 +1646 1641 10000 +1647 1641 -2988.62757963608 +1648 1641 -148.2102111209669 +1642 1642 13420.16505158791 +1644 1642 10000 +1646 1642 10000 +1647 1642 -2988.627579636081 +1648 1642 -120.9896424728832 +1643 1643 10806.65690309615 +1645 1643 10000 +1647 1643 417.3767929480901 +1648 1643 -2838.409595347639 +1649 1643 -417.3767929480901 +1650 1643 2838.409595347639 +1644 1644 10894.18948097614 +1646 1644 10000 +1647 1644 -2988.627579636081 +1648 1644 -487.2125856548621 +1649 1644 2988.627579636081 +1650 1644 487.2125856548621 +1645 1645 11207.10753132114 +1647 1645 509.0294306013909 +1648 1645 -3461.802231882947 +1663 1645 -403.4971639326275 +1664 1645 2744.099454151666 +1646 1646 11338.14805367164 +1647 1646 -3645.012207684551 +1648 1646 -594.2006102111443 +1663 1646 2889.326235150897 +1664 1646 471.0106068797867 +1647 1647 56074.6193559272 +1648 1647 705.9316964791068 +1649 1647 -20432.45055462734 +1650 1647 -319.5235063031965 +1663 1647 -16092.96235115357 +1664 1647 -251.6554224857684 +1648 1648 56305.00019632294 +1649 1648 -319.5235063031965 +1650 1648 -20531.52462870717 +1663 1648 -251.6554224857688 +1664 1648 -16170.99042913785 +1649 1649 40351.97000142416 +1650 1649 631.0242016371014 +1661 1649 -19011.6659328981 +1662 1649 -297.3050493685619 +1650 1650 40547.62172078859 +1661 1650 -297.3050493685603 +1662 1650 -19103.85071584438 +1651 1651 2 +1652 1651 -1 +1653 1651 -100 +1654 1651 -100 +1655 1651 -100 +1652 1652 2 +1653 1652 100 +1654 1652 100 +1655 1652 100 +1653 1653 10527.48109339882 +1654 1653 10000 +1655 1653 10000 +1721 1653 337.377758598085 +1722 1653 -2294.517581974093 +1724 1653 -256.142613451286 +1726 1653 1742.034603878317 +1654 1654 10734.89961896297 +1655 1654 10000 +1661 1654 -376.6302319740856 +1662 1654 2709.058173910205 +1721 1654 318.9982029511653 +1722 1654 -2294.517581974093 +1655 1655 11561.4544990708 +1721 1655 533.8946613219097 +1722 1655 -3916.341620769521 +2246 1655 -282.8735271028159 +2250 1655 2074.996151607276 +1656 1656 2 +1657 1656 -1 +1658 1656 -100 +1659 1656 -100 +1660 1656 -100 +1657 1657 2 +1658 1657 100 +1659 1657 100 +1660 1657 100 +1658 1658 10584.68192806327 +1659 1658 10000 +1660 1658 10000 +1721 1658 -2415.951009568014 +1722 1658 -393.8280538981917 +1724 1658 1834.228812629667 +1726 1658 299.0005843748862 +1659 1659 10814.63595003156 +1660 1659 10000 +1661 1659 2852.430454948128 +1662 1659 439.6482800583184 +1721 1659 -2415.951009568014 +1722 1659 -372.3732174501172 +1660 1660 11730.99392018564 +1721 1660 -4123.607318088613 +1722 1660 -623.226309667692 +2246 1660 2184.811782096837 +2250 1660 330.2041342059346 +1661 1661 38531.91757730783 +1662 1661 585.8533356427625 +1721 1661 -17267.00985826269 +1722 1661 -255.8700696267036 +1662 1662 38708.45532732042 +1721 1662 -255.8700696267036 +1722 1662 -17342.02005619974 +1663 1663 32759.64985353427 +1664 1663 226.2426715775462 +1729 1663 -8444.247641144369 +1731 1663 -11.29694001650397 +1664 1664 32822.19054430057 +1729 1664 -11.29694001650397 +1731 1664 -8444.541007927697 +1665 1665 2 +1666 1665 -1 +1667 1665 -100 +1668 1665 -100 +1669 1665 -100 +1670 1665 -100 +1720 1665 -100 +1666 1666 2 +1667 1666 100 +1668 1666 100 +1669 1666 100 +1670 1666 100 +1720 1666 100 +1667 1667 12149.21798795492 +1668 1667 10000 +1669 1667 10000 +1670 1667 10000 +1720 1667 10000 +1723 1667 2191.023829259045 +1725 1667 337.6997230665501 +1734 1667 -4550.975329559335 +1738 1667 -701.4360537532908 +1668 1668 11365.94721926524 +1669 1668 10000 +1670 1668 10000 +1720 1668 10000 +1734 1668 -3481.530465557429 +1735 1668 3643.339105341746 +1737 1668 550.6416854330793 +1738 1668 -526.1864866299163 +1669 1669 10215.93493520507 +1670 1669 10000 +1720 1669 10000 +1728 1669 1000.079432978999 +1730 1669 19.81804702837929 +1734 1669 -1466.065943963893 +1738 1669 -29.05225611693171 +1670 1670 10947.81739193094 +1720 1670 10000 +1733 1670 1355.556741880533 +1734 1670 -3041.041353882654 +1736 1670 220.9737004252491 +1738 1670 -495.7300128812185 +1671 1671 2 +1672 1671 -1 +1673 1671 -100 +1674 1671 -100 +1675 1671 -100 +1676 1671 -100 +1719 1671 -100 +1672 1672 2 +1673 1672 100 +1674 1672 100 +1675 1672 100 +1676 1672 100 +1719 1672 100 +1673 1673 11938.69260410428 +1674 1673 10000 +1675 1673 10000 +1676 1673 10000 +1719 1673 10000 +1723 1673 -289.2947176303475 +1725 1673 2080.895961403621 +1734 1673 600.8940228426366 +1738 1673 -4322.228748616627 +1674 1674 11232.18237841441 +1675 1674 10000 +1676 1674 10000 +1719 1674 10000 +1734 1674 450.7642756950318 +1735 1674 -471.7141295122373 +1737 1674 3460.213225016994 +1738 1674 -3306.53760517617 +1675 1675 10194.87130945076 +1676 1675 10000 +1719 1675 10000 +1728 1675 -16.97737939195791 +1730 1675 949.8122409159704 +1734 1675 24.88798081784628 +1738 1675 -1392.376778931493 +1676 1676 10855.02927825237 +1719 1676 10000 +1733 1676 -189.2999013672793 +1734 1676 424.6733541712104 +1736 1676 1287.422122919847 +1738 1676 -2888.188885602322 +1677 1677 2 +1678 1677 -1 +1679 1677 -100 +1680 1677 -100 +1681 1677 -100 +1718 1677 -100 +2255 1677 -100 +1678 1678 2 +1679 1678 100 +1680 1678 100 +1681 1678 100 +1718 1678 100 +2255 1678 100 +1679 1679 11561.4544990708 +1680 1679 10000 +1681 1679 10000 +1718 1679 10000 +1721 1679 -533.8946613219097 +1722 1679 3916.341620769521 +2246 1679 282.8735271028159 +2250 1679 -2074.996151607276 +2255 1679 10000 +1680 1680 11772.70897734582 +1681 1680 10000 +1718 1680 10000 +2246 1680 298.6724045320788 +2247 1680 -613.8466421868462 +2250 1680 -2031.122496511315 +2251 1680 4174.465753898343 +2255 1680 10000 +1681 1681 10148.79380648747 +1718 1681 10000 +2237 1681 -15.46945577793489 +2244 1681 1085.442337821222 +2246 1681 17.32592361416992 +2250 1681 -1215.704760570904 +2255 1681 10000 +1682 1682 2 +1683 1682 -1 +1684 1682 -100 +1685 1682 -100 +1683 1683 2 +1684 1683 100 +1685 1683 100 +1684 1684 11154.66492306481 +1685 1684 10000 +1710 1684 -521.3587629327639 +1711 1684 -3382.735823743018 +2246 1684 1648.443469082435 +2250 1684 254.0637201915599 +1685 1685 10690.98198345913 +1708 1685 96.02943859911635 +1709 1685 635.403781889764 +1710 1685 -396.9844264699626 +1711 1685 -2626.750813189428 +1686 1686 2 +1687 1686 -1 +1688 1686 -100 +1689 1686 -100 +1687 1687 2 +1688 1687 100 +1689 1687 100 +1688 1688 11041.60574931007 +1689 1688 10000 +1710 1688 -3212.708698153536 +1711 1688 446.6285454341879 +2246 1688 -217.646883229598 +2250 1688 1565.587426119344 +1689 1689 10623.36374232521 +1708 1689 603.4663548329088 +1709 1689 -82.26482708206855 +1710 1689 -2494.721913009972 +1711 1689 340.0817048838409 +1690 1690 2 +1691 1690 -1 +1703 1690 -100 +1705 1690 -100 +1707 1690 -100 +1691 1691 2 +1703 1691 100 +1705 1691 100 +1707 1691 100 +1692 1692 2 +1693 1692 -1 +1702 1692 -100 +1704 1692 -100 +1706 1692 -100 +1693 1693 2 +1702 1693 100 +1704 1693 100 +1706 1693 100 +1694 1694 2 +1695 1694 -1 +1696 1694 -100 +1695 1695 2 +1696 1695 100 +1696 1696 10037.41716414153 +1700 1696 -603.4663548329088 +1701 1696 127.0377318110862 +1708 1696 603.4663548329088 +1709 1696 -127.0377318110862 +1697 1697 2 +1698 1697 -1 +1699 1697 -100 +1698 1698 2 +1699 1698 100 +1699 1699 10041.37379660398 +1700 1699 -148.2937787561805 +1701 1699 -635.4037818897639 +1708 1699 148.2937787561805 +1709 1699 635.4037818897639 +1700 1700 21089.37579234633 +1701 1700 457.4348527381946 +1702 1700 603.4663548329088 +1703 1700 148.2937787561805 +1708 1700 -21089.37215062992 +1709 1700 -457.4348527381946 +1701 1701 20886.32155738118 +1702 1701 -127.0377318110862 +1703 1701 635.4037818897639 +1708 1701 -457.4348527381946 +1709 1701 -20886.31752000152 +1702 1702 10037.41716414153 +1704 1702 10000 +1706 1702 10000 +1708 1702 -603.4663548329088 +1709 1702 127.0377318110862 +1703 1703 10041.37379660398 +1705 1703 10000 +1707 1703 10000 +1708 1703 -148.2937787561805 +1709 1703 -635.4037818897639 +1704 1704 10967.22691337038 +1706 1704 10000 +1708 1704 -1330.146941784931 +1709 1704 181.331704952213 +1734 1704 -418.3862998119038 +1738 1704 3069.045522547628 +1705 1705 11072.20501536306 +1707 1705 10000 +1708 1705 -211.6722595114677 +1709 1705 -1400.542698877168 +1734 1705 3231.469519719223 +1738 1705 488.3910039513871 +1706 1706 10623.36374232521 +1708 1706 -603.4663548329088 +1709 1706 82.26482708206855 +1710 1706 2494.721913009972 +1711 1706 -340.0817048838409 +1707 1707 10690.98198345913 +1708 1707 -96.02943859911635 +1709 1707 -635.403781889764 +1710 1707 396.9844264699626 +1711 1707 2626.750813189428 +1708 1708 26032.31304010843 +1709 1708 529.0108198322948 +1710 1708 -4948.446867642582 +1711 1708 -71.65419632184144 +1719 1708 1330.146941784931 +1720 1708 211.6722595114677 +1734 1708 -125.1548047361223 +1738 1708 -8642.957796924358 +1709 1709 25808.68369449193 +1710 1709 -71.65419632184144 +1711 1709 -4927.849736499117 +1719 1709 -181.331704952213 +1720 1709 1400.542698877168 +1734 1709 -8606.980740340965 +1738 1709 -125.1548047361228 +1710 1710 40765.57461991814 +1711 1710 595.8446640687412 +1717 1710 521.3587629327639 +1718 1710 3212.708698153534 +2246 1710 -146.0115335309079 +2250 1710 -9896.646780210476 +1711 1711 40592.59959374179 +1717 1711 3382.735823743018 +1718 1711 -446.6285454341876 +2246 1711 -9853.844562914908 +2250 1711 -146.011533530908 +1712 1712 2 +1713 1712 -1 +1714 1712 -100 +1715 1712 -100 +1716 1712 -100 +1717 1712 -100 +2254 1712 -100 +1713 1713 2 +1714 1713 100 +1715 1713 100 +1716 1713 100 +1717 1713 100 +2254 1713 100 +1714 1714 11730.99392018564 +1715 1714 10000 +1716 1714 10000 +1717 1714 10000 +1721 1714 4123.607318088613 +1722 1714 623.226309667692 +2246 1714 -2184.811782096837 +2250 1714 -330.2041342059346 +2254 1714 10000 +1715 1715 11965.20066139174 +1716 1715 10000 +1717 1715 10000 +2246 1715 -2138.616188672213 +2247 1715 4395.39223049269 +2250 1715 -348.6464914543707 +2251 1715 716.5559149154816 +2254 1715 10000 +1716 1716 10164.8512284829 +1717 1716 10000 +2237 1716 1142.887521319789 +2244 1716 18.0578165235425 +2246 1716 -1280.043860509882 +2250 1716 -20.22490992681578 +2254 1716 10000 +1717 1717 11154.66492306481 +2246 1717 -1648.443469082435 +2250 1717 -254.0637201915599 +2254 1717 10000 +1718 1718 11041.60574931007 +2246 1718 217.6468832295979 +2250 1718 -1565.587426119342 +2255 1718 10000 +1719 1719 10967.22691337038 +1734 1719 418.3862998119038 +1738 1719 -3069.045522547628 +1720 1720 11072.20501536306 +1734 1720 -3231.469519719223 +1738 1720 -488.3910039513871 +1721 1721 55080.62683427233 +1722 1721 827.3815123447977 +1724 1721 -15512.60206307285 +1726 1721 -242.5716422221159 +2246 1721 -10608.98406503307 +2250 1721 -154.2664003986591 +1722 1722 55326.91217443087 +1724 1722 -242.5716422221158 +1726 1722 -15587.81093327612 +2246 1722 -154.2664003986571 +2250 1722 -10653.32964443031 +1723 1723 36493.35837766575 +1724 1723 -7862.554404139682 +1725 1723 544.2291150587059 +1726 1723 -122.9587490614814 +1734 1723 -9462.743259177532 +1735 1723 -9292.206173681465 +1737 1723 -137.6845766030355 +1738 1723 -140.2209650239552 +1724 1724 32209.92875562685 +1725 1724 -122.9587490614816 +1726 1724 503.6981003722213 +1725 1725 36654.0118672374 +1726 1725 -7900.681230282886 +1734 1725 -140.2209650239544 +1735 1725 -137.6845766030366 +1737 1725 -9332.565955385977 +1738 1725 -9503.849434064159 +1726 1726 32366.10570674182 +1727 1727 72900.86239792297 +1732 1727 1133.88594665229 +2234 1727 -12396.53568137267 +2240 1727 -183.6845434618445 +1728 1728 59808.63455880143 +1729 1728 -20353.36884183544 +1730 1728 634.1006840250196 +1731 1728 -288.8342632957724 +1734 1728 -13647.39367611171 +1738 1728 -26.49497194578694 +2237 1728 -17810.23394280788 +2244 1728 -252.7821524237574 +1729 1729 39360.47183304422 +1730 1729 -288.8342632957724 +1731 1729 512.8207833255926 +2237 1729 -17647.48758691159 +2244 1729 -250.5210859984693 +1730 1730 59975.69066562007 +1731 1730 -20434.32535915032 +1734 1730 -26.49497194578684 +1738 1730 -13648.39229628047 +2237 1730 -252.7821524237571 +2244 1730 -17881.09639966585 +1731 1731 39503.01690311839 +2237 1731 -250.5210859984685 +2244 1731 -17717.73037581912 +1732 1732 73250.56648052686 +2234 1732 -183.6845434618439 +2240 1732 -12450.38028448104 +1733 1733 29303.89578528145 +1734 1733 -8895.968761930531 +1735 1733 -8599.11349703071 +1736 1733 549.9914562407931 +1737 1733 -134.4754291157951 +1738 1733 -139.1082228297841 +1734 1734 97568.00870427664 +1735 1734 -18931.32525723759 +1736 1734 -139.1082228297846 +1737 1734 -275.2830949852242 +1738 1734 1193.9937411684 +1735 1735 117191.114891651 +1736 1735 -134.4754291157952 +1737 1735 1794.405932336806 +1738 1735 -275.2830949852258 +1736 1736 29513.35612735476 +1737 1736 -8640.810741297235 +1738 1736 -8939.099431456172 +1737 1737 117735.9446635583 +1738 1737 -19010.45860577397 +1738 1738 97910.23969213771 +1739 1739 2 +1740 1739 1 +1741 1739 -1 +1742 1739 -100 +1740 1740 2 +1741 1740 -1 +1742 1740 -100 +1741 1741 2 +1742 1741 100 +1742 1742 10087.76847449807 +1747 1742 -931.4959715321726 +1748 1742 33.96069111995203 +2248 1742 -33.77642873454597 +2252 1742 926.4419027234901 +1743 1743 2 +1744 1743 1 +1745 1743 -1 +1746 1743 -100 +1744 1744 2 +1745 1744 -1 +1746 1744 -100 +1745 1745 2 +1746 1745 100 +1746 1746 10097.19564904637 +1747 1746 -39.64301899563401 +1748 1746 -980.7938062934836 +2248 1746 975.4722595175126 +2252 1746 39.42792569205452 +1747 1747 20032.68310590256 +1748 1747 79.22187568372097 +1751 1747 931.4959715321726 +1756 1747 39.64301899563401 +2248 1747 -78.79203720551494 +2252 1747 -19923.98204811025 +1748 1748 20026.59366516481 +1751 1748 -33.96069111995203 +1756 1748 980.7938062934836 +2248 1748 -19917.92470958276 +2252 1748 -78.79203720551509 +1749 1749 2 +1750 1749 -1 +1751 1749 -100 +1752 1749 -100 +1758 1749 -100 +1760 1749 -100 +1750 1750 2 +1751 1750 100 +1752 1750 100 +1758 1750 100 +1760 1750 100 +1751 1751 10087.76847449807 +1752 1751 10000 +1758 1751 10000 +1760 1751 10000 +2248 1751 33.77642873454597 +2252 1751 -926.4419027234901 +1752 1752 10497.73406998985 +1758 1752 10000 +1760 1752 10000 +2248 1752 27.40152585089321 +2252 1752 -926.4419027234902 +2273 1752 -65.92020230001516 +2277 1752 2228.753171595832 +1753 1753 2 +1754 1753 -1 +1755 1753 -100 +1756 1753 -100 +1757 1753 -100 +1759 1753 -100 +1754 1754 2 +1755 1754 100 +1756 1754 100 +1757 1754 100 +1759 1754 100 +1755 1755 10551.70296605458 +1756 1755 10000 +1757 1755 10000 +1759 1755 10000 +2248 1755 -975.472259517512 +2252 1755 -31.98636935801706 +2273 1755 2346.7061299928 +2277 1755 76.95001914846863 +1756 1756 10097.19564904637 +1757 1756 10000 +1759 1756 10000 +2248 1756 -975.4722595175126 +2252 1756 -39.42792569205452 +1757 1757 10413.9305249511 +1759 1757 10000 +1919 1757 2022.804400817414 +1920 1757 298.0994418912185 +2248 1757 -1294.972041641157 +2252 1757 -190.8392342442828 +1758 1758 10373.4633294633 +1760 1758 10000 +1919 1758 -255.3706384020022 +1920 1758 1921.131779654766 +2248 1758 163.4848316787385 +2252 1758 -1229.882603555696 +1759 1759 10096.15461290882 +2248 1759 -975.4722595175124 +2252 1759 -143.7909396190617 +2257 1759 975.4722595175124 +2261 1759 143.7909396190617 +1760 1760 10086.82945991219 +2248 1760 123.1803179971847 +2252 1760 -926.4419027234902 +2257 1760 -123.1803179971847 +2261 1760 926.4419027234902 +1761 1761 2 +1762 1761 -1 +1763 1761 -100 +1764 1761 -100 +1765 1761 -100 +1762 1762 2 +1763 1762 100 +1764 1762 100 +1765 1762 100 +1763 1763 10699.81156752866 +1764 1763 10000 +1765 1763 10000 +2257 1763 -10.97349398264839 +2258 1763 31.31170975582766 +2261 1763 926.4419027234899 +2264 1763 -2643.504430729512 +1764 1764 10876.36992733543 +1765 1764 10000 +2258 1764 376.8336277928846 +2264 1764 -2764.212434710328 +2271 1764 -403.0521872338755 +2276 1764 2956.535154026695 +1765 1765 10788.74561150069 +1917 1765 -364.3357561076449 +1918 1765 2477.626622056852 +2258 1765 412.3310391698789 +2264 1765 -2804.013448094897 +1766 1766 2 +1767 1766 -1 +1768 1766 -100 +1769 1766 -100 +1770 1766 -100 +1767 1767 2 +1768 1767 100 +1769 1767 100 +1770 1767 100 +1768 1768 10775.73567085734 +1769 1768 10000 +1770 1768 10000 +2257 1768 975.4722595175122 +2258 1768 -2783.407391772425 +2261 1768 12.80958708602453 +2264 1768 -36.55080811670502 +1769 1769 10971.47664837737 +1770 1769 10000 +2258 1769 -2910.503660884249 +2264 1769 -439.8857082154723 +2271 1769 3113.00473193531 +2276 1769 470.4911763517413 +1770 1770 10874.33217300511 +1917 1770 2608.750783134521 +1918 1770 425.2966834258129 +2258 1770 -2952.411074984582 +2264 1770 -481.3225726345026 +1771 1771 2 +1772 1771 -1 +1773 1771 -100 +1774 1771 -100 +1775 1771 -100 +1776 1771 -100 +1772 1772 2 +1773 1772 100 +1774 1772 100 +1775 1772 100 +1776 1772 100 +1773 1773 10290.24793696397 +1774 1773 10000 +1775 1773 10000 +1776 1773 10000 +1919 1773 -1697.764968473678 +1920 1773 -250.2576499498574 +2229 1773 1176.845489384921 +2232 1773 173.4719422278658 +1774 1774 10233.17574204266 +1775 1774 10000 +1776 1774 10000 +1919 1774 -1523.731413480285 +1920 1774 -224.5445765503341 +2233 1774 1056.210061043079 +2239 1774 155.6483241120691 +1775 1775 10605.87423497632 +1776 1775 10000 +1917 1775 2459.419108196731 +1918 1775 49.2701812977356 +1919 1775 -1523.731413480284 +1920 1775 -30.52530686657709 +1776 1776 10413.9305249511 +1919 1776 -2022.804400817414 +1920 1776 -298.0994418912185 +2248 1776 1294.972041641157 +2252 1776 190.8392342442828 +1777 1777 2 +1778 1777 -1 +1779 1777 -100 +1780 1777 -100 +1781 1777 -100 +1782 1777 -100 +1778 1778 2 +1779 1778 100 +1780 1778 100 +1781 1778 100 +1782 1778 100 +1779 1779 10261.90163630976 +1780 1779 10000 +1781 1779 10000 +1782 1779 10000 +1919 1779 214.3863652586145 +1920 1779 -1612.429869146681 +2229 1779 -148.6069224099085 +2232 1779 1117.693469762632 +1780 1780 10210.42251704948 +1781 1780 10000 +1782 1780 10000 +1919 1780 192.358937338404 +1920 1780 -1447.143797448896 +2233 1780 -133.3380956452967 +2239 1780 1003.121564023191 +1781 1781 10546.59655402692 +1782 1781 10000 +1917 1781 -42.20792086144386 +1918 1781 2335.80083488923 +1919 1781 26.14988828050017 +1920 1781 -1447.143797448897 +1782 1782 10373.4633294633 +1919 1782 255.3706384020022 +1920 1782 -1921.131779654766 +2248 1782 -163.4848316787385 +2252 1782 1229.882603555696 +1783 1783 2 +1784 1783 -1 +1785 1783 -100 +1786 1783 -100 +1787 1783 -100 +1788 1783 -100 +1789 1783 -100 +1790 1783 -100 +1784 1784 2 +1785 1784 100 +1786 1784 100 +1787 1784 100 +1788 1784 100 +1789 1784 100 +1790 1784 100 +1785 1785 10490.41871564545 +1786 1785 10000 +1787 1785 10000 +1788 1785 10000 +1789 1785 10000 +1790 1785 10000 +2233 1785 -1056.210061043079 +2239 1785 -155.6791980118313 +2270 1785 2212.280984968797 +2275 1785 326.0773043353159 +1786 1786 16023.95346876464 +1787 1786 10000 +1788 1786 10000 +1789 1786 10000 +1790 1786 10000 +1915 1786 7591.501459256906 +1916 1786 330.3676641839403 +2233 1786 -4145.041632392536 +2239 1786 -180.3843059753231 +1787 1787 10782.79690083878 +1788 1787 10000 +1789 1787 10000 +1790 1787 10000 +2233 1787 -2701.022037589631 +2235 1787 2754.037887045894 +2239 1787 -398.1206887766098 +2241 1787 405.9350294994423 +1788 1788 11157.49266053086 +1789 1788 10000 +1790 1788 10000 +2230 1788 3339.218086265915 +2231 1788 492.1348031197942 +2233 1788 -3274.93738620881 +2239 1788 -482.6610973450442 +1789 1789 10112.55796930486 +1790 1789 10000 +2229 1789 1056.210061043078 +2232 1789 155.6601648523103 +2233 1789 -1056.210061043078 +2239 1789 -155.6601648523103 +1790 1790 10233.17574204266 +1919 1790 1523.731413480285 +1920 1790 224.5445765503341 +2233 1790 -1056.210061043079 +2239 1790 -155.6483241120691 +1791 1791 2 +1792 1791 -1 +1793 1791 -100 +1794 1791 -100 +1795 1791 -100 +1796 1791 -100 +1797 1791 -100 +1798 1791 -100 +1792 1792 2 +1793 1792 100 +1794 1792 100 +1795 1792 100 +1796 1792 100 +1797 1792 100 +1798 1792 100 +1793 1793 10442.45567672079 +1794 1793 10000 +1795 1793 10000 +1796 1793 10000 +1797 1793 10000 +1798 1793 10000 +2233 1793 133.3645441600682 +2239 1793 -1003.121564023191 +2270 1793 -279.3382263590431 +2275 1793 2101.084664454975 +1794 1794 15433.70396986099 +1795 1794 10000 +1796 1794 10000 +1797 1794 10000 +1798 1794 10000 +1915 1794 -283.0136171164581 +1916 1794 7209.928306849876 +2233 1794 154.5284858045129 +2239 1794 -3936.698577857284 +1795 1795 10706.18079690279 +1796 1795 10000 +1797 1795 10000 +1798 1795 10000 +2233 1795 341.0550982884034 +2235 1795 -347.7493516101144 +2239 1795 -2565.260028040491 +2241 1795 2615.611131278482 +1796 1796 11044.15636847677 +1797 1796 10000 +1798 1796 10000 +2230 1796 -421.5934724842829 +2231 1796 3171.378301397352 +2233 1796 413.4777032081584 +2239 1796 -3110.328554991689 +1797 1797 10101.62528722083 +1798 1797 10000 +2229 1797 -133.348239164437 +2232 1797 1003.121564023191 +2233 1797 133.348239164437 +2239 1797 -1003.121564023191 +1798 1798 10210.42251704948 +1919 1798 -192.358937338404 +1920 1798 1447.143797448896 +2233 1798 133.3380956452967 +2239 1798 -1003.121564023191 +1799 1799 2 +1800 1799 -1 +1801 1799 -100 +1802 1799 -100 +1800 1800 2 +1801 1800 100 +1802 1800 100 +1801 1801 10375.19516015911 +1802 1801 10000 +1913 1801 1934.412469353705 +1914 1801 292.3743209809209 +1915 1801 -1934.412469353705 +1916 1801 -292.3743209809209 +1802 1802 16023.95346876464 +1915 1802 -7591.501459256906 +1916 1802 -330.3676641839403 +2233 1802 4145.041632392536 +2239 1802 180.3843059753231 +1803 1803 2 +1804 1803 -1 +1805 1803 -100 +1806 1803 -100 +1804 1804 2 +1805 1804 100 +1806 1804 100 +1805 1805 10338.52403080015 +1806 1805 10000 +1913 1805 -250.4661415250008 +1914 1805 1837.182709477058 +1915 1805 250.4661415250008 +1916 1805 -1837.182709477058 +1806 1806 15433.70396986099 +1915 1806 283.0136171164581 +1916 1806 -7209.928306849876 +2233 1806 -154.5284858045129 +2239 1806 3936.698577857284 +1807 1807 10001 +1808 1807 10000 +1808 1808 10002 +1809 1808 1 +1810 1808 -1 +1811 1808 -100 +1809 1809 2 +1810 1809 -1 +1811 1809 -100 +1810 1810 2 +1811 1810 100 +1811 1811 11080.13996107285 +1815 1811 -82.77758271711727 +1816 1811 -3285.026576867918 +2229 1811 1056.210061043079 +2232 1811 26.61485794675209 +1812 1812 2 +1813 1812 -1 +1814 1812 -100 +1813 1813 2 +1814 1813 100 +1814 1814 10974.38423432293 +1815 1814 -3119.910630647832 +1816 1814 70.91245796950788 +2229 1814 -22.79995300132396 +2232 1814 1003.121564023191 +1815 1815 20012.79657753544 +1816 1815 49.3889697806011 +1830 1815 3119.910630647832 +1835 1815 82.77758271711727 +2229 1815 -15.87966659209186 +2232 1815 -6434.533721530116 +1816 1816 20010.44006551032 +1830 1816 -70.91245796950788 +1835 1816 3285.026576867918 +2229 1816 -6433.772649533387 +2232 1816 -15.87966659209188 +1817 1817 10001 +1818 1817 10000 +1818 1818 10002 +1819 1818 1 +1820 1818 -1 +1821 1818 -100 +1819 1819 2 +1820 1819 -1 +1821 1819 -100 +1820 1820 2 +1821 1820 100 +1821 1821 10731.51307875137 +1825 1821 -46.45763817013051 +1826 1821 -2702.800545270347 +2229 1821 1056.210061043079 +2232 1821 18.15488195511026 +1822 1822 2 +1823 1822 -1 +1824 1822 -100 +1823 1823 2 +1824 1823 100 +1824 1824 10659.92278988201 +1825 1824 -2566.949142234827 +1826 1824 39.79852039603885 +2229 1824 -15.55260810143125 +2232 1824 1003.121564023191 +1825 1825 20005.97492308795 +1826 1825 33.68986293465235 +1829 1825 2566.949142234827 +1836 1825 46.45763817013051 +2229 1825 -13.16544509694213 +2232 1825 -7817.980662919927 +1826 1826 20004.88066230582 +1829 1826 -39.79852039603885 +1836 1826 2702.800545270347 +2229 1826 -7817.550246148012 +2232 1826 -13.16544509694217 +1827 1827 2 +1828 1827 -1 +1829 1827 -100 +1830 1827 -100 +1831 1827 -100 +1838 1827 -100 +1840 1827 -100 +1842 1827 -100 +1828 1828 2 +1829 1828 100 +1830 1828 100 +1831 1828 100 +1838 1828 100 +1840 1828 100 +1842 1828 100 +1829 1829 10659.92278988201 +1830 1829 10000 +1831 1829 10000 +1838 1829 10000 +1840 1829 10000 +1842 1829 10000 +2229 1829 15.55260810143125 +2232 1829 -1003.121564023191 +1830 1830 10974.38423432293 +1831 1830 10000 +1838 1830 10000 +1840 1830 10000 +1842 1830 10000 +2229 1830 22.79995300132396 +2232 1830 -1003.121564023191 +1831 1831 11068.16931967795 +1838 1831 10000 +1840 1831 10000 +1842 1831 10000 +1913 1831 -96.26683423544134 +1914 1831 3237.046797642301 +2229 1831 52.56272923954552 +2232 1831 -1767.462446558453 +1832 1832 2 +1833 1832 -1 +1834 1832 -100 +1835 1832 -100 +1836 1832 -100 +1837 1832 -100 +1839 1832 -100 +1841 1832 -100 +1833 1833 2 +1834 1833 100 +1835 1833 100 +1836 1833 100 +1837 1833 100 +1839 1833 100 +1841 1833 100 +1834 1834 11184.11455793862 +1835 1834 10000 +1836 1834 10000 +1837 1834 10000 +1839 1834 10000 +1841 1834 10000 +1913 1834 3408.361975615981 +1914 1834 112.3742719123597 +2229 1834 -1861.002380492833 +2232 1834 -61.35756384773518 +1835 1835 11080.13996107285 +1836 1835 10000 +1837 1835 10000 +1839 1835 10000 +1841 1835 10000 +2229 1835 -1056.210061043079 +2232 1835 -26.61485794675209 +1836 1836 10731.51307875137 +1837 1836 10000 +1839 1836 10000 +1841 1836 10000 +2229 1836 -1056.210061043079 +2232 1836 -18.15488195511026 +1837 1837 10112.55796930486 +1839 1837 10000 +1841 1837 10000 +2229 1837 -1056.210061043078 +2232 1837 -155.6601648523103 +2233 1837 1056.210061043078 +2239 1837 155.6601648523103 +1838 1838 10101.62528722083 +1840 1838 10000 +1842 1838 10000 +2229 1838 133.348239164437 +2232 1838 -1003.121564023191 +2233 1838 -133.348239164437 +2239 1838 1003.121564023191 +1839 1839 10493.52025565107 +1841 1839 10000 +2229 1839 -2151.720320624885 +2232 1839 -317.0801579128859 +2235 1839 2193.954437563831 +2241 1839 323.3038294281611 +1840 1840 10445.25326577549 +1842 1840 10000 +2229 1840 271.6307076494621 +2232 1840 -2043.56797286528 +2235 1840 -276.9622941763507 +2241 1840 2083.679267958507 +1841 1841 10290.24793696397 +1919 1841 1697.764968473678 +1920 1841 250.2576499498574 +2229 1841 -1176.845489384921 +2232 1841 -173.4719422278658 +1842 1842 10261.90163630976 +1919 1842 -214.3863652586145 +1920 1842 1612.429869146681 +2229 1842 148.6069224099085 +2232 1842 -1117.693469762632 +1843 1843 2 +1844 1843 -1 +1845 1843 -100 +1846 1843 -100 +1844 1844 2 +1845 1844 100 +1846 1844 100 +1845 1845 10572.46466257246 +1846 1845 10000 +1911 1845 -2390.532707520358 +1912 1845 -361.2910280081653 +1913 1845 1934.412469353705 +1914 1845 292.3557027460843 +1846 1846 10614.34558253096 +1911 1846 -2406.948678966541 +1912 1846 -363.8069783572536 +1917 1846 2476.308127839651 +1918 1846 374.2905635435755 +1847 1847 2 +1848 1847 -1 +1849 1847 -100 +1850 1847 -100 +1848 1848 2 +1849 1848 100 +1850 1848 100 +1849 1849 10516.46112004572 +1850 1849 10000 +1911 1849 309.5045058991731 +1912 1849 -2270.376885113396 +1913 1849 -250.4501919798223 +1914 1849 1837.182709477058 +1850 1850 10554.23770943827 +1911 1850 311.6598264283169 +1912 1850 -2285.967737311673 +1917 1850 -320.6407216114408 +1918 1850 2351.840958368353 +1851 1851 2 +1852 1851 -1 +1853 1851 -100 +1854 1851 -100 +1855 1851 -100 +1852 1852 2 +1853 1852 100 +1854 1852 100 +1855 1852 100 +1853 1853 10788.74561150069 +1854 1853 10000 +1855 1853 10000 +1917 1853 364.335756107645 +1918 1853 -2477.626622056855 +2258 1853 -412.331039169879 +2264 1853 2804.013448094897 +1854 1854 10554.23770943827 +1855 1854 10000 +1911 1854 -311.6598264283169 +1912 1854 2285.967737311673 +1917 1854 320.6407216114408 +1918 1854 -2351.840958368353 +1855 1855 10546.59655402692 +1917 1855 42.20792086144386 +1918 1855 -2335.80083488923 +1919 1855 -26.14988828050017 +1920 1855 1447.143797448897 +1856 1856 2 +1857 1856 -1 +1858 1856 -100 +1859 1856 -100 +1860 1856 -100 +1857 1857 2 +1858 1857 100 +1859 1857 100 +1860 1857 100 +1858 1858 10874.33217300511 +1859 1858 10000 +1860 1858 10000 +1917 1858 -2608.750783134521 +1918 1858 -425.2966834258129 +2258 1858 2952.411074984582 +2264 1858 481.3225726345026 +1859 1859 10614.34558253096 +1860 1859 10000 +1911 1859 2406.948678966541 +1912 1859 363.8069783572536 +1917 1859 -2476.308127839651 +1918 1859 -374.2905635435755 +1860 1860 10605.87423497632 +1917 1860 -2459.419108196731 +1918 1860 -49.2701812977356 +1919 1860 1523.731413480284 +1920 1860 30.52530686657709 +1861 1861 2 +1862 1861 -1 +1863 1861 -100 +1864 1861 -100 +1865 1861 -100 +1866 1861 -100 +1862 1862 2 +1863 1862 100 +1864 1862 100 +1865 1862 100 +1866 1862 100 +1863 1863 10572.46466257246 +1864 1863 10000 +1865 1863 10000 +1866 1863 10000 +1911 1863 2390.532707520358 +1912 1863 361.2910280081653 +1913 1863 -1934.412469353705 +1914 1863 -292.3557027460843 +1864 1864 10375.19516015911 +1865 1864 10000 +1866 1864 10000 +1913 1864 -1934.412469353705 +1914 1864 -292.3743209809209 +1915 1864 1934.412469353705 +1916 1864 292.3743209809209 +1865 1865 10762.98447779776 +1866 1865 10000 +1909 1865 2755.161353101501 +1910 1865 416.3899487781807 +1913 1865 -2176.519646185886 +1914 1865 -328.9393207297423 +1866 1866 11184.11455793862 +1913 1866 -3408.361975615981 +1914 1866 -112.3742719123597 +2229 1866 1861.002380492833 +2232 1866 61.35756384773518 +1867 1867 2 +1868 1867 -1 +1869 1867 -100 +1870 1867 -100 +1871 1867 -100 +1872 1867 -100 +1868 1868 2 +1869 1868 100 +1870 1868 100 +1871 1868 100 +1872 1868 100 +1869 1869 10516.46112004572 +1870 1869 10000 +1871 1869 10000 +1872 1869 10000 +1911 1869 -309.5045058991731 +1912 1869 2270.376885113396 +1913 1869 250.4501919798223 +1914 1869 -1837.182709477058 +1870 1870 10338.52403080015 +1871 1870 10000 +1872 1870 10000 +1913 1870 250.4661415250008 +1914 1870 -1837.182709477058 +1915 1870 -250.4661415250008 +1916 1870 1837.182709477058 +1871 1871 10688.30999151375 +1872 1871 10000 +1909 1871 -356.7056897827542 +1910 1871 2616.678128335598 +1913 1871 281.7900087210791 +1914 1871 -2067.120804977961 +1872 1872 11068.16931967795 +1913 1872 96.26683423544134 +1914 1872 -3237.046797642301 +2229 1872 -52.56272923954552 +2232 1872 1767.462446558453 +1873 1873 2 +1874 1873 -1 +1875 1873 -100 +1876 1873 -100 +1874 1874 2 +1875 1874 100 +1876 1874 100 +1875 1875 10600.60750300013 +1876 1875 10000 +1907 1875 2448.688430568752 +1908 1875 377.3950101738874 +1909 1875 -2448.688430568752 +1910 1875 -377.3950101738874 +1876 1876 10762.98447779776 +1909 1876 -2755.161353101501 +1910 1876 -416.3899487781808 +1913 1876 2176.519646185886 +1914 1876 328.9393207297422 +1877 1877 2 +1878 1877 -1 +1879 1877 -100 +1880 1877 -100 +1878 1878 2 +1879 1878 100 +1880 1878 100 +1879 1879 10541.84596183596 +1880 1879 10000 +1907 1879 -323.3001848859712 +1908 1879 2325.609515451712 +1909 1879 323.3001848859712 +1910 1879 -2325.609515451714 +1880 1880 10688.30999151375 +1909 1880 356.7056897827542 +1910 1880 -2616.678128335598 +1913 1880 -281.7900087210791 +1914 1880 2067.120804977961 +1881 1881 2 +1882 1881 -1 +1883 1881 -100 +1884 1881 -100 +1882 1882 2 +1883 1882 100 +1884 1882 100 +1883 1883 16222.4202188188 +1884 1883 10000 +1905 1883 7743.396994685454 +1906 1883 1170.331538819429 +1907 1883 -7686.959037845196 +1908 1883 -1161.801545985273 +1884 1884 10600.60750300013 +1907 1884 -2448.688430568752 +1908 1884 -377.3950101738874 +1909 1884 2448.688430568752 +1910 1884 377.3950101738874 +1885 1885 2 +1886 1885 -1 +1887 1885 -100 +1888 1885 -100 +1886 1886 2 +1887 1886 100 +1888 1886 100 +1887 1887 10609.44450910389 +1888 1887 10000 +1905 1887 -2466.6667977331 +1906 1887 -372.7895119243646 +2238 1887 2466.6667977331 +2243 1887 372.7895119243646 +1888 1888 16222.4202188188 +1905 1888 -7743.396994685454 +1906 1888 -1170.331538819429 +1907 1888 7686.959037845196 +1908 1888 1161.801545985273 +1889 1889 2 +1890 1889 -1 +1891 1889 -100 +1892 1889 -100 +1890 1890 2 +1891 1890 100 +1892 1890 100 +1891 1891 12773.19504010939 +1892 1891 10000 +2234 1891 4371.147764428927 +2238 1891 -5202.174125722668 +2240 1891 712.5692247758914 +2243 1891 -848.0402364983178 +1892 1892 10609.44450910389 +1905 1892 2466.6667977331 +1906 1892 372.7895119243646 +2238 1892 -2466.6667977331 +2243 1892 -372.7895119243646 +1893 1893 2 +1894 1893 -1 +1895 1893 -100 +1896 1893 -100 +1894 1894 2 +1895 1894 100 +1896 1894 100 +1895 1895 15612.72097646685 +1896 1895 10000 +1905 1895 -1002.57924105533 +1906 1895 7354.189086676904 +1907 1895 995.2719153461544 +1908 1895 -7300.587882121094 +1896 1896 10541.84596183596 +1907 1896 323.3001848859712 +1908 1896 -2325.609515451714 +1909 1896 -323.3001848859712 +1910 1896 2325.609515451712 +1897 1897 2 +1898 1897 -1 +1899 1897 -100 +1900 1897 -100 +1898 1898 2 +1899 1898 100 +1900 1898 100 +1899 1899 10549.81694125503 +1900 1899 10000 +1905 1899 319.3548268514898 +1906 1899 -2342.684232360464 +2238 1899 -319.3548268514898 +2243 1899 2342.684232360463 +1900 1900 15612.72097646685 +1905 1900 1002.57924105533 +1906 1900 -7354.189086676904 +1907 1900 -995.2719153461544 +1908 1900 7300.587882121094 +1901 1901 2 +1902 1901 -1 +1903 1901 -100 +1904 1901 -100 +1902 1902 2 +1903 1902 100 +1904 1902 100 +1903 1903 12501.51989903888 +1904 1903 10000 +2234 1903 -610.4313939072819 +2238 1903 726.4843409676313 +2240 1903 4151.439892269294 +2243 1903 -4940.696209769452 +1904 1904 10549.81694125503 +1905 1904 -319.3548268514898 +1906 1904 2342.684232360463 +2238 1904 319.3548268514898 +2243 1904 -2342.684232360464 +1905 1905 40005.3666414166 +1906 1905 581.7171368041363 +1907 1905 -19490.54235586157 +1908 1905 -283.419713128521 +2238 1905 -20371.66310937895 +2243 1905 -296.2165449486065 +1906 1906 40172.58037710105 +1907 1906 -283.4197131285232 +1908 1906 -19572.01615119182 +2238 1906 -296.2165449486065 +2243 1906 -20456.81082866696 +1907 1907 39735.06171749908 +1908 1907 583.4317518720711 +1909 1907 -20386.51674200355 +1910 1907 -302.0777509301004 +1908 1908 39904.4864873009 +1909 1908 -302.0777509301004 +1910 1908 -20475.06741657339 +1909 1909 40680.89356863557 +1910 1909 597.1696353112577 +1913 1909 -16032.084405797 +1914 1909 -233.1163955470671 +1910 1910 40854.26280207237 +1913 1910 -233.1163955470685 +1914 1910 -16099.09392924729 +1911 1911 39614.02659470506 +1912 1911 576.0493088622449 +1913 1911 -16484.70643089796 +1914 1911 -239.7027377299304 +1917 1911 -19796.78280181478 +1918 1911 -287.890001090797 +1912 1912 39779.61816717025 +1913 1912 -239.7027377299295 +1914 1912 -16553.610677947 +1917 1912 -287.890001090797 +1918 1912 -19879.54676647711 +1913 1913 66031.40178546307 +1914 1913 737.8171030817432 +1915 1913 -20371.72635027915 +1916 1913 -296.2417454644284 +2229 1913 -10731.97775561215 +2232 1913 -34.64520504508725 +1914 1914 66229.23256678641 +1915 1914 -296.2417454644284 +1916 1914 -20456.8885580065 +2229 1914 -34.64520504508746 +2232 1914 -10734.15033085193 +1915 1915 39538.33834710299 +1916 1915 377.8570901927952 +2233 1915 -10465.15633299685 +2239 1915 -44.56285802706871 +1916 1916 39630.25230503134 +2233 1916 -44.56285802706843 +2239 1916 -10468.844863673 +1917 1917 56296.17822114938 +1918 1917 584.4522168841493 +1919 1917 -12395.032181725 +1920 1917 -24.32672302006052 +2258 1917 -18019.84093572266 +2264 1917 -281.802912224916 +1918 1918 56460.02691853834 +1919 1918 -24.32672302006049 +1920 1918 -12395.95910916351 +2258 1918 -281.8029122249166 +2264 1918 -18107.22160983357 +1919 1919 68483.62517384207 +1920 1919 878.0291185177091 +2229 1919 -14059.41073489972 +2232 1919 -199.5688036080545 +2233 1919 -14108.41531905953 +2239 1919 -200.2129397849708 +2248 1919 -12911.42290026238 +2252 1919 -183.2317297722574 +1920 1920 68726.09781286071 +2229 1920 -199.5688036080553 +2232 1920 -14115.36239259303 +2233 1920 -200.2129397849714 +2239 1920 -14164.53262349546 +2248 1920 -183.2317297722566 +2252 1920 -12962.78212565342 +1921 1921 10001 +1922 1921 10000 +1922 1922 10002 +1923 1922 1 +1924 1922 -1 +1925 1922 -100 +1923 1923 2 +1924 1923 -1 +1925 1923 -100 +1924 1924 2 +1925 1924 100 +1925 1925 15437.40016542028 +1929 1925 -1073.250141323419 +1930 1925 -7373.194806473162 +2230 1925 1076.941425989816 +2231 1925 156.7607486277014 +1926 1926 2 +1927 1926 -1 +1928 1926 -100 +1927 1927 2 +1928 1927 100 +1928 1928 14904.63289598674 +1929 1928 -7002.594444908784 +1930 1928 919.4132401456012 +2230 1928 -134.2910681061936 +2231 1928 1022.810904237551 +1929 1929 20424.25087789539 +1930 1929 285.2997299473886 +1944 1929 7002.594444908784 +1949 1929 1073.250141323418 +2230 1929 -41.67136581476237 +2231 1929 -2983.129342163016 +1930 1930 20345.31688225776 +1944 1930 -919.4132401456012 +1949 1930 7373.194806473162 +2230 1930 -2971.592326260403 +2231 1930 -41.67136581476244 +1931 1931 10001 +1932 1931 10000 +1932 1932 10002 +1933 1932 1 +1934 1932 -1 +1935 1932 -100 +1933 1933 2 +1934 1933 -1 +1935 1933 -100 +1934 1934 2 +1935 1934 100 +1935 1935 10772.83866584044 +1939 1935 -59.65006501489261 +1940 1935 -2778.198455547122 +2230 1935 1076.941425989816 +2231 1935 23.12276358417048 +1936 1936 2 +1937 1936 -1 +1938 1936 -100 +1937 1937 2 +1938 1937 100 +1938 1938 10697.19846903178 +1939 1938 -2638.557312304923 +1940 1938 51.09997887595108 +2230 1938 -19.80840641849634 +2231 1938 1022.810904237551 +1939 1939 20009.28950066852 +1940 1939 42.08271690427094 +1943 1939 2638.557312304923 +1950 1939 59.65006501489261 +2230 1939 -16.31295311604585 +2231 1939 -7756.378147993793 +1940 1940 20007.57851561975 +1943 1940 -51.09997887595108 +1950 1940 2778.198455547122 +2230 1940 -7755.71196927617 +2231 1940 -16.3129531160459 +1941 1941 2 +1942 1941 -1 +1943 1941 -100 +1944 1941 -100 +1945 1941 -100 +1952 1941 -100 +1954 1941 -100 +1942 1942 2 +1943 1942 100 +1944 1942 100 +1945 1942 100 +1952 1942 100 +1954 1942 100 +1943 1943 10697.19846903178 +1944 1943 10000 +1945 1943 10000 +1952 1943 10000 +1954 1943 10000 +2230 1943 19.80840641849634 +2231 1943 -1022.810904237551 +1944 1944 14904.63289598674 +1945 1944 10000 +1952 1944 10000 +1954 1944 10000 +2230 1944 134.2910681061936 +2231 1944 -1022.810904237551 +1945 1945 10105.61421458272 +1952 1945 10000 +1954 1945 10000 +2230 1945 135.9226900735739 +2231 1945 -1022.810904237551 +2235 1945 -135.9226900735739 +2241 1945 1022.810904237551 +1946 1946 2 +1947 1946 -1 +1948 1946 -100 +1949 1946 -100 +1950 1946 -100 +1951 1946 -100 +1953 1946 -100 +1947 1947 2 +1948 1947 100 +1949 1947 100 +1950 1947 100 +1951 1947 100 +1953 1947 100 +1948 1948 10116.9802835013 +1949 1948 10000 +1950 1948 10000 +1951 1948 10000 +1953 1948 10000 +2230 1948 -1076.941425989816 +2231 1948 -158.6653747855758 +2235 1948 1076.941425989816 +2241 1948 158.6653747855758 +1949 1949 15437.40016542028 +1950 1949 10000 +1951 1949 10000 +1953 1949 10000 +2230 1949 -1076.941425989816 +2231 1949 -156.7607486277015 +1950 1950 10772.83866584044 +1951 1950 10000 +1953 1950 10000 +2230 1950 -1076.941425989816 +2231 1950 -23.12276358417048 +1951 1951 11164.3370883886 +1953 1951 10000 +2224 1951 3384.581419538066 +2227 1951 126.2785035680108 +2230 1951 -1736.828712627135 +2231 1951 -64.80096165464471 +1952 1952 11050.33004233745 +1954 1952 10000 +2224 1952 -108.1780692644846 +2227 1952 3214.461528398927 +2230 1952 55.51255930512287 +2231 1952 -1649.53014453425 +1953 1953 11157.49266053086 +2230 1953 -3339.218086265915 +2231 1953 -492.1348031197942 +2233 1953 3274.93738620881 +2239 1953 482.6610973450442 +1954 1954 11044.15636847677 +2230 1954 421.5934724842829 +2231 1954 -3171.378301397352 +2233 1954 -413.4777032081584 +2239 1954 3110.328554991689 +1955 1955 2 +1956 1955 -1 +1957 1955 -100 +1958 1955 -100 +1959 1955 -100 +1960 1955 -100 +1956 1956 2 +1957 1956 100 +1958 1956 100 +1959 1956 100 +1960 1956 100 +1957 1957 10755.08582430977 +1958 1957 10000 +1959 1957 10000 +1960 1957 10000 +2223 1957 2331.424850392343 +2224 1957 -2734.367547853335 +2226 1957 359.3212342292424 +2227 1957 -421.4231146955925 +1958 1958 10571.47154277667 +1959 1958 10000 +1960 1958 10000 +1993 1958 2388.454610782199 +1994 1958 368.1524067545724 +2224 1958 -2098.650208760381 +2227 1958 -323.4824399857833 +1959 1959 10441.433269873 +1960 1959 10000 +2224 1959 -2098.650208760381 +2225 1959 1789.388282064073 +2227 1959 -342.1131717006937 +2228 1959 291.6985870373275 +1960 1960 11164.3370883886 +2224 1960 -3384.581419538066 +2227 1960 -126.2785035680108 +2230 1960 1736.828712627135 +2231 1960 64.80096165464471 +1961 1961 2 +1962 1961 -1 +1963 1961 -100 +1964 1961 -100 +1965 1961 -100 +1966 1961 -100 +1962 1962 2 +1963 1962 100 +1964 1962 100 +1965 1962 100 +1966 1962 100 +1963 1963 10681.18540614491 +1964 1963 10000 +1965 1963 10000 +1966 1963 10000 +2223 1963 -307.8170572691035 +2224 1963 361.0174147070216 +2226 1963 2214.23997800066 +2227 1963 -2596.929486269137 +1964 1964 10515.56532599965 +1965 1964 10000 +1966 1964 10000 +1993 1964 -315.3823923509946 +1994 1964 2268.403240166184 +2224 1964 277.1153031583061 +2227 1964 -1993.165334621299 +1965 1965 10398.2708051136 +1966 1965 10000 +2224 1965 293.0755539449187 +2225 1965 -249.8872655382812 +2227 1965 -1993.165334621299 +2228 1965 1699.447901846557 +1966 1966 11050.33004233745 +2224 1966 108.1780692644846 +2227 1966 -3214.461528398927 +2230 1966 -55.51255930512287 +2231 1966 1649.53014453425 +1967 1967 2 +1968 1967 -1 +1969 1967 -100 +1970 1967 -100 +1968 1968 2 +1969 1968 100 +1970 1968 100 +1969 1969 10948.89079860464 +1970 1969 10000 +1991 1969 -2537.670345117274 +1992 1969 -391.1187231087167 +2236 1969 3078.783523738943 +2242 1969 474.5178517177659 +1970 1970 10644.97707804876 +1991 1970 -2537.670345117274 +1992 1970 -391.1461035830312 +1993 1970 2388.454610782199 +1994 1970 368.1466020162711 +1971 1971 2 +1972 1971 -1 +1973 1971 -100 +1974 1971 -100 +1972 1972 2 +1973 1972 100 +1974 1972 100 +1973 1973 10644.97707804876 +1974 1973 10000 +1991 1973 2537.670345117274 +1992 1973 391.1461035830312 +1993 1973 -2388.454610782199 +1994 1973 -368.1466020162711 +1974 1974 10571.47154277667 +1993 1974 -2388.454610782199 +1994 1974 -368.1524067545724 +2224 1974 2098.650208760381 +2227 1974 323.4824399857833 +1975 1975 2 +1976 1975 -1 +1977 1975 -100 +1978 1975 -100 +1976 1976 2 +1977 1976 100 +1978 1976 100 +1977 1977 11140.85267217892 +1978 1977 10000 +2234 1977 2269.502472060355 +2236 1977 -3371.23263650622 +2240 1977 343.0186343660251 +2242 1977 -509.5370590430379 +1978 1978 10948.89079860464 +1991 1978 2537.670345117274 +1992 1978 391.1187231087167 +2236 1978 -3078.783523738943 +2242 1978 -474.5178517177659 +1979 1979 2 +1980 1979 -1 +1981 1979 -100 +1982 1979 -100 +1980 1980 2 +1981 1980 100 +1982 1980 100 +1981 1981 10855.99749106153 +1982 1981 10000 +1991 1981 335.0567762810402 +1992 1981 -2410.118914276738 +2236 1981 -406.5016893608691 +2242 1981 2924.034013245285 +1982 1982 10581.86731809545 +1991 1982 335.0802321089382 +1992 1982 -2410.118914276739 +1993 1982 -315.3774196488777 +1994 1982 2268.403240166184 +1983 1983 2 +1984 1983 -1 +1985 1983 -100 +1986 1983 -100 +1984 1984 2 +1985 1984 100 +1986 1984 100 +1985 1985 10581.86731809545 +1986 1985 10000 +1991 1985 -335.0802321089382 +1992 1985 2410.118914276739 +1993 1985 315.3774196488777 +1994 1985 -2268.403240166184 +1986 1986 10515.56532599965 +1993 1986 315.3823923509946 +1994 1986 -2268.403240166184 +2224 1986 -277.1153031583061 +2227 1986 1993.165334621299 +1987 1987 2 +1988 1987 -1 +1989 1987 -100 +1990 1987 -100 +1988 1988 2 +1989 1988 100 +1990 1988 100 +1989 1989 11029.14709914623 +1990 1989 10000 +2234 1989 -293.8512299321929 +2236 1989 436.5013340239079 +2240 1989 2155.430016524743 +2242 1989 -3201.78369791179 +1990 1990 10855.99749106153 +1991 1990 -335.0567762810402 +1992 1990 2410.118914276738 +2236 1990 406.5016893608691 +2242 1990 -2924.034013245285 +1991 1991 34236.83830198804 +1992 1991 507.3367603235852 +1993 1991 -19187.85278394092 +1994 1991 -284.3424534724781 +2236 1991 -16803.4898394434 +2242 1991 -248.9920996274407 +1992 1992 34385.56191204747 +1993 1992 -284.3424534724775 +1994 1992 -19271.21246044335 +2236 1992 -248.9920996274413 +2242 1992 -16876.48086732887 +1993 1993 38446.2608964859 +1994 1993 569.7341951836338 +2224 1993 -17912.9830855031 +2227 1993 -265.4543414171724 +1994 1994 38613.28367151604 +2224 1994 -265.4543414171724 +2227 1994 -17990.80662772084 +1995 1995 2 +1996 1995 -1 +1997 1995 -100 +1998 1995 -100 +1996 1996 2 +1997 1996 100 +1998 1996 100 +1997 1997 10444.25565864233 +1998 1997 10000 +2027 1997 -2105.363765818935 +2028 1997 -324.478230742667 +2223 1997 1789.388282064072 +2226 1997 275.7801541483091 +1998 1998 10670.46592832442 +2027 1998 -2578.95055544454 +2028 1998 -45.99743877655838 +2235 1998 1319.191834603146 +2241 1998 23.52873556206449 +1999 1999 2 +2000 1999 -1 +2001 1999 -100 +2002 1999 -100 +2000 2000 2 +2001 2000 100 +2002 2000 100 +2001 2001 10400.81659975591 +2002 2001 10000 +2027 2001 277.9683598419647 +2028 2001 -1999.541446822015 +2223 2001 -236.250539674462 +2226 2001 1699.447901846557 +2002 2002 10604.85826079456 +2027 2002 39.4042847940426 +2028 2002 -2449.324249156619 +2235 2002 -20.15618742241364 +2241 2002 1252.885032232011 +2003 2003 2 +2004 2003 -1 +2005 2003 -100 +2006 2003 -100 +2007 2003 -100 +2004 2004 2 +2005 2004 100 +2006 2004 100 +2007 2004 100 +2005 2005 10289.81231710907 +2006 2005 10000 +2007 2005 10000 +2223 2005 249.8980830402738 +2225 2005 -249.8980830402738 +2226 2005 -1699.447901846557 +2228 2005 1699.447901846557 +2006 2006 10400.81659975591 +2007 2006 10000 +2027 2006 -277.9683598419647 +2028 2006 1999.541446822015 +2223 2006 236.250539674462 +2226 2006 -1699.447901846557 +2007 2007 10681.18540614491 +2223 2007 307.8170572691035 +2224 2007 -361.0174147070216 +2226 2007 -2214.23997800066 +2227 2007 2596.929486269137 +2008 2008 2 +2009 2008 -1 +2010 2008 -100 +2011 2008 -100 +2012 2008 -100 +2009 2009 2 +2010 2009 100 +2011 2009 100 +2012 2009 100 +2010 2010 10321.19104239882 +2011 2010 10000 +2012 2010 10000 +2223 2010 -1789.388282064072 +2225 2010 1789.388282064072 +2226 2010 -291.7112145317286 +2228 2010 291.7112145317286 +2011 2011 10444.25565864233 +2012 2011 10000 +2027 2011 2105.363765818935 +2028 2011 324.478230742667 +2223 2011 -1789.388282064072 +2226 2011 -275.7801541483091 +2012 2012 10755.08582430977 +2223 2012 -2331.424850392343 +2224 2012 2734.367547853335 +2226 2012 -359.3212342292424 +2227 2012 421.4231146955925 +2013 2013 2 +2014 2013 -1 +2015 2013 -100 +2016 2013 -100 +2017 2013 -100 +2018 2013 -100 +2019 2013 -100 +2014 2014 2 +2015 2014 100 +2016 2014 100 +2017 2014 100 +2018 2014 100 +2019 2014 100 +2015 2015 10604.85826079456 +2016 2015 10000 +2017 2015 10000 +2018 2015 10000 +2019 2015 10000 +2027 2015 -39.4042847940426 +2028 2015 2449.324249156619 +2235 2015 20.15618742241364 +2241 2015 -1252.885032232011 +2016 2016 10445.25326577549 +2017 2016 10000 +2018 2016 10000 +2019 2016 10000 +2229 2016 -271.6307076494621 +2232 2016 2043.56797286528 +2235 2016 276.9622941763507 +2241 2016 -2083.679267958507 +2017 2017 10706.18079690279 +2018 2017 10000 +2019 2017 10000 +2233 2017 -341.0550982884034 +2235 2017 347.7493516101144 +2239 2017 2565.260028040491 +2241 2017 -2615.611131278482 +2018 2018 14765.48265549241 +2019 2018 10000 +2235 2018 839.6250274115462 +2237 2018 -891.0391440597404 +2241 2018 -6316.0283190241 +2244 2018 6702.787891626066 +2019 2019 10105.61421458272 +2230 2019 -135.9226900735739 +2231 2019 1022.810904237551 +2235 2019 135.9226900735739 +2241 2019 -1022.810904237551 +2020 2020 2 +2021 2020 -1 +2022 2020 -100 +2023 2020 -100 +2024 2020 -100 +2025 2020 -100 +2026 2020 -100 +2021 2021 2 +2022 2021 100 +2023 2021 100 +2024 2021 100 +2025 2021 100 +2026 2021 100 +2022 2022 10670.46592832442 +2023 2022 10000 +2024 2022 10000 +2025 2022 10000 +2026 2022 10000 +2027 2022 2578.95055544454 +2028 2022 45.99743877655838 +2235 2022 -1319.191834603146 +2241 2022 -23.52873556206449 +2023 2023 10493.52025565107 +2024 2023 10000 +2025 2023 10000 +2026 2023 10000 +2229 2023 2151.720320624885 +2232 2023 317.0801579128859 +2235 2023 -2193.954437563831 +2241 2023 -323.3038294281611 +2024 2024 10782.79690083878 +2025 2024 10000 +2026 2024 10000 +2233 2024 2701.022037589631 +2235 2024 -2754.037887045894 +2239 2024 398.1206887766098 +2241 2024 -405.9350294994423 +2025 2025 15283.13160443956 +2026 2025 10000 +2235 2025 -6650.293339952595 +2237 2025 7057.521502956647 +2241 2025 -980.1117060109074 +2244 2025 1040.128470561693 +2026 2026 10116.9802835013 +2230 2026 1076.941425989816 +2231 2026 158.6653747855758 +2235 2026 -1076.941425989816 +2241 2026 -158.6653747855758 +2027 2027 40261.22406635212 +2028 2027 336.8047886894843 +2223 2027 -17326.87784147366 +2226 2027 -256.7390799177106 +2235 2027 -10166.34574796378 +2241 2027 -17.76516478534229 +2028 2028 40350.94684609784 +2223 2028 -256.7390799177106 +2226 2028 -17402.13726924035 +2235 2028 -17.76516478534229 +2241 2028 -10166.9484052129 +2029 2029 2 +2030 2029 -1 +2031 2029 -100 +2032 2029 -100 +2033 2029 -100 +2222 2029 -100 +2030 2030 2 +2031 2030 100 +2032 2030 100 +2033 2030 100 +2222 2030 100 +2031 2031 12497.32946916716 +2032 2031 10000 +2033 2031 10000 +2222 2031 10000 +2272 2031 4957.535847146476 +2273 2031 -3804.820746517466 +2277 2031 -586.4238601014096 +2278 2031 764.0878511124894 +2032 2032 10887.29196971707 +2033 2032 10000 +2222 2032 10000 +2271 2032 2977.065618553049 +2273 2032 -2346.706129992801 +2276 2032 485.3208672196473 +2277 2032 -382.5597417202089 +2033 2033 10551.70296605458 +2222 2033 10000 +2248 2033 975.472259517512 +2252 2033 31.98636935801706 +2273 2033 -2346.7061299928 +2277 2033 -76.95001914846863 +2034 2034 2 +2035 2034 -1 +2036 2034 -100 +2037 2034 -100 +2038 2034 -100 +2221 2034 -100 +2035 2035 2 +2036 2035 100 +2037 2035 100 +2038 2035 100 +2221 2035 100 +2036 2036 12252.68915674971 +2037 2036 10000 +2038 2036 10000 +2221 2036 10000 +2272 2036 -654.5654735073782 +2273 2036 502.3673797514581 +2277 2036 -3613.578282245523 +2278 2036 4708.354233796474 +2037 2037 10800.43534800799 +2038 2037 10000 +2221 2037 10000 +2271 2037 -415.7562285437666 +2273 2037 327.7246171619644 +2276 2037 2827.428775421221 +2277 2037 -2228.753171595832 +2038 2038 10497.73406998985 +2221 2038 10000 +2248 2038 -27.40152585089321 +2252 2038 926.4419027234902 +2273 2038 65.92020230001516 +2277 2038 -2228.753171595832 +2039 2039 2 +2040 2039 -1 +2041 2039 -100 +2042 2039 -100 +2043 2039 -100 +2040 2040 2 +2041 2040 100 +2042 2040 100 +2043 2040 100 +2041 2041 10398.2708051136 +2042 2041 10000 +2043 2041 10000 +2224 2041 -293.0755539449187 +2225 2041 249.8872655382812 +2227 2041 1993.165334621299 +2228 2041 -1699.447901846557 +2042 2042 10289.81231710907 +2043 2042 10000 +2223 2042 -249.8980830402738 +2225 2042 249.8980830402738 +2226 2042 1699.447901846557 +2228 2042 -1699.447901846557 +2043 2043 11324.00539452687 +2219 2043 -188.6910385341812 +2220 2043 1357.185303446807 +2225 2043 499.6286474102682 +2228 2043 -3593.64526643054 +2044 2044 2 +2045 2044 -1 +2046 2044 -100 +2047 2044 -100 +2048 2044 -100 +2045 2045 2 +2046 2045 100 +2047 2045 100 +2048 2045 100 +2046 2046 10441.433269873 +2047 2046 10000 +2048 2046 10000 +2224 2046 2098.650208760381 +2225 2046 -1789.388282064073 +2227 2046 342.1131717006937 +2228 2046 -291.6985870373275 +2047 2047 10321.19104239882 +2048 2047 10000 +2223 2047 1789.388282064072 +2225 2047 -1789.388282064072 +2226 2047 291.7112145317286 +2228 2047 -291.7112145317286 +2048 2048 11467.7465730447 +2219 2048 1429.012019690947 +2220 2048 220.2629622140334 +2225 2048 -3783.832809854758 +2228 2048 -583.226881045764 +2049 2049 2 +2050 2049 -1 +2071 2049 -100 +2072 2049 -100 +2074 2049 -100 +2076 2049 -100 +2050 2050 2 +2071 2050 100 +2072 2050 100 +2074 2050 100 +2076 2050 100 +2051 2051 2 +2052 2051 -1 +2053 2051 -100 +2052 2052 2 +2053 2052 100 +2053 2053 10045.32975687556 +2057 2053 -665.8059542806615 +2058 2053 108.5919304798917 +2219 2053 -104.6795091602633 +2220 2053 641.8178605176026 +2054 2054 2 +2055 2054 -1 +2056 2054 -100 +2055 2055 2 +2056 2055 100 +2056 2056 10050.14607245754 +2057 2056 -126.7616123470986 +2058 2056 -701.0425982601693 +2219 2056 675.7849755686869 +2220 2056 122.1945618078406 +2057 2057 20653.91248956433 +2058 2057 354.4046904379871 +2070 2057 665.8059542806615 +2071 2057 126.7616123470986 +2219 2057 -341.6359657222712 +2220 2057 -19909.77550588124 +2058 2058 20532.02711353122 +2070 2058 -108.5919304798917 +2071 2058 701.0425982601693 +2219 2058 -19792.2810318671 +2220 2058 -341.6359657222712 +2059 2059 2 +2060 2059 -1 +2061 2059 -100 +2060 2060 2 +2061 2060 100 +2061 2061 10042.19301660794 +2065 2061 -641.8178605176025 +2066 2061 88.4437059167977 +2219 2061 -88.4437059167977 +2220 2061 641.8178605176026 +2062 2062 2 +2063 2062 -1 +2064 2062 -100 +2063 2063 2 +2064 2063 100 +2064 2064 10046.66853332044 +2065 2064 -103.2421719958458 +2066 2064 -675.7849755686871 +2219 2064 675.7849755686871 +2220 2064 103.2421719958458 +2065 2065 20466.80019543708 +2066 2065 299.4364844474237 +2069 2065 641.8178605176026 +2072 2065 103.2421719958458 +2219 2065 -299.4364844474237 +2220 2065 -20466.79607613542 +2066 2066 20379.79171333726 +2069 2066 -88.4437059167977 +2072 2066 675.7849755686871 +2219 2066 -20379.78714648393 +2220 2066 -299.4364844474237 +2067 2067 2 +2068 2067 -1 +2069 2067 -100 +2070 2067 -100 +2073 2067 -100 +2075 2067 -100 +2068 2068 2 +2069 2068 100 +2070 2068 100 +2073 2068 100 +2075 2068 100 +2069 2069 10042.19301660794 +2070 2069 10000 +2073 2069 10000 +2075 2069 10000 +2219 2069 88.4437059167977 +2220 2069 -641.8178605176025 +2070 2070 10045.32975687556 +2073 2070 10000 +2075 2070 10000 +2219 2070 104.6795091602633 +2220 2070 -641.8178605176026 +2071 2071 10050.14607245754 +2072 2071 10000 +2074 2071 10000 +2076 2071 10000 +2219 2071 -675.7849755686869 +2220 2071 -122.1945618078406 +2072 2072 10046.66853332044 +2074 2072 10000 +2076 2072 10000 +2219 2072 -675.7849755686871 +2220 2072 -103.2421719958458 +2073 2073 11324.00539452687 +2075 2073 10000 +2219 2073 188.6910385341812 +2220 2073 -1357.185303446807 +2225 2073 -499.6286474102682 +2228 2073 3593.64526643054 +2074 2074 11467.7465730447 +2076 2074 10000 +2219 2074 -1429.012019690947 +2220 2074 -220.2629622140334 +2225 2074 3783.832809854758 +2228 2074 583.226881045764 +2075 2075 10663.60133711423 +2217 2075 -350.9277711019158 +2218 2075 2574.104382332281 +2219 2075 87.49905900893198 +2220 2075 -641.8178605176026 +2076 2076 10735.59129080474 +2217 2076 2710.334464240048 +2218 2076 409.6452644838991 +2219 2076 -675.7849755686869 +2220 2076 -102.1394660709158 +2077 2077 2 +2078 2077 -1 +2092 2077 -100 +2094 2077 -100 +2096 2077 -100 +2078 2078 2 +2092 2078 100 +2094 2078 100 +2096 2078 100 +2079 2079 2 +2080 2079 -1 +2091 2079 -100 +2093 2079 -100 +2095 2079 -100 +2080 2080 2 +2091 2080 100 +2093 2080 100 +2095 2080 100 +2081 2081 10001 +2082 2081 10000 +2082 2082 10002 +2083 2082 1 +2084 2082 -1 +2085 2082 -100 +2083 2083 2 +2084 2083 -1 +2085 2083 -100 +2084 2084 2 +2085 2084 100 +2085 2085 11253.10042075702 +2089 2085 -91.48836904941038 +2090 2085 -3538.503102665054 +2214 2085 2148.455350362291 +2216 2085 55.54853854221174 +2086 2086 2 +2087 2086 -1 +2088 2086 -100 +2087 2087 2 +2088 2087 100 +2088 2088 11130.39456726477 +2089 2088 -3360.646615258394 +2090 2088 78.37466270410407 +2214 2088 -47.58635460645834 +2216 2088 2040.46711045438 +2089 2089 20013.48266848575 +2090 2089 50.67601074454697 +2091 2089 3360.646615258394 +2092 2089 91.48836904941038 +2214 2089 -30.76870169681034 +2216 2089 -12151.41827648164 +2090 2090 20011.00287482289 +2091 2090 -78.37466270410407 +2092 2090 3538.503102665054 +2214 2090 -12149.90518221206 +2216 2090 -30.76870169681035 +2091 2091 11130.39456726477 +2093 2091 10000 +2095 2091 10000 +2214 2091 47.58635460645834 +2216 2091 -2040.46711045438 +2092 2092 11253.10042075702 +2094 2092 10000 +2096 2092 10000 +2214 2092 -2148.455350362291 +2216 2092 -55.54853854221174 +2093 2093 10417.35060288461 +2095 2093 10000 +2214 2093 283.6732364967096 +2216 2093 -2040.46711045438 +2245 2093 -283.6732364967096 +2256 2093 2040.46711045438 +2094 2094 10462.58603925003 +2096 2094 10000 +2214 2094 -2148.455350362291 +2216 2094 -331.1376515651995 +2245 2094 2148.455350362291 +2256 2094 331.1376515651995 +2095 2095 11139.15856104007 +2214 2095 363.0060565088618 +2216 2095 -2662.809780660306 +2217 2095 -457.941946765582 +2218 2095 3359.206473163194 +2096 2096 11262.81660021425 +2214 2096 -2803.734444405091 +2216 2096 -423.744497509841 +2217 2096 3536.986743506965 +2218 2096 534.5651309157228 +2097 2097 2 +2098 2097 -1 +2099 2097 -100 +2100 2097 -100 +2101 2097 -100 +2098 2098 2 +2099 2098 100 +2100 2098 100 +2101 2098 100 +2099 2099 10625.28917877809 +2100 2099 10000 +2101 2099 10000 +2245 2099 278.1785098696451 +2247 2099 -340.6331267134541 +2251 2099 2498.577953112712 +2256 2099 -2040.46711045438 +2100 2100 10417.35060288461 +2101 2100 10000 +2214 2100 -283.6732364967096 +2216 2100 2040.46711045438 +2245 2100 283.6732364967096 +2256 2100 -2040.46711045438 +2101 2101 11355.18823145809 +2213 2101 -149.966720023311 +2215 2101 1100.085354908791 +2245 2101 496.984438851984 +2256 2101 -3645.644198350455 +2102 2102 2 +2103 2102 -1 +2104 2102 -100 +2105 2102 -100 +2106 2102 -100 +2103 2103 2 +2104 2103 100 +2105 2103 100 +2106 2103 100 +2104 2104 10693.11661369613 +2105 2104 10000 +2106 2104 10000 +2245 2104 -2148.455350362291 +2247 2104 2630.810927634545 +2251 2104 397.6281126066418 +2256 2104 -324.7235432279117 +2105 2105 10462.58603925003 +2106 2105 10000 +2214 2105 2148.455350362291 +2216 2105 331.1376515651995 +2245 2105 -2148.455350362291 +2256 2105 -331.1376515651995 +2106 2106 11502.31734607094 +2213 2106 1158.305495099443 +2215 2106 175.0592621804525 +2245 2106 -3838.583696514033 +2256 2106 -580.1402415620666 +2107 2107 2 +2108 2107 -1 +2129 2107 -100 +2130 2107 -100 +2132 2107 -100 +2134 2107 -100 +2108 2108 2 +2129 2108 100 +2130 2108 100 +2132 2108 100 +2134 2108 100 +2109 2109 2 +2110 2109 -1 +2111 2109 -100 +2110 2110 2 +2111 2110 100 +2111 2111 10038.91083957231 +2115 2111 -615.7177890260315 +2116 2111 96.99307491337275 +2213 2111 -96.99307491337275 +2215 2111 615.7177890260315 +2112 2112 2 +2113 2112 -1 +2114 2112 -100 +2113 2113 2 +2114 2113 100 +2114 2114 10043.02975607958 +2115 2114 -113.222027715943 +2116 2114 -648.3036023313515 +2213 2114 648.3036023313515 +2215 2114 113.222027715943 +2115 2115 20610.01102195331 +2116 2115 342.301347230059 +2128 2115 615.7177890260315 +2129 2115 113.222027715943 +2213 2115 -342.301347230059 +2215 2115 -20610.00723086936 +2116 2116 20496.30851526641 +2128 2116 -96.99307491337275 +2129 2116 648.3036023313515 +2213 2116 -20496.30431229081 +2215 2116 -342.301347230059 +2117 2117 2 +2118 2117 -1 +2119 2117 -100 +2118 2118 2 +2119 2118 100 +2119 2119 10041.34207706621 +2123 2119 -635.1541314217108 +2124 2119 115.1135286925129 +2213 2119 -111.5909412647426 +2215 2119 615.7177890260315 +2120 2120 2 +2121 2120 -1 +2122 2120 -100 +2121 2121 2 +2122 2121 100 +2122 2122 10045.72514135706 +2123 2122 -134.3744091806985 +2124 2122 -668.7685799815773 +2213 2122 648.3036023313513 +2215 2122 130.2624198274889 +2123 2123 20807.44617054486 +2124 2123 393.8191419099463 +2127 2123 635.1541314217108 +2130 2123 134.3744091806985 +2213 2123 -381.7678880402742 +2215 2123 -20170.71390025548 +2124 2124 20656.94261014622 +2127 2124 -115.1135286925129 +2130 2124 668.7685799815773 +2213 2124 -20024.81547223954 +2215 2124 -381.7678880402736 +2125 2125 2 +2126 2125 -1 +2127 2125 -100 +2128 2125 -100 +2131 2125 -100 +2133 2125 -100 +2126 2126 2 +2127 2126 100 +2128 2126 100 +2131 2126 100 +2133 2126 100 +2127 2127 10041.34207706621 +2128 2127 10000 +2131 2127 10000 +2133 2127 10000 +2213 2127 111.5909412647426 +2215 2127 -615.7177890260315 +2128 2128 10038.91083957231 +2131 2128 10000 +2133 2128 10000 +2213 2128 96.99307491337275 +2215 2128 -615.7177890260315 +2129 2129 10043.02975607958 +2130 2129 10000 +2132 2129 10000 +2134 2129 10000 +2213 2129 -648.3036023313515 +2215 2129 -113.222027715943 +2130 2130 10045.72514135706 +2132 2130 10000 +2134 2130 10000 +2213 2130 -648.3036023313513 +2215 2130 -130.2624198274889 +2131 2131 11355.18823145809 +2133 2131 10000 +2213 2131 149.966720023311 +2215 2131 -1100.085354908791 +2245 2131 -496.984438851984 +2256 2131 3645.644198350455 +2132 2132 11502.31734607094 +2134 2132 10000 +2213 2132 -1158.305495099443 +2215 2132 -175.0592621804525 +2245 2132 3838.583696514033 +2256 2132 580.1402415620666 +2133 2133 10980.23643750178 +2211 2133 -433.9763799773829 +2212 2133 3121.687226405483 +2213 2133 99.50179522882489 +2215 2133 -715.7382233254829 +2134 2134 11086.62799127504 +2211 2134 3286.897195924408 +2212 2134 506.5896278239277 +2213 2134 -753.6174474383002 +2215 2134 -116.1505089641285 +2135 2135 2 +2136 2135 -1 +2137 2135 -100 +2138 2135 -100 +2139 2135 -100 +2136 2136 2 +2137 2136 100 +2138 2136 100 +2139 2136 100 +2137 2137 11139.15856104007 +2138 2137 10000 +2139 2137 10000 +2214 2137 -363.0060565088618 +2216 2137 2662.809780660306 +2217 2137 457.941946765582 +2218 2137 -3359.206473163194 +2138 2138 11617.93520550037 +2139 2138 10000 +2211 2138 -555.4787317296223 +2212 2138 3995.427934184438 +2217 2138 532.4474011813235 +2218 2138 -3829.768987805732 +2139 2139 10663.60133711423 +2217 2139 350.9277711019158 +2218 2139 -2574.104382332281 +2219 2139 -87.49905900893198 +2220 2139 641.8178605176026 +2140 2140 2 +2141 2140 -1 +2142 2140 -100 +2143 2140 -100 +2144 2140 -100 +2141 2141 2 +2142 2141 100 +2143 2141 100 +2144 2141 100 +2142 2142 11262.81660021425 +2143 2142 10000 +2144 2142 10000 +2214 2142 2803.734444405091 +2216 2142 423.7444975098411 +2217 2142 -3536.986743506965 +2218 2142 -534.5651309157226 +2143 2143 11793.61111202886 +2144 2143 10000 +2211 2143 4206.879139685809 +2212 2143 648.4218426488605 +2217 2143 -4032.452976255292 +2218 2143 -621.5368928933908 +2144 2144 10735.59129080474 +2217 2144 -2710.334464240048 +2218 2144 -409.6452644838991 +2219 2144 675.7849755686869 +2220 2144 102.1394660709158 +2145 2145 2 +2146 2145 -1 +2147 2145 -100 +2148 2145 -100 +2149 2145 -100 +2146 2146 2 +2147 2146 100 +2148 2146 100 +2149 2146 100 +2147 2147 11617.93520550037 +2148 2147 10000 +2149 2147 10000 +2211 2147 555.4787317296223 +2212 2147 -3995.427934184438 +2217 2147 -532.4474011813235 +2218 2147 3829.768987805732 +2148 2148 10722.16352884103 +2149 2148 10000 +2209 2148 -372.1221718610504 +2210 2148 2530.552027947643 +2211 2148 394.9000182522165 +2212 2148 -2685.448805769761 +2149 2149 10980.23643750178 +2211 2149 433.9763799773829 +2212 2149 -3121.687226405483 +2213 2149 -99.50179522882489 +2215 2149 715.7382233254829 +2150 2150 2 +2151 2150 -1 +2152 2150 -100 +2153 2150 -100 +2154 2150 -100 +2151 2151 2 +2152 2151 100 +2153 2151 100 +2154 2151 100 +2152 2152 11793.61111202886 +2153 2152 10000 +2154 2152 10000 +2211 2152 -4206.879139685809 +2212 2152 -648.4218426488605 +2217 2152 4032.452976255292 +2218 2152 621.5368928933908 +2153 2153 10800.51611604023 +2154 2153 10000 +2209 2153 2664.477175818617 +2210 2153 434.3859280036067 +2211 2153 -2827.571601286569 +2212 2153 -460.9749804458911 +2154 2154 11086.62799127504 +2211 2154 -3286.897195924408 +2212 2154 -506.5896278239277 +2213 2154 753.6174474383002 +2215 2154 116.1505089641285 +2155 2155 2 +2156 2155 -1 +2157 2155 -100 +2158 2155 -100 +2156 2156 2 +2157 2156 100 +2158 2156 100 +2157 2157 10710.94386204584 +2158 2157 10000 +2207 2157 417.0454454812481 +2208 2157 2558.125590607029 +2209 2157 -2664.477175818617 +2210 2157 -434.383704554634 +2158 2158 10800.51611604023 +2209 2158 -2664.477175818617 +2210 2158 -434.3859280036067 +2211 2158 2827.571601286569 +2212 2158 460.9749804458911 +2159 2159 2 +2160 2159 -1 +2161 2159 -100 +2162 2159 -100 +2160 2160 2 +2161 2160 100 +2162 2160 100 +2161 2161 10641.36935661499 +2162 2161 10000 +2207 2161 2429.54601368147 +2208 2161 -357.2672292826962 +2209 2161 372.1202671155065 +2210 2161 -2530.552027947643 +2162 2162 10722.16352884103 +2209 2162 372.1221718610504 +2210 2162 -2530.552027947643 +2211 2162 -394.9000182522165 +2212 2162 2685.448805769761 +2163 2163 2 +2164 2163 -1 +2200 2163 -100 +2201 2163 -100 +2202 2163 -100 +2204 2163 -100 +2206 2163 -100 +2164 2164 2 +2200 2164 100 +2201 2164 100 +2202 2164 100 +2204 2164 100 +2206 2164 100 +2165 2165 2 +2166 2165 1 +2167 2165 -1 +2168 2165 -100 +2166 2166 2 +2167 2166 -1 +2168 2166 -100 +2167 2167 2 +2168 2167 100 +2168 2168 20001 +2173 2168 -3953.528431729815 +2174 2168 94.00390217892829 +2207 2168 960.5279241285525 +2208 2168 -24.04737877808363 +2169 2169 2 +2170 2169 1 +2171 2169 -1 +2172 2169 -100 +2170 2170 2 +2171 2170 -1 +2172 2170 -100 +2171 2171 2 +2172 2171 100 +2172 2172 20001 +2173 2172 -104.2171875822778 +2174 2172 -3566.08260671525 +2207 2172 25.3200452647617 +2208 2172 912.2487174456904 +2173 2173 3129.249656536715 +2199 2173 3953.528431729815 +2200 2173 104.2171875822778 +2207 2173 -760.02264828392 +2174 2174 2546.15637830838 +2199 2174 -94.00390217892829 +2200 2174 3566.08260671525 +2207 2174 -4.336808689942018e-15 +2208 2174 -651.0829663447372 +2175 2175 2 +2176 2175 1 +2177 2175 -1 +2178 2175 -100 +2176 2176 2 +2177 2176 -1 +2178 2176 -100 +2177 2177 2 +2178 2177 100 +2178 2178 15595.53949221101 +2183 2178 -7479.665428487434 +2184 2178 347.3231399461158 +2207 2178 2429.54601368147 +2208 2178 -112.8175528950178 +2179 2179 2 +2180 2179 1 +2181 2179 -1 +2182 2179 -100 +2180 2180 2 +2181 2180 -1 +2182 2180 -100 +2181 2181 2 +2182 2181 100 +2182 2182 16203.3720099027 +2183 2182 -405.4375037855993 +2184 2182 -7875.513957769802 +2207 2182 131.6942690200603 +2208 2182 2558.125590607029 +2183 2183 20053.56484260165 +2184 2183 100.9023145747138 +2198 2183 7479.665428487433 +2201 2183 405.4375037855993 +2207 2183 -6513.620130491026 +2208 2183 -32.77510451370595 +2184 2184 20043.74563249402 +2198 2184 -347.3231399461158 +2201 2184 7875.513957769802 +2207 2184 -32.77510451370612 +2208 2184 -6510.410909609286 +2185 2185 2 +2186 2185 1 +2187 2185 -1 +2188 2185 -100 +2186 2186 2 +2187 2186 -1 +2188 2186 -100 +2187 2187 2 +2188 2187 100 +2188 2188 14026.43800049794 +2193 2188 -6344.633953584671 +2194 2188 325.203801827163 +2207 2188 2429.546013681472 +2208 2188 -124.5300526623516 +2189 2189 2 +2190 2189 1 +2191 2189 -1 +2192 2189 -100 +2190 2190 2 +2191 2190 -1 +2192 2190 -100 +2191 2191 2 +2192 2191 100 +2192 2192 14463.79162326904 +2193 2192 -379.6171417051192 +2194 2192 -6680.412878908788 +2207 2192 145.3665128834951 +2208 2192 2558.12559060703 +2193 2193 20064.98506812181 +2194 2193 111.3777973843749 +2197 2193 6344.633953584668 +2202 2193 379.6171417051192 +2207 2193 -7683.315829529721 +2208 2193 -42.64981803953314 +2194 2194 20052.99087814001 +2197 2194 -325.2038018271627 +2202 2194 6680.412878908788 +2207 2194 -42.64981803953311 +2208 2194 -7678.706155631014 +2195 2195 2 +2196 2195 -1 +2197 2195 -100 +2198 2195 -100 +2199 2195 -100 +2203 2195 -100 +2205 2195 -100 +2196 2196 2 +2197 2196 100 +2198 2196 100 +2199 2196 100 +2203 2196 100 +2205 2196 100 +2197 2197 14026.43800049794 +2198 2197 10000 +2199 2197 10000 +2203 2197 10000 +2205 2197 10000 +2207 2197 -2429.546013681469 +2208 2197 124.5300526623515 +2198 2198 15595.53949221101 +2199 2198 10000 +2203 2198 10000 +2205 2198 10000 +2207 2198 -2429.54601368147 +2208 2198 112.8175528950178 +2199 2199 20001 +2203 2199 10000 +2205 2199 10000 +2207 2199 -960.5279241285525 +2208 2199 24.04737877808363 +2200 2200 20001 +2201 2200 10000 +2202 2200 10000 +2204 2200 10000 +2206 2200 10000 +2207 2200 -25.3200452647617 +2208 2200 -912.2487174456904 +2201 2201 16203.3720099027 +2202 2201 10000 +2204 2201 10000 +2206 2201 10000 +2207 2201 -131.6942690200603 +2208 2201 -2558.125590607029 +2202 2202 14463.79162326904 +2204 2202 10000 +2206 2202 10000 +2207 2202 -145.3665128834951 +2208 2202 -2558.12559060703 +2203 2203 10591.26938325955 +2205 2203 10000 +2207 2203 -2429.54601368147 +2208 2203 357.2352781820161 +2273 2203 -327.7111257702129 +2277 2203 2228.753171595832 +2204 2204 10655.40065373186 +2206 2204 10000 +2207 2204 -417.008148298846 +2208 2204 -2558.125590607029 +2273 2204 2346.7061299928 +2277 2204 382.5439929388428 +2205 2205 10641.36935661499 +2207 2205 -2429.54601368147 +2208 2205 357.2672292826962 +2209 2205 -372.1202671155065 +2210 2205 2530.552027947643 +2206 2206 10710.94386204584 +2207 2206 -417.0454454812481 +2208 2206 -2558.125590607029 +2209 2206 2664.477175818617 +2210 2206 434.383704554634 +2207 2207 44699.34992796875 +2208 2207 641.0190114743214 +2209 2207 -306.7803178121081 +2210 2207 -19712.05152605145 +2221 2207 2429.54601368147 +2222 2207 417.008148298846 +2273 2207 -293.0998789955131 +2277 2207 -18834.61739154202 +2208 2208 44488.06068422445 +2209 2208 -19616.92546285401 +2210 2208 -306.7803178121081 +2221 2208 -357.2352781820161 +2222 2208 2558.125590607029 +2273 2208 -18743.7414699043 +2277 2208 -293.0998789955125 +2209 2209 38575.92137238081 +2210 2209 603.2718504026279 +2211 2209 -19253.93810473932 +2212 2209 -301.105196965637 +2210 2210 38762.97665781443 +2211 2210 -301.1051969656376 +2212 2210 -19347.30491136024 +2211 2211 60847.3116071749 +2212 2211 918.4107668717389 +2213 2211 -4651.56771312611 +2215 2211 -68.92588012793119 +2217 2211 -19292.46038977374 +2218 2211 -285.8886923394288 +2212 2212 61121.94754391784 +2213 2212 -68.92588012793091 +2215 2212 -4671.772906138895 +2217 2212 -285.8886923394277 +2218 2212 -19376.27217459419 +2213 2213 42795.39433527799 +2215 2213 754.6623472892197 +2245 2213 -6033.209893741731 +2256 2213 -87.72830136750481 +2214 2214 40454.84872406847 +2216 2214 505.3174504389701 +2217 2214 -16010.3589501199 +2218 2214 -232.8077223585166 +2245 2214 -20386.55164444098 +2256 2214 -302.0913894231497 +2215 2215 43062.77291003401 +2245 2215 -87.72830136750495 +2256 2215 -6058.427984759306 +2216 2216 40597.37073165216 +2217 2216 -232.8077223585161 +2218 2216 -16077.28190172575 +2245 2216 -302.0913894231497 +2256 2216 -20475.11031513116 +2217 2217 59061.8453406872 +2218 2217 863.9666417530123 +2219 2217 -5079.410266505126 +2220 2217 -73.86297748091228 +2218 2218 59311.76023361787 +2219 2218 -73.86297748091214 +2220 2218 -5100.643804910763 +2219 2219 43563.78509042568 +2220 2219 689.2413760357066 +2225 2219 -7515.491637945858 +2228 2219 -111.3715968880662 +2220 2220 43781.68006407627 +2225 2220 -111.3715968880662 +2228 2220 -7548.142191673211 +2221 2221 10591.26938325955 +2273 2221 327.7111257702129 +2277 2221 -2228.753171595832 +2222 2222 10655.40065373186 +2273 2222 -2346.7061299928 +2277 2222 -382.5439929388428 +2223 2223 49853.77212160863 +2224 2223 -17234.57267330755 +2225 2223 -20432.45421478074 +2226 2223 755.4729473157668 +2227 2223 -255.3730784577744 +2228 2223 -319.5248584838833 +2224 2224 76101.52902713086 +2225 2224 -17421.44879605388 +2226 2224 -255.3730784577747 +2227 2224 924.2745053956075 +2228 2224 -272.4271464206757 +2230 2224 -10117.61069796597 +2231 2224 -36.95191562032518 +2225 2225 55186.68747387832 +2226 2225 -319.5248584838833 +2227 2225 -272.4271464206763 +2228 2225 846.7036147144713 +2226 2226 50080.63635568089 +2227 2226 -17309.4322011703 +2228 2226 -20531.52912739879 +2227 2227 76361.87939777909 +2228 2227 -17505.91648814691 +2230 2227 -36.95191562032511 +2231 2227 -10120.23293489147 +2228 2228 55444.23388895068 +2229 2229 60215.41422779029 +2232 2229 727.870890282406 +2233 2229 -20353.42513555727 +2235 2229 -19508.5642155871 +2239 2229 -288.8572688727165 +2241 2229 -276.839903093909 +2230 2230 48609.48707099867 +2231 2230 598.6492853708775 +2233 2230 -19246.10402343743 +2235 2230 -20353.20205290511 +2239 2230 -273.1494395368056 +2241 2230 -288.7660908396977 +2231 2231 48771.76460733772 +2233 2231 -273.1494395368084 +2235 2231 -288.7660908396977 +2239 2231 -19322.67251986461 +2241 2231 -20434.12035901025 +2232 2232 60412.86519946922 +2233 2232 -288.8572688727165 +2235 2232 -276.839903093909 +2239 2232 -20434.39454971851 +2241 2232 -19586.15719771443 +2233 2233 78355.4520178875 +2235 2233 -19366.16652991724 +2239 2233 1055.303486252193 +2241 2233 -274.882332607364 +2270 2233 -9717.383932678164 +2275 2233 -137.926086540712 +2234 2234 63649.21986903866 +2236 2234 -13674.08836460449 +2238 2234 -16760.09232942598 +2240 2234 686.2546502881771 +2242 2234 -198.8446127598659 +2243 2234 -262.0862753581833 +2235 2235 82232.88893242518 +2237 2235 -18085.12697848212 +2239 2235 -274.8823326073635 +2241 2235 1102.264424396021 +2244 2235 -256.6697476130469 +2236 2236 40698.80641731572 +2240 2236 -198.8446127598659 +2242 2236 597.4589939580027 +2237 2237 97370.56704923518 +2241 2237 -256.6697476130479 +2244 2237 1001.455015224402 +2246 2237 -17860.63261230743 +2250 2237 -27.65008685543448 +2238 2238 40318.18272385354 +2240 2238 -262.0862753581822 +2243 2238 608.129688555979 +2239 2239 78646.46771348146 +2241 2239 -19443.22918306866 +2270 2239 -137.9260865407117 +2275 2239 -9756.050641662079 +2240 2240 63845.30421383033 +2242 2240 -13731.2508881233 +2243 2240 -16841.354115403 +2241 2241 82539.60230249158 +2244 2241 -18157.07518424298 +2242 2242 40872.26427291637 +2243 2243 40500.03545498501 +2244 2244 97639.88650755865 +2246 2244 -27.65008685543448 +2250 2244 -17861.46355056587 +2245 2245 53966.74100957315 +2247 2245 -16636.59447693296 +2251 2245 -241.9247242825767 +2256 2245 790.3880542350755 +2246 2246 39425.24765328446 +2247 2246 -9778.344487785569 +2250 2246 319.9220234185377 +2251 2246 -152.9160943357105 +2254 2246 -1280.043860509881 +2255 2246 165.7313764949575 +2247 2247 59218.5732888769 +2250 2247 -152.9160943357105 +2251 2247 888.3472739668435 +2256 2247 -241.9247242825762 +2248 2248 51887.9275963521 +2252 2248 495.6887531082942 +2257 2248 -20353.57069140154 +2261 2248 -288.9167447437463 +2273 2248 -8320.816984282603 +2277 2248 -26.71544144508493 +2249 2249 40645.53296619869 +2253 2249 613.4503778957251 +2260 2249 -13191.81865150041 +2263 2249 -191.8303143760122 +2250 2250 39511.32630371654 +2251 2250 -9825.759531640149 +2254 2250 -193.4616725954149 +2255 2250 -1215.704760570904 +2251 2251 59482.61923583927 +2256 2251 -16706.14144632827 +2252 2252 52008.52597426232 +2257 2252 -288.9167447437463 +2261 2252 -20434.5734522896 +2273 2252 -26.7154414450849 +2277 2252 -8322.48316801384 +2253 2253 40829.08454003389 +2260 2253 -191.8303143760114 +2263 2253 -13246.96437159552 +2254 2254 10788.13805974417 +2255 2255 10710.99852218316 +2256 2256 54195.66265183171 +2257 2257 32700.83417248672 +2258 2257 -7010.178386668377 +2259 2257 -9246.910280513554 +2261 2257 432.4564719640056 +2262 2257 -131.2390826721876 +2264 2257 -9.02016473439687 +2258 2258 58178.45248364709 +2261 2258 -9.020164734396888 +2264 2258 603.2344627268934 +2271 2258 -19019.10174059306 +2276 2258 -276.5608222859356 +2259 2259 58365.39873959254 +2261 2259 -131.2390826721876 +2262 2259 572.7140407842254 +2270 2259 -19283.03070866885 +2275 2259 -273.6782711921931 +2260 2260 59971.78148189642 +2263 2260 915.620989526052 +2269 2260 -12173.26428147668 +2274 2260 -190.3604246736676 +2261 2261 32821.26794639318 +2262 2261 -9283.699652523139 +2264 2261 -7010.40367836552 +2262 2262 58518.79382640385 +2270 2262 -273.6782711921931 +2275 2262 -19359.7488255678 +2263 2263 60249.01992119088 +2269 2263 -190.3604246736676 +2274 2263 -12232.28718477864 +2264 2264 58352.3088924009 +2271 2264 -276.5608222859367 +2276 2264 -19098.60279165144 +2265 2265 56565.08537783711 +2266 2265 844.9621451388628 +2267 2265 -1932.594970534697 +2268 2265 250.2206578914343 +2269 2265 -17419.49325752218 +2272 2265 -12875.89111970853 +2274 2265 -272.4248899050733 +2278 2265 -187.2272112776763 +2266 2266 56815.20907422598 +2267 2266 -292.0877628448033 +2268 2266 -1835.456563963795 +2269 2266 -272.4248899050733 +2272 2266 -187.2272112776763 +2274 2266 -17503.96942087564 +2278 2266 -12929.71089222923 +2267 2267 11114.80267597528 +2268 2268 11005.65000282557 +2269 2269 42489.91867427636 +2274 2269 647.7379469453126 +2270 2270 60558.04917540231 +2275 2270 623.2225962854027 +2271 2271 54823.23603329052 +2273 2271 -16106.10393337073 +2276 2271 835.0107033028909 +2277 2271 -251.8645084622774 +2272 2272 60690.97652076074 +2273 2272 -15404.29227913642 +2277 2272 -228.2609953309049 +2278 2272 910.2702619979419 +2273 2273 61730.53501420452 +2276 2273 -251.8645084622771 +2277 2273 706.8673062264752 +2278 2273 -228.2609953309057 +2274 2274 42685.6472862825 +2275 2275 60721.69761933862 +2276 2276 55075.44972425603 +2277 2276 -16184.19800047103 +2277 2277 61930.8175108284 +2278 2277 -15471.2066884148 +2278 2278 60961.48088367913 diff --git a/tests/unit/hykkt/SCCGTestMatrices/JC_matrix_ACTIVSg200_AC_00.mtx b/tests/unit/hykkt/SCCGTestMatrices/JC_matrix_ACTIVSg200_AC_00.mtx new file mode 100644 index 000000000..8ff00545d --- /dev/null +++ b/tests/unit/hykkt/SCCGTestMatrices/JC_matrix_ACTIVSg200_AC_00.mtx @@ -0,0 +1,6787 @@ +%%MatrixMarket matrix coordinate real general +% Generated 03-Jun-2021 +1386 2278 6784 +165 1 0.01 +165 2 -0.01 +165 3 -1 +883 3 0.4242313186202482 +165 4 -1 +879 4 0.4418499492721292 +291 5 0.01 +291 6 -0.01 +291 7 -1 +980 7 0.359034535665874 +291 8 -1 +884 8 0.4242313186202482 +166 9 0.01 +166 10 -0.01 +166 11 -1 +885 11 0.402908095215169 +166 12 -1 +881 12 0.4196411571195481 +292 13 0.01 +292 14 -0.01 +292 15 -1 +982 15 0.3409883111696684 +292 16 -1 +886 16 0.402908095215169 +198 17 0.01 +198 18 -0.01 +198 19 -1 +978 19 0.2958665116797481 +198 20 -1 +985 20 0.282742877542122 +198 21 -1 +981 21 0.3409883111696684 +197 22 0.01 +197 23 -0.01 +197 24 -1 +976 24 0.3115247419351109 +197 25 -1 +983 25 0.2977065618553049 +197 26 -1 +979 26 0.359034535665874 +883 27 0.8463178457299726 +884 27 -0.8463178457299726 +885 27 -0.1153762382843257 +886 27 0.1153762382843257 +979 27 1 +980 27 -1 +981 27 -0.1470463292640551 +982 27 0.1470463292640551 +883 28 0.1279115737656098 +884 28 -0.1279115737656098 +885 28 0.8463178457299727 +886 28 -0.8463178457299727 +979 28 0.1630225397561483 +980 28 -0.1630225397561483 +981 28 1 +982 28 -1 +362 29 0.01 +362 30 -0.01 +362 31 -1 +1350 31 0.2002320635054166 +362 32 -1 +1138 32 0.3558017568338891 +362 33 -1 +894 33 0.2528495632646277 +361 34 0.01 +361 35 -0.01 +361 36 -1 +1348 36 0.2108290037845784 +361 37 -1 +1136 37 0.3746319576637757 +361 38 -1 +892 38 0.2662311949305019 +205 39 0.01 +205 40 -0.01 +205 41 -1 +880 41 0.4418499492721292 +205 42 -1 +652 42 0.1932594970534697 +205 43 -1 +1007 43 0.292481866170448 +205 44 -1 +1003 44 0.3057668294309561 +206 45 0.01 +206 46 -0.01 +206 47 -1 +882 47 0.4196411571195481 +206 48 -1 +654 48 0.1835456563963794 +206 49 -1 +1009 49 0.2777807917788383 +206 50 -1 +1005 50 0.2903980102805355 +364 51 0.01 +364 52 -0.01 +364 53 -1 +1318 53 0.2233248349660784 +364 54 -1 +1010 54 0.2777807917788383 +364 55 -1 +1349 55 0.2002320635054166 +88 56 0.01 +88 57 -0.01 +88 58 -1 +661 58 0.2626459670608764 +88 59 -1 +657 59 0.156479660001262 +88 60 -1 +653 60 0.1835456563963794 +363 61 0.01 +363 62 -0.01 +363 63 -1 +1316 63 0.2351439207686136 +363 64 -1 +1008 64 0.292481866170448 +363 65 -1 +1347 65 0.2108290037845784 +87 66 0.01 +87 67 -0.01 +87 68 -1 +659 68 0.2765460566807965 +87 69 -1 +655 69 0.1647610789853503 +87 70 -1 +651 70 0.1932594970534697 +354 71 0.01 +354 72 -0.01 +354 73 -1 +1338 73 0.3863999248910828 +354 74 -1 +1006 74 0.2903980102805355 +354 75 -1 +1345 75 0.4745196683752645 +353 76 0.01 +353 77 -0.01 +353 78 -1 +1336 78 0.4068494815517855 +353 79 -1 +1004 79 0.3057668294309561 +353 80 -1 +1343 80 0.4996328120897541 +227 81 0.01 +227 82 -0.01 +227 83 -1 +1076 83 0.2071972664244084 +227 84 -1 +1079 84 0.2635857492287806 +351 85 0.01 +351 86 -0.01 +351 87 -1 +1339 87 0.263965737387104 +351 88 -1 +1335 88 0.4068494815517855 +355 89 0.01 +355 90 -0.01 +355 91 -1 +1340 91 0.263965737387104 +355 92 -1 +1080 92 0.2635857492287806 +228 93 0.01 +228 94 -0.01 +228 95 -1 +1078 95 0.1967828688847391 +228 96 -1 +1081 96 0.2503370861279979 +352 97 0.01 +352 98 -0.01 +352 99 -1 +1341 99 0.2506979748657091 +352 100 -1 +1337 100 0.3863999248910828 +356 101 0.01 +356 102 -0.01 +356 103 -1 +1342 103 0.2506979748657091 +356 104 -1 +1082 104 0.2503370861279979 +1079 105 1 +1080 105 -1 +1081 105 -0.1363233951525025 +1082 105 0.1363233951525025 +1339 105 0.9985604640886933 +1340 105 -0.9985604640886933 +1341 105 -0.1468385814512623 +1342 105 0.1468385814512623 +1079 106 0.1511345860666409 +1080 106 -0.1511345860666409 +1081 106 1 +1082 106 -1 +1339 106 0.1627922206707296 +1340 106 -0.1627922206707296 +1341 106 0.9985604640886933 +1342 106 -0.9985604640886933 +1075 107 0.1630115773019497 +1076 107 -0.1630115773019497 +1077 107 1 +1078 107 -1 +1079 107 -0.1188026028979766 +1080 107 0.1188026028979766 +1081 107 -0.7860715802377101 +1082 107 0.7860715802377101 +1075 108 1 +1076 108 -1 +1077 108 -0.1470364411304753 +1078 108 0.1470364411304753 +1079 108 -0.7860715802377101 +1080 108 0.7860715802377101 +1081 108 0.1071599466508974 +1082 108 -0.1071599466508974 +1335 109 -0.8593859448150588 +1336 109 0.8593859448150588 +1337 109 0.1263663692802729 +1338 109 -0.1263663692802729 +1339 109 -1 +1340 109 1 +1341 109 0.1470502655893453 +1342 109 -0.1470502655893453 +1335 110 -0.1400957546028939 +1336 110 0.1400957546028939 +1337 110 -0.8593859448150587 +1338 110 0.8593859448150587 +1339 110 -0.1630269037531915 +1340 110 0.1630269037531915 +1341 110 -1 +1342 110 1 +334 111 0.01 +334 112 0.01 +334 113 -0.01 +334 114 -1 +1289 114 0.3548929589405018 +333 115 0.01 +333 116 0.01 +333 117 -0.01 +333 118 -1 +1287 118 0.3736750631926802 +1287 119 -0.07646528157096398 +1288 119 0.07646528157096398 +1289 119 -1 +1290 119 1 +1287 120 -1 +1288 120 1 +1289 120 0.06897168322841439 +1290 120 -0.06897168322841439 +331 121 0.01 +331 122 -0.01 +336 123 0.01 +336 124 0.01 +336 125 -0.01 +336 126 -1 +1293 126 0.5784743045411278 +335 127 0.01 +335 128 0.01 +335 129 -0.01 +335 130 -1 +1291 130 0.6090890699834577 +1291 131 -0.02582944328301048 +1292 131 0.02582944328301048 +1293 131 -1 +1294 131 1 +1291 132 -1 +1292 132 1 +1293 132 0.0232981575884052 +1294 132 -0.0232981575884052 +338 133 0.01 +338 134 0.01 +338 135 -0.01 +338 136 -1 +1297 136 0.6514321637425822 +337 137 0.01 +337 138 0.01 +337 139 -0.01 +337 140 -1 +1295 140 0.6859080993857196 +1295 141 -0.0451069776069228 +1296 141 0.0451069776069228 +1297 141 -1 +1298 141 1 +1295 142 -1 +1296 142 1 +1297 142 0.04068649335984706 +1298 142 -0.04068649335984706 +340 143 0.01 +340 144 0.01 +340 145 -0.01 +340 146 -1 +1301 146 0.4674048650835175 +339 147 0.01 +339 148 0.01 +339 149 -0.01 +339 150 -1 +1299 150 0.4921414699747004 +1299 151 -0.05613476111047146 +1300 151 0.05613476111047146 +1301 151 -1 +1302 151 1 +1299 152 -1 +1300 152 1 +1301 152 0.05063355397208594 +1302 152 -0.05063355397208594 +342 153 0.01 +342 154 0.01 +342 155 -0.01 +342 156 -1 +1305 156 0.7382808775017256 +341 157 0.01 +341 158 0.01 +341 159 -0.01 +341 160 -1 +1303 160 0.7773531331193746 +1303 161 -0.03860137577934956 +1304 161 0.03860137577934956 +1305 161 -1 +1306 161 1 +1303 162 -1 +1304 162 1 +1305 162 0.03481844057506584 +1306 162 -0.03481844057506584 +344 163 0.01 +344 164 0.01 +344 165 -0.01 +344 166 -1 +1309 166 0.6635027963739087 +343 167 0.01 +343 168 0.01 +343 169 -0.01 +343 170 -1 +1307 170 0.6986175496513777 +1307 171 -0.04347504892364613 +1308 171 0.04347504892364613 +1309 171 -1 +1310 171 1 +1307 172 -1 +1308 172 1 +1309 172 0.03921449370350807 +1310 172 -0.03921449370350807 +346 173 0.01 +346 174 0.01 +346 175 -0.01 +346 176 -1 +1313 176 0.6453110950673154 +345 177 0.01 +345 178 0.01 +345 179 -0.01 +345 180 -1 +1311 180 0.6794630835959854 +1311 181 -0.04597000941356681 +1312 181 0.04597000941356681 +1313 181 -1 +1314 181 1 +1311 182 -1 +1312 182 1 +1313 182 0.04146494804099087 +1314 182 -0.04146494804099087 +332 183 0.01 +332 184 -0.01 +332 185 -1 +1314 185 0.6453110950673154 +332 186 -1 +1310 186 0.6635027963739087 +332 187 -1 +1306 187 0.7382808775017256 +332 188 -1 +1302 188 0.4674048650835175 +332 189 -1 +1298 189 0.6514321637425822 +332 190 -1 +1294 190 0.5784743045411278 +331 191 -1 +1292 191 0.6090890699834577 +331 192 -1 +1296 192 0.6859080993857196 +331 193 -1 +1300 193 0.4921414699747004 +331 194 -1 +1304 194 0.7773531331193746 +331 195 -1 +1308 195 0.6986175496513777 +331 196 -1 +1312 196 0.6794630835959854 +331 197 -1 +1288 197 0.3736750631926802 +332 198 -1 +1290 198 0.3548929589405018 +332 199 -1 +658 199 0.156479660001262 +331 200 -1 +656 200 0.1647610789853503 +332 201 -1 +1317 201 0.2233248349660784 +331 202 -1 +1315 202 0.2351439207686136 +331 203 -1 +1075 203 0.2071972664244084 +332 204 -1 +1077 204 0.1967828688847391 +655 205 1 +656 205 -1 +657 205 -0.1390147978337516 +658 205 0.1390147978337516 +1075 205 -0.7951894435125665 +1076 205 0.7951894435125665 +1077 205 0.1169218257986109 +1078 205 -0.1169218257986109 +1287 205 0.4409207228805461 +1288 205 -0.4409207228805461 +1289 205 -0.0304110444273605 +1290 205 0.0304110444273605 +1291 205 0.2705040807739745 +1292 205 -0.2705040807739745 +1293 205 -0.006302246702178749 +1294 205 0.006302246702178749 +1295 205 0.2402086797530249 +1296 205 -0.2402086797530249 +1297 205 -0.009773248853749073 +1298 205 0.009773248853749073 +1299 205 0.3347839778546201 +1300 205 -0.3347839778546201 +1301 205 -0.01695130261169153 +1302 205 0.01695130261169153 +1303 205 0.2119513924439906 +1304 205 -0.2119513924439906 +1305 205 -0.007379816962613547 +1306 205 0.007379816962613547 +1307 205 0.2358387347520384 +1308 205 -0.2358387347520384 +1309 205 -0.009248296578977121 +1310 205 0.009248296578977121 +1311 205 0.2424871681230568 +1312 205 -0.2424871681230568 +1313 205 -0.01005471782682957 +1314 205 0.01005471782682957 +1315 205 -0.7801387243978269 +1316 205 0.7801387243978269 +1317 205 0.1084501903716034 +1318 205 -0.1084501903716034 +655 206 0.1541184028188146 +656 206 -0.1541184028188146 +657 206 1 +658 206 -1 +1075 206 -0.1296250854408431 +1076 206 0.1296250854408431 +1077 206 -0.7951894435125665 +1078 206 0.7951894435125665 +1287 206 0.03371512722553394 +1288 206 -0.03371512722553394 +1289 206 0.4409207228805461 +1290 206 -0.4409207228805461 +1291 206 0.006986969812174263 +1292 206 -0.006986969812174263 +1293 206 0.2705040807739746 +1294 206 -0.2705040807739746 +1295 206 0.01083508753860818 +1296 206 -0.01083508753860818 +1297 206 0.2402086797530248 +1298 206 -0.2402086797530248 +1299 206 0.01879301862048247 +1300 206 -0.01879301862048247 +1301 206 0.3347839778546201 +1302 206 -0.3347839778546201 +1303 206 0.008181615346686875 +1304 206 -0.008181615346686875 +1305 206 0.2119513924439907 +1306 206 -0.2119513924439907 +1307 206 0.01025310053143567 +1308 206 -0.01025310053143567 +1309 206 0.2358387347520384 +1310 206 -0.2358387347520384 +1311 206 0.01114713740128608 +1312 206 -0.01114713740128608 +1313 206 0.2424871681230568 +1314 206 -0.2424871681230568 +1315 206 -0.1202330283244842 +1316 206 0.1202330283244842 +1317 206 -0.7801387243978269 +1318 206 0.7801387243978269 +1007 207 0.9948173610204417 +1008 207 -0.9948173610204417 +1009 207 -0.1356236287183719 +1010 207 0.1356236287183719 +1315 207 0.998268954606628 +1316 207 -0.998268954606628 +1317 207 -0.1387733422061774 +1318 207 0.1387733422061774 +1347 207 -1 +1348 207 1 +1349 207 0.0130021770678944 +1350 207 -0.0130021770678944 +1007 208 0.1503587917853487 +1008 208 -0.1503587917853487 +1009 208 0.9948173610204417 +1010 208 -0.9948173610204417 +1315 208 0.1538507136500841 +1316 208 -0.1538507136500841 +1317 208 0.998268954606628 +1318 208 -0.998268954606628 +1347 208 -0.01441483060866473 +1348 208 0.01441483060866473 +1349 208 -1 +1350 208 1 +879 209 -0.9993543121349814 +880 209 0.9993543121349814 +881 209 0.1362383488900366 +882 209 -0.1362383488900366 +883 209 -1 +884 209 1 +885 209 0.1363273135104584 +886 209 -0.1363273135104584 +879 210 -0.1510402997435932 +880 210 0.1510402997435932 +881 210 -0.9993543121349814 +882 210 0.9993543121349814 +883 210 -0.1511389301442445 +884 210 0.1511389301442445 +885 210 -1 +886 210 1 +247 211 0.01 +247 212 -0.01 +247 213 -1 +1140 213 0.09754722595175123 +247 214 -1 +1132 214 0.2783407391772425 +247 215 -1 +508 215 0.3379577358280086 +247 216 -1 +1135 216 0.3746319576637757 +248 217 0.01 +248 218 -0.01 +248 219 -1 +1142 219 0.09264419027234901 +248 220 -1 +1134 220 0.2643504430729512 +248 221 -1 +510 221 0.3209708987270303 +248 222 -1 +1137 222 0.3558017568338891 +35 223 0.01 +35 224 -0.01 +36 225 0.01 +36 226 -0.01 +38 227 0.01 +38 228 -0.01 +38 229 -1 +517 229 0.06044518276944892 +37 230 0.01 +37 231 -0.01 +37 232 -1 +515 232 0.06364414092209038 +515 233 -0.1819583066701845 +516 233 0.1819583066701845 +517 233 -1 +518 233 1 +515 234 -1 +516 234 1 +517 234 0.1641263908351347 +518 234 -0.1641263908351347 +36 235 -1 +518 235 0.06044518276944892 +35 236 -1 +516 236 0.06364414092209038 +36 237 -1 +494 237 0.9605950084022657 +35 238 -1 +492 238 0.9621443269350689 +36 239 -1 +505 239 0.1747368677378757 +35 240 -1 +503 240 0.1839845182867898 +387 241 0.01 +387 242 -0.01 +387 243 -1 +1352 243 0.5421944989141317 +387 244 -1 +972 244 0.4237322967737047 +388 245 0.01 +388 246 -0.01 +388 247 -1 +1354 247 0.5149420686434186 +388 248 -1 +974 248 0.4024341558032569 +30 249 0.01 +30 250 -0.01 +30 251 -1 +485 251 0.06329559855055063 +29 252 0.01 +29 253 -0.01 +29 254 -1 +483 254 0.06664541009437386 +483 255 -0.1591454963959094 +484 255 0.1591454963959093 +485 255 -1 +486 255 1 +483 256 -1 +484 256 1 +485 256 0.1435492361910758 +486 256 -0.1435492361910758 +32 257 0.01 +32 258 -0.01 +32 259 -1 +489 259 0.06415281573170256 +31 260 0.01 +31 261 -0.01 +31 262 -1 +487 262 0.06754799403205773 +487 263 -0.1807430723017904 +488 263 0.1807430723017904 +489 263 -1 +490 263 1 +487 264 -1 +488 264 1 +489 264 0.1630302494467403 +490 264 -0.1630302494467403 +28 265 0.01 +28 266 -0.01 +28 267 -1 +490 267 0.06415281573170256 +28 268 -1 +486 268 0.06329559855055063 +28 269 -1 +502 269 0.3412836457017611 +27 270 0.01 +27 271 -0.01 +27 272 -1 +500 272 0.3593455002741101 +27 273 -1 +484 273 0.06664541009437386 +27 274 -1 +488 274 0.06754799403205773 +27 275 -1 +495 275 0.4009280142840455 +28 276 -1 +497 276 0.3807760895139976 +27 277 -1 +491 277 0.9621443269350689 +28 278 -1 +493 278 0.9605950084022657 +194 279 0.01 +194 280 0.01 +194 281 -0.01 +194 282 -1 +969 282 0.5581571026397933 +193 283 0.01 +193 284 0.01 +193 285 -0.01 +193 286 -1 +967 286 0.5876966148413639 +967 287 -0.04007534078636271 +968 287 0.04007534078636271 +969 287 -1 +970 287 1 +967 288 -1 +968 288 1 +969 288 0.03614795699696158 +970 288 -0.03614795699696158 +192 289 0.01 +192 290 -0.01 +192 291 -1 +970 291 0.5581571026397933 +192 292 -1 +578 292 0.5185467934830401 +191 293 0.01 +191 294 -0.01 +191 295 -1 +576 295 0.5459899976646819 +191 296 -1 +968 296 0.5876966148413639 +191 297 -1 +496 297 0.4009280142840455 +192 298 -1 +498 298 0.3807760895139976 +191 299 -1 +971 299 0.4237322967737047 +192 300 -1 +973 300 0.4024341558032569 +49 301 0.01 +49 302 -0.01 +52 303 0.01 +52 304 -0.01 +52 305 -1 +545 305 0.06084922266862378 +51 306 0.01 +51 307 -0.01 +51 308 -1 +543 308 0.06406956394346354 +543 309 -0.2013037705895543 +544 309 0.2013037705895543 +545 309 -1 +546 309 1 +543 310 -1 +544 310 1 +545 310 0.1815759991010141 +546 310 -0.1815759991010141 +54 311 0.01 +54 312 -0.01 +54 313 -1 +549 313 0.05975639982776847 +53 314 0.01 +53 315 -0.01 +53 316 -1 +547 316 0.06291890531858088 +547 317 -0.2358520713019441 +548 317 0.2358520713019442 +549 317 -1 +550 317 1 +547 318 -1 +548 318 1 +549 318 0.2127385660053618 +550 318 -0.2127385660053618 +50 319 0.01 +50 320 -0.01 +50 321 -1 +550 321 0.05975639982776847 +50 322 -1 +546 322 0.06084922266862378 +49 323 -1 +544 323 0.06406956394346354 +49 324 -1 +548 324 0.06291890531858088 +50 325 -1 +558 325 0.5056551268495438 +49 326 -1 +556 326 0.5324160615733259 +50 327 -1 +553 327 0.9619352395006421 +49 328 -1 +551 328 0.9634867196570858 +62 329 0.01 +62 330 -0.01 +62 331 -1 +573 331 0.06701527620722303 +61 332 0.01 +61 333 -0.01 +61 334 -1 +571 334 0.07056194534365866 +571 335 -0.1559197712729551 +572 335 0.1559197712729551 +573 335 -1 +574 335 1 +571 336 -1 +572 336 1 +573 336 0.1406396321617509 +574 336 -0.1406396321617509 +60 337 0.01 +60 338 -0.01 +60 339 -1 +574 339 0.06701527620722303 +60 340 -1 +554 340 0.9619352395006421 +59 341 0.01 +59 342 -0.01 +59 343 -1 +552 343 0.9634867196570858 +59 344 -1 +572 344 0.07056194534365866 +59 345 -1 +579 345 0.8063053836309171 +60 346 -1 +581 346 0.7657778952696194 +59 347 -1 +575 347 0.5459899976646819 +60 348 -1 +577 348 0.5185467934830401 +321 349 0.01 +321 350 -0.01 +321 351 -1 +848 351 0.2014690368693039 +321 352 -1 +580 352 0.8063053836309171 +321 353 -1 +555 353 0.5324160615733259 +321 354 -1 +499 354 0.3593455002741101 +322 355 0.01 +322 356 -0.01 +322 357 -1 +850 357 0.1913425584745868 +322 358 -1 +582 358 0.7657778952696194 +322 359 -1 +557 359 0.5056551268495438 +322 360 -1 +501 360 0.3412836457017611 +543 361 0.9820404798462808 +544 361 -0.9820404798462808 +545 361 -0.1783149812857277 +546 361 0.1783149812857277 +547 361 1 +548 361 -1 +549 361 -0.2127385660053618 +550 361 0.2127385660053618 +551 361 -0.6553902657022799 +552 361 0.6553902657022799 +553 361 0.1013099966820322 +554 361 -0.1013099966820322 +555 361 0.3075202755170675 +556 361 -0.3075202755170675 +557 361 -0.04275140038246653 +558 361 0.04275140038246653 +543 362 0.1976884514646315 +544 362 -0.1976884514646315 +545 362 0.9820404798462807 +546 362 -0.9820404798462807 +547 362 0.2358520713019442 +548 362 -0.2358520713019441 +549 362 1 +550 362 -1 +551 362 -0.1068437032975021 +552 362 0.1068437032975021 +553 362 -0.6889644643955246 +554 362 0.6889644643955246 +555 362 0.04739623153711267 +556 362 -0.04739623153711267 +557 362 0.3075202755170675 +558 362 -0.3075202755170675 +551 363 0.7350034440855597 +552 363 -0.7350034440855597 +553 363 -0.1136165737856965 +554 363 0.1136165737856965 +571 363 1 +572 363 -1 +573 363 -0.1406396321617509 +574 363 0.1406396321617509 +575 363 -0.1751359412634168 +576 363 0.1751359412634168 +577 363 0.02387595657561378 +578 363 -0.02387595657561378 +579 363 -0.3426115949572318 +580 363 0.3426115949572318 +581 363 0.05038015438622132 +582 363 -0.05038015438622132 +551 364 0.1198224844221188 +552 364 -0.1198224844221188 +553 364 0.7726560504231061 +554 364 -0.7726560504231061 +571 364 0.1559197712729551 +572 364 -0.1559197712729551 +573 364 1 +574 364 -1 +575 364 -0.0264700186638085 +576 364 0.0264700186638085 +577 364 -0.1751359412634168 +578 364 0.1751359412634168 +579 364 -0.05585383030269438 +580 364 0.05585383030269438 +581 364 -0.3426115949572318 +582 364 0.3426115949572318 +495 365 1 +496 365 -1 +497 365 -0.1363299701755227 +498 365 0.1363299701755227 +575 365 0.9951101095431923 +576 365 -0.9951101095431923 +577 365 -0.1356615072383802 +578 365 0.1356615072383802 +967 365 0.6822023543427546 +968 365 -0.6822023543427546 +969 365 -0.02466022136800784 +970 365 0.02466022136800784 +971 365 -0.9461823357263752 +972 365 0.9461823357263752 +973 365 0.1391317308109395 +974 365 -0.1391317308109395 +495 366 0.1511418754492258 +496 366 -0.1511418754492258 +497 366 1 +498 366 -1 +575 366 0.1504007857104255 +576 366 -0.1504007857104255 +577 366 0.9951101095431923 +578 366 -0.9951101095431923 +967 366 0.02733949183554486 +968 366 -0.02733949183554486 +969 366 0.6822023543427546 +970 366 -0.6822023543427546 +971 366 -0.1542480402672149 +972 366 0.1542480402672149 +973 366 -0.9461823357263751 +974 366 0.9461823357263751 +483 367 1 +484 367 -1 +485 367 -0.1435492361910758 +486 367 0.1435492361910758 +487 367 0.9866378868741017 +488 367 -0.9866378868741017 +489 367 -0.1608518208106895 +490 367 0.1608518208106895 +491 367 -0.7579423348800218 +492 367 0.7579423348800218 +493 367 0.1171669278543349 +494 367 -0.1171669278543349 +495 367 -0.1662278706400336 +496 367 0.1662278706400336 +497 367 0.02266184064669643 +498 367 -0.02266184064669643 +499 367 0.3277728547161513 +500 367 -0.3277728547161513 +501 367 -0.04556688552516516 +502 367 0.04556688552516516 +483 368 0.1591454963959093 +484 368 -0.1591454963959094 +485 368 1 +486 368 -1 +487 368 0.1783279629229715 +488 368 -0.1783279629229715 +489 368 0.9866378868741016 +490 368 -0.9866378868741019 +491 368 -0.1235667642477438 +492 368 0.1235667642477438 +493 368 -0.7967700500308046 +494 368 0.7967700500308046 +495 368 -0.02512399212046598 +496 368 0.02512399212046598 +497 368 -0.1662278706400336 +498 368 0.1662278706400336 +499 368 0.05051761199526893 +500 368 -0.05051761199526895 +501 368 0.3277728547161513 +502 368 -0.3277728547161513 +131 369 0.01 +131 370 -0.01 +131 371 -1 +811 371 0.4356889129359101 +131 372 -1 +807 372 0.3231458836069965 +373 373 0.01 +373 374 -0.01 +373 375 -1 +1012 375 0.3337368238560556 +373 376 -1 +812 376 0.4356889129359101 +132 377 0.01 +132 378 -0.01 +132 379 -1 +813 379 0.4137897941818684 +132 380 -1 +809 380 0.3069035375892765 +374 381 0.01 +374 382 -0.01 +374 383 -1 +1014 383 0.3169621432956266 +374 384 -1 +814 384 0.4137897941818684 +811 385 0.1623281562347933 +812 385 -0.1623281562347933 +813 385 0.9957775783829489 +814 385 -0.9957775783829489 +1011 385 0.1511375985646855 +1012 385 -0.1511375985646855 +1013 385 1 +1014 385 -1 +811 386 0.9957775783829489 +812 386 -0.9957775783829489 +813 386 -0.146419995334591 +814 386 0.146419995334591 +1011 386 1 +1012 386 -1 +1013 386 -0.1363261124257093 +1014 386 0.1363261124257093 +807 387 -0.1511385857824727 +808 387 0.1511385857824727 +809 387 -1 +810 387 1 +811 387 -0.1571767684329962 +812 387 0.1571767684329962 +813 387 -0.9641771672801118 +814 387 0.9641771672801118 +807 388 -1 +808 388 1 +809 388 0.1363270028961436 +810 388 -0.1363270028961436 +811 388 -0.9641771672801117 +812 388 0.9641771672801117 +813 388 0.141773443587802 +814 388 -0.141773443587802 +73 389 0.01 +73 390 -0.01 +74 391 0.01 +74 392 -0.01 +76 393 0.01 +76 394 -0.01 +76 395 -1 +613 395 0.06459828547328439 +75 396 0.01 +75 397 -0.01 +75 398 -1 +611 398 0.06801703949955015 +611 399 -0.1647879406105459 +612 399 0.1647879406105459 +613 399 -1 +614 399 1 +611 400 -1 +612 400 1 +613 400 0.1486387208174385 +614 400 -0.1486387208174385 +74 401 -1 +614 401 0.06459828547328439 +73 402 -1 +612 402 0.06801703949955015 +74 403 -1 +621 403 0.2432628430097213 +73 404 -1 +619 404 0.2561371138651651 +74 405 -1 +617 405 0.2202008078006306 +73 406 -1 +615 406 0.231854559796366 +119 407 0.01 +119 408 -0.01 +119 409 -1 +767 409 0.2539501337362882 +119 410 -1 +427 410 0.2866639327507783 +279 411 0.01 +279 412 -0.01 +279 413 -1 +620 413 0.2561371138651651 +279 414 -1 +432 414 0.2187909522780173 +120 415 0.01 +120 416 -0.01 +120 417 -1 +769 417 0.2411857874993808 +120 418 -1 +429 418 0.272255286307362 +280 419 0.01 +280 420 -0.01 +280 421 -1 +622 421 0.2432628430097214 +280 422 -1 +434 422 0.2077938189932625 +11 423 0.01 +11 424 -0.01 +12 425 0.01 +12 426 -0.01 +14 427 0.01 +14 428 -0.01 +14 429 -1 +425 429 0.06141714540910548 +13 430 0.01 +13 431 -0.01 +13 432 -1 +423 432 0.06466754302586522 +423 433 -0.1826597175949151 +424 433 0.1826597175949151 +425 433 -1 +426 433 1 +423 434 -1 +424 434 1 +425 434 0.1647590634823747 +426 434 -0.1647590634823747 +12 435 -1 +426 435 0.06141714540910548 +11 436 -1 +424 436 0.06466754302586522 +12 437 -1 +430 437 0.272255286307362 +11 438 -1 +428 438 0.2866639327507783 +12 439 -1 +433 439 0.2077938189932625 +11 440 -1 +431 440 0.2187909522780173 +423 441 1 +424 441 -1 +425 441 -0.1647590634823747 +426 441 0.1647590634823747 +427 441 0.2541573090100935 +428 441 -0.2541573090100935 +429 441 -0.03533613176592078 +430 441 0.03533613176592078 +431 441 -0.2955677204772722 +432 441 0.2955677204772722 +433 441 0.04346287014537936 +434 441 -0.04346287014537936 +423 442 0.1826597175949151 +424 442 -0.1826597175949151 +425 442 1 +426 442 -1 +427 442 0.03917531280426506 +428 442 -0.03917531280426506 +429 442 0.2541573090100935 +430 442 -0.2541573090100935 +431 442 -0.04818500068415799 +432 442 0.04818500068415799 +433 442 -0.2955677204772721 +434 442 0.2955677204772721 +431 443 1 +432 443 -1 +433 443 -0.1470487713448447 +434 443 0.1470487713448447 +619 443 0.9975015994804828 +620 443 -0.9975015994804828 +621 443 -0.1466706792050418 +622 443 0.1466706792050418 +431 444 0.163025247162818 +432 444 -0.163025247162818 +433 444 1 +434 444 -1 +619 444 0.162606076271569 +620 444 -0.162606076271569 +621 444 0.9975015994804828 +622 444 -0.9975015994804828 +99 445 0.01 +99 446 -0.01 +99 447 -1 +711 447 0.249113571421493 +99 448 -1 +707 448 0.2393253340947069 +100 449 0.01 +100 450 -0.01 +100 451 -1 +713 451 0.2365923262811438 +100 452 -1 +709 452 0.2272960770799394 +114 453 0.01 +114 454 -0.01 +114 455 -1 +710 455 0.2272960770799394 +114 456 -1 +618 456 0.2202008078006304 +114 457 -1 +741 457 0.2345615182400732 +113 458 0.01 +113 459 -0.01 +113 460 -1 +708 460 0.2393253340947069 +113 461 -1 +616 461 0.231854559796366 +113 462 -1 +739 462 0.2469752863302788 +707 463 -0.154120109472526 +708 463 0.154120109472526 +709 463 -1 +710 463 1 +711 463 -0.1629182695639417 +712 463 0.1629182695639417 +713 463 -0.9993639318091673 +714 463 0.9993639318091673 +707 464 -1 +708 464 1 +709 464 0.1390163372353826 +710 464 -0.1390163372353826 +711 464 -0.9993639318091673 +712 464 0.9993639318091673 +713 464 0.1469522775517055 +714 464 -0.1469522775517055 +611 465 1 +612 465 -1 +613 465 -0.1486387208174385 +614 465 0.1486387208174385 +615 465 -0.2933608015269935 +616 465 0.2933608015269935 +617 465 0.04078475119301836 +618 465 -0.04078475119301834 +619 465 -0.3101001434762953 +620 465 0.3101001434762953 +621 465 0.04559651702707775 +622 465 -0.04559651702707777 +611 466 0.1647879406105459 +612 466 -0.1647879406105459 +613 466 1 +614 466 -1 +615 466 -0.04521591090430389 +616 466 0.04521591090430389 +617 466 -0.2933608015269936 +618 466 0.2933608015269933 +619 466 -0.05055046288466385 +620 466 0.05055046288466385 +621 466 -0.310100143476295 +622 466 0.3101001434762953 +615 467 0.1541307177678384 +616 467 -0.1541307177678384 +617 467 1 +618 467 -1 +707 467 0.1493090995681203 +708 467 -0.1493090995681203 +709 467 0.9687840222741125 +710 467 -0.9687840222741125 +739 467 -0.162847372576433 +740 467 0.162847372576433 +741 467 -0.9989976772863314 +742 467 0.9989976772863314 +615 468 1 +616 468 -1 +617 468 -0.1390259059176506 +618 468 0.1390259059176505 +707 468 0.9687840222741128 +708 468 -0.9687840222741128 +709 468 -0.1346768063487085 +710 468 0.1346768063487085 +739 468 -0.9989976772863314 +740 468 0.9989976772863314 +741 468 0.1468883284696669 +742 468 -0.1468883284696669 +140 469 0.01 +140 470 0.01 +140 471 -0.01 +140 472 -1 +821 472 0.4048180981378636 +139 473 0.01 +139 474 0.01 +139 475 -0.01 +139 476 -1 +819 476 0.4262424051883414 +819 477 -0.1523613880043616 +820 477 0.1523613880043616 +821 477 -1 +822 477 1 +819 478 -1 +820 478 1 +821 478 0.1374299704883161 +822 478 -0.1374299704883161 +137 479 0.01 +137 480 -0.01 +142 481 0.01 +142 482 0.01 +142 483 -0.01 +142 484 -1 +825 484 0.5422055485518728 +141 485 0.01 +141 486 0.01 +141 487 -0.01 +141 488 -1 +823 488 0.5709008519735395 +823 489 -0.02737631555339133 +824 489 0.02737631555339133 +825 489 -1 +826 489 1 +823 490 -1 +824 490 1 +825 490 0.02469343636114485 +826 490 -0.02469343636114485 +144 491 0.01 +144 492 0.01 +144 493 -0.01 +144 494 -1 +829 494 0.3248652107096239 +143 495 0.01 +143 496 0.01 +143 497 -0.01 +143 498 -1 +827 498 0.3420581476269128 +827 499 -0.04888295320188164 +828 499 0.04888295320188164 +829 499 -1 +830 499 1 +827 500 -1 +828 500 1 +829 500 0.04409242330953312 +830 500 -0.04409242330953312 +146 501 0.01 +146 502 0.01 +146 503 -0.01 +146 504 -1 +833 504 0.4705130218938545 +145 505 0.01 +145 506 0.01 +145 507 -0.01 +145 508 -1 +831 508 0.4954141206803745 +831 509 -0.03637341622521068 +832 509 0.03637341622521068 +833 509 -1 +834 509 1 +831 510 -1 +832 510 1 +833 510 0.03280882107904429 +834 510 -0.03280882107904429 +148 511 0.01 +148 512 0.01 +148 513 -0.01 +148 514 -1 +837 514 0.3009531048995704 +147 515 0.01 +147 516 0.01 +147 517 -0.01 +147 518 -1 +835 518 0.3168805344211806 +835 519 -0.04555471131802939 +836 519 0.04555471131802939 +837 519 -1 +838 519 1 +835 520 -1 +836 520 1 +837 520 0.04109034916288189 +838 520 -0.04109034916288189 +150 521 0.01 +150 522 0.01 +150 523 -0.01 +150 524 -1 +841 524 0.2879044441797776 +149 525 0.01 +149 526 0.01 +149 527 -0.01 +149 528 -1 +839 528 0.3031412955994098 +839 529 -0.04979575302239157 +840 529 0.04979575302239157 +841 529 -1 +842 529 1 +839 530 -1 +840 530 1 +841 530 0.04491576873869677 +842 530 -0.04491576873869677 +152 531 0.01 +152 532 0.01 +152 533 -0.01 +152 534 -1 +845 534 0.4033496302320763 +151 535 0.01 +151 536 0.01 +151 537 -0.01 +151 538 -1 +843 538 0.424696221124477 +843 539 -0.04954577827733377 +844 539 0.04954577827733377 +845 539 -1 +846 539 1 +843 540 -1 +844 540 1 +845 540 0.04469029152110189 +846 540 -0.04469029152110189 +138 541 0.01 +138 542 -0.01 +138 543 -1 +846 543 0.4033496302320763 +138 544 -1 +842 544 0.2879044441797776 +138 545 -1 +838 545 0.3009531048995704 +138 546 -1 +834 546 0.4705130218938545 +138 547 -1 +830 547 0.3248652107096239 +138 548 -1 +826 548 0.5422055485518728 +137 549 -1 +824 549 0.5709008519735395 +137 550 -1 +828 550 0.3420581476269128 +137 551 -1 +832 551 0.4954141206803745 +137 552 -1 +836 552 0.3168805344211806 +137 553 -1 +840 553 0.3031412955994098 +137 554 -1 +844 554 0.424696221124477 +137 555 -1 +820 555 0.4262424051883414 +138 556 -1 +822 556 0.4048180981378636 +137 557 -1 +712 557 0.249113571421493 +137 558 -1 +740 558 0.2469752863302788 +138 559 -1 +714 559 0.2365923262811438 +138 560 -1 +742 560 0.2345615182400732 +138 561 -1 +849 561 0.1913425584745868 +137 562 -1 +847 562 0.2014690368693039 +137 563 -1 +808 563 0.3231458836069965 +138 564 -1 +810 564 0.3069035375892765 +711 565 0.8412853139226713 +712 565 -0.8412853139226713 +713 565 -0.1237074793443171 +714 565 0.1237074793443171 +739 565 0.8680747967791463 +740 565 -0.8680747967791463 +741 565 -0.1276379903423818 +742 565 0.1276379903423818 +807 565 0.6234615605202215 +808 565 -0.6234615605202215 +809 565 -0.08499464596667444 +810 565 0.08499464596667444 +819 565 0.472663053738827 +820 565 -0.472663053738827 +821 565 -0.06495806952624437 +822 565 0.06495806952624437 +823 565 0.3528967178326119 +824 565 -0.3528967178326119 +825 565 -0.008714232643856495 +826 565 0.008714232643856495 +827 565 0.5889906095411847 +828 565 -0.5889906095411847 +829 565 -0.02597002328122985 +830 565 0.02597002328122985 +831 565 0.4066679338744269 +832 565 -0.4066679338744269 +833 565 -0.01334229548107068 +834 565 0.01334229548107068 +835 565 0.6357886174274185 +836 565 -0.6357886174274185 +837 565 -0.02612477628387856 +838 565 0.02612477628387856 +839 565 0.6646043933768032 +840 565 -0.6646043933768032 +841 565 -0.02985121723563434 +842 565 0.02985121723563434 +843 565 0.4743838698066824 +844 565 -0.4743838698066824 +845 565 -0.02120035343456908 +846 565 0.02120035343456908 +847 565 -1 +848 565 1 +849 565 0.1470353119239639 +850 565 -0.1470353119239639 +499 566 -0.9908571536742629 +500 566 0.9908571536742629 +501 566 0.1377486690664665 +502 566 -0.1377486690664665 +555 566 -0.9846931285994593 +556 566 0.9846931285994593 +557 566 0.1368918199745912 +558 566 -0.1368918199745912 +579 566 0.9782273960859957 +580 566 -0.9782273960859957 +581 566 -0.1438458241490507 +582 566 0.1438458241490507 +847 566 1 +848 566 -1 +849 566 -0.1470353119239639 +850 566 0.1470353119239639 +711 567 0.1371479830232771 +712 567 -0.1371479830232771 +713 567 0.8412853139226713 +714 567 -0.8412853139226713 +739 567 0.1415055340662095 +740 567 -0.1415055340662095 +741 567 0.8680747967791468 +742 567 -0.8680747967791468 +807 567 0.09422909854675977 +808 567 -0.09422909854675977 +809 567 0.6234615605202217 +810 567 -0.6234615605202217 +819 567 0.07201559892602781 +820 567 -0.07201559892602781 +821 567 0.4726630537388271 +822 567 -0.4726630537388271 +823 567 0.009661011905141686 +824 567 -0.009661011905141686 +825 567 0.352896717832612 +826 567 -0.352896717832612 +827 567 0.02879160040254947 +828 567 -0.02879160040254947 +829 567 0.5889906095411848 +830 567 -0.5889906095411848 +831 567 0.01479190202426098 +832 567 -0.01479190202426098 +833 567 0.406667933874427 +834 567 -0.406667933874427 +835 567 0.02896316692619508 +836 567 -0.02896316692619508 +837 567 0.6357886174274187 +838 567 -0.6357886174274187 +839 567 0.03309447623018767 +840 567 -0.03309447623018767 +841 567 0.6646043933768032 +842 567 -0.6646043933768032 +843 567 0.02350371803178546 +844 567 -0.02350371803178546 +845 567 0.4743838698066825 +846 567 -0.4743838698066825 +847 567 -0.1630103254100166 +848 567 0.1630103254100166 +849 567 -1 +850 567 1 +499 568 -0.1527147123742168 +500 568 0.1527147123742168 +501 568 -0.9908571536742629 +502 568 0.9908571536742629 +555 568 -0.151764768803069 +556 568 0.151764768803069 +557 568 -0.9846931285994593 +558 568 0.9846931285994593 +579 568 0.1594743078828206 +580 568 -0.1594743078828206 +581 568 0.9782273960859957 +582 568 -0.9782273960859957 +847 568 0.1630103254100166 +848 568 -0.1630103254100166 +849 568 1 +850 568 -1 +378 569 0.01 +378 570 -0.01 +378 571 -1 +1206 571 0.4209167349186566 +378 572 -1 +906 572 0.2498577953112712 +378 573 -1 +1069 573 0.2605347847665996 +377 574 0.01 +377 575 -0.01 +377 576 -1 +1204 576 0.4431930348495722 +377 577 -1 +904 577 0.2630810927634545 +377 578 -1 +1067 578 0.2743231436661784 +83 579 0.01 +83 580 -0.01 +84 581 0.01 +84 582 -0.01 +86 583 0.01 +86 584 -0.01 +86 585 -1 +641 585 0.05942431348757909 +85 586 0.01 +85 587 -0.01 +85 588 -1 +639 588 0.06256924387551885 +639 589 -0.1713587699816944 +640 589 0.1713587699816944 +641 589 -1 +642 589 1 +639 590 -1 +640 590 1 +641 590 0.154565608845886 +642 590 -0.154565608845886 +84 591 -1 +642 591 0.05942431348757909 +83 592 -1 +640 592 0.06256924387551885 +84 593 -1 +650 593 0.2404090022786559 +83 594 -1 +648 594 0.2531322384832855 +84 595 -1 +645 595 0.286266865652261 +83 596 -1 +643 596 0.3014170510227363 +175 597 0.01 +175 598 -0.01 +175 599 -1 +644 599 0.3014170510227363 +175 600 -1 +911 600 0.2515834033530913 +176 601 0.01 +176 602 -0.01 +176 603 -1 +646 603 0.286266865652261 +176 604 -1 +913 604 0.2389380165576147 +223 605 0.01 +223 606 -0.01 +223 607 -1 +1068 607 0.2743231436661784 +223 608 -1 +535 608 0.3112310071523803 +245 609 0.01 +245 610 -0.01 +245 611 -1 +912 611 0.2515834033530913 +245 612 -1 +540 612 0.3498345201990422 +224 613 0.01 +224 614 -0.01 +224 615 -1 +1070 615 0.2605347847665996 +224 616 -1 +537 616 0.2955875409470042 +246 617 0.01 +246 618 -0.01 +246 619 -1 +914 619 0.2389380165576147 +246 620 -1 +542 620 0.3322507179157168 +39 621 0.01 +39 622 -0.01 +42 623 0.01 +42 624 -0.01 +42 625 -1 +521 625 0.06651312755791271 +41 626 0.01 +41 627 -0.01 +41 628 -1 +519 628 0.07003322133396475 +519 629 -0.1349007683815732 +520 629 0.1349007683815732 +521 629 -1 +522 629 1 +519 630 -1 +520 630 1 +521 630 0.1216804917595005 +522 630 -0.1216804917595005 +44 631 0.01 +44 632 -0.01 +44 633 -1 +525 633 0.05923389145912909 +43 634 0.01 +43 635 -0.01 +43 636 -1 +523 636 0.06236874408615486 +523 637 -0.1757721899627586 +524 637 0.1757721899627586 +525 637 -1 +526 637 1 +523 638 -1 +524 638 1 +525 638 0.1585465136255985 +526 638 -0.1585465136255985 +46 639 0.01 +46 640 -0.01 +46 641 -1 +529 641 0.06189219874657859 +45 642 0.01 +45 643 -0.01 +45 644 -1 +527 644 0.06516773775057916 +527 645 -0.196457386012141 +528 645 0.196457386012141 +529 645 -1 +530 645 1 +527 646 -1 +528 646 1 +529 646 0.1772045602596334 +530 646 -0.1772045602596334 +48 647 0.01 +48 648 -0.01 +48 649 -1 +533 649 0.06690466705736249 +47 650 0.01 +47 651 -0.01 +47 652 -1 +531 652 0.07044548239328843 +531 653 -0.1656884370593469 +532 653 0.1656884370593469 +533 653 -1 +534 653 1 +531 654 -1 +532 654 1 +533 654 0.1494509686054411 +534 654 -0.1494509686054411 +40 655 0.01 +40 656 -0.01 +40 657 -1 +534 657 0.06690466705736249 +40 658 -1 +530 658 0.06189219874657859 +40 659 -1 +526 659 0.05923389145912909 +40 660 -1 +522 660 0.06651312755791271 +39 661 -1 +520 661 0.07003322133396475 +39 662 -1 +524 662 0.06236874408615486 +39 663 -1 +528 663 0.06516773775057916 +39 664 -1 +532 664 0.07044548239328843 +40 665 -1 +538 665 0.2955875409470042 +39 666 -1 +536 666 0.3112310071523803 +40 667 -1 +541 667 0.3322507179157168 +39 668 -1 +539 668 0.3498345201990422 +519 669 0.8905594073523967 +520 669 -0.8905594073523967 +521 669 -0.1083637066276889 +522 669 0.1083637066276889 +523 669 1 +524 669 -1 +525 669 -0.1585465136255985 +526 669 0.1585465136255985 +527 669 0.9570493965106314 +528 669 -0.9570493965106314 +529 669 -0.169593517455414 +530 669 0.169593517455414 +531 669 0.8853476754968881 +532 669 -0.8853476754968881 +533 669 -0.1323160676555857 +534 669 0.1323160676555857 +535 669 0.2268999418260262 +536 669 -0.2268999418260262 +537 669 -0.03093173927958596 +538 669 0.03093173927958596 +539 669 -0.2466109191312516 +540 669 0.2466109191312516 +541 669 0.03428499907848623 +542 669 -0.03428499907848623 +519 670 0.1201371483412767 +520 670 -0.1201371483412767 +521 670 0.8905594073523966 +522 670 -0.8905594073523966 +523 670 0.1757721899627586 +524 670 -0.1757721899627586 +525 670 1 +526 670 -1 +527 670 0.1880194227229757 +528 670 -0.1880194227229757 +529 670 0.9570493965106314 +530 670 -0.9570493965106314 +531 670 0.1466918726072052 +532 670 -0.1466918726072052 +533 670 0.8853476754968881 +534 670 -0.8853476754968881 +535 670 0.03429239425200499 +536 670 -0.03429239425200499 +537 670 0.2268999418260262 +538 670 -0.2268999418260262 +539 670 -0.03800997721796442 +540 670 0.03800997721796442 +541 670 -0.2466109191312516 +542 670 0.2466109191312516 +539 671 0.9947805627345816 +540 671 -0.9947805627345816 +541 671 -0.1382990290811056 +542 671 0.1382990290811056 +911 671 1 +912 671 -1 +913 671 -0.1470372577327098 +914 671 0.1470372577327098 +539 672 0.1533248676077118 +540 672 -0.1533248676077118 +541 672 0.9947805627345816 +542 672 -0.9947805627345816 +911 672 0.1630124826259446 +912 672 -0.1630124826259446 +913 672 1 +914 672 -1 +643 673 0.9971355342572501 +644 673 -0.9971355342572501 +645 673 -0.135932964069312 +646 673 0.135932964069312 +911 673 -1 +912 673 1 +913 673 0.1470372577327098 +914 673 -0.1470372577327098 +643 674 0.1507017356371197 +644 674 -0.1507017356371197 +645 674 0.9971355342572501 +646 674 -0.9971355342572501 +911 674 -0.1630124826259446 +912 674 0.1630124826259446 +913 674 -1 +914 674 1 +324 675 0.01 +324 676 -0.01 +324 677 -1 +770 677 0.2411857874993808 +324 678 -1 +801 678 0.271916214331726 +324 679 -1 +649 679 0.2404090022786559 +323 680 0.01 +323 681 -0.01 +323 682 -1 +768 682 0.2539501337362882 +323 683 -1 +799 683 0.286306915969434 +323 684 -1 +647 684 0.2531322384832855 +639 685 1 +640 685 -1 +641 685 -0.154565608845886 +642 685 0.154565608845886 +643 685 -0.2479893967104212 +644 685 0.2479893967104212 +645 685 0.0338067720931418 +646 685 -0.0338067720931418 +647 685 0.247180067819178 +648 685 -0.247180067819178 +649 685 -0.03369677058606148 +650 685 0.03369677058606148 +639 686 0.1713587699816944 +640 686 -0.1713587699816944 +641 686 1 +642 686 -1 +643 686 -0.03747979208433366 +644 686 0.03747979208433366 +645 686 -0.2479893967104212 +646 686 0.2479893967104212 +647 686 0.03735783919267709 +648 686 -0.03735783919267709 +649 686 0.247180067819178 +650 686 -0.247180067819178 +535 687 -0.9979983764528928 +536 687 0.9979983764528928 +537 687 0.1360503900241638 +538 687 -0.1360503900241638 +1067 687 1 +1068 687 -1 +1069 687 -0.1390175617684168 +1070 687 0.1390175617684168 +535 688 -0.1508319196239561 +536 688 0.1508319196239561 +537 688 -0.9979983764528928 +538 688 0.9979983764528928 +1067 688 0.1541214670479667 +1068 688 -0.1541214670479667 +1069 688 1 +1070 688 -1 +129 689 0.01 +129 690 -0.01 +129 691 -1 +804 691 0.2581955957075131 +129 692 -1 +800 692 0.286306915969434 +130 693 0.01 +130 694 -0.01 +130 695 -1 +806 695 0.2452178589685451 +130 696 -1 +802 696 0.271916214331726 +325 697 0.01 +325 698 -0.01 +326 699 0.01 +326 700 -0.01 +328 701 0.01 +328 702 0.01 +328 703 -0.01 +328 704 -1 +1281 704 0.2983919680849001 +327 705 0.01 +327 706 0.01 +327 707 -0.01 +327 708 -1 +1279 708 0.3141838538109927 +1279 709 -0.01822891812055671 +1280 709 0.01822891812055671 +1281 709 -1 +1282 709 1 +1279 710 -1 +1280 710 1 +1281 710 0.01644248396628105 +1282 710 -0.01644248396628105 +326 711 -1 +1282 711 0.2983919680849001 +325 712 -1 +1280 712 0.3141838538109927 +326 713 -1 +1285 713 0.1822923716846567 +325 714 -1 +1283 714 0.1919398843870208 +326 715 -1 +805 715 0.2452178589685451 +325 716 -1 +803 716 0.2581955957075131 +89 717 0.01 +89 718 -0.01 +89 719 -1 +668 719 0.2645453413906469 +89 720 -1 +664 720 0.3272712362222638 +90 721 0.01 +90 722 -0.01 +90 723 -1 +670 723 0.2512484461175867 +90 724 -1 +666 724 0.3108215367830043 +125 725 0.01 +125 726 -0.01 +125 727 -1 +792 727 0.2805598081950039 +125 728 -1 +787 728 0.3158755590060447 +126 729 0.01 +126 730 -0.01 +126 731 -1 +794 731 0.2664579745819523 +126 732 -1 +789 732 0.2999986427642256 +93 733 0.01 +93 734 -0.01 +93 735 -1 +679 735 0.387106681722359 +93 736 -1 +663 736 0.3272712362222638 +199 737 0.01 +199 738 -0.01 +199 739 -1 +788 739 0.3158755590060447 +199 740 -1 +987 740 0.327315230541643 +405 741 0.01 +405 742 -0.01 +405 743 -1 +988 743 0.327315230541643 +405 744 -1 +680 744 0.387106681722359 +94 745 0.01 +94 746 -0.01 +94 747 -1 +681 747 0.3676494613483167 +94 748 -1 +665 748 0.3108215367830045 +200 749 0.01 +200 750 -0.01 +200 751 -1 +790 751 0.2999986427642256 +200 752 -1 +989 752 0.3108633198071314 +406 753 0.01 +406 754 -0.01 +406 755 -1 +990 755 0.3108633198071314 +406 756 -1 +682 756 0.3676494613483167 +679 757 0.9973404222602167 +680 757 -0.9973404222602167 +681 757 -0.1386534422252523 +682 757 0.1386534422252523 +987 757 1 +988 757 -1 +989 757 -0.1470488226783321 +990 757 0.1470488226783321 +679 758 0.1537177868405204 +680 758 -0.1537177868405204 +681 758 0.9973404222602167 +682 758 -0.9973404222602167 +987 758 0.1630253040735586 +988 758 -0.1630253040735586 +989 758 1 +990 758 -1 +787 759 1 +788 759 -1 +789 759 -0.1470385535797208 +790 759 0.1470385535797208 +987 759 -0.9650499870822761 +988 759 0.9650499870822761 +989 759 0.1419094644261883 +990 759 -0.1419094644261883 +787 760 0.1630139192634447 +788 760 -0.1630139192634447 +789 760 1 +790 760 -1 +987 760 -0.1573275675902718 +988 760 0.1573275675902718 +989 760 -0.965049987082276 +990 760 0.965049987082276 +663 761 -1 +664 761 1 +665 761 0.1363266016284017 +666 761 -0.1363266016284016 +679 761 -0.9972063701020136 +680 761 0.9972063701020136 +681 761 0.1386348058672368 +682 761 -0.1386348058672368 +663 762 -0.1511381409180089 +664 762 0.1511381409180089 +665 762 -1 +666 762 1 +679 762 -0.1536971256895029 +680 762 0.1536971256895029 +681 762 -0.9972063701020135 +682 762 0.9972063701020135 +787 763 -0.144788517559197 +788 763 0.144788517559197 +789 763 -0.8881972669168589 +790 763 0.8881972669168589 +791 763 0.1511367528596661 +792 763 -0.1511367528596661 +793 763 1 +794 763 -1 +787 764 -0.8881972669168589 +788 764 0.8881972669168589 +789 764 0.1305992414209161 +790 764 -0.1305992414209161 +791 764 1 +792 764 -1 +793 764 -0.13632534959979 +794 764 0.13632534959979 +663 765 0.1221705015932054 +664 765 -0.1221705015932054 +665 765 0.8083366703543208 +666 765 -0.8083366703543201 +667 765 0.1511347864297198 +668 765 -0.1511347864297198 +669 765 1 +670 765 -1 +663 766 0.8083366703543203 +664 766 -0.8083366703543203 +665 766 -0.1101977912410221 +666 766 0.110197791241022 +667 766 1 +668 766 -1 +669 766 -0.1363235758799977 +670 766 0.1363235758799977 +370 767 0.01 +370 768 0.01 +370 769 -0.01 +370 770 -1 +1361 770 0.5749304897142643 +369 771 0.01 +369 772 0.01 +369 773 -0.01 +369 774 -1 +1359 774 0.6053577048041517 +1359 775 -0.03886408884197223 +1360 775 0.03886408884197223 +1361 775 -1 +1362 775 1 +1359 776 -1 +1360 776 1 +1361 776 0.03505540775497953 +1362 776 -0.03505540775497953 +372 777 0.01 +372 778 0.01 +372 779 -0.01 +372 780 -1 +1365 780 0.3561953783843976 +371 781 0.01 +371 782 0.01 +371 783 -0.01 +371 784 -1 +1363 784 0.3750464109631575 +1363 785 -0.04264074850203559 +1364 785 0.04264074850203559 +1365 785 -1 +1366 785 1 +1363 786 -1 +1364 786 1 +1365 786 0.03846195473138318 +1366 786 -0.03846195473138318 +368 787 0.01 +368 788 -0.01 +368 789 -1 +1366 789 0.3561953783843976 +368 790 -1 +1362 790 0.5749304897142643 +368 791 -1 +1286 791 0.1822923716846567 +367 792 0.01 +367 793 -0.01 +367 794 -1 +1284 794 0.1919398843870208 +367 795 -1 +1360 795 0.6053577048041517 +367 796 -1 +1364 796 0.3750464109631575 +367 797 -1 +1367 797 0.1890057788455733 +368 798 -1 +1369 798 0.1795057436754147 +367 799 -1 +667 799 0.2645453413906469 +368 800 -1 +669 800 0.2512484461175867 +34 801 0.01 +34 802 -0.01 +34 803 -1 +506 803 0.1747368677378757 +34 804 -1 +513 804 0.4162870931389885 +34 805 -1 +509 805 0.3209708987270303 +33 806 0.01 +33 807 -0.01 +33 808 -1 +504 808 0.1839845182867898 +33 809 -1 +511 809 0.4383183771788717 +33 810 -1 +507 810 0.3379577358280086 +394 811 0.01 +394 812 -0.01 +394 813 -1 +1370 813 0.1795057436754147 +394 814 -1 +946 814 0.1953664409194896 +394 815 -1 +1273 815 0.1557984624747427 +393 816 0.01 +393 817 -0.01 +393 818 -1 +1368 818 0.1890057788455733 +393 819 -1 +944 819 0.2057058764261323 +393 820 -1 +1271 820 0.1640438302421554 +179 821 0.01 +179 822 -0.01 +179 823 -1 +932 823 0.1204602051713293 +179 824 -1 +928 824 0.2363262480706201 +180 825 0.01 +180 826 -0.01 +180 827 -1 +934 827 0.1144054898461055 +180 828 -1 +930 828 0.2244477347150211 +927 829 0.01734837381094569 +928 829 -0.01734837381094569 +929 829 0.6770568086352805 +930 829 -0.6770568086352805 +931 829 0.1474038050676298 +932 829 -0.1474038050676298 +933 829 1 +934 829 -1 +927 830 0.6770568086352804 +928 830 -0.6770568086352804 +929 830 -0.01564823300763243 +930 830 0.01564823300763243 +931 830 1 +932 830 -1 +933 830 -0.1329582307279189 +934 830 0.1329582307279189 +303 831 0.01 +303 832 -0.01 +308 833 0.01 +308 834 0.01 +308 835 -0.01 +308 836 -1 +1249 836 0.8333025473515845 +307 837 0.01 +307 838 0.01 +307 839 -0.01 +307 840 -1 +1247 840 0.8774036626982747 +1247 841 -0.03815982367538021 +1248 841 0.03815982367538021 +1249 841 -1 +1250 841 1 +1247 842 -1 +1248 842 1 +1249 842 0.03442016058160827 +1250 842 -0.03442016058160827 +310 843 0.01 +310 844 0.01 +310 845 -0.01 +310 846 -1 +1253 846 0.396395568111371 +309 847 0.01 +309 848 0.01 +309 849 -0.01 +309 850 -1 +1251 850 0.4173741271326489 +1251 851 -0.01850401943008895 +1252 851 0.01850401943008895 +1253 851 -1 +1254 851 1 +1251 852 -1 +1252 852 1 +1253 852 0.01669062534478589 +1254 852 -0.01669062534478589 +312 853 0.01 +312 854 0.01 +312 855 -0.01 +312 856 -1 +1257 856 0.4525932568368963 +311 857 0.01 +311 858 0.01 +311 859 -0.01 +311 860 -1 +1255 860 0.4765459826365892 +1255 861 -0.03131340705028131 +1256 861 0.03131340705028131 +1257 861 -1 +1258 861 1 +1255 862 -1 +1256 862 1 +1257 862 0.02824469285279549 +1258 862 -0.02824469285279549 +314 863 0.01 +314 864 0.01 +314 865 -0.01 +314 866 -1 +1261 866 0.3379215054506657 +313 867 0.01 +313 868 0.01 +313 869 -0.01 +313 870 -1 +1259 870 0.3558054244874803 +1259 871 -0.02546900136964265 +1260 871 0.02546900136964265 +1261 871 -1 +1262 871 1 +1259 872 -1 +1260 872 1 +1261 872 0.02297303898607614 +1262 872 -0.02297303898607614 +316 873 0.01 +316 874 0.01 +316 875 -0.01 +316 876 -1 +1265 876 0.3327922328395486 +315 877 0.01 +315 878 0.01 +315 879 -0.01 +315 880 -1 +1263 880 0.3504046938761609 +1263 881 -0.02626112085932803 +1264 881 0.02626112085932803 +1265 881 -1 +1266 881 1 +1263 882 -1 +1264 882 1 +1265 882 0.02368753075801751 +1266 882 -0.02368753075801751 +304 883 0.01 +304 884 -0.01 +304 885 -1 +1266 885 0.3327922328395486 +304 886 -1 +1262 886 0.3379215054506657 +304 887 -1 +1258 887 0.4525932568368963 +304 888 -1 +1254 888 0.396395568111371 +304 889 -1 +1250 889 0.8333025473515845 +303 890 -1 +1248 890 0.8774036626982747 +303 891 -1 +1252 891 0.4173741271326489 +303 892 -1 +1256 892 0.4765459826365892 +303 893 -1 +1260 893 0.3558054244874803 +303 894 -1 +1264 894 0.3504046938761609 +304 895 -1 +1246 895 0.1498683170165083 +303 896 -1 +1244 896 0.1577998419549179 +304 897 -1 +514 897 0.4162870931389885 +303 898 -1 +512 898 0.4383183771788717 +303 899 -1 +931 899 0.1204602051713293 +304 900 -1 +933 900 0.1144054898461055 +182 901 0.01 +182 902 -0.01 +182 903 -1 +942 903 0.1682027727835733 +182 904 -1 +945 904 0.1953664409194896 +182 905 -1 +937 905 0.2413991707149197 +181 906 0.01 +181 907 -0.01 +181 908 -1 +940 908 0.1771046175070021 +181 909 -1 +943 909 0.2057058764261323 +181 910 -1 +935 910 0.2541748098943861 +305 911 0.01 +305 912 -0.01 +305 913 -1 +1272 913 0.1640438302421554 +305 914 -1 +1268 914 0.3738596544048913 +305 915 -1 +936 915 0.2541748098943861 +305 916 -1 +1243 916 0.1577998419549179 +306 917 0.01 +306 918 -0.01 +306 919 -1 +1274 919 0.1557984624747427 +306 920 -1 +1270 920 0.3550682720077862 +306 921 -1 +938 921 0.2413991707149197 +306 922 -1 +1245 922 0.1498683170165083 +295 923 0.01 +295 924 -0.01 +295 925 -1 +1232 925 0.3077667914443928 +295 926 -1 +1227 926 0.2747097557419035 +357 927 0.01 +357 928 -0.01 +357 929 -1 +1228 929 0.2747097557419035 +357 930 -1 +939 930 0.1771046175070021 +375 931 0.01 +375 932 -0.01 +375 933 -1 +1267 933 0.3738596544048913 +375 934 -1 +1231 934 0.3077667914443928 +296 935 0.01 +296 936 -0.01 +296 937 -1 +1234 937 0.2922974478042837 +296 938 -1 +1229 938 0.2609019644824306 +358 939 0.01 +358 940 -0.01 +358 941 -1 +1230 941 0.2609019644824306 +358 942 -1 +941 942 0.1682027727835733 +376 943 0.01 +376 944 -0.01 +376 945 -1 +1269 945 0.3550682720077862 +376 946 -1 +1233 946 0.2922974478042837 +1227 947 -1 +1228 947 1 +1229 947 0.1390217116257383 +1230 947 -0.1390217116257383 +1231 947 0.892590634787633 +1232 947 -0.892590634787633 +1233 947 -0.1216875338834712 +1234 947 0.1216875338834712 +1227 948 -0.1541260677767545 +1228 948 0.1541260677767545 +1229 948 -1 +1230 948 1 +1231 948 0.1349085756144415 +1232 948 -0.1349085756144415 +1233 948 0.892590634787633 +1234 948 -0.892590634787633 +1231 949 -1 +1232 949 1 +1233 949 0.1363307311782667 +1234 949 -0.1363307311782667 +1267 949 -0.996916855604627 +1268 949 0.996916855604627 +1269 949 0.1386010667712338 +1270 949 -0.1386010667712338 +1231 950 -0.1511427191329867 +1232 950 0.1511427191329867 +1233 950 -1 +1234 950 1 +1267 950 -0.1536597209263441 +1268 950 0.1536597209263441 +1269 950 -0.9969168556046268 +1270 950 0.9969168556046268 +939 951 -1 +940 951 1 +941 951 0.1470602003491336 +942 951 -0.1470602003491336 +1227 951 0.644697226091221 +1228 951 -0.644697226091221 +1229 951 -0.08962691185156713 +1230 951 0.08962691185156713 +939 952 -0.1630379178994177 +940 952 0.1630379178994177 +941 952 -1 +942 952 1 +1227 952 0.09936464836402112 +1228 952 -0.09936464836402112 +1229 952 0.6446972260912212 +1230 952 -0.6446972260912212 +182 953 -1 +929 953 0.2244477347150211 +181 954 -1 +927 954 0.2363262480706201 +927 955 -0.9954315365254133 +928 955 0.9954315365254133 +929 955 0.0230065548828801 +930 955 -0.0230065548828801 +935 955 -0.9942817823790432 +936 955 0.9942817823790432 +937 955 0.1462147836775165 +938 955 -0.1462147836775165 +939 955 1 +940 955 -1 +941 955 -0.1470602003491336 +942 955 0.1470602003491336 +943 955 -0.9976265235906789 +944 955 0.9976265235906789 +945 955 0.1386957166885879 +946 955 -0.1386957166885879 +935 956 0.8859029782883215 +936 956 -0.8859029782883215 +937 956 -0.1302770649380297 +938 956 0.1302770649380297 +1243 956 -1 +1244 956 1 +1245 956 0.01932208591195341 +1246 956 -0.01932208591195341 +1267 956 0.5111445634478964 +1268 956 -0.5111445634478964 +1269 956 -0.07106428321469963 +1270 956 0.07106428321469963 +1271 956 0.9619370732930321 +1272 956 -0.9619370732930321 +1273 956 -0.1337455622148007 +1274 956 0.1337455622148007 +927 957 -0.02550615868357583 +928 957 0.02550615868357583 +929 957 -0.9954315365254133 +930 957 0.9954315365254133 +935 957 -0.1621006488519754 +936 957 0.1621006488519754 +937 957 -0.9942817823790432 +938 957 0.9942817823790432 +939 957 0.1630379178994177 +940 957 -0.1630379178994177 +941 957 1 +942 957 -1 +943 957 -0.1537646543170111 +944 957 0.1537646543170111 +945 957 -0.9976265235906789 +946 957 0.9976265235906789 +935 958 0.1444313374190826 +936 958 -0.1444313374190826 +937 958 0.8859029782883214 +938 958 -0.8859029782883214 +1243 958 -0.02142138150961057 +1244 958 0.02142138150961057 +1245 958 -1 +1246 958 1 +1267 958 0.07878523723504109 +1268 958 -0.07878523723504109 +1269 958 0.5111445634478966 +1270 958 -0.5111445634478966 +1271 958 0.1482766781224272 +1272 958 -0.1482766781224272 +1273 958 0.9619370732930319 +1274 958 -0.9619370732930319 +511 959 0.6457702865220296 +512 959 -0.6457702865220296 +513 959 -0.08585274848476285 +514 959 0.08585274848476285 +931 959 -1 +932 959 1 +933 959 0.1329582307279189 +934 959 -0.1329582307279189 +1243 959 0.7633734209045897 +1244 959 -0.7633734209045897 +1245 959 -0.01474996682162025 +1246 959 0.01474996682162025 +1247 959 0.1372916598055662 +1248 959 -0.1372916598055662 +1249 959 -0.004725600977023124 +1250 959 0.004725600977023124 +1251 959 0.2886144524551349 +1252 959 -0.2886144524551349 +1253 959 -0.004817155695019176 +1254 959 0.004817155695019176 +1255 959 0.2527777162339263 +1256 959 -0.2527777162339263 +1257 959 -0.007139628955058342 +1258 959 0.007139628955058342 +1259 959 0.3385564043742339 +1260 959 -0.3385564043742339 +1261 959 -0.007777669476675033 +1262 959 0.007777669476675033 +1263 959 0.3437745192246255 +1264 959 -0.3437745192246255 +1265 959 -0.008143169497956 +1266 959 0.008143169497956 +511 960 0.09518043172569766 +512 960 -0.09518043172569766 +513 960 0.6457702865220296 +514 960 -0.6457702865220296 +931 960 -0.1474038050676298 +932 960 0.1474038050676298 +933 960 -1 +934 960 1 +1243 960 0.01635251328349375 +1244 960 -0.01635251328349375 +1245 960 0.7633734209045898 +1246 960 -0.7633734209045898 +1247 960 0.005239025530280692 +1248 960 -0.005239025530280692 +1249 960 0.1372916598055663 +1250 960 -0.1372916598055663 +1251 960 0.005340527436034301 +1252 960 -0.005340527436034301 +1253 960 0.2886144524551349 +1254 960 -0.2886144524551349 +1255 960 0.007915331521673436 +1256 960 -0.007915331521673436 +1257 960 0.2527777162339263 +1258 960 -0.2527777162339263 +1259 960 0.008622693526708653 +1260 960 -0.008622693526708653 +1261 960 0.338556404374234 +1262 960 -0.338556404374234 +1263 960 0.009027904197715278 +1264 960 -0.009027904197715278 +1265 960 0.3437745192246257 +1266 960 -0.3437745192246257 +943 961 0.9240553881917319 +944 961 -0.9240553881917319 +945 961 -0.1284674387604675 +946 961 0.1284674387604675 +1271 961 -1 +1272 961 1 +1273 961 0.1390377457404203 +1274 961 -0.1390377457404203 +1367 961 0.867930236017741 +1368 961 -0.867930236017741 +1369 961 -0.1276360530355392 +1370 961 0.1276360530355392 +943 962 0.1424250999498994 +944 962 -0.1424250999498994 +945 962 0.9240553881917316 +946 962 -0.9240553881917316 +1271 962 -0.1541438439573044 +1272 962 0.1541438439573044 +1273 962 -1 +1274 962 1 +1367 962 0.1415033862758951 +1368 962 -0.1415033862758951 +1369 962 0.8679302360177409 +1370 962 -0.8679302360177409 +667 963 -0.7144551397201648 +668 963 0.7144551397201648 +669 963 0.09739707945249626 +670 963 -0.09739707945249626 +1283 963 0.9847134140420173 +1284 963 -0.9847134140420173 +1285 963 -0.1369125563102785 +1286 963 0.1369125563102785 +1359 963 0.3122216457238641 +1360 963 -0.3122216457238641 +1361 963 -0.01094505710078081 +1362 963 0.01094505710078081 +1363 963 0.5039530397323019 +1364 963 -0.5039530397323019 +1365 963 -0.01938301900092674 +1366 963 0.01938301900092674 +1367 963 -1 +1368 963 1 +1369 963 0.1470579635768448 +1370 963 -0.1470579635768448 +667 964 -0.1079790249552228 +668 964 0.1079790249552228 +669 964 -0.7144551397201649 +670 964 0.7144551397201649 +1283 964 0.151787758089003 +1284 964 -0.151787758089003 +1285 964 0.9847134140420173 +1286 964 -0.9847134140420173 +1359 964 0.01213420977779903 +1360 964 -0.01213420977779903 +1361 964 0.3122216457238641 +1362 964 -0.3122216457238641 +1363 964 0.02148893482406143 +1364 964 -0.02148893482406143 +1365 964 0.5039530397323019 +1366 964 -0.5039530397323019 +1367 964 -0.1630354381074963 +1368 964 0.1630354381074963 +1369 964 -1 +1370 964 1 +803 965 -0.7433894596887415 +804 965 0.7433894596887415 +805 965 0.1013388823966398 +806 965 -0.1013388823966398 +1279 965 0.6109158126963724 +1280 965 -0.6109158126963724 +1281 965 -0.01004497345500765 +1282 965 0.01004497345500765 +1283 965 -1 +1284 965 1 +1285 965 0.139037972224106 +1286 965 -0.139037972224106 +803 966 -0.1123490947855182 +804 966 0.1123490947855183 +805 966 -0.7433894596887414 +806 966 0.7433894596887414 +1279 966 0.01113633432819553 +1280 966 -0.01113633432819553 +1281 966 0.6109158126963723 +1282 966 -0.6109158126963723 +1283 966 -0.1541440950478677 +1284 966 0.1541440950478677 +1285 966 -1 +1286 966 1 +799 967 0.9983609170265373 +800 967 -0.9983609170265373 +801 967 -0.138805117244073 +802 967 0.138805117244073 +803 967 1 +804 967 -1 +805 967 -0.136320042039701 +806 967 0.136320042039701 +799 968 0.1538859409652066 +800 968 -0.1538859409652066 +801 968 0.9983609170265373 +802 968 -0.9983609170265373 +803 968 0.1511308686466433 +804 968 -0.1511308686466432 +805 968 1 +806 968 -1 +491 969 0.7238096172506647 +492 969 -0.7238096172506647 +493 969 -0.11189050314508 +494 969 0.11189050314508 +503 969 -0.3459211759485312 +504 969 0.3459211759485312 +505 969 0.007602855596269799 +506 969 -0.007602855596269799 +515 969 1 +516 969 -1 +517 969 -0.1641263908351347 +518 969 0.1641263908351347 +427 970 -0.9980784732667644 +428 970 0.9980784732667644 +429 970 0.1387653677222511 +430 970 -0.1387653677222511 +767 970 -1 +768 970 1 +769 970 0.1390336728319544 +770 970 -0.1390336728319544 +647 971 -1 +648 971 1 +649 971 0.1363247889822249 +650 971 -0.1363247889822249 +767 971 0.9967793076500131 +768 971 -0.9967793076500131 +769 971 -0.138585888145474 +770 971 0.138585888145474 +799 971 -0.978782511950491 +800 971 0.978782511950491 +801 971 0.1360830727752987 +802 971 -0.1360830727752987 +427 972 -0.1538418727587174 +428 972 0.1538418727587174 +429 972 -0.9980784732667644 +430 972 0.9980784732667644 +767 972 -0.1541393285376701 +768 972 0.1541393285376701 +769 972 -1 +770 972 1 +647 973 -0.1511361313324253 +648 973 0.1511361313324253 +649 973 -1 +650 973 1 +767 973 0.1536428931814167 +768 973 -0.1536428931814167 +769 973 0.9967793076500131 +770 973 -0.9967793076500131 +799 973 -0.1508681532730576 +800 973 0.1508681532730576 +801 973 -0.978782511950491 +802 973 0.978782511950491 +491 974 0.1180021331691682 +492 974 -0.1180021331691682 +493 974 0.76088878851302 +494 974 -0.76088878851302 +503 974 -0.008428886561849888 +504 974 0.008428886561849888 +505 974 -0.3459211759485312 +506 974 0.3459211759485312 +515 974 0.1819583066701845 +516 974 -0.1819583066701845 +517 974 1 +518 974 -1 +503 975 1 +504 975 -1 +505 975 -0.02197857814116881 +506 975 0.02197857814116881 +507 975 -0.9903945374536681 +508 975 0.9903945374536681 +509 975 0.1316724611440856 +510 975 -0.1316724611440856 +511 975 -0.9863152309984294 +512 975 0.9863152309984294 +513 975 0.1311269273624442 +514 975 -0.1311269273624442 +503 976 0.02436649487773481 +504 976 -0.02436649487773481 +505 976 1 +506 976 -1 +507 976 -0.1459783398816115 +508 976 0.1459783398816115 +509 976 -0.9903945374536681 +510 976 0.9903945374536681 +511 976 -0.145373535239081 +512 976 0.145373535239081 +513 976 -0.9863152309984294 +514 976 0.9863152309984294 +168 977 0.01 +168 978 -0.01 +168 979 -1 +890 979 0.2234709817975924 +168 980 -1 +893 980 0.2528495632646277 +168 981 -1 +749 981 0.2101084664454975 +167 982 0.01 +167 983 -0.01 +167 984 -1 +888 984 0.2352978021717964 +167 985 -1 +891 985 0.2662311949305019 +167 986 -1 +747 986 0.2212280984968797 +169 987 0.01 +169 988 -0.01 +169 989 -1 +895 989 0.1815877883239753 +169 990 -1 +887 990 0.2352978021717964 +170 991 0.01 +170 992 -0.01 +170 993 -1 +897 993 0.1724606050913474 +170 994 -1 +889 994 0.2234709817975924 +7 995 0.01 +7 996 -0.01 +7 997 -1 +420 997 0.2242457941809392 +7 998 -1 +416 998 0.3077039798135446 +10 999 0.01 +10 1000 -0.01 +10 1001 -1 +409 1001 0.06206576992150031 +9 1002 0.01 +9 1003 -0.01 +9 1004 -1 +407 1004 0.06535049488374665 +407 1005 -0.2122244314384766 +408 1005 0.2122244314384766 +409 1005 -1 +410 1005 1 +407 1006 -1 +408 1006 1 +409 1006 0.1914264350798287 +410 1006 -0.1914264350798287 +8 1007 0.01 +8 1008 -0.01 +8 1009 -1 +410 1009 0.06206576992150031 +8 1010 -1 +422 1010 0.2129744830893366 +8 1011 -1 +418 1011 0.2922377932869683 +7 1012 -1 +408 1012 0.06535049488374665 +243 1013 0.01 +243 1014 -0.01 +243 1015 -1 +780 1015 0.301854501142323 +243 1016 -1 +412 1016 0.4954119873314342 +244 1017 0.01 +244 1018 -0.01 +244 1019 -1 +782 1019 0.2866823281292124 +244 1020 -1 +414 1020 0.4705109957738574 +123 1021 0.01 +123 1022 -0.01 +123 1023 -1 +783 1023 0.2802979311551595 +123 1024 -1 +779 1024 0.301854501142323 +281 1025 0.01 +281 1026 -0.01 +281 1027 -1 +1211 1027 0.2663556209837135 +281 1028 -1 +1207 1028 0.811680729880808 +283 1029 0.01 +283 1030 -0.01 +283 1031 -1 +1208 1031 0.811680729880808 +283 1032 -1 +784 1032 0.2802979311551595 +124 1033 0.01 +124 1034 -0.01 +124 1035 -1 +785 1035 0.266209260320008 +124 1036 -1 +781 1036 0.2866823281292124 +282 1037 0.01 +282 1038 -0.01 +282 1039 -1 +1213 1039 0.2529677352663028 +282 1040 -1 +1209 1040 0.7708830594185307 +284 1041 0.01 +284 1042 -0.01 +284 1043 -1 +1210 1043 0.7708830594185307 +284 1044 -1 +786 1044 0.266209260320008 +783 1045 1 +784 1045 -1 +785 1045 -0.1470413958408577 +786 1045 0.1470413958408577 +1207 1045 0.9832645719900851 +1208 1045 -0.9832645719900851 +1209 1045 -0.134045426582806 +1210 1045 0.134045426582806 +783 1046 0.1630170703290408 +784 1046 -0.1630170703290408 +785 1046 0.9999999999999999 +786 1046 -1 +1207 1046 0.1486091219930037 +1208 1046 -0.1486091219930037 +1209 1046 0.9832645719900851 +1210 1046 -0.9832645719900851 +779 1047 -0.9285862231453037 +780 1047 0.9285862231453037 +781 1047 0.1365437422594101 +782 1047 -0.1365437422594101 +783 1047 -1 +784 1047 1 +785 1047 0.1470413958408577 +786 1047 -0.1470413958408577 +779 1048 -0.1513788733275047 +780 1048 0.1513788733275047 +781 1048 -0.9285862231453037 +782 1048 0.9285862231453037 +783 1048 -0.1630170703290408 +784 1048 0.1630170703290408 +785 1048 -1 +786 1048 0.9999999999999999 +411 1049 0.1617459433307988 +412 1049 -0.1617459433307988 +413 1049 0.9921666419651939 +414 1049 -0.9921666419651939 +779 1049 0.1630208046967947 +780 1049 -0.1630208046967947 +781 1049 1 +782 1049 -1 +411 1050 0.9921666419651939 +412 1050 -0.9921666419651939 +413 1050 -0.1458948393008877 +414 1050 0.1458948393008877 +779 1050 1 +780 1050 -1 +781 1050 -0.1470447642405351 +782 1050 0.1470447642405351 +398 1051 0.01 +398 1052 0.01 +398 1053 -0.01 +398 1054 -1 +1381 1054 0.2582846578677759 +397 1055 0.01 +397 1056 0.01 +397 1057 -0.01 +397 1058 -1 +1379 1058 0.271953932640917 +1379 1059 -0.04998220105060898 +1380 1059 0.04998220105060898 +1381 1059 -1 +1382 1059 1 +1379 1060 -1 +1380 1060 1 +1381 1060 0.04508394485832354 +1382 1060 -0.04508394485832354 +400 1061 0.01 +400 1062 0.01 +400 1063 -0.01 +400 1064 -1 +1385 1064 0.4607985221456606 +399 1065 0.01 +399 1066 0.01 +399 1067 -0.01 +399 1068 -1 +1383 1068 0.4851854976101146 +1383 1069 -0.01567144715316404 +1384 1069 0.01567144715316404 +1385 1069 -1 +1386 1069 1 +1383 1070 -1 +1384 1070 1 +1385 1070 0.01413564517873049 +1386 1070 -0.01413564517873049 +396 1071 0.01 +396 1072 -0.01 +396 1073 -1 +1386 1073 0.4607985221456606 +396 1074 -1 +1382 1074 0.2582846578677759 +396 1075 -1 +1214 1075 0.2529677352663028 +395 1076 0.01 +395 1077 -0.01 +395 1078 -1 +1212 1078 0.2663556209837135 +395 1079 -1 +1380 1079 0.271953932640917 +395 1080 -1 +1384 1080 0.4851854976101146 +395 1081 -1 +896 1081 0.1815877883239753 +396 1082 -1 +898 1082 0.1724606050913474 +1207 1083 -0.9343559711067939 +1208 1083 0.9343559711067939 +1209 1083 0.1273778678649119 +1210 1083 -0.1273778678649119 +1211 1083 -1 +1212 1083 1 +1213 1083 0.1470516727816175 +1214 1083 -0.1470516727816175 +1207 1084 -0.1412171499417159 +1208 1084 0.1412171499417159 +1209 1084 -0.9343559711067939 +1210 1084 0.9343559711067939 +1211 1084 -0.1630284638333327 +1212 1084 0.1630284638333327 +1213 1084 -1 +1214 1084 1 +7 1085 -1 +411 1085 0.4954119873314342 +8 1086 -1 +413 1086 0.4705109957738574 +365 1087 0.01 +365 1088 -0.01 +365 1089 -1 +660 1089 0.2765460566807965 +365 1090 -1 +1355 1090 0.347855957643211 +365 1091 -1 +1351 1091 0.5421944989141317 +366 1092 0.01 +366 1093 -0.01 +366 1094 -1 +662 1094 0.2626459670608764 +366 1095 -1 +1357 1095 0.3303716042443672 +366 1096 -1 +1353 1096 0.5149420686434186 +15 1097 0.01 +15 1098 -0.01 +16 1099 0.01 +16 1100 -0.01 +18 1101 0.01 +18 1102 -0.01 +18 1103 -1 +437 1103 0.06212543702235301 +17 1104 0.01 +17 1105 -0.01 +17 1106 -1 +435 1106 0.0654133197640943 +435 1107 -0.2189777541918064 +436 1107 0.2189777541918064 +437 1107 -1 +438 1107 1 +435 1108 -1 +436 1108 1 +437 1108 0.1975179321372171 +438 1108 -0.1975179321372171 +16 1109 -1 +438 1109 0.06212543702235301 +15 1110 -1 +436 1110 0.0654133197640943 +16 1111 -1 +442 1111 0.2218886178841359 +15 1112 -1 +440 1112 0.2336316943484123 +16 1113 -1 +445 1113 0.2528482156257321 +15 1114 -1 +443 1114 0.2662297759701173 +55 1115 0.01 +55 1116 -0.01 +56 1117 0.01 +56 1118 -0.01 +58 1119 0.01 +58 1120 -0.01 +58 1121 -1 +561 1121 0.05948938099267246 +57 1122 0.01 +57 1123 -0.01 +57 1124 -1 +559 1124 0.06263775496728617 +559 1125 -0.2091446463946987 +560 1125 0.2091446463946987 +561 1125 -1 +562 1125 1 +559 1126 -1 +560 1126 1 +561 1126 0.1886484690004921 +562 1126 -0.1886484690004921 +56 1127 -1 +562 1127 0.05948938099267246 +55 1128 -1 +560 1128 0.06263775496728617 +56 1129 -1 +570 1129 0.2695506663702623 +55 1130 -1 +568 1130 0.2838161754187503 +56 1131 -1 +565 1131 0.245448880491334 +55 1132 -1 +563 1132 0.2584388436501737 +133 1133 0.01 +133 1134 -0.01 +134 1135 0.01 +134 1136 -0.01 +1 1137 1 +1 1138 1 +135 1138 0.01 +135 1139 0.01 +135 1140 -0.01 +135 1141 -1 +815 1141 0.3533545408749017 +136 1142 0.01 +136 1143 -0.01 +136 1144 -1 +817 1144 0.3355938110900755 +815 1145 -0.0132690933914589 +816 1145 0.0132690933914589 +817 1145 -1 +818 1145 1 +815 1146 -1 +816 1146 1 +817 1146 0.01196872210919151 +818 1146 -0.01196872210919151 +134 1147 -1 +818 1147 0.3355938110900755 +133 1148 -1 +816 1148 0.3533545408749017 +134 1149 -1 +566 1149 0.245448880491334 +133 1150 -1 +564 1150 0.2584388436501737 +134 1151 -1 +446 1151 0.2528482156257321 +133 1152 -1 +444 1152 0.2662297759701173 +443 1153 0.9995286718876853 +444 1153 -0.9995286718876853 +445 1153 -0.1362651614703404 +446 1153 0.1362651614703404 +563 1153 1 +564 1153 -1 +565 1153 -0.1363315747533105 +566 1153 0.1363315747533105 +815 1153 0.7313867907577533 +816 1153 -0.7313867907577533 +817 1153 -0.008753765252912946 +818 1153 0.008753765252912946 +443 1154 0.1510700254427006 +444 1154 -0.1510700254427006 +445 1154 0.9995286718876853 +446 1154 -0.9995286718876853 +563 1154 0.151143654360318 +564 1154 -0.151143654360318 +565 1154 1 +566 1154 -1 +815 1154 0.00970483963184404 +816 1154 -0.00970483963184404 +817 1154 0.7313867907577533 +818 1154 -0.7313867907577533 +153 1155 0.01 +153 1156 -0.01 +153 1157 -1 +736 1157 0.2612602643739245 +153 1158 -1 +851 1158 0.2761887527440439 +347 1159 0.01 +347 1160 -0.01 +347 1161 -1 +1324 1161 0.3487971407240176 +347 1162 -1 +1319 1162 0.2908888624976069 +385 1163 0.01 +385 1164 -0.01 +385 1165 -1 +1320 1165 0.2908888624976069 +385 1166 -1 +852 1166 0.2761887527440439 +154 1167 0.01 +154 1168 -0.01 +154 1169 -1 +738 1169 0.2481284875823527 +154 1170 -1 +853 1170 0.2623066223631816 +348 1171 0.01 +348 1172 -0.01 +348 1173 -1 +1326 1173 0.3312654804522102 +348 1174 -1 +1321 1174 0.2762678575674212 +386 1175 0.01 +386 1176 -0.01 +386 1177 -1 +1322 1177 0.2762678575674212 +386 1178 -1 +854 1178 0.2623066223631816 +851 1179 1 +852 1179 -1 +853 1179 -0.1390217100655292 +854 1179 0.1390217100655292 +1319 1179 0.9494648587527689 +1320 1179 -0.9494648587527689 +1321 1179 -0.1319967920063031 +1322 1179 0.1319967920063031 +851 1180 0.1541260660470326 +852 1180 -0.1541260660470326 +853 1180 1 +854 1180 -1 +1319 1180 0.1463379084689038 +1320 1180 -0.1463379084689038 +1321 1180 0.9494648587527689 +1322 1180 -0.9494648587527689 +104 1181 0.01 +104 1182 0.01 +104 1183 -0.01 +104 1184 -1 +717 1184 0.7689991318559928 +103 1185 0.01 +103 1186 0.01 +103 1187 -0.01 +103 1188 -1 +715 1188 0.8096970986668119 +715 1189 -0.05373061307194757 +716 1189 0.05373061307194757 +717 1189 -1 +718 1189 1 +715 1190 -1 +716 1190 1 +717 1190 0.04846501246487402 +718 1190 -0.04846501246487402 +101 1191 0.01 +101 1192 -0.01 +106 1193 0.01 +106 1194 0.01 +106 1195 -0.01 +106 1196 -1 +721 1196 0.6703526335118766 +105 1197 0.01 +105 1198 0.01 +105 1199 -0.01 +105 1200 -1 +719 1200 0.7058299027311097 +719 1201 -0.05658166305775032 +720 1201 0.05658166305775032 +721 1201 -1 +722 1201 1 +719 1202 -1 +720 1202 1 +721 1202 0.0510366595241563 +722 1202 -0.0510366595241563 +108 1203 0.01 +108 1204 0.01 +108 1205 -0.01 +108 1206 -1 +725 1206 0.8249934279854392 +107 1207 0.01 +107 1208 0.01 +107 1209 -0.01 +107 1210 -1 +723 1210 0.868654797368601 +723 1211 -0.04665464549706243 +724 1211 0.04665464549706243 +725 1211 -1 +726 1211 1 +723 1212 -1 +724 1212 1 +725 1212 0.04208248978160133 +726 1212 -0.04208248978160133 +110 1213 0.01 +110 1214 0.01 +110 1215 -0.01 +110 1216 -1 +729 1216 0.64996926193307 +109 1217 0.01 +109 1218 0.01 +109 1219 -0.01 +109 1220 -1 +727 1220 0.6843677759942774 +727 1221 -0.06020910336573082 +728 1221 0.06020910336573082 +729 1221 -1 +730 1221 1 +727 1222 -1 +728 1222 1 +729 1222 0.05430861064644208 +730 1222 -0.05430861064644208 +112 1223 0.01 +112 1224 0.01 +112 1225 -0.01 +112 1226 -1 +733 1226 0.8000341432801567 +111 1227 0.01 +111 1228 0.01 +111 1229 -0.01 +111 1230 -1 +731 1230 0.8423745851115466 +731 1231 -0.03873478760111335 +732 1231 0.03873478760111335 +733 1231 -1 +734 1231 1 +731 1232 -1 +732 1232 1 +733 1232 0.03493877803699067 +734 1232 -0.03493877803699067 +102 1233 0.01 +102 1234 -0.01 +102 1235 -1 +734 1235 0.8000341432801567 +102 1236 -1 +730 1236 0.64996926193307 +102 1237 -1 +726 1237 0.8249934279854392 +102 1238 -1 +722 1238 0.6703526335118766 +101 1239 -1 +720 1239 0.7058299027311097 +101 1240 -1 +724 1240 0.868654797368601 +101 1241 -1 +728 1241 0.6843677759942774 +101 1242 -1 +732 1242 0.8423745851115466 +101 1243 -1 +716 1243 0.8096970986668119 +102 1244 -1 +718 1244 0.7689991318559928 +102 1245 -1 +737 1245 0.2481284875823527 +101 1246 -1 +735 1246 0.2612602643739245 +102 1247 -1 +441 1247 0.2218886178841359 +101 1248 -1 +439 1248 0.2336316943484123 +735 1249 1 +736 1249 -1 +737 1249 -0.1390306092648556 +738 1249 0.1390306092648556 +851 1249 -0.9459482393044645 +852 1249 0.9459482393044645 +853 1249 0.1315073418615831 +854 1249 -0.1315073418615831 +735 1250 0.1541359321217809 +736 1250 -0.1541359321217809 +737 1250 1 +738 1250 -1 +851 1250 -0.1457952808081141 +852 1250 0.1457952808081141 +853 1250 -0.9459482393044644 +854 1250 0.9459482393044644 +435 1251 1 +436 1251 -1 +437 1251 -0.1975179321372171 +438 1251 0.1975179321372171 +439 1251 0.2799847852258613 +440 1251 -0.2799847852258613 +441 1251 -0.03816986741324439 +442 1251 0.03816986741324439 +443 1251 -0.2529901763377037 +444 1251 0.2529901763377037 +445 1251 0.03449000333723373 +446 1251 -0.03449000333723373 +439 1252 -1 +440 1252 1 +441 1252 0.1363283629231963 +442 1252 -0.1363283629231963 +715 1252 0.2885420915217471 +716 1252 -0.2885420915217471 +717 1252 -0.01398419606224229 +718 1252 0.01398419606224229 +719 1252 0.3310028286481025 +720 1252 -0.3310028286481025 +721 1252 -0.01689327866724586 +722 1252 0.01689327866724586 +723 1252 0.2689580430064374 +724 1252 -0.2689580430064374 +725 1252 -0.01131842409649789 +726 1252 0.01131842409649789 +727 1252 0.3413832482234902 +728 1252 -0.3413832482234902 +729 1252 -0.01854004990898721 +730 1252 0.01854004990898721 +731 1252 0.2773489353521688 +732 1252 -0.2773489353521688 +733 1252 -0.0096902328910651 +734 1252 0.0096902328910651 +735 1252 -0.8942488629423985 +736 1252 0.8942488629423985 +737 1252 0.124327964249286 +738 1252 -0.124327964249286 +439 1253 -0.1511400935730131 +440 1253 0.1511400935730131 +441 1253 -1 +442 1253 1 +715 1253 0.01550354347452548 +716 1253 -0.01550354347452548 +717 1253 0.2885420915217471 +718 1253 -0.2885420915217471 +719 1253 0.0187286905217292 +720 1253 -0.0187286905217292 +721 1253 0.3310028286481024 +722 1253 -0.3310028286481024 +723 1253 0.01254814215004901 +724 1253 -0.01254814215004901 +725 1253 0.2689580430064374 +726 1253 -0.2689580430064374 +727 1253 0.02055437927961706 +728 1253 -0.02055437927961706 +729 1253 0.3413832482234902 +730 1253 -0.3413832482234902 +731 1253 0.01074305210226118 +732 1253 -0.01074305210226118 +733 1253 0.2773489353521688 +734 1253 -0.2773489353521688 +735 1253 -0.1378358820384693 +736 1253 0.1378358820384693 +737 1253 -0.8942488629423986 +738 1253 0.8942488629423986 +435 1254 0.2189777541918064 +436 1254 -0.2189777541918064 +437 1254 1 +438 1254 -1 +439 1254 0.04231692663805665 +440 1254 -0.04231692663805665 +441 1254 0.2799847852258613 +442 1254 -0.2799847852258613 +443 1254 -0.0382372546691535 +444 1254 0.0382372546691535 +445 1254 -0.2529901763377037 +446 1254 0.2529901763377037 +1319 1255 -0.1541267242487895 +1320 1255 0.1541267242487895 +1321 1255 -1 +1322 1255 1 +1323 1255 0.1507095880752825 +1324 1255 -0.1507095880752825 +1325 1255 0.9971224146192664 +1326 1255 -0.9971224146192664 +1319 1256 -1 +1320 1256 1 +1321 1256 0.1390223037635074 +1322 1256 -0.1390223037635074 +1323 1256 0.9971224146192664 +1324 1256 -0.9971224146192664 +1325 1256 -0.135940046968458 +1326 1256 0.135940046968458 +349 1257 0.01 +349 1258 -0.01 +349 1259 -1 +1332 1259 0.5305689707916109 +349 1260 -1 +1328 1260 0.3656078015760355 +350 1261 0.01 +350 1262 -0.01 +350 1263 -1 +1334 1263 0.5039008767602985 +350 1264 -1 +1330 1264 0.3472311837039725 +404 1265 0.01 +404 1266 -0.01 +404 1267 -1 +1358 1267 0.3303716042443672 +404 1268 -1 +1333 1268 0.5039008767602985 +404 1269 -1 +569 1269 0.2695506663702623 +403 1270 0.01 +403 1271 -0.01 +403 1272 -1 +1356 1272 0.347855957643211 +403 1273 -1 +1331 1273 0.5305689707916109 +403 1274 -1 +567 1274 0.2838161754187503 +1327 1275 0.1511431774100232 +1328 1275 -0.1511431774100232 +1329 1275 1 +1330 1275 -1 +1331 1275 0.1620622992935024 +1332 1275 -0.1620622992935024 +1333 1275 0.9941065021464247 +1334 1275 -0.9941065021464247 +1327 1276 1 +1328 1276 -1 +1329 1276 -0.1363311445441492 +1330 1276 0.1363311445441492 +1331 1276 0.9941065021464247 +1332 1276 -0.9941065021464247 +1333 1276 -0.1461801923761492 +1334 1276 0.1461801923761492 +559 1277 1 +560 1277 -1 +561 1277 -0.1886484690004921 +562 1277 0.1886484690004921 +563 1277 -0.2423697385524349 +564 1277 0.2423697385524349 +565 1277 0.03304264812940159 +566 1277 -0.03304264812940159 +567 1277 0.22069832656602 +568 1277 -0.22069832656602 +569 1277 -0.03245127792630273 +570 1277 0.03245127792630273 +559 1278 0.2091446463946987 +560 1278 -0.2091446463946987 +561 1278 1 +562 1278 -1 +563 1278 -0.03663264799116986 +564 1278 0.03663264799116986 +565 1278 -0.2423697385524349 +566 1278 0.2423697385524349 +567 1278 0.03597702691631689 +568 1278 -0.03597702691631689 +569 1278 0.22069832656602 +570 1278 -0.22069832656602 +366 1279 -1 +1329 1279 0.3472311837039725 +567 1280 -1 +568 1280 1 +569 1280 0.1470390756071057 +570 1280 -0.1470390756071057 +1331 1280 -0.7717108447409117 +1332 1280 0.7717108447409117 +1333 1280 0.1134776198520138 +1334 1280 -0.1134776198520138 +1355 1280 0.9967756582743466 +1356 1280 -0.9967756582743466 +1357 1280 -0.1465758860582645 +1358 1280 0.1465758860582645 +567 1281 -0.1630144980077802 +568 1281 0.1630144980077802 +569 1281 -1 +570 1281 1 +1331 1281 -0.1258066752590478 +1332 1281 0.1258066752590478 +1333 1281 -0.7717108447409118 +1334 1281 0.7717108447409118 +1355 1281 0.1625009840899659 +1356 1281 -0.1625009840899659 +1357 1281 0.9967756582743466 +1358 1281 -0.9967756582743466 +365 1282 -1 +1327 1282 0.3656078015760355 +395 1283 -1 +1323 1283 0.3487971407240176 +396 1284 -1 +1325 1284 0.3312654804522102 +895 1285 1 +896 1285 -1 +897 1285 -0.1390343802739085 +898 1285 0.1390343802739085 +1211 1285 0.6817494132593457 +1212 1285 -0.6817494132593457 +1213 1285 -0.100252391637673 +1214 1285 0.100252391637673 +1323 1285 -0.622455093001246 +1324 1285 0.622455093001246 +1325 1285 0.08486076868571304 +1326 1285 -0.08486076868571304 +1379 1285 0.6677152507433697 +1380 1285 -0.6677152507433697 +1381 1285 -0.03010323754557576 +1382 1285 0.03010323754557576 +1383 1285 0.3742646662326574 +1384 1285 -0.3742646662326574 +1385 1285 -0.00529047252480084 +1386 1285 0.00529047252480084 +895 1286 0.1541401128413972 +896 1286 -0.1541401128413972 +897 1286 1 +898 1286 -1 +1211 1286 0.1111445595629471 +1212 1286 -0.1111445595629471 +1213 1286 0.6817494132593458 +1214 1286 -0.6817494132593458 +1323 1286 -0.09408067583898325 +1324 1286 0.09408067583898325 +1325 1286 -0.622455093001246 +1326 1286 0.622455093001246 +1379 1286 0.03337387790721289 +1380 1286 -0.03337387790721289 +1381 1286 0.6677152507433698 +1382 1286 -0.6677152507433698 +1383 1286 0.005865268938161666 +1384 1286 -0.005865268938161666 +1385 1286 0.3742646662326574 +1386 1286 -0.3742646662326574 +887 1287 -0.8200140840006798 +888 1287 0.8200140840006798 +889 1287 0.01782902518049559 +890 1287 -0.01782902518049559 +895 1287 -1 +896 1287 1 +897 1287 0.1390343802739085 +898 1287 -0.1390343802739085 +887 1288 -0.01976610351885337 +888 1288 0.01976610351885337 +889 1288 -0.8200140840006799 +890 1288 0.8200140840006799 +895 1288 -0.1541401128413972 +896 1288 0.1541401128413972 +897 1288 -1 +898 1288 1 +276 1289 0.01 +276 1290 0.01 +276 1291 -0.01 +276 1292 -1 +1189 1292 0.1927669853277568 +275 1293 0.01 +275 1294 0.01 +275 1295 -0.01 +275 1296 -1 +1187 1296 0.2029688490829942 +1187 1297 -0.0135102953042312 +1188 1297 0.0135102953042312 +1189 1297 -1 +1190 1297 1 +1187 1298 -1 +1188 1298 1 +1189 1298 0.01218628623215075 +1190 1298 -0.01218628623215075 +278 1299 0.01 +278 1300 0.01 +278 1301 -0.01 +278 1302 -1 +1193 1302 0.1745590876329994 +277 1303 0.01 +277 1304 0.01 +277 1305 -0.01 +277 1306 -1 +1191 1306 0.1837973294732321 +1191 1307 -0.01647707315799534 +1192 1307 0.01647707315799534 +1193 1307 -1 +1194 1307 1 +1191 1308 -1 +1192 1308 1 +1193 1308 0.01486231982720125 +1194 1308 -0.01486231982720125 +272 1309 0.01 +272 1310 -0.01 +272 1311 -1 +1194 1311 0.1745590876329994 +272 1312 -1 +1190 1312 0.1927669853277568 +272 1313 -1 +1198 1313 0.1449722796024477 +272 1314 -1 +1186 1314 0.1215704760570904 +272 1315 -1 +1178 1315 0.6902523202056198 +271 1316 0.01 +271 1317 -0.01 +271 1318 -1 +1196 1318 0.1526446901154599 +271 1319 -1 +1184 1319 0.1280043860509881 +271 1320 -1 +1176 1320 0.7267827463857105 +271 1321 -1 +1188 1321 0.2029688490829942 +271 1322 -1 +1192 1322 0.1837973294732321 +271 1323 -1 +1160 1323 0.1142887521319789 +272 1324 -1 +1162 1324 0.1085442337821222 +239 1325 0.01 +239 1326 -0.01 +239 1327 -1 +1020 1327 0.216891502417228 +239 1328 -1 +1115 1328 0.5265163853204751 +239 1329 -1 +1111 1329 0.3376170422503754 +240 1330 0.01 +240 1331 -0.01 +240 1332 -1 +1022 1332 0.2059898415597802 +240 1333 -1 +1117 1333 0.500051987201219 +240 1334 -1 +1113 1334 0.3206473294986605 +237 1335 0.01 +237 1336 -0.01 +237 1337 -1 +1108 1337 0.1866267555520421 +237 1338 -1 +1104 1338 0.2072626712971527 +238 1339 0.01 +238 1340 -0.01 +238 1341 -1 +1110 1341 0.1772462977043188 +238 1342 -1 +1106 1342 0.1968449862993159 +1103 1343 0.01402748791687881 +1104 1343 -0.01402748791687881 +1105 1343 0.9004359269522061 +1106 1343 -0.9004359269522056 +1107 1343 0.1473706189324642 +1108 1343 -0.1473706189324642 +1109 1343 1 +1110 1343 -1 +1103 1344 0.9004359269522058 +1104 1344 -0.9004359269522058 +1105 1344 -0.01265279396369558 +1106 1344 0.01265279396369558 +1107 1344 1 +1108 1344 -1 +1109 1344 -0.1329282968343243 +1110 1344 0.1329282968343243 +240 1345 -1 +1105 1345 0.1968449862993159 +239 1346 -1 +1103 1346 0.2072626712971527 +272 1347 -1 +1109 1347 0.1772462977043188 +271 1348 -1 +1107 1348 0.1866267555520421 +289 1349 0.01 +289 1350 -0.01 +289 1351 -1 +1000 1351 0.3400474724327998 +289 1352 -1 +919 1352 0.1704461502318363 +290 1353 0.01 +290 1354 -0.01 +290 1355 -1 +1002 1355 0.3229555984839371 +290 1356 -1 +921 1356 0.1618789813774723 +201 1357 0.01 +201 1358 -0.01 +201 1359 -1 +992 1359 0.1937107214754754 +201 1360 -1 +995 1360 0.2168144241927541 +203 1361 0.01 +203 1362 -0.01 +203 1363 -1 +999 1363 0.3400474724327998 +203 1364 -1 +991 1364 0.1937107214754754 +202 1365 0.01 +202 1366 -0.01 +202 1367 -1 +994 1367 0.1839742008352392 +202 1368 -1 +997 1368 0.2059166375334806 +204 1369 0.01 +204 1370 -0.01 +204 1371 -1 +1001 1371 0.3229555984839371 +204 1372 -1 +993 1372 0.1839742008352392 +991 1373 0.02218605576635053 +992 1373 -0.02218605576635052 +993 1373 1 +994 1373 -1 +995 1373 -0.1471345844871756 +996 1373 0.1471345844871757 +997 1373 -0.9982130923953609 +998 1373 0.9982130923953609 +991 1374 1 +992 1374 -1 +993 1374 -0.02001182208404669 +994 1374 0.02001182208404669 +995 1374 -0.9982130923953609 +996 1374 0.9982130923953609 +997 1374 0.1327153937669849 +998 1374 -0.1327153937669849 +991 1375 -1 +992 1375 1 +993 1375 0.02001182208404669 +994 1375 -0.02001182208404669 +999 1375 -0.9911077196926072 +1000 1375 0.9911077196926072 +1001 1375 0.1351123337108975 +1002 1375 -0.1351123337108975 +991 1376 -0.02218605576635052 +992 1376 0.02218605576635053 +993 1376 -1 +994 1376 1 +999 1376 -0.1497919458729054 +1000 1376 0.1497919458729054 +1001 1376 -0.9911077196926072 +1002 1376 0.9911077196926072 +256 1377 0.01 +256 1378 0.01 +256 1379 -0.01 +256 1380 -1 +1149 1380 0.3407861468600609 +255 1381 0.01 +255 1382 0.01 +255 1383 -0.01 +255 1384 -1 +1147 1384 0.3588216721551595 +1147 1385 -0.04511291248442726 +1148 1385 0.04511291248442726 +1149 1385 -1 +1150 1385 1 +1147 1386 -1 +1148 1386 1 +1149 1386 0.04069184661929798 +1150 1386 -0.04069184661929798 +258 1387 0.01 +258 1388 0.01 +258 1389 -0.01 +258 1390 -1 +1153 1390 0.2706569305300232 +257 1391 0.01 +257 1392 0.01 +257 1393 -0.01 +257 1394 -1 +1151 1394 0.284980986721405 +1151 1395 -0.02359563427592052 +1152 1395 0.02359563427592052 +1153 1395 -1 +1154 1395 1 +1151 1396 -1 +1152 1396 1 +1153 1396 0.02128326188587904 +1154 1396 -0.02128326188587904 +260 1397 0.01 +260 1398 0.01 +260 1399 -0.01 +260 1400 -1 +1157 1400 0.1875343428840478 +259 1401 0.01 +259 1402 0.01 +259 1403 -0.01 +259 1404 -1 +1155 1404 0.1974592779670864 +1155 1405 -0.03322467872805176 +1156 1405 0.03322467872805176 +1157 1405 -1 +1158 1405 1 +1155 1406 -1 +1156 1406 1 +1157 1406 0.02996865988743308 +1158 1406 -0.02996865988743308 +252 1407 0.01 +252 1408 -0.01 +252 1409 -1 +1158 1409 0.1875343428840479 +252 1410 -1 +1154 1410 0.2706569305300232 +252 1411 -1 +1150 1411 0.3407861468600609 +252 1412 -1 +1166 1412 0.09498122409159701 +251 1413 0.01 +251 1414 -0.01 +251 1415 -1 +1164 1415 0.1000079432978999 +251 1416 -1 +1148 1416 0.3588216721551595 +251 1417 -1 +1152 1417 0.284980986721405 +251 1418 -1 +1156 1418 0.1974592779670864 +251 1419 -1 +1144 1419 0.1466065943963893 +252 1420 -1 +1146 1420 0.1392376778931493 +251 1421 -1 +1159 1421 0.1142887521319789 +252 1422 -1 +1161 1422 0.1085442337821222 +252 1423 -1 +998 1423 0.2059166375334806 +251 1424 -1 +996 1424 0.2168144241927541 +26 1425 0.01 +26 1426 -0.01 +26 1427 -1 +465 1427 0.06703465699167507 +25 1428 0.01 +25 1429 -0.01 +25 1430 -1 +463 1430 0.07058235182305587 +463 1431 -0.1552710175797461 +464 1431 0.1552710175797461 +465 1431 -1 +466 1431 1 +463 1432 -1 +464 1432 1 +465 1432 0.1400544563368277 +466 1432 -0.1400544563368277 +24 1433 0.01 +24 1434 -0.01 +24 1435 -1 +466 1435 0.06703465699167507 +24 1436 -1 +474 1436 0.1742034603878317 +24 1437 -1 +481 1437 0.1952779717642356 +24 1438 -1 +477 1438 0.2386203900557665 +23 1439 0.01 +23 1440 -0.01 +23 1441 -1 +472 1441 0.1834228812629667 +23 1442 -1 +479 1442 0.2056127251918028 +23 1443 -1 +475 1443 0.25124896701064 +23 1444 -1 +464 1444 0.07058235182305587 +23 1445 -1 +467 1445 0.463488725640109 +24 1446 -1 +469 1446 0.4401922993538489 +225 1447 0.01 +225 1448 -0.01 +225 1449 -1 +1071 1449 0.1819741448758073 +225 1450 -1 +1015 1450 0.1262131514190231 +226 1451 0.01 +226 1452 -0.01 +226 1453 -1 +1073 1453 0.1728275421267337 +226 1454 -1 +1017 1454 0.1198692746087963 +391 1455 0.01 +391 1456 -0.01 +391 1457 -1 +1220 1457 0.1534203258450649 +391 1458 -1 +1168 1458 0.3694519209944966 +391 1459 -1 +1072 1459 0.1819741448758073 +391 1460 -1 +924 1460 0.3120199597710321 +391 1461 -1 +480 1461 0.2056127251918028 +391 1462 -1 +419 1462 0.2242457941809392 +392 1463 0.01 +392 1464 -0.01 +392 1465 -1 +1222 1465 0.1457089293986305 +392 1466 -1 +1170 1466 0.3508820853811734 +392 1467 -1 +1074 1467 0.1728275421267337 +392 1468 -1 +926 1468 0.2963368382827829 +392 1469 -1 +482 1469 0.1952779717642356 +392 1470 -1 +421 1470 0.2129744830893366 +177 1471 0.01 +177 1472 -0.01 +177 1473 -1 +920 1473 0.1704461502318363 +177 1474 -1 +452 1474 0.1789878918651925 +177 1475 -1 +923 1475 0.3120199597710321 +177 1476 -1 +915 1476 0.2428322124176813 +178 1477 0.01 +178 1478 -0.01 +178 1479 -1 +922 1479 0.1618789813774723 +178 1480 -1 +454 1480 0.1699913877469709 +178 1481 -1 +925 1481 0.2963368382827829 +178 1482 -1 +917 1482 0.2306266884781182 +208 1483 0.01 +208 1484 -0.01 +208 1485 -1 +1018 1485 0.1198692746087963 +208 1486 -1 +918 1486 0.2306266884781182 +208 1487 -1 +458 1487 0.2179411396901652 +208 1488 -1 +1025 1488 0.1579943785986296 +208 1489 -1 +1021 1489 0.2059898415597802 +207 1490 0.01 +207 1491 -0.01 +207 1492 -1 +1016 1492 0.1262131514190231 +207 1493 -1 +916 1493 0.2428322124176813 +207 1494 -1 +456 1494 0.2294753026071181 +207 1495 -1 +1023 1495 0.1663559614797234 +207 1496 -1 +1019 1496 0.216891502417228 +301 1497 0.01 +301 1498 -0.01 +301 1499 -1 +1216 1499 0.311286476884673 +301 1500 -1 +460 1500 0.2654321805576464 +302 1501 0.01 +302 1502 -0.01 +302 1503 -1 +1218 1503 0.2956402225930761 +302 1504 -1 +462 1504 0.2520907099106043 +22 1505 0.01 +22 1506 -0.01 +22 1507 -1 +449 1507 0.06062355732661209 +21 1508 0.01 +21 1509 -0.01 +21 1510 -1 +447 1510 0.06383195564830782 +447 1511 -0.2093299994116702 +448 1511 0.2093299994116702 +449 1511 -1 +450 1511 1 +447 1512 -1 +448 1512 1 +449 1512 0.1888156574199858 +450 1512 -0.1888156574199858 +20 1513 0.01 +20 1514 -0.01 +20 1515 -1 +450 1515 0.06062355732661209 +20 1516 -1 +461 1516 0.2520907099106043 +19 1517 0.01 +19 1518 -0.01 +19 1519 -1 +459 1519 0.2654321805576464 +19 1520 -1 +448 1520 0.06383195564830782 +19 1521 -1 +455 1521 0.2294753026071181 +20 1522 -1 +457 1522 0.2179411396901652 +19 1523 -1 +451 1523 0.1789878918651925 +20 1524 -1 +453 1524 0.1699913877469709 +287 1525 0.01 +287 1526 -0.01 +287 1527 -1 +1024 1527 0.1663559614797234 +287 1528 -1 +476 1528 0.25124896701064 +287 1529 -1 +1219 1529 0.1534203258450649 +287 1530 -1 +1215 1530 0.311286476884673 +288 1531 0.01 +288 1532 -0.01 +288 1533 -1 +1026 1533 0.1579943785986296 +288 1534 -1 +478 1534 0.2386203900557665 +288 1535 -1 +1221 1535 0.1457089293986305 +288 1536 -1 +1217 1536 0.2956402225930761 +459 1537 1 +460 1537 -1 +461 1537 -0.147041244192028 +462 1537 0.147041244192028 +1215 1537 0.9974737634922012 +1216 1537 -0.9974737634922012 +1217 1537 -0.1466698503407952 +1218 1537 0.1466698503407952 +459 1538 0.1630169022039506 +460 1538 -0.1630169022039506 +461 1538 1 +462 1538 -1 +1215 1538 0.1626051573533256 +1216 1538 -0.1626051573533256 +1217 1538 0.9974737634922012 +1218 1538 -0.9974737634922012 +447 1539 1 +448 1539 -1 +449 1539 -0.1888156574199858 +450 1539 0.1888156574199858 +451 1539 -0.3742086887655038 +452 1539 0.3742086887655038 +453 1539 0.05502623805677561 +454 1539 -0.05502623805677561 +455 1539 -0.5009707932908625 +456 1539 0.5009707932908625 +457 1539 0.07366641110976617 +458 1539 -0.07366641110976617 +459 1539 -0.2404831076405403 +460 1539 0.2404831076405403 +461 1539 0.03536093535463044 +462 1539 -0.03536093535463044 +447 1540 0.2093299994116702 +448 1540 -0.2093299994116702 +449 1540 1 +450 1540 -1 +451 1540 -0.06100469917296188 +452 1540 0.06100469917296188 +453 1540 -0.3742086887655039 +454 1540 0.3742086887655039 +455 1540 -0.08167007972208007 +456 1540 0.08167007972208007 +457 1540 -0.5009707932908627 +458 1540 0.5009707932908627 +459 1540 -0.0392028112399401 +460 1540 0.0392028112399401 +461 1540 -0.2404831076405403 +462 1540 0.2404831076405403 +1015 1541 -1 +1016 1541 1 +1017 1541 0.1470715121249568 +1018 1541 -0.1470715121249568 +1071 1541 -0.8204367287435214 +1072 1541 0.8204367287435214 +1073 1541 0.1206474484899324 +1074 1541 -0.1206474484899324 +1015 1542 -0.1630504586709765 +1016 1542 0.1630504586709765 +1017 1542 -1 +1018 1542 1 +1071 1542 -0.1337554875824819 +1072 1542 0.1337554875824819 +1073 1542 -0.8204367287435214 +1074 1542 0.8204367287435214 +475 1543 0.9922010003695771 +476 1543 -0.9922010003695771 +477 1543 -0.1352792478696715 +478 1543 0.1352792478696715 +1023 1543 0.9987159289924876 +1024 1543 -0.9987159289924876 +1025 1543 -0.1468671903487528 +1026 1543 0.1468671903487528 +1215 1543 -0.57654181002232 +1216 1543 0.57654181002232 +1217 1543 0.08477546386296106 +1218 1543 -0.08477546386296106 +1219 1543 -1 +1220 1543 1 +1221 1543 0.147066504877911 +1222 1543 -0.147066504877911 +475 1544 0.1499769948314261 +476 1544 -0.1499769948314261 +477 1544 0.9922010003695771 +478 1544 -0.9922010003695771 +1023 1544 0.1628239378523272 +1024 1544 -0.1628239378523272 +1025 1544 0.9987159289924876 +1026 1544 -0.9987159289924876 +1215 1544 -0.09398610286373058 +1216 1544 0.09398610286373058 +1217 1544 -0.5765418100223202 +1218 1544 0.5765418100223202 +1219 1544 -0.1630449073992468 +1220 1544 0.1630449073992468 +1221 1544 -1 +1222 1544 1 +451 1545 0.9992241305405531 +452 1545 -0.9992241305405531 +453 1545 -0.1469328386269895 +454 1545 0.1469328386269895 +915 1545 -0.9943974782512998 +916 1545 0.9943974782512998 +917 1545 0.1462085541422105 +918 1545 -0.1462085541422105 +919 1545 1 +920 1545 -1 +921 1545 -0.1390068943981927 +922 1545 0.1390068943981927 +923 1545 -0.990448326525441 +924 1545 0.990448326525441 +925 1545 0.1456505361495886 +926 1545 -0.1456505361495886 +919 1546 -1 +920 1546 1 +921 1546 0.1390068943981927 +922 1546 -0.1390068943981927 +999 1546 0.8720761246457193 +1000 1546 -0.8720761246457193 +1001 1546 -0.1188854026997017 +1002 1546 0.1188854026997017 +451 1547 0.1628967186493884 +452 1547 -0.1628967186493884 +453 1547 0.9992241305405531 +454 1547 -0.9992241305405531 +915 1547 -0.1620937424934681 +916 1547 0.1620937424934681 +917 1547 -0.9943974782512998 +918 1547 0.9943974782512998 +919 1547 0.15410964069504 +920 1547 -0.15410964069504 +921 1547 1 +922 1547 -1 +923 1547 -0.1614750972621173 +924 1547 0.1614750972621173 +925 1547 -0.990448326525441 +926 1547 0.990448326525441 +919 1548 -0.15410964069504 +920 1548 0.15410964069504 +921 1548 -1 +922 1548 1 +999 1548 0.1318019999889615 +1000 1548 -0.1318019999889615 +1001 1548 0.872076124645719 +1002 1548 -0.872076124645719 +267 1549 0.01 +267 1550 -0.01 +267 1551 -1 +1119 1551 0.2415951009568014 +267 1552 -1 +471 1552 0.1834228812629667 +268 1553 0.01 +268 1554 -0.01 +268 1555 -1 +1121 1555 0.2294517581974093 +268 1556 -1 +473 1556 0.1742034603878317 +318 1557 0.01 +318 1558 -0.01 +318 1559 -1 +1278 1559 0.2249948928196215 +318 1560 -1 +1197 1560 0.1449722796024477 +318 1561 -1 +1165 1561 0.09498122409159701 +317 1562 0.01 +317 1563 -0.01 +317 1564 -1 +1276 1564 0.2369023635842199 +317 1565 -1 +1195 1565 0.1526446901154599 +317 1566 -1 +1163 1566 0.1000079432978999 +401 1567 0.01 +401 1568 -0.01 +401 1569 -1 +1128 1569 0.2852430454948127 +401 1570 -1 +1064 1570 0.6657990773386846 +402 1571 0.01 +402 1572 -0.01 +402 1573 -1 +1130 1573 0.2709058173910205 +402 1574 -1 +1066 1574 0.6323338854825951 +221 1575 0.01 +221 1576 -0.01 +221 1577 -1 +1063 1577 0.6657990773386846 +221 1578 -1 +871 1578 0.2988627579636081 +319 1579 0.01 +319 1580 -0.01 +319 1581 -1 +876 1581 0.3656703506809972 +319 1582 -1 +1275 1582 0.2369023635842199 +222 1583 0.01 +222 1584 -0.01 +222 1585 -1 +1065 1585 0.6323338854825951 +222 1586 -1 +873 1586 0.2838409595347638 +320 1587 0.01 +320 1588 -0.01 +320 1589 -1 +878 1589 0.3472905888907926 +320 1590 -1 +1277 1590 0.2249948928196215 +155 1591 0.01 +155 1592 -0.01 +158 1593 0.01 +158 1594 0.01 +158 1595 -0.01 +158 1596 -1 +857 1596 0.933613672972028 +157 1597 0.01 +157 1598 0.01 +157 1599 -0.01 +157 1600 -1 +855 1600 0.9830235834683351 +855 1601 -0.05163610321689771 +856 1601 0.05163610321689771 +857 1601 -1 +858 1601 1 +855 1602 -1 +856 1602 1 +857 1602 0.04657576459612429 +858 1602 -0.04657576459612429 +160 1603 0.01 +160 1604 0.01 +160 1605 -0.01 +160 1606 -1 +861 1606 1 +159 1607 0.01 +159 1608 0.01 +159 1609 -0.01 +159 1610 -1 +859 1610 1 +859 1611 -0.01502100734630467 +860 1611 0.01502100734630467 +861 1611 -0.4109275590773894 +862 1611 0.4109275590773894 +859 1612 -0.3706566542648244 +860 1612 0.3706566542648244 +861 1612 0.01354894847931115 +862 1612 -0.01354894847931115 +162 1613 0.01 +162 1614 0.01 +162 1615 -0.01 +162 1616 -1 +865 1616 0.4489559382242883 +161 1617 0.01 +161 1618 0.01 +161 1619 -0.01 +161 1620 -1 +863 1620 0.472716165143236 +863 1621 -0.04959139510417494 +864 1621 0.04959139510417494 +865 1621 -1 +866 1621 1 +863 1622 -1 +864 1622 1 +865 1622 0.04473143789846604 +866 1622 -0.04473143789846604 +164 1623 0.01 +164 1624 0.01 +164 1625 -0.01 +164 1626 -1 +869 1626 0.5553455539624559 +163 1627 0.01 +163 1628 0.01 +163 1629 -0.01 +163 1630 -1 +867 1630 0.5847362697479874 +867 1631 -0.04048334536470279 +868 1631 0.04048334536470279 +869 1631 -1 +870 1631 1 +867 1632 -1 +868 1632 1 +869 1632 0.03651597712262996 +870 1632 -0.03651597712262996 +156 1633 0.01 +156 1634 -0.01 +156 1635 -1 +870 1635 0.5553455539624559 +156 1636 -1 +866 1636 0.4489559382242883 +156 1637 -1 +862 1637 1 +156 1638 -1 +858 1638 0.933613672972028 +155 1639 -1 +856 1639 0.9830235834683351 +155 1640 -1 +860 1640 1 +155 1641 -1 +864 1641 0.472716165143236 +155 1642 -1 +868 1642 0.5847362697479874 +156 1643 -1 +874 1643 0.2838409595347638 +155 1644 -1 +872 1644 0.2988627579636081 +156 1645 -1 +877 1645 0.3472905888907927 +155 1646 -1 +875 1646 0.3656703506809972 +855 1647 0.3040239959545538 +856 1647 -0.3040239959545538 +857 1647 -0.01416015006715234 +858 1647 0.01416015006715234 +859 1647 0.110775469951149 +860 1647 -0.110775469951149 +861 1647 -0.004049276110033764 +862 1647 0.004049276110033764 +863 1647 0.63222453556893 +864 1647 -0.63222453556893 +865 1647 -0.02828031255068813 +866 1647 0.02828031255068813 +867 1647 0.5111069270466384 +868 1647 -0.5111069270466384 +869 1647 -0.01866356885525275 +870 1647 0.01866356885525275 +871 1647 1 +872 1647 -1 +873 1647 -0.1470460054927243 +874 1647 0.1470460054927243 +875 1647 -0.9968027762973815 +876 1647 0.9968027762973815 +877 1647 0.1465716166473655 +878 1647 -0.1465716166473654 +855 1648 0.01569861443552303 +856 1648 -0.01569861443552303 +857 1648 0.3040239959545538 +858 1648 -0.3040239959545538 +859 1648 0.004263577138353855 +860 1648 -0.004263577138353855 +861 1648 0.1166380726678046 +862 1648 -0.1166380726678046 +863 1648 0.03135289673795232 +864 1648 -0.03135289673795232 +865 1648 0.6322245355689299 +866 1648 -0.6322245355689299 +867 1648 0.02069131824592101 +868 1648 -0.02069131824592101 +869 1648 0.5111069270466383 +870 1648 -0.5111069270466383 +871 1648 0.1630221808078841 +872 1648 -0.1630221808078841 +873 1648 1 +874 1648 -1 +875 1648 -0.1624962508184077 +876 1648 0.1624962508184077 +877 1648 -0.9968027762973815 +878 1648 0.9968027762973815 +871 1649 -1 +872 1649 1 +873 1649 0.1470460054927243 +874 1649 -0.1470460054927243 +1063 1649 -0.9873661448931788 +1064 1649 0.9873661448931788 +1065 1649 0.1451881617461249 +1066 1649 -0.1451881617461249 +871 1650 -0.1630221808078841 +872 1650 0.1630221808078841 +873 1650 -1 +874 1650 1 +1063 1650 -0.160962487053157 +1064 1650 0.160962487053157 +1065 1650 -0.9873661448931788 +1066 1650 0.9873661448931788 +242 1651 0.01 +242 1652 -0.01 +242 1653 -1 +1122 1653 0.2294517581974093 +242 1654 -1 +1129 1654 0.2709058173910205 +242 1655 -1 +1125 1655 0.3950258851101789 +241 1656 0.01 +241 1657 -0.01 +241 1658 -1 +1120 1658 0.2415951009568014 +241 1659 -1 +1127 1659 0.2852430454948127 +241 1660 -1 +1123 1660 0.415931955995886 +1063 1661 0.9423700969195283 +1064 1661 -0.9423700969195283 +1065 1661 -0.1385716765395742 +1066 1661 0.1385716765395742 +1127 1661 1 +1128 1661 -1 +1129 1661 -0.1390262621900306 +1130 1661 0.1390262621900306 +1063 1662 0.1536271375206029 +1064 1662 -0.1536271375206029 +1065 1662 0.942370096919528 +1066 1662 -0.942370096919528 +1127 1662 0.1541311127483084 +1128 1662 -0.1541311127483084 +1129 1662 1 +1130 1662 -1 +875 1663 0.7901450663883554 +876 1663 -0.7901450663883554 +877 1663 -0.1161843069866512 +878 1663 0.1161843069866512 +1275 1663 -1 +1276 1663 1 +1277 1663 0.01231533241099671 +1278 1663 -0.01231533241099671 +875 1664 0.1288074370816807 +876 1664 -0.1288074370816807 +877 1664 0.7901450663883558 +878 1664 -0.7901450663883551 +1275 1664 -0.01365336202290812 +1276 1664 0.01365336202290812 +1277 1664 -1 +1278 1664 1 +253 1665 0.01 +253 1666 -0.01 +253 1667 -1 +468 1667 0.463488725640109 +253 1668 -1 +1167 1668 0.3694519209944966 +253 1669 -1 +1143 1669 0.1466065943963893 +253 1670 -1 +415 1670 0.3077039798135446 +254 1671 0.01 +254 1672 -0.01 +254 1673 -1 +470 1673 0.4401922993538489 +254 1674 -1 +1169 1674 0.3508820853811734 +254 1675 -1 +1145 1675 0.1392376778931493 +254 1676 -1 +417 1676 0.2922377932869683 +274 1677 0.01 +274 1678 -0.01 +274 1679 -1 +1126 1679 0.3950258851101789 +274 1680 -1 +1205 1680 0.4209167349186566 +274 1681 -1 +1185 1681 0.1215704760570904 +285 1682 0.01 +285 1683 -0.01 +285 1684 -1 +1200 1684 0.339656432747093 +285 1685 -1 +592 1685 0.2626750813189427 +286 1686 0.01 +286 1687 -0.01 +286 1688 -1 +1202 1688 0.3225842137039684 +286 1689 -1 +594 1689 0.2494721913009972 +63 1690 0.01 +63 1691 -0.01 +64 1692 0.01 +64 1693 -0.01 +66 1694 0.01 +66 1695 -0.01 +66 1696 -1 +585 1696 0.06034663548329088 +65 1697 0.01 +65 1698 -0.01 +65 1699 -1 +583 1699 0.06354037818897638 +583 1700 -0.2333851056333624 +584 1700 0.2333851056333624 +585 1700 -1 +586 1700 1 +583 1701 -1 +584 1701 1 +585 1701 0.2105133629964527 +586 1701 -0.2105133629964527 +64 1702 -1 +586 1702 0.06034663548329088 +63 1703 -1 +584 1703 0.06354037818897638 +64 1704 -1 +590 1704 0.3108419073050455 +63 1705 -1 +588 1705 0.3272926848194232 +64 1706 -1 +593 1706 0.2494721913009972 +63 1707 -1 +591 1707 0.2626750813189427 +583 1708 0.2333851056333624 +584 1708 -0.2333851056333624 +585 1708 1 +586 1708 -1 +587 1708 0.06467369095898166 +588 1708 -0.06467369095898166 +589 1708 0.4279175074291341 +590 1708 -0.4279175074291341 +591 1708 -0.03655825977741544 +592 1708 0.03655825977741544 +593 1708 -0.2418972438113573 +594 1708 0.2418972438113573 +583 1709 1 +584 1709 -1 +585 1709 -0.2105133629964527 +586 1709 0.2105133629964527 +587 1709 0.4279175074291341 +588 1709 -0.4279175074291341 +589 1709 -0.05833566861184603 +590 1709 0.05833566861184603 +591 1709 -0.2418972438113573 +592 1709 0.2418972438113573 +593 1709 0.03297554996132337 +594 1709 -0.03297554996132337 +591 1710 0.151131361405363 +592 1710 -0.151131361405363 +593 1710 1 +594 1710 -1 +1199 1710 0.1534959190132477 +1200 1710 -0.1534959190132477 +1201 1710 0.9959286789842108 +1202 1710 -0.9959286789842108 +591 1711 1 +592 1711 -1 +593 1711 -0.1363204865080614 +594 1711 0.1363204865080614 +1199 1711 0.9959286789842108 +1200 1711 -0.9959286789842108 +1201 1711 -0.1384533174472243 +1202 1711 0.1384533174472243 +273 1712 0.01 +273 1713 -0.01 +273 1714 -1 +1124 1714 0.415931955995886 +273 1715 -1 +1203 1715 0.4431930348495722 +273 1716 -1 +1183 1716 0.1280043860509881 +273 1717 -1 +1199 1717 0.339656432747093 +274 1718 -1 +1201 1718 0.3225842137039683 +254 1719 -1 +589 1719 0.3108419073050455 +253 1720 -1 +587 1720 0.3272926848194232 +1119 1721 1 +1120 1721 -1 +1121 1721 -0.1470364669456232 +1122 1721 0.1470364669456232 +1123 1721 -0.991413922071763 +1124 1721 0.991413922071763 +1125 1721 0.1351543484733913 +1126 1721 -0.1351543484733913 +1127 1721 -0.8469798116820166 +1128 1721 0.8469798116820166 +1129 1721 0.1177524373685668 +1130 1721 -0.1177524373685668 +1119 1722 0.1630116059218479 +1120 1722 -0.1630116059218479 +1121 1722 1 +1122 1722 -1 +1123 1722 -0.1498385254327168 +1124 1722 0.1498385254327168 +1125 1722 -0.991413922071763 +1126 1722 0.991413922071763 +1127 1722 -0.130545940849902 +1128 1722 0.1305459408499019 +1129 1722 -0.8469798116820166 +1130 1722 0.8469798116820166 +463 1723 1 +464 1723 -1 +465 1723 -0.1400544563368277 +466 1723 0.1400544563368277 +467 1723 -0.4727242990070782 +468 1723 0.4727242990070782 +469 1723 0.06572007689707396 +470 1723 -0.06572007689707396 +471 1723 0.3848066900762754 +472 1723 -0.3848066900762754 +473 1723 -0.05658611192353545 +474 1723 0.05658611192353545 +475 1723 -0.4564706775424059 +476 1723 0.4564706775424059 +477 1723 0.06223639152701406 +478 1723 -0.06223639152701406 +479 1723 -0.4579253637467921 +480 1723 0.4579253637467921 +481 1723 0.06365818275706274 +482 1723 -0.06365818275706274 +471 1724 -1 +472 1724 1 +473 1724 0.1470507488118751 +474 1724 -0.1470507488118751 +1119 1724 -0.7592160624803552 +1120 1724 0.7592160624803552 +1121 1724 0.111632447475479 +1122 1724 -0.111632447475479 +463 1725 0.1552710175797461 +464 1725 -0.1552710175797461 +465 1725 1 +466 1725 -1 +467 1725 -0.07286039646383288 +468 1725 0.07286039646383288 +469 1725 -0.4727242990070782 +470 1725 0.4727242990070782 +471 1725 0.06273404937660954 +472 1725 -0.06273404937660954 +473 1725 0.3848066900762755 +474 1725 -0.3848066900762755 +475 1725 -0.06899821751940868 +476 1725 0.06899821751940868 +477 1725 -0.4564706775424059 +478 1725 0.4564706775424059 +479 1725 -0.07057448275830037 +480 1725 0.07057448275830037 +481 1725 -0.4579253637467921 +482 1725 0.4579253637467921 +471 1726 -0.1630274394766228 +472 1726 0.1630274394766228 +473 1726 -1 +474 1726 1 +1119 1726 -0.1237610295865847 +1120 1726 0.1237610295865847 +1121 1726 -0.7592160624803552 +1122 1726 0.7592160624803552 +455 1727 0.9905556229312228 +456 1727 -0.9905556229312228 +457 1727 -0.1456585468118804 +458 1727 0.1456585468118804 +915 1727 0.7363383644776725 +916 1727 -0.7363383644776725 +917 1727 -0.1082655276027494 +918 1727 0.1082655276027494 +1015 1727 1 +1016 1727 -1 +1017 1727 -0.1470715121249568 +1018 1727 0.1470715121249568 +1019 1727 -0.6085138686814765 +1020 1727 0.6085138686814765 +1021 1727 0.08459332004257183 +1022 1727 -0.08459332004257183 +1023 1727 -0.8216061599153084 +1024 1727 0.8216061599153084 +1025 1727 0.1208221324773694 +1026 1727 -0.1208221324773694 +995 1728 0.5153521580174149 +996 1728 -0.5153521580174149 +997 1728 -0.06851759919900693 +998 1728 0.06851759919900693 +1143 1728 0.6821517388740528 +1144 1728 -0.6821517388740528 +1145 1728 -0.01219309288178902 +1146 1728 0.01219309288178902 +1147 1728 0.2787121042528756 +1148 1728 -0.2787121042528756 +1149 1728 -0.0113413101971998 +1150 1728 0.0113413101971998 +1151 1728 0.3509284757851823 +1152 1728 -0.3509284757851823 +1153 1728 -0.007468902653348399 +1154 1728 0.007468902653348399 +1155 1728 0.5064737617169339 +1156 1728 -0.5064737617169339 +1157 1728 -0.01517833990680362 +1158 1728 0.01517833990680362 +1159 1728 -0.875046244116939 +1160 1728 0.875046244116939 +1161 1728 0.1163313654254138 +1162 1728 -0.1163313654254138 +1163 1728 1 +1164 1728 -1 +1165 1728 -0.1329226921626714 +1166 1728 0.1329226921626714 +1163 1729 -1 +1164 1729 1 +1165 1729 0.1329226921626714 +1166 1729 -0.1329226921626714 +1195 1729 -0.8710360160802958 +1196 1729 0.8710360160802958 +1197 1729 0.1158216095654504 +1198 1729 -0.1158216095654504 +1275 1729 0.4221483559084317 +1276 1729 -0.4221483559084317 +1277 1729 -0.005198897329768084 +1278 1729 0.005198897329768084 +995 1730 0.07596186246416137 +996 1730 -0.07596186246416134 +997 1730 0.5153521580174146 +998 1730 -0.5153521580174146 +1143 1730 0.01351784147907836 +1144 1730 -0.01351784147907836 +1145 1730 0.6821517388740528 +1146 1730 -0.6821517388740528 +1147 1730 0.01257351476751054 +1148 1730 -0.01257351476751054 +1149 1730 0.2787121042528756 +1150 1730 -0.2787121042528756 +1151 1730 0.008280379971633391 +1152 1730 -0.008280379971633391 +1153 1730 0.3509284757851823 +1154 1730 -0.3509284757851823 +1155 1730 0.01682742801723297 +1156 1730 -0.01682742801723297 +1157 1730 0.5064737617169339 +1158 1730 -0.5064737617169339 +1159 1730 -0.1289704730466016 +1160 1730 0.1289704730466016 +1161 1730 -0.8750462441169392 +1162 1730 0.8750462441169392 +1163 1730 0.1473644053274601 +1164 1730 -0.1473644053274601 +1165 1730 1 +1166 1730 -1 +1163 1731 -0.1473644053274601 +1164 1731 0.1473644053274601 +1165 1731 -1 +1166 1731 1 +1195 1731 -0.1284053335061404 +1196 1731 0.1284053335061404 +1197 1731 -0.8710360160802957 +1198 1731 0.8710360160802957 +1275 1731 0.005763744330593282 +1276 1731 -0.005763744330593282 +1277 1731 0.4221483559084317 +1278 1731 -0.4221483559084317 +455 1732 0.1614839782625372 +456 1732 -0.1614839782625372 +457 1732 0.9905556229312228 +458 1732 -0.9905556229312228 +915 1732 0.1200283024144418 +916 1732 -0.1200283024144418 +917 1732 0.7363383644776726 +918 1732 -0.7363383644776726 +1015 1732 0.1630504586709765 +1016 1732 -0.1630504586709765 +1017 1732 1 +1018 1732 -1 +1019 1732 -0.09378416957951093 +1020 1732 0.09378416957951093 +1021 1732 -0.6085138686814763 +1022 1732 0.6085138686814763 +1023 1732 -0.133949150541831 +1024 1732 0.133949150541831 +1025 1732 -0.8216061599153084 +1026 1732 0.8216061599153084 +407 1733 1 +408 1733 -1 +409 1733 -0.1914264350798287 +410 1733 0.1914264350798287 +411 1733 -0.2148007759175319 +412 1733 0.2148007759175319 +413 1733 0.03158574715042042 +414 1733 -0.03158574715042042 +415 1733 0.4405392295224592 +416 1733 -0.4405392295224592 +417 1733 -0.06477598233894161 +418 1733 0.06477598233894161 +419 1733 0.423398631231611 +420 1733 -0.423398631231611 +421 1733 -0.06226011050020311 +422 1733 0.06226011050020311 +415 1734 -0.9883009494142369 +416 1734 0.9883009494142369 +417 1734 0.1453177391584649 +418 1734 -0.1453177391584649 +467 1734 0.9818955840347857 +468 1734 -0.9818955840347857 +469 1734 -0.136507163738366 +470 1734 0.136507163738366 +587 1734 -0.9873332554016959 +588 1734 0.9873332554016959 +589 1734 0.1345977778348012 +590 1734 -0.1345977778348012 +1143 1734 -1 +1144 1734 1 +1145 1734 0.01787445840410041 +1146 1734 -0.01787445840410041 +1167 1734 -0.9423500779711169 +1168 1734 0.9423500779711169 +1169 1734 0.1284660273280562 +1170 1734 -0.1284660273280562 +419 1735 -0.9939933290706261 +420 1735 0.9939933290706261 +421 1735 0.1461651737616234 +422 1735 -0.1461651737616234 +479 1735 0.9953629583621182 +480 1735 -0.9953629583621182 +481 1735 -0.1383697041687838 +482 1735 0.1383697041687838 +923 1735 0.8915126846898415 +924 1735 -0.8915126846898415 +925 1735 -0.131101539607578 +926 1735 0.131101539607578 +1071 1735 0.9972944090525148 +1072 1735 -0.9972944090525148 +1073 1735 -0.146654850557129 +1074 1735 0.146654850557129 +1167 1735 0.986147018950273 +1168 1735 -0.986147018950273 +1169 1735 -0.134436652415526 +1170 1735 0.134436652415526 +1219 1735 1 +1220 1735 -1 +1221 1735 -0.147066504877911 +1222 1735 0.147066504877911 +407 1736 0.2122244314384766 +408 1736 -0.2122244314384766 +409 1736 1 +410 1736 -1 +411 1736 -0.03501745841822766 +412 1736 0.03501745841822766 +413 1736 -0.2148007759175319 +414 1736 0.2148007759175319 +415 1736 0.07181372842793572 +416 1736 -0.07181372842793572 +417 1736 0.4405392295224592 +418 1736 -0.4405392295224592 +419 1736 0.06902451349883935 +420 1736 -0.06902451349883935 +421 1736 0.423398631231611 +422 1736 -0.423398631231611 +419 1737 -0.1620456489446234 +420 1737 0.1620456489446234 +421 1737 -0.9939933290706261 +422 1737 0.9939933290706261 +479 1737 0.153403221364303 +480 1737 -0.153403221364303 +481 1737 0.9953629583621182 +482 1737 -0.9953629583621182 +923 1737 0.1453453891690791 +924 1737 -0.1453453891690791 +925 1737 0.8915126846898414 +926 1737 -0.8915126846898414 +1071 1737 0.1625885278812313 +1072 1737 -0.1625885278812313 +1073 1737 0.9972944090525148 +1074 1737 -0.9972944090525148 +1167 1737 0.1490428535195738 +1168 1737 -0.1490428535195738 +1169 1737 0.986147018950273 +1170 1737 -0.986147018950273 +1219 1737 0.1630449073992468 +1220 1737 -0.1630449073992468 +1221 1737 1 +1222 1737 -1 +415 1738 -0.1611061427224989 +416 1738 0.1611061427224989 +417 1738 -0.9883009494142369 +418 1738 0.9883009494142369 +467 1738 0.1513383206429802 +468 1738 -0.1513383206429802 +469 1738 0.9818955840347858 +470 1738 -0.9818955840347858 +587 1738 -0.14922148480674 +588 1738 0.14922148480674 +589 1738 -0.9873332554016959 +590 1738 0.9873332554016959 +1143 1738 -0.01981647294689987 +1144 1738 0.01981647294689987 +1145 1738 -1 +1146 1738 1 +1167 1738 -0.1424235351689386 +1168 1738 0.1424235351689386 +1169 1738 -0.9423500779711173 +1170 1738 0.9423500779711173 +384 1739 0.01 +384 1740 0.01 +384 1741 -0.01 +384 1742 -1 +1377 1742 0.09314959715321726 +383 1743 0.01 +383 1744 0.01 +383 1745 -0.01 +383 1746 -1 +1375 1746 0.09807938062934833 +1375 1747 -0.04041932029062142 +1376 1747 0.04041932029062142 +1377 1747 -1 +1378 1747 1 +1375 1748 -1 +1376 1748 1 +1377 1748 0.03645822650643538 +1378 1748 -0.03645822650643538 +380 1749 0.01 +380 1750 -0.01 +380 1751 -1 +1378 1751 0.09314959715321726 +380 1752 -1 +1374 1752 0.2228753171595832 +379 1753 0.01 +379 1754 -0.01 +379 1755 -1 +1372 1755 0.23467061299928 +379 1756 -1 +1376 1756 0.09807938062934833 +379 1757 -1 +696 1757 0.2032069203917774 +380 1758 -1 +698 1758 0.1929930904108496 +379 1759 -1 +1139 1759 0.09754722595175123 +380 1760 -1 +1141 1760 0.09264419027234901 +250 1761 0.01 +250 1762 -0.01 +250 1763 -1 +1133 1763 0.2643504430729512 +250 1764 -1 +977 1764 0.2958665116797481 +250 1765 -1 +705 1765 0.2806680622195344 +249 1766 0.01 +249 1767 -0.01 +249 1768 -1 +1131 1768 0.2783407391772425 +249 1769 -1 +975 1769 0.3115247419351109 +249 1770 -1 +703 1770 0.2955219404722951 +95 1771 0.01 +95 1772 -0.01 +95 1773 -1 +692 1773 0.1700729070028407 +95 1774 -1 +688 1774 0.1523731413480285 +95 1775 -1 +684 1775 0.245941910819673 +95 1776 -1 +695 1776 0.2032069203917774 +96 1777 0.01 +96 1778 -0.01 +96 1779 -1 +694 1779 0.1615244985473605 +96 1780 -1 +690 1780 0.1447143797448896 +96 1781 -1 +686 1781 0.2335800834889229 +96 1782 -1 +697 1782 0.1929930904108496 +115 1783 0.01 +115 1784 -0.01 +115 1785 -1 +748 1785 0.2212280984968797 +115 1786 -1 +744 1786 0.7760768949507928 +115 1787 -1 +759 1787 0.2796063126681479 +115 1788 -1 +755 1788 0.3400724423605739 +115 1789 -1 +751 1789 0.1056210061043078 +115 1790 -1 +687 1790 0.1523731413480285 +116 1791 0.01 +116 1792 -0.01 +116 1793 -1 +750 1793 0.2101084664454975 +116 1794 -1 +746 1794 0.7370687871468301 +116 1795 -1 +761 1795 0.265552404790992 +116 1796 -1 +757 1796 0.3229793133432497 +116 1797 -1 +753 1797 0.1003121564023191 +116 1798 -1 +689 1798 0.1447143797448896 +117 1799 0.01 +117 1800 -0.01 +117 1801 -1 +763 1801 0.1934412469353705 +117 1802 -1 +743 1802 0.7760768949507928 +118 1803 0.01 +118 1804 -0.01 +118 1805 -1 +765 1805 0.1837182709477058 +118 1806 -1 +745 1806 0.7370687871468301 +2 1807 1 +2 1808 1 +213 1808 0.01 +213 1809 0.01 +213 1810 -0.01 +213 1811 -1 +1031 1811 0.3285026576867918 +214 1812 0.01 +214 1813 -0.01 +214 1814 -1 +1033 1814 0.3119910630647831 +1031 1815 -0.02519845145242049 +1032 1815 0.02519845145242049 +1033 1815 -1 +1034 1815 1 +1031 1816 -1 +1032 1816 1 +1033 1816 0.02272900296339044 +1034 1816 -0.02272900296339044 +3 1817 1 +3 1818 1 +215 1818 0.01 +215 1819 0.01 +215 1820 -0.01 +215 1821 -1 +1035 1821 0.2702800545270347 +216 1822 0.01 +216 1823 -0.01 +216 1824 -1 +1037 1824 0.2566949142234827 +1035 1825 -0.01718870386178777 +1036 1825 0.01718870386178777 +1037 1825 -1 +1038 1825 1 +1035 1826 -1 +1036 1826 1 +1037 1826 0.01550421071505516 +1038 1826 -0.01550421071505516 +210 1827 0.01 +210 1828 -0.01 +210 1829 -1 +1038 1829 0.2566949142234827 +210 1830 -1 +1034 1830 0.3119910630647831 +210 1831 -1 +1030 1831 0.3266755760196875 +209 1832 0.01 +209 1833 -0.01 +209 1834 -1 +1028 1834 0.3439643234317511 +209 1835 -1 +1032 1835 0.3285026576867918 +209 1836 -1 +1036 1836 0.2702800545270347 +209 1837 -1 +752 1837 0.1056210061043078 +210 1838 -1 +754 1838 0.1003121564023191 +209 1839 -1 +1039 1839 0.2219279738228301 +210 1840 -1 +1041 1840 0.2107731637983095 +209 1841 -1 +691 1841 0.1700729070028407 +210 1842 -1 +693 1842 0.1615244985473605 +127 1843 0.01 +127 1844 -0.01 +127 1845 -1 +795 1845 0.2390532707520358 +127 1846 -1 +699 1846 0.2476581479642774 +128 1847 0.01 +128 1848 -0.01 +128 1849 -1 +797 1849 0.2270376885113396 +128 1850 -1 +701 1850 0.2352100570635261 +98 1851 0.01 +98 1852 -0.01 +98 1853 -1 +706 1853 0.2806680622195345 +98 1854 -1 +702 1854 0.2352100570635261 +98 1855 -1 +685 1855 0.2335800834889229 +97 1856 0.01 +97 1857 -0.01 +97 1858 -1 +704 1858 0.2955219404722951 +97 1859 -1 +700 1859 0.2476581479642774 +97 1860 -1 +683 1860 0.245941910819673 +211 1861 0.01 +211 1862 -0.01 +211 1863 -1 +796 1863 0.2390532707520358 +211 1864 -1 +764 1864 0.1934412469353705 +211 1865 -1 +1043 1865 0.2760406632722361 +211 1866 -1 +1027 1866 0.3439643234317511 +212 1867 0.01 +212 1868 -0.01 +212 1869 -1 +798 1869 0.2270376885113396 +212 1870 -1 +766 1870 0.1837182709477058 +212 1871 -1 +1045 1871 0.2621659763420402 +212 1872 -1 +1029 1872 0.3266755760196875 +217 1873 0.01 +217 1874 -0.01 +217 1875 -1 +1048 1875 0.2448688430568751 +217 1876 -1 +1044 1876 0.2760406632722361 +218 1877 0.01 +218 1878 -0.01 +218 1879 -1 +1050 1879 0.2325609515451714 +218 1880 -1 +1046 1880 0.2621659763420402 +265 1881 0.01 +265 1882 -0.01 +265 1883 -1 +1179 1883 0.7887597998642423 +265 1884 -1 +1047 1884 0.2448688430568751 +293 1885 0.01 +293 1886 -0.01 +293 1887 -1 +1224 1887 0.24666667977331 +293 1888 -1 +1180 1888 0.7887597998642423 +329 1889 0.01 +329 1890 -0.01 +329 1891 -1 +1116 1891 0.5265163853204751 +329 1892 -1 +1223 1892 0.24666667977331 +266 1893 0.01 +266 1894 -0.01 +266 1895 -1 +1181 1895 0.7491142086802822 +266 1896 -1 +1049 1896 0.2325609515451714 +294 1897 0.01 +294 1898 -0.01 +294 1899 -1 +1226 1899 0.2342684232360464 +294 1900 -1 +1182 1900 0.7491142086802822 +330 1901 0.01 +330 1902 -0.01 +330 1903 -1 +1118 1903 0.500051987201219 +330 1904 -1 +1225 1904 0.2342684232360464 +1179 1905 0.981718007943383 +1180 1905 -0.981718007943383 +1181 1905 -0.1338352990022147 +1182 1905 0.1338352990022147 +1223 1905 1 +1224 1905 -1 +1225 1905 -0.1363200479348048 +1226 1905 0.1363200479348048 +1179 1906 0.1483761645840547 +1180 1906 -0.1483761645840547 +1181 1906 0.981718007943383 +1182 1906 -0.981718007943383 +1223 1906 0.1511308751822351 +1224 1906 -0.1511308751822351 +1225 1906 0.9999999999999996 +1226 1906 -1 +1047 1907 -1 +1048 1907 1 +1049 1907 0.1390173985520416 +1050 1907 -0.1390173985520416 +1179 1907 -0.9745627298916907 +1180 1907 0.9745627298916907 +1181 1907 0.1328598368330951 +1182 1907 -0.1328598368330951 +1047 1908 -0.1541212860985466 +1048 1908 0.1541212860985466 +1049 1908 -1 +1050 1908 0.9999999999999996 +1179 1908 -0.147294720925843 +1180 1908 0.147294720925843 +1181 1908 -0.9745627298916906 +1182 1908 0.9745627298916906 +1043 1909 0.9980998163246382 +1044 1909 -0.9980998163246382 +1045 1909 -0.1360610155290978 +1046 1909 0.1360610155290978 +1047 1909 1 +1048 1909 -1 +1049 1909 -0.1390173985520416 +1050 1909 0.1390173985520416 +1043 1910 0.1508436995630349 +1044 1910 -0.150843699563035 +1045 1910 0.9980998163246382 +1046 1910 -0.9980998163246382 +1047 1910 0.1541212860985466 +1048 1910 -0.1541212860985466 +1049 1910 0.9999999999999996 +1050 1910 -1 +699 1911 -0.9718835010078983 +700 1911 0.9718835010078983 +701 1911 0.1325027638355375 +702 1911 -0.1325027638355375 +795 1911 -1 +796 1911 1 +797 1911 0.136322963790091 +798 1911 -0.136322963790091 +699 1912 -0.1468988528533007 +700 1912 0.1468988528533007 +701 1912 -0.9718835010078983 +702 1912 0.9718835010078983 +795 1912 -0.1511341078377981 +796 1912 0.1511341078377981 +797 1912 -1 +798 1912 1 +763 1913 1 +764 1913 -1 +765 1913 -0.1363316453137611 +766 1913 0.1363316453137611 +795 1913 0.8091972401248694 +796 1913 -0.8091972401248694 +797 1913 -0.1103121660645841 +798 1913 0.1103121660645841 +1027 1913 -0.9909056676606937 +1028 1913 0.9909056676606937 +1029 1913 0.02946863533796592 +1030 1913 -0.02946863533796592 +1043 1913 -0.7884779077057081 +1044 1913 0.7884779077057081 +1045 1913 0.107485346745924 +1046 1913 -0.107485346745924 +763 1914 0.1511437325869825 +764 1914 -0.1511437325869825 +765 1914 1 +766 1914 -1 +795 1914 0.1222973029510807 +796 1914 -0.1222973029510807 +797 1914 0.8091972401248694 +798 1914 -0.8091972401248694 +1027 1914 -0.03267032778027541 +1028 1914 0.03267032778027541 +1029 1914 -0.9909056676606937 +1030 1914 0.9909056676606937 +1043 1914 -0.1191633568875092 +1044 1914 0.1191633568875092 +1045 1914 -0.7884779077057081 +1046 1914 0.7884779077057081 +743 1915 -0.9781893403408494 +744 1915 0.9781893403408494 +745 1915 0.03839717839796131 +746 1915 -0.03839717839796131 +763 1915 -1 +764 1915 1 +765 1915 0.1363316453137611 +766 1915 -0.1363316453137611 +743 1916 -0.04256893438438047 +744 1916 0.04256893438438047 +745 1916 -0.9781893403408494 +746 1916 0.9781893403408494 +763 1916 -0.1511437325869825 +764 1916 0.1511437325869825 +765 1916 -1 +766 1916 1 +683 1917 -1 +684 1917 1 +685 1917 0.01806999990367136 +686 1917 -0.01806999990367136 +699 1917 0.9998896253543965 +700 1917 -0.9998896253543965 +701 1917 -0.1363210083847909 +702 1917 0.1363210083847909 +703 1917 0.882760440380598 +704 1917 -0.882760440380598 +705 1917 -0.1298101940158289 +706 1917 0.1298101940158289 +683 1918 -0.02003325953414299 +684 1918 0.02003325953414299 +685 1918 -1 +686 1918 1 +699 1918 0.1511319399826747 +700 1918 -0.1511319399826747 +701 1918 0.9998896253543965 +702 1918 -0.9998896253543965 +703 1918 0.143913742156036 +704 1918 -0.143913742156036 +705 1918 0.8827604403805978 +706 1918 -0.8827604403805983 +683 1919 0.6195493108116489 +684 1919 -0.6195493108116489 +685 1919 -0.01119525598668616 +686 1919 0.01119525598668616 +687 1919 1 +688 1919 -1 +689 1919 -0.1329231674678804 +690 1919 0.1329231674678804 +691 1919 0.9982571582934843 +692 1919 -0.9982571582934843 +693 1919 -0.1327268415544745 +694 1919 0.1327268415544745 +695 1919 -0.9954407049314574 +696 1919 0.9954407049314574 +697 1919 0.1323211301805476 +698 1919 -0.1323211301805476 +683 1920 0.01241159213768919 +684 1920 -0.01241159213768919 +685 1920 0.6195493108116491 +686 1920 -0.6195493108116491 +687 1920 0.1473649322733737 +688 1920 -0.1473649322733737 +689 1920 1 +690 1920 -1 +691 1920 0.1471472760477231 +692 1920 -0.1471472760477231 +693 1920 0.9982571582934843 +694 1920 -0.9982571582934843 +695 1920 -0.1466974851626563 +696 1920 0.1466974851626563 +697 1920 -0.9954407049314574 +698 1920 0.9954407049314574 +4 1921 1 +4 1922 1 +233 1922 0.01 +233 1923 0.01 +233 1924 -0.01 +233 1925 -1 +1087 1925 0.7373194806473162 +234 1926 0.01 +234 1927 -0.01 +234 1928 -1 +1089 1928 0.7002594444908784 +1087 1929 -0.1455610721665971 +1088 1929 0.145561072166597 +1089 1929 -1 +1090 1929 1 +1087 1930 -1 +1088 1930 1 +1089 1930 0.1312960856692276 +1090 1930 -0.1312960856692276 +5 1931 1 +5 1932 1 +235 1932 0.01 +235 1933 0.01 +235 1934 -0.01 +235 1935 -1 +1091 1935 0.2778198455547122 +236 1936 0.01 +236 1937 -0.01 +236 1938 -1 +1093 1938 0.2638557312304923 +1091 1939 -0.02147077178586419 +1092 1939 0.02147077178586419 +1093 1939 -1 +1094 1939 1 +1091 1940 -1 +1092 1940 1 +1093 1940 0.01936663594065064 +1094 1940 -0.01936663594065064 +230 1941 0.01 +230 1942 -0.01 +230 1943 -1 +1094 1943 0.2638557312304923 +230 1944 -1 +1090 1944 0.7002594444908784 +230 1945 -1 +1098 1945 0.1022810904237551 +229 1946 0.01 +229 1947 -0.01 +229 1948 -1 +1096 1948 0.1076941425989816 +229 1949 -1 +1088 1949 0.7373194806473162 +229 1950 -1 +1092 1950 0.2778198455547122 +229 1951 -1 +1084 1951 0.3410772769312844 +230 1952 -1 +1086 1952 0.3239336417134609 +229 1953 -1 +756 1953 0.3400724423605739 +230 1954 -1 +758 1954 0.3229793133432497 +231 1955 0.01 +231 1956 -0.01 +231 1957 -1 +1052 1957 0.27460623159531 +231 1958 -1 +908 1958 0.2388454610782199 +231 1959 -1 +1099 1959 0.2098650208760381 +231 1960 -1 +1083 1960 0.3410772769312844 +232 1961 0.01 +232 1962 -0.01 +232 1963 -1 +1054 1963 0.2608036437906711 +232 1964 -1 +910 1964 0.2268403240166184 +232 1965 -1 +1101 1965 0.1993165334621299 +232 1966 -1 +1085 1966 0.3239336417134609 +91 1967 0.01 +91 1968 -0.01 +91 1969 -1 +675 1969 0.3078783523738943 +91 1970 -1 +671 1970 0.2537670345117274 +173 1971 0.01 +173 1972 -0.01 +173 1973 -1 +672 1973 0.2537670345117274 +173 1974 -1 +907 1974 0.2388454610782199 +269 1975 0.01 +269 1976 -0.01 +269 1977 -1 +1112 1977 0.3376170422503754 +269 1978 -1 +676 1978 0.3078783523738943 +92 1979 0.01 +92 1980 -0.01 +92 1981 -1 +677 1981 0.2924034013245285 +92 1982 -1 +673 1982 0.2410118914276738 +174 1983 0.01 +174 1984 -0.01 +174 1985 -1 +674 1985 0.2410118914276738 +174 1986 -1 +909 1986 0.2268403240166184 +270 1987 0.01 +270 1988 -0.01 +270 1989 -1 +1114 1989 0.3206473294986605 +270 1990 -1 +678 1990 0.2924034013245285 +671 1991 -1 +672 1991 1 +673 1991 0.1390305806589189 +674 1991 -0.1390305806589189 +675 1991 -0.8242444866781252 +676 1991 0.8242444866781252 +677 1991 0.1145871678521182 +678 1991 -0.1145871678521182 +671 1992 -0.1541359004078818 +672 1992 0.1541359004078818 +673 1992 -1 +674 1992 1 +675 1992 -0.1270367728334902 +676 1992 0.1270367728334902 +677 1992 -0.8242444866781253 +678 1992 0.8242444866781253 +671 1993 0.9411997170467076 +672 1993 -0.9411997170467076 +673 1993 -0.1308555431770139 +674 1993 0.1308555431770139 +907 1993 -1 +908 1993 1 +909 1993 0.1390327728185971 +910 1993 -0.1390327728185971 +671 1994 0.1450726658506379 +672 1994 -0.1450726658506379 +673 1994 0.9411997170467076 +674 1994 -0.9411997170467076 +907 1994 -0.1541383307401457 +908 1994 0.1541383307401457 +909 1994 -1 +910 1994 1 +263 1995 0.01 +263 1996 -0.01 +263 1997 -1 +1056 1997 0.2105363765818936 +263 1998 -1 +1171 1998 0.2587403965994535 +264 1999 0.01 +264 2000 -0.01 +264 2001 -1 +1058 2001 0.1999541446822015 +264 2002 -1 +1173 2002 0.2457352764245622 +220 2003 0.01 +220 2004 -0.01 +220 2005 -1 +1062 2005 0.1699447901846557 +220 2006 -1 +1057 2006 0.1999541446822015 +220 2007 -1 +1053 2007 0.2608036437906711 +219 2008 0.01 +219 2009 -0.01 +219 2010 -1 +1060 2010 0.1789388282064072 +219 2011 -1 +1055 2011 0.2105363765818936 +219 2012 -1 +1051 2012 0.27460623159531 +262 2013 0.01 +262 2014 -0.01 +262 2015 -1 +1174 2015 0.2457352764245622 +262 2016 -1 +1042 2016 0.2107731637983095 +262 2017 -1 +762 2017 0.265552404790992 +262 2018 -1 +1177 2018 0.6902523202056198 +262 2019 -1 +1097 2019 0.1022810904237551 +261 2020 0.01 +261 2021 -0.01 +261 2022 -1 +1172 2022 0.2587403965994535 +261 2023 -1 +1040 2023 0.2219279738228301 +261 2024 -1 +760 2024 0.2796063126681479 +261 2025 -1 +1175 2025 0.7267827463857105 +261 2026 -1 +1095 2026 0.1076941425989816 +1055 2027 1 +1056 2027 -1 +1057 2027 -0.1390160530474402 +1058 2027 0.1390160530474402 +1171 2027 -0.9967328601713935 +1172 2027 0.9967328601713935 +1173 2027 0.01603525768354193 +1174 2027 -0.01603525768354193 +1055 2028 0.154119794408285 +1056 2028 -0.154119794408285 +1057 2028 1 +1058 2028 -1 +1171 2028 -0.01777744773567976 +1172 2028 0.01777744773567976 +1173 2028 -0.9967328601713935 +1174 2028 0.9967328601713935 +381 2029 0.01 +381 2030 -0.01 +381 2031 -1 +1344 2031 0.4996328120897541 +381 2032 -1 +984 2032 0.2977065618553049 +381 2033 -1 +1371 2033 0.23467061299928 +382 2034 0.01 +382 2035 -0.01 +382 2036 -1 +1346 2036 0.4745196683752645 +382 2037 -1 +986 2037 0.282742877542122 +382 2038 -1 +1373 2038 0.2228753171595832 +390 2039 0.01 +390 2040 -0.01 +390 2041 -1 +1102 2041 0.1993165334621299 +390 2042 -1 +1061 2042 0.1699447901846557 +390 2043 -1 +609 2043 0.3637314111438374 +389 2044 0.01 +389 2045 -0.01 +389 2046 -1 +1100 2046 0.2098650208760381 +389 2047 -1 +1059 2047 0.1789388282064072 +389 2048 -1 +607 2048 0.3829812753966835 +67 2049 0.01 +67 2050 -0.01 +70 2051 0.01 +70 2052 -0.01 +70 2053 -1 +597 2053 0.06658059542806614 +69 2054 0.01 +69 2055 -0.01 +69 2056 -1 +595 2056 0.07010425982601691 +595 2057 -0.1808187015477984 +596 2057 0.1808187015477984 +597 2057 -1 +598 2057 1 +595 2058 -1 +596 2058 1 +597 2058 0.1630984670258991 +598 2058 -0.1630984670258991 +72 2059 0.01 +72 2060 -0.01 +72 2061 -1 +601 2061 0.06418178605176027 +71 2062 0.01 +71 2063 -0.01 +71 2064 -1 +599 2064 0.06757849755686869 +599 2065 -0.1527737012930265 +600 2065 0.1527737012930265 +601 2065 -0.9999999999999998 +602 2065 1 +599 2066 -1 +600 2066 1 +601 2066 0.1378018770706553 +602 2066 -0.1378018770706553 +68 2067 0.01 +68 2068 -0.01 +68 2069 -1 +602 2069 0.06418178605176027 +68 2070 -1 +598 2070 0.06658059542806614 +67 2071 -1 +596 2071 0.07010425982601691 +67 2072 -1 +600 2072 0.06757849755686869 +68 2073 -1 +610 2073 0.3637314111438374 +67 2074 -1 +608 2074 0.3829812753966835 +68 2075 -1 +606 2075 0.2574104382332281 +67 2076 -1 +604 2076 0.2710334464240047 +297 2077 0.01 +297 2078 -0.01 +298 2079 0.01 +298 2080 -0.01 +6 2081 1 +6 2082 1 +299 2082 0.01 +299 2083 0.01 +299 2084 -0.01 +299 2085 -1 +1235 2085 0.3538503102665053 +300 2086 0.01 +300 2087 -0.01 +300 2088 -1 +1237 2088 0.3360646615258394 +1235 2089 -0.02585510493985582 +1236 2089 0.02585510493985582 +1237 2089 -1 +1238 2089 1 +1235 2090 -1 +1236 2090 1 +1237 2090 0.02332130440262848 +1238 2090 -0.02332130440262848 +298 2091 -1 +1238 2091 0.3360646615258394 +297 2092 -1 +1236 2092 0.3538503102665053 +298 2093 -1 +902 2093 0.204046711045438 +297 2094 -1 +900 2094 0.2148455350362291 +298 2095 -1 +1241 2095 0.3373660565380088 +297 2096 -1 +1239 2096 0.3552205793889552 +172 2097 0.01 +172 2098 -0.01 +172 2099 -1 +905 2099 0.2498577953112712 +172 2100 -1 +901 2100 0.204046711045438 +172 2101 -1 +637 2101 0.3679929661634978 +171 2102 0.01 +171 2103 -0.01 +171 2104 -1 +903 2104 0.2630810927634545 +171 2105 -1 +899 2105 0.2148455350362291 +171 2106 -1 +635 2106 0.387468365943717 +77 2107 0.01 +77 2108 -0.01 +80 2109 0.01 +80 2110 -0.01 +80 2111 -1 +625 2111 0.06157177890260315 +79 2112 0.01 +79 2113 -0.01 +79 2114 -1 +623 2114 0.06483036023313514 +623 2115 -0.1746435270585997 +624 2115 0.1746435270585997 +625 2115 -1 +626 2115 1 +623 2116 -1 +624 2116 1 +625 2116 0.1575284596970968 +626 2116 -0.1575284596970968 +82 2117 0.01 +82 2118 -0.01 +82 2119 -1 +629 2119 0.06351541314217107 +81 2120 0.01 +81 2121 -0.01 +81 2122 -1 +627 2122 0.06687685799815773 +627 2123 -0.2009281135552154 +628 2123 0.2009281135552154 +629 2123 -1 +630 2123 1 +627 2124 -1 +628 2124 1 +629 2124 0.1812371564597181 +630 2124 -0.1812371564597181 +78 2125 0.01 +78 2126 -0.01 +78 2127 -1 +630 2127 0.06351541314217107 +78 2128 -1 +626 2128 0.06157177890260315 +77 2129 -1 +624 2129 0.06483036023313514 +77 2130 -1 +628 2130 0.06687685799815773 +78 2131 -1 +638 2131 0.3679929661634978 +77 2132 -1 +636 2132 0.387468365943717 +78 2133 -1 +634 2133 0.3129275375389302 +77 2134 -1 +632 2134 0.3294886934744556 +360 2135 0.01 +360 2136 -0.01 +360 2137 -1 +1242 2137 0.3373660565380088 +360 2138 -1 +777 2138 0.4021113285522263 +360 2139 -1 +605 2139 0.2574104382332281 +359 2140 0.01 +359 2141 -0.01 +359 2142 -1 +1240 2142 0.3552205793889552 +359 2143 -1 +775 2143 0.4233923844412951 +359 2144 -1 +603 2144 0.2710334464240047 +122 2145 0.01 +122 2146 -0.01 +122 2147 -1 +778 2147 0.4021113285522263 +122 2148 -1 +774 2148 0.2685448805769761 +122 2149 -1 +633 2149 0.3129275375389302 +121 2150 0.01 +121 2151 -0.01 +121 2152 -1 +776 2152 0.4233923844412951 +121 2153 -1 +772 2153 0.2827571601286569 +121 2154 -1 +631 2154 0.3294886934744556 +195 2155 0.01 +195 2156 -0.01 +195 2157 -1 +960 2157 0.2664477175818617 +195 2158 -1 +771 2158 0.2827571601286569 +196 2159 0.01 +196 2160 -0.01 +196 2161 -1 +962 2161 0.2530552027947643 +196 2162 -1 +773 2162 0.2685448805769761 +183 2163 0.01 +183 2164 -0.01 +186 2165 0.01 +186 2166 0.01 +186 2167 -0.01 +186 2168 -1 +949 2168 1 +185 2169 0.01 +185 2170 0.01 +185 2171 -0.01 +185 2172 -1 +947 2172 1 +947 2173 -0.01042171875822778 +948 2173 0.01042171875822778 +949 2173 -0.3953528431729815 +950 2173 0.3953528431729815 +947 2174 -0.356608260671525 +948 2174 0.356608260671525 +949 2174 0.009400390217892829 +950 2174 -0.009400390217892829 +188 2175 0.01 +188 2176 0.01 +188 2177 -0.01 +188 2178 -1 +953 2178 0.7479665428487433 +187 2179 0.01 +187 2180 0.01 +187 2181 -0.01 +187 2182 -1 +951 2182 0.7875513957769802 +951 2183 -0.0514807675993773 +952 2183 0.0514807675993773 +953 2183 -1 +954 2183 1 +951 2184 -1 +952 2184 1 +953 2184 0.04643565187064161 +954 2184 -0.04643565187064161 +190 2185 0.01 +190 2186 0.01 +190 2187 -0.01 +190 2188 -1 +957 2188 0.6344633953584671 +189 2189 0.01 +189 2190 0.01 +189 2191 -0.01 +189 2192 -1 +955 2192 0.6680412878908787 +955 2193 -0.05682540115202098 +956 2193 0.05682540115202098 +957 2193 -1 +958 2193 1 +955 2194 -1 +956 2194 1 +957 2194 0.05125651128280227 +958 2194 -0.05125651128280224 +184 2195 0.01 +184 2196 -0.01 +184 2197 -1 +958 2197 0.6344633953584669 +184 2198 -1 +954 2198 0.7479665428487433 +184 2199 -1 +950 2199 1 +183 2200 -1 +948 2200 1 +183 2201 -1 +952 2201 0.7875513957769802 +183 2202 -1 +956 2202 0.6680412878908787 +184 2203 -1 +966 2203 0.242954601368147 +183 2204 -1 +964 2204 0.2558125590607029 +184 2205 -1 +961 2205 0.2530552027947643 +183 2206 -1 +959 2206 0.2664477175818617 +947 2207 0.00253200452647617 +948 2207 -0.00253200452647617 +949 2207 0.09605279241285525 +950 2207 -0.09605279241285525 +951 2207 0.01672199042833691 +952 2207 -0.01672199042833691 +953 2207 0.3248201456215111 +954 2207 -0.3248201456215111 +955 2207 0.02176010907086928 +956 2207 -0.02176010907086928 +957 2207 0.3829292645494223 +958 2207 -0.382929264549422 +959 2207 -0.1565205546762162 +960 2207 0.1565205546762162 +961 2207 -0.9600853832876567 +962 2207 0.9600853832876567 +963 2207 0.163013164728903 +964 2207 -0.163013164728903 +965 2207 1 +966 2207 -1 +947 2208 0.09122487174456904 +948 2208 -0.09122487174456904 +949 2208 -0.002404737877808363 +950 2208 0.002404737877808363 +951 2208 0.324820145621511 +952 2208 -0.324820145621511 +953 2208 -0.0150832352026516 +954 2208 0.0150832352026516 +955 2208 0.3829292645494222 +956 2208 -0.3829292645494222 +957 2208 -0.01962761816889263 +958 2208 0.01962761816889262 +959 2208 -0.9600853832876566 +960 2208 0.9600853832876566 +961 2208 0.1411815387856108 +962 2208 -0.1411815387856108 +963 2208 1 +964 2208 -1 +965 2208 -0.1470378729895717 +966 2208 0.1470378729895717 +771 2209 -0.9423199662234044 +772 2209 0.9423199662234044 +773 2209 0.1385698252975576 +774 2209 -0.1385698252975576 +959 2209 1 +960 2209 -1 +961 2209 -0.1470510240476295 +962 2209 0.1470510240476295 +771 2210 -0.1536250851458394 +772 2210 0.1536250851458394 +773 2210 -0.9423199662234044 +774 2210 0.9423199662234044 +959 2210 0.1630277446160434 +960 2210 -0.1630277446160434 +961 2210 1 +962 2210 -1 +631 2211 -0.9975751098661698 +632 2211 0.9975751098661698 +633 2211 0.1386827069903982 +634 2211 -0.1386827069903982 +771 2211 1 +772 2211 -1 +773 2211 -0.1470517767472472 +774 2211 0.1470517767472472 +775 2211 0.993612378086859 +776 2211 -0.993612378086859 +777 2211 -0.1381405328045804 +778 2211 0.1381405328045804 +631 2212 -0.1537502311481296 +632 2212 0.1537502311481296 +633 2212 -0.9975751098661698 +634 2212 0.9975751098661698 +771 2212 0.1630285790945643 +772 2212 -0.1630285790945643 +773 2212 1 +774 2212 -1 +775 2212 0.1531491511129829 +776 2212 -0.1531491511129829 +777 2212 0.993612378086859 +778 2212 -0.993612378086859 +623 2213 1 +624 2213 -1 +625 2213 -0.1575284596970968 +626 2213 0.1575284596970968 +627 2213 0.9693990144531165 +628 2213 -0.9693990144531165 +629 2213 -0.1756911208543359 +630 2213 0.1756911208543359 +631 2213 0.2287233105000995 +632 2213 -0.2287233105000995 +633 2213 -0.03179707225876413 +634 2213 0.03179707225876413 +635 2213 0.2989419516295936 +636 2213 -0.2989419516295936 +637 2213 -0.04075260502579318 +638 2213 0.04075260502579318 +899 2214 1 +900 2214 -1 +901 2214 -0.1390236750415154 +902 2214 0.1390236750415154 +1235 2214 0.6071650322262441 +1236 2214 -0.6071650322262441 +1237 2214 -0.01415988053917996 +1238 2214 0.01415988053917996 +1239 2214 -0.7892939224489839 +1240 2214 0.7892939224489839 +1241 2214 0.1076000532578666 +1242 2214 -0.1076000532578666 +623 2215 0.1746435270585997 +624 2215 -0.1746435270585997 +625 2215 1 +626 2215 -1 +627 2215 0.1947795152563496 +628 2215 -0.1947795152563496 +629 2215 0.9693990144531164 +630 2215 -0.9693990144531164 +631 2215 0.03525174346328015 +632 2215 -0.03525174346328015 +633 2215 0.2287233105000995 +634 2215 -0.2287233105000995 +635 2215 0.04518027213759207 +636 2215 -0.04518027213759207 +637 2215 0.2989419516295936 +638 2215 -0.2989419516295936 +899 2216 0.1541282445126729 +900 2216 -0.1541282445126729 +901 2216 0.9999999999999997 +902 2216 -1 +1235 2216 0.01569831562402048 +1236 2216 -0.01569831562402048 +1237 2216 0.607165032226244 +1238 2216 -0.607165032226244 +1239 2216 -0.1192905259708656 +1240 2216 0.1192905259708657 +1241 2216 -0.7892939224489838 +1242 2216 0.7892939224489838 +603 2217 -1 +604 2217 1 +605 2217 0.136330046873995 +606 2217 -0.136330046873995 +775 2217 -0.9524150939976121 +776 2217 0.9524150939976121 +777 2217 0.1324129322837939 +778 2217 -0.1324129322837939 +1239 2217 0.9957156056642985 +1240 2217 -0.9957156056642985 +1241 2217 -0.1357403739620108 +1242 2217 0.1357403739620108 +603 2218 -0.1511419604807925 +604 2218 0.1511419604807925 +605 2218 -1 +606 2218 1 +775 2218 -0.1467992613314397 +776 2218 0.1467992613314397 +777 2218 -0.952415093997612 +778 2218 0.952415093997612 +1239 2218 0.1504882211034263 +1240 2218 -0.1504882211034262 +1241 2218 0.9957156056642985 +1242 2218 -0.9957156056642985 +595 2219 0.963971343889564 +596 2219 -0.963971343889564 +597 2219 -0.1572222484452836 +598 2219 0.1572222484452836 +599 2219 1 +600 2219 -1 +601 2219 -0.1378018770706553 +602 2219 0.1378018770706553 +603 2219 0.2493363769250415 +604 2219 -0.2493363769250415 +605 2219 -0.033992039953583 +606 2219 0.033992039953583 +607 2219 0.3731284298979911 +608 2219 -0.3731284298979911 +609 2219 -0.0518764760900904 +610 2219 0.0518764760900904 +595 2220 0.1743040467313972 +596 2220 -0.1743040467313972 +597 2220 0.9639713438895638 +598 2220 -0.9639713438895638 +599 2220 0.1527737012930265 +600 2220 -0.1527737012930265 +601 2220 1 +602 2220 -0.9999999999999998 +603 2220 0.03768518882762861 +604 2220 -0.03768518882762861 +605 2220 0.2493363769250415 +606 2220 -0.2493363769250415 +607 2220 0.05751272356223942 +608 2220 -0.05751272356223942 +609 2220 0.3731284298979911 +610 2220 -0.3731284298979911 +382 2221 -1 +965 2221 0.242954601368147 +381 2222 -1 +963 2222 0.2558125590607029 +1051 2223 -0.849006534501441 +1052 2223 0.849006534501441 +1053 2223 0.1180263637405951 +1054 2223 -0.1180263637405951 +1055 2223 -0.8499188174106548 +1056 2223 0.8499188174106548 +1057 2223 0.1181523594071773 +1058 2223 -0.1181523594071773 +1059 2223 1 +1060 2223 -1 +1061 2223 -0.1470466277717274 +1062 2223 0.1470466277717274 +907 2224 0.8786644716991672 +908 2224 -0.8786644716991672 +909 2224 -0.122163157877523 +910 2224 0.122163157877523 +1051 2224 0.9957412590268528 +1052 2224 -0.9957412590268528 +1053 2224 -0.1384249887999207 +1054 2224 0.1384249887999207 +1083 2224 -0.9923209924711418 +1084 2224 0.9923209924711418 +1085 2224 0.03339513262416095 +1086 2224 -0.03339513262416095 +1099 2224 -1 +1100 2224 1 +1101 2224 0.1470402624680421 +1102 2224 -0.1470402624680421 +607 2225 -0.9879942057051088 +608 2225 0.9879942057051088 +609 2225 0.137361974276313 +610 2225 -0.137361974276313 +1059 2225 -1 +1060 2225 1 +1061 2225 0.1470466277717274 +1062 2225 -0.1470466277717274 +1099 2225 0.852637697599458 +1100 2225 -0.852637697599458 +1101 2225 -0.1253720708451714 +1102 2225 0.1253720708451714 +1051 2226 -0.1308496286270654 +1052 2226 0.1308496286270654 +1053 2226 -0.8490065345014413 +1054 2226 0.8490065345014413 +1055 2226 -0.1309893134030628 +1056 2226 0.1309893134030628 +1057 2226 -0.8499188174106548 +1058 2226 0.8499188174106548 +1059 2226 0.1630228706959216 +1060 2226 -0.1630228706959216 +1061 2226 1 +1062 2226 -1 +907 2227 0.1354358749483816 +908 2227 -0.1354358749483816 +909 2227 0.8786644716991672 +910 2227 -0.8786644716991672 +1051 2227 0.1534645125303085 +1052 2227 -0.1534645125303085 +1053 2227 0.9957412590268528 +1054 2227 -0.9957412590268528 +1083 2227 -0.03702342903172984 +1084 2227 0.03702342903172984 +1085 2227 -0.9923209924711418 +1086 2227 0.9923209924711418 +1099 2227 -0.1630158138181451 +1100 2227 0.1630158138181451 +1101 2227 -1 +1102 2227 1 +607 2228 -0.1522860041764889 +608 2228 0.1522860041764889 +609 2228 -0.9879942057051088 +610 2228 0.9879942057051088 +1059 2228 -0.1630228706959216 +1060 2228 0.1630228706959216 +1061 2228 -1 +1062 2228 1 +1099 2228 0.1389934281662052 +1100 2228 -0.1389934281662052 +1101 2228 0.8526376975994578 +1102 2228 -0.8526376975994578 +691 2229 -0.6919652930759069 +692 2229 0.6919652930759069 +693 2229 0.09200271398232238 +694 2229 -0.09200271398232238 +751 2229 1 +752 2229 -1 +753 2229 -0.1329332794219087 +754 2229 0.1329332794219087 +1027 2229 0.5410451764082709 +1028 2229 -0.5410451764082709 +1029 2229 -0.01609019256351683 +1030 2229 0.01609019256351683 +1031 2229 0.3215225315011344 +1032 2229 -0.3215225315011344 +1033 2229 -0.007307886571286076 +1034 2229 0.007307886571286076 +1035 2229 0.3907835755366223 +1036 2229 -0.3907835755366223 +1037 2229 -0.006058790899102467 +1038 2229 0.006058790899102467 +1039 2229 -0.9695579532225392 +1040 2229 0.9695579532225392 +1041 2229 0.1288734783662438 +1042 2229 -0.1288734783662438 +755 2230 0.9819137543421971 +756 2230 -0.9819137543421971 +757 2230 -0.1305326548998604 +758 2230 0.1305326548998604 +1083 2230 0.5092185349471543 +1084 2230 -0.5092185349471543 +1085 2230 -0.0171370157824568 +1086 2230 0.0171370157824568 +1087 2230 0.1460617078833092 +1088 2230 -0.1460617078833092 +1089 2230 -0.01917733051124067 +1090 2230 0.01917733051124067 +1091 2230 0.3876402075739148 +1092 2230 -0.3876402075739148 +1093 2230 -0.007507286776042254 +1094 2230 0.007507286776042253 +1095 2230 1 +1096 2230 -1 +1097 2230 -0.1328913189236057 +1098 2230 0.1328913189236057 +755 2231 0.1447146965816156 +756 2231 -0.1447146965816156 +757 2231 0.9819137543421971 +758 2231 -0.9819137543421971 +1083 2231 0.01899890905593805 +1084 2231 -0.01899890905593805 +1085 2231 0.5092185349471543 +1086 2231 -0.5092185349471543 +1087 2231 0.02126089880197879 +1088 2231 -0.0212608988019788 +1089 2231 0.1460617078833092 +1090 2231 -0.1460617078833092 +1091 2231 0.008322934431844547 +1092 2231 -0.008322934431844547 +1093 2231 0.3876402075739148 +1094 2231 -0.3876402075739147 +1095 2231 0.1473296234655906 +1096 2231 -0.1473296234655906 +1097 2231 1 +1098 2231 -1 +691 2232 -0.1019985753668386 +692 2232 0.1019985753668386 +693 2232 -0.6919652930759069 +694 2232 0.6919652930759069 +751 2232 0.1473761428655446 +752 2232 -0.1473761428655446 +753 2232 1 +754 2232 -1 +1027 2232 0.0178383511509471 +1028 2232 -0.0178383511509471 +1029 2232 0.5410451764082709 +1030 2232 -0.5410451764082709 +1031 2232 0.008101869900890669 +1032 2232 -0.008101869900890669 +1033 2232 0.3215225315011343 +1034 2232 -0.3215225315011343 +1035 2232 0.006717063153949572 +1036 2232 -0.006717063153949572 +1037 2232 0.3907835755366222 +1038 2232 -0.3907835755366222 +1039 2232 -0.1428752547283731 +1040 2232 0.1428752547283731 +1041 2232 -0.9695579532225392 +1042 2232 0.9695579532225392 +687 2233 -0.6931733845603654 +688 2233 0.6931733845603654 +689 2233 0.09213880188019487 +690 2233 -0.09213880188019487 +743 2233 0.5341019246108792 +744 2233 -0.5341019246108792 +745 2233 -0.0209652733230894 +746 2233 0.0209652733230894 +747 2233 0.4774303391926393 +748 2233 -0.4774303391926393 +749 2233 -0.06347414095979001 +750 2233 0.06347414095979001 +751 2233 -1 +752 2233 1 +753 2233 0.1329332794219087 +754 2233 -0.1329332794219087 +755 2233 -0.963011693472193 +756 2233 0.963011693472193 +757 2233 0.1280198719008145 +758 2233 -0.1280198719008145 +759 2233 -0.9660089616057244 +760 2233 0.9660089616057244 +761 2233 0.1284323139746512 +762 2233 -0.1284323139746512 +1019 2234 0.9992794611836164 +1020 2234 -0.9992794611836164 +1021 2234 -0.1389160898748923 +1022 2234 0.1389160898748923 +1103 2234 -1 +1104 2234 1 +1105 2234 0.01405185375768239 +1106 2234 -0.01405185375768239 +1111 2234 -0.6722120592411629 +1112 2234 0.6722120592411629 +1113 2234 0.09164312404897808 +1114 2234 -0.09164312404897808 +1115 2234 -0.830201658732489 +1116 2234 0.830201658732489 +1117 2234 0.1220735862532722 +1118 2234 -0.1220735862532722 +759 2235 0.9849698530642748 +760 2235 -0.9849698530642748 +761 2235 -0.1309531924155675 +762 2235 0.1309531924155675 +1039 2235 0.988588504536752 +1040 2235 -0.988588504536752 +1041 2235 -0.1314030160126922 +1042 2235 0.1314030160126922 +1095 2235 -1 +1096 2235 1 +1097 2235 0.1328913189236057 +1098 2235 -0.1328913189236057 +1171 2235 0.5098515160140759 +1172 2235 -0.5098515160140759 +1173 2235 -0.008202398823516636 +1174 2235 0.008202398823516636 +1175 2235 -0.9150318128800515 +1176 2235 0.9150318128800515 +1177 2235 0.1216403049773784 +1178 2235 -0.1216403049773784 +675 2236 1 +676 2236 -1 +677 2236 -0.1390208484304555 +678 2236 0.1390208484304555 +1111 2236 0.9985374594941591 +1112 2236 -0.9985374594941591 +1113 2236 -0.1361312862659383 +1114 2236 0.1361312862659383 +1107 2237 -0.6123921074119982 +1108 2237 0.6123921074119982 +1109 2237 0.08140423983305953 +1110 2237 -0.08140423983305953 +1159 2237 1 +1160 2237 -1 +1161 2237 -0.1329431058158654 +1162 2237 0.1329431058158654 +1175 2237 0.9710634351260664 +1176 2237 -0.9710634351260664 +1177 2237 -0.1290889024167725 +1178 2237 0.1290889024167725 +1183 2237 0.8928502816024922 +1184 2237 -0.8928502816024922 +1185 2237 -0.01272468141908921 +1186 2237 0.01272468141908921 +1187 2237 0.5630851859698236 +1188 2237 -0.5630851859698236 +1189 2237 -0.006861917249312107 +1190 2237 0.006861917249312107 +1191 2237 0.6218194380709089 +1192 2237 -0.6218194380709089 +1193 2237 -0.00924167936338041 +1194 2237 0.00924167936338041 +1195 2237 0.9954171244507307 +1196 2237 -0.9954171244507307 +1197 2237 -0.132360558478064 +1198 2237 0.132360558478064 +1115 2238 0.9880365114480257 +1116 2238 -0.9880365114480257 +1117 2238 -0.1452817626090738 +1118 2238 0.1452817626090738 +1223 2238 -1 +1224 2238 1 +1225 2238 0.1363200479348048 +1226 2238 -0.1363200479348048 +687 2239 -0.1021494488694434 +688 2239 0.1021494488694434 +689 2239 -0.6931733845603653 +690 2239 0.6931733845603653 +743 2239 0.02324309706279303 +744 2239 -0.02324309706279303 +745 2239 0.5341019246108791 +746 2239 -0.5341019246108791 +747 2239 0.07037044528682559 +748 2239 -0.07037044528682559 +749 2239 0.4774303391926392 +750 2239 -0.4774303391926392 +751 2239 -0.1473761428655446 +752 2239 0.1473761428655446 +753 2239 -1 +754 2239 1 +755 2239 -0.1419289060868054 +756 2239 0.1419289060868054 +757 2239 -0.9630116934721927 +758 2239 0.9630116934721927 +759 2239 -0.1423861589452457 +760 2239 0.1423861589452457 +761 2239 -0.9660089616057244 +762 2239 0.9660089616057244 +1019 2240 0.1540089704907319 +1020 2240 -0.1540089704907319 +1021 2240 0.9992794611836164 +1022 2240 -0.9992794611836164 +1103 2240 -0.01557855200686964 +1104 2240 0.01557855200686964 +1105 2240 -1 +1106 2240 1 +1111 2240 -0.101599916899824 +1112 2240 0.101599916899824 +1113 2240 -0.672212059241163 +1114 2240 0.672212059241163 +1115 2240 -0.1353365715944759 +1116 2240 0.1353365715944759 +1117 2240 -0.8302016587324892 +1118 2240 0.8302016587324892 +759 2241 0.1451809244311405 +760 2241 -0.1451809244311405 +761 2241 0.9849698530642748 +762 2241 -0.9849698530642748 +1039 2241 0.1456796202205052 +1040 2241 -0.1456796202205052 +1041 2241 0.988588504536752 +1042 2241 -0.988588504536752 +1095 2241 -0.1473296234655906 +1096 2241 0.1473296234655906 +1097 2241 -1 +1098 2241 1 +1171 2241 0.009093568639182564 +1172 2241 -0.009093568639182564 +1173 2241 0.509851516014076 +1174 2241 -0.509851516014076 +1175 2241 -0.1348562154075618 +1176 2241 0.1348562154075618 +1177 2241 -0.9150318128800513 +1178 2241 0.9150318128800513 +675 2242 0.1541251107974948 +676 2242 -0.1541251107974948 +677 2242 1 +678 2242 -1 +1111 2242 0.1509216050370963 +1112 2242 -0.1509216050370963 +1113 2242 0.9985374594941591 +1114 2242 -0.9985374594941591 +1115 2243 0.1610662574123198 +1116 2243 -0.1610662574123198 +1117 2243 0.9880365114480257 +1118 2243 -0.9880365114480257 +1223 2243 -0.1511308751822351 +1224 2243 0.1511308751822351 +1225 2243 -1 +1226 2243 0.9999999999999996 +1107 2244 -0.09024860389866225 +1108 2244 0.09024860389866225 +1109 2244 -0.6123921074119983 +1110 2244 0.6123921074119983 +1159 2244 0.1473870368722666 +1160 2244 -0.1473870368722666 +1161 2244 1 +1162 2244 -1 +1175 2244 0.1431140840552765 +1176 2244 -0.1431140840552765 +1177 2244 0.9710634351260664 +1178 2244 -0.9710634351260664 +1183 2244 0.01410718576186093 +1184 2244 -0.01410718576186093 +1185 2244 0.8928502816024922 +1186 2244 -0.8928502816024922 +1187 2244 0.007607447143890261 +1188 2244 -0.007607447143890261 +1189 2244 0.5630851859698238 +1190 2244 -0.5630851859698238 +1191 2244 0.01024576437215792 +1192 2244 -0.01024576437215792 +1193 2244 0.6218194380709089 +1194 2244 -0.6218194380709089 +1195 2244 0.1467411972446345 +1196 2244 -0.1467411972446345 +1197 2244 0.9954171244507307 +1198 2244 -0.9954171244507307 +635 2245 -0.9906831199405886 +636 2245 0.9906831199405886 +637 2245 0.1350527006081893 +638 2245 -0.1350527006081893 +899 2245 -1 +900 2245 1 +901 2245 0.1390236750415154 +902 2245 -0.1390236750415154 +903 2245 -0.816651370797689 +904 2245 0.816651370797689 +905 2245 0.111334733232194 +906 2245 -0.111334733232194 +791 2246 -0.4562463414646274 +792 2246 0.4562463414646274 +793 2246 0.06219794200379051 +794 2246 -0.06219794200379051 +1123 2246 0.525281058740879 +1124 2246 -0.525281058740879 +1125 2246 -0.07160885849896091 +1126 2246 0.07160885849896091 +1183 2246 -1 +1184 2246 1 +1185 2246 0.01425175270847302 +1186 2246 -0.01425175270847302 +1199 2246 -0.4853267331785999 +1200 2246 0.4853267331785999 +1201 2246 0.06746978741784614 +1202 2246 -0.06746978741784616 +1203 2246 -0.4825473372789124 +1204 2246 0.4825473372789124 +1205 2246 0.07095759796525983 +1206 2246 -0.07095759796525983 +903 2247 1 +904 2247 -1 +905 2247 -0.1363307982002705 +906 2247 0.1363307982002705 +1067 2247 -0.9590189484106955 +1068 2247 0.9590189484106955 +1069 2247 0.133320475897766 +1070 2247 -0.133320475897766 +1203 2247 0.9917557102368647 +1204 2247 -0.9917557102368647 +1205 2247 -0.1458356466405342 +1206 2247 0.1458356466405342 +695 2248 0.6372676871164064 +696 2248 -0.6372676871164064 +697 2248 -0.08471019938107993 +698 2248 0.08471019938107993 +1139 2248 -1 +1140 2248 1 +1141 2248 0.1329606504574843 +1142 2248 -0.1329606504574843 +1371 2248 0.4156772111557508 +1372 2248 -0.4156772111557508 +1373 2248 -0.01229455383400449 +1374 2248 0.01229455383400449 +1375 2248 0.9945742451248939 +1376 2248 -0.9945742451248939 +1377 2248 -0.03626041310623036 +1378 2248 0.03626041310623036 +971 2249 1 +972 2249 -1 +973 2249 -0.1470453691191872 +974 2249 0.1470453691191872 +1351 2249 0.9960945839739332 +1352 2249 -0.9960945839739332 +1353 2249 -0.135797312401119 +1354 2249 0.135797312401119 +791 2250 -0.06895559055306624 +792 2250 0.06895559055306624 +793 2250 -0.4562463414646274 +794 2250 0.4562463414646274 +1123 2250 0.07938897924188364 +1124 2250 -0.07938897924188364 +1125 2250 0.5252810587408789 +1126 2250 -0.5252810587408789 +1183 2250 -0.01580016947134887 +1184 2250 0.01580016947134887 +1185 2250 -1 +1186 2250 1 +1199 2250 -0.07480020859217316 +1200 2250 0.07480020859217316 +1201 2250 -0.4853267331785998 +1202 2250 0.4853267331786001 +1203 2250 -0.07866696090400151 +1204 2250 0.07866696090400152 +1205 2250 -0.4825473372789124 +1206 2250 0.4825473372789124 +903 2251 0.151142793436761 +904 2251 -0.151142793436761 +905 2251 1 +906 2251 -1 +1067 2251 -0.1478054072558547 +1068 2251 0.1478054072558547 +1069 2251 -0.9590189484106955 +1070 2251 0.9590189484106955 +1203 2251 0.1616803195381204 +1204 2251 -0.1616803195381203 +1205 2251 0.9917557102368647 +1206 2251 -0.9917557102368647 +695 2252 0.09391374756152497 +696 2252 -0.09391374756152497 +697 2252 0.6372676871164064 +698 2252 -0.6372676871164064 +1139 2252 -0.1474064876946717 +1140 2252 0.1474064876946717 +1141 2252 -1 +1142 2252 1 +1371 2252 0.01363032590625874 +1372 2252 -0.01363032590625874 +1373 2252 0.4156772111557509 +1374 2252 -0.4156772111557509 +1375 2252 0.04020001496650611 +1376 2252 -0.04020001496650611 +1377 2252 0.9945742451248937 +1378 2252 -0.9945742451248937 +971 2253 0.1630214752939772 +972 2253 -0.1630214752939772 +973 2253 1 +974 2253 -1 +1351 2253 0.150551345759442 +1352 2253 -0.150551345759442 +1353 2253 0.9960945839739332 +1354 2253 -0.9960945839739332 +273 2254 -1 +791 2254 0.2805598081950039 +274 2255 -1 +793 2255 0.2664579745819523 +635 2256 -0.1497258337849281 +636 2256 0.1497258337849281 +637 2256 -0.9906831199405886 +638 2256 0.9906831199405886 +899 2256 -0.1541282445126729 +900 2256 0.1541282445126729 +901 2256 -1 +902 2256 0.9999999999999997 +903 2256 -0.1234309694463228 +904 2256 0.1234309694463228 +905 2256 -0.8166513707976889 +906 2256 0.8166513707976889 +507 2257 0.5250998324531841 +508 2257 -0.5250998324531841 +509 2257 -0.06981176154628402 +510 2257 0.06981176154628402 +1131 2257 0.3504597503049486 +1132 2257 -0.3504597503049486 +1133 2257 -0.004151116168025524 +1134 2257 0.004151116168025524 +1135 2257 -0.458481145022198 +1136 2257 0.458481145022198 +1137 2257 0.06095041836217199 +1138 2257 -0.06095041836217199 +1139 2257 1 +1140 2257 -1 +1141 2257 -0.1329606504574843 +1142 2257 0.1329606504574843 +703 2258 -0.9990497051644012 +704 2258 0.9990497051644012 +705 2258 0.1469105661360784 +706 2258 -0.1469105661360784 +975 2258 -0.9342768869030933 +976 2258 0.9342768869030933 +977 2258 0.1273660968432875 +978 2258 -0.1273660968432875 +1131 2258 -1 +1132 2258 1 +1133 2258 0.01184477294300837 +1134 2258 -0.01184477294300837 +891 2259 0.950196843835092 +892 2259 -0.950196843835092 +893 2259 -0.1263185763661999 +894 2259 0.1263185763661999 +1135 2259 0.9909161651286047 +1136 2259 -0.9909161651286047 +1137 2259 -0.1317322543842089 +1138 2259 0.1317322543842089 +1347 2259 1 +1348 2259 -1 +1349 2259 -0.0130021770678944 +1350 2259 0.0130021770678944 +659 2260 1 +660 2260 -1 +661 2260 -0.1470415004942694 +662 2260 0.1470415004942694 +1327 2260 -0.7564008631344351 +1328 2260 0.7564008631344351 +1329 2260 0.1031209954052999 +1330 2260 -0.1031209954052999 +1351 2260 -0.6500944850710849 +1352 2260 0.6500944850710849 +1353 2260 0.08862721000574472 +1354 2260 -0.08862721000574472 +1355 2260 -0.9712426618548695 +1356 2260 0.9712426618548695 +1357 2260 0.1428212582813518 +1358 2260 -0.1428212582813518 +507 2261 0.07739663226607214 +508 2261 -0.07739663226607214 +509 2261 0.525099832453184 +510 2261 -0.525099832453184 +1131 2261 0.004602124404745368 +1132 2261 -0.004602124404745368 +1133 2261 0.3504597503049486 +1134 2261 -0.3504597503049486 +1135 2261 -0.06757252663382154 +1136 2261 0.06757252663382154 +1137 2261 -0.458481145022198 +1138 2261 0.458481145022198 +1139 2261 0.1474064876946717 +1140 2261 -0.1474064876946717 +1141 2261 1 +1142 2261 -1 +891 2262 0.1400427691099985 +892 2262 -0.1400427691099985 +893 2262 0.9501968438350921 +894 2262 -0.9501968438350921 +1135 2262 0.1460446295055275 +1136 2262 -0.1460446295055275 +1137 2262 0.9909161651286047 +1138 2262 -0.9909161651286047 +1347 2262 0.01441483060866473 +1348 2262 -0.01441483060866473 +1349 2262 1 +1350 2262 -1 +659 2263 0.1630171863527801 +660 2263 -0.1630171863527801 +661 2263 1 +662 2263 -1 +1327 2263 -0.1143248298498226 +1328 2263 0.1143248298498226 +1329 2263 -0.756400863134435 +1330 2263 0.756400863134435 +1351 2263 -0.09825633144974967 +1352 2263 0.09825633144974967 +1353 2263 -0.6500944850710848 +1354 2263 0.6500944850710848 +1355 2263 -0.1583384255337972 +1356 2263 0.1583384255337972 +1357 2263 -0.9712426618548694 +1358 2263 0.9712426618548694 +703 2264 -0.1628720263088642 +704 2264 0.1628720263088642 +705 2264 -0.9990497051644012 +706 2264 0.9990497051644012 +975 2264 -0.1412041000284653 +976 2264 0.1412041000284652 +977 2264 -0.9342768869030933 +978 2264 0.9342768869030933 +1131 2264 -0.01313167746293513 +1132 2264 0.01313167746293513 +1133 2264 -1 +1134 2264 1 +651 2265 1 +652 2265 -1 +653 2265 -0.1470562271958381 +654 2265 0.147056227195838 +879 2265 0.4552580237818502 +880 2265 -0.4552580237818502 +881 2265 -0.06206367524094181 +882 2265 0.06206367524094181 +1003 2265 -0.6320486019138607 +1004 2265 0.6320486019138607 +1005 2265 0.08616271728002525 +1006 2265 -0.08616271728002525 +1007 2265 -0.9119139179129094 +1008 2265 0.9119139179129094 +1009 2265 0.1243213874949604 +1010 2265 -0.1243213874949604 +1011 2265 -0.579077534269412 +1012 2265 0.579077534269412 +1013 2265 0.07894338904001436 +1014 2265 -0.07894338904001434 +651 2266 0.1630335130730999 +652 2266 -0.1630335130730999 +653 2266 1 +654 2266 -1 +879 2266 0.06880673604718375 +880 2266 -0.06880673604718375 +881 2266 0.4552580237818502 +882 2266 -0.4552580237818502 +1003 2266 -0.09552407784390905 +1004 2266 0.09552407784390905 +1005 2266 -0.6320486019138605 +1006 2266 0.6320486019138605 +1007 2266 -0.1378285907364771 +1008 2266 0.1378285907364771 +1009 2266 -0.9119139179129093 +1010 2266 0.9119139179129093 +1011 2266 -0.08752038791223829 +1012 2266 0.08752038791223829 +1013 2266 -0.579077534269412 +1014 2266 0.5790775342694117 +205 2267 -1 +1011 2267 0.3337368238560556 +206 2268 -1 +1013 2268 0.3169621432956266 +651 2269 -0.8525380718535419 +652 2269 0.8525380718535419 +653 2269 0.1253710323875961 +654 2269 -0.1253710323875961 +655 2269 -1 +656 2269 1 +657 2269 0.1390147978337516 +658 2269 -0.1390147978337516 +659 2269 -0.5957816971352655 +660 2269 0.5957816971352655 +661 2269 0.08760463471379178 +662 2269 -0.08760463471379178 +747 2270 -1 +748 2270 1 +749 2270 0.1329495336788363 +750 2270 -0.1329495336788363 +887 2270 0.9990217856526371 +888 2270 -0.9990217856526371 +889 2270 -0.02172107152765655 +890 2270 0.02172107152765655 +891 2270 -0.9970650962908463 +892 2270 0.9970650962908463 +893 2270 0.1325492126447708 +894 2270 -0.1325492126447708 +975 2271 0.9992800933236096 +976 2271 -0.9992800933236096 +977 2271 -0.1362277146357636 +978 2271 0.1362277146357636 +979 2271 -0.8291864215880269 +980 2271 0.8291864215880269 +981 2271 0.1219288195701166 +982 2271 -0.1219288195701166 +983 2271 -1 +984 2271 1 +985 2271 0.147043926325546 +986 2271 -0.147043926325546 +1003 2272 1 +1004 2272 -1 +1005 2272 -0.1363229299441881 +1006 2272 0.1363229299441881 +1335 2272 0.995476603155788 +1336 2272 -0.995476603155788 +1337 2272 -0.1463774975646445 +1338 2272 0.1463774975646445 +1343 2272 -0.9922358434409435 +1344 2272 0.9922358434409435 +1345 2272 0.13794274866384 +1346 2272 -0.13794274866384 +963 2273 -0.9173537603507339 +964 2273 0.9173537603507339 +965 2273 0.1348857457009572 +966 2273 -0.1348857457009572 +983 2273 0.7882614730989292 +984 2273 -0.7882614730989292 +985 2273 -0.1159090619756253 +986 2273 0.1159090619756253 +1343 2273 0.7615233936705436 +1344 2273 -0.7615233936705436 +1345 2273 -0.105868610561822 +1346 2273 0.105868610561822 +1371 2273 -1 +1372 2273 1 +1373 2273 0.02957716589711681 +1374 2273 -0.02957716589711681 +651 2274 -0.1389922768828498 +652 2274 0.1389922768828498 +653 2274 -0.8525380718535421 +654 2274 0.8525380718535417 +655 2274 -0.1541184028188146 +656 2274 0.1541184028188146 +657 2274 -1 +658 2274 1 +659 2274 -0.09712265594747517 +660 2274 0.09712265594747517 +661 2274 -0.5957816971352655 +662 2274 0.5957816971352655 +747 2275 -0.1473941631062363 +748 2275 0.1473941631062363 +749 2275 -1 +750 2275 1 +887 2275 0.02408101082417922 +888 2275 -0.02408101082417922 +889 2275 0.9990217856526371 +890 2275 -0.9990217856526371 +891 2275 -0.1469503482077769 +892 2275 0.1469503482077769 +893 2275 -0.9970650962908463 +894 2275 0.9970650962908463 +975 2276 0.1510285101045818 +976 2276 -0.1510285101045818 +977 2276 0.9992800933236096 +978 2276 -0.9992800933236096 +979 2276 -0.1351760763785924 +980 2276 0.1351760763785924 +981 2276 -0.8291864215880269 +982 2276 0.8291864215880269 +983 2276 -0.1630198757444685 +984 2276 0.1630198757444685 +985 2276 -1 +986 2276 1 +963 2277 -0.1495407396507328 +964 2277 0.1495407396507328 +965 2277 -0.917353760350734 +966 2277 0.917353760350734 +983 2277 0.1285022873987391 +984 2277 -0.1285022873987391 +985 2277 0.7882614730989291 +986 2277 -0.7882614730989291 +1343 2277 0.1173709664200485 +1344 2277 -0.1173709664200485 +1345 2277 0.7615233936705436 +1346 2277 -0.7615233936705436 +1371 2277 -0.03279064990924309 +1372 2277 0.03279064990924309 +1373 2277 -1 +1374 2277 1 +1003 2278 0.1511340703146238 +1004 2278 -0.1511340703146238 +1005 2278 1 +1006 2278 -1 +1335 2278 0.1622810411899955 +1336 2278 -0.1622810411899955 +1337 2278 0.995476603155788 +1338 2278 -0.995476603155788 +1343 2278 -0.1529298782272988 +1344 2278 0.1529298782272988 +1345 2278 -0.9922358434409435 +1346 2278 0.9922358434409435 diff --git a/tests/unit/hykkt/runHykktSCCGTests.cpp b/tests/unit/hykkt/runHykktSCCGTests.cpp new file mode 100644 index 000000000..954c363df --- /dev/null +++ b/tests/unit/hykkt/runHykktSCCGTests.cpp @@ -0,0 +1,59 @@ +/** + * @file runHykktSCCGTests.hpp + * @brief Tests for class hykkt::SchurComplementConjugateGradient + * + */ +#include +#include +#include + +#include +#include +#ifdef RESOLVE_USE_CUDA +#include +#endif +#ifdef RESOLVE_USE_HIP +#include +#endif + +#include + +#include "HykktSCCGTests.hpp" + +/** + * @brief Run tests with a given backend + * + * @param backend - string name of the hardware backend + * @param result - test results + */ +template +void runTests(const std::string& backend, ReSolve::memory::MemorySpace memspace, ReSolve::tests::TestingResults& result) +{ + std::cout << "Running tests on " << backend << " device:\n"; + + WorkspaceType workspace; + workspace.initializeHandles(); + ReSolve::MatrixHandler handler(&workspace); + + ReSolve::tests::HykktSchurComplementConjugateGradientTests test(memspace, handler); + + result += test.SCCGTest(); + + std::cout << "\n"; +} + +int main(int, char**) +{ + ReSolve::tests::TestingResults result; + runTests("CPU", ReSolve::memory::HOST, result); + +#ifdef RESOLVE_USE_CUDA + runTests("CUDA", ReSolve::memory::DEVICE, result); +#endif + +#ifdef RESOLVE_USE_HIP + runTests("HIP", ReSolve::memory::DEVICE, result); +#endif + + return result.summary(); +} From 4ccb8afd66225905fbd9e75f81b84af997415e4b Mon Sep 17 00:00:00 2001 From: andrewxu319 Date: Fri, 15 May 2026 09:08:06 +0000 Subject: [PATCH 03/16] Apply pre-commmit fixes --- matrix/Matrix.cpp | 45 ++++++++++--------- resolve/hykkt/sccg/CMakeLists.txt | 12 +++-- .../sccg/SchurComplementConjugateGradient.cpp | 44 ++++++++++-------- .../sccg/SchurComplementConjugateGradient.hpp | 18 ++++---- resolve/matrix/CMakeLists.txt | 10 ++++- resolve/matrix/Csr.cpp | 2 - resolve/matrix/Csr.hpp | 2 +- resolve/matrix/Matrix.cpp | 45 ++++++++++--------- resolve/matrix/Matrix.hpp | 8 ++-- resolve/matrix/Sparse.cpp | 10 ++--- resolve/matrix/Sparse.hpp | 10 ++--- tests/unit/hykkt/CMakeLists.txt | 9 ++-- tests/unit/hykkt/HykktSCCGTests.hpp | 26 +++++------ tests/unit/hykkt/runHykktSCCGTests.cpp | 3 +- 14 files changed, 129 insertions(+), 115 deletions(-) diff --git a/matrix/Matrix.cpp b/matrix/Matrix.cpp index e221c358b..265833fe2 100644 --- a/matrix/Matrix.cpp +++ b/matrix/Matrix.cpp @@ -1,6 +1,7 @@ #include "Matrix.hpp" -namespace ReSolve { +namespace ReSolve +{ /** * @brief empty constructor that does absolutely nothing */ @@ -65,66 +66,66 @@ namespace ReSolve { } /** - * @brief Loads or reloads pointer to the matrix handler for matrix operations. - * @param[in] matrixHandler - New matrix handler - */ + * @brief Loads or reloads pointer to the matrix handler for matrix operations. + * @param[in] matrixHandler - New matrix handler + */ void matrix::Matrix::addMatrixHandler(MatrixHandler* matrixHandler) { this->matrixHandler_ = matrixHandler; } /** - * @brief Implementation missing. - */ + * @brief Implementation missing. + */ int matrix::Matrix::transpose(Matrix* At, memory::MemorySpace memspace) { return -1; } /** - * @brief Implementation missing. - */ + * @brief Implementation missing. + */ int matrix::Matrix::leftScale(vector_type* diag, memory::MemorySpace memspace) { return -1; } /** - * @brief Implementation missing. - */ + * @brief Implementation missing. + */ int matrix::Matrix::rightScale(vector_type* diag, memory::MemorySpace memspace) { return -1; } /** - * @brief Implementation missing. - */ + * @brief Implementation missing. + */ int matrix::Matrix::addConst(real_type alpha, memory::MemorySpace memspace) { return -1; } int matrix::Matrix::matvec( - vector_type* vec_x, - vector_type* vec_result, - const real_type* alpha, + vector_type* vec_x, + vector_type* vec_result, + const real_type* alpha, - /** - * @brief Implementation missing. - */ - const real_type* beta, + /** + * @brief Implementation missing. + */ + const real_type* beta, memory::MemorySpace memspace) { return -1; } /** - * @brief Implementation missing. - */ + * @brief Implementation missing. + */ int matrix::Matrix::matrixInfNorm(real_type* norm, memory::MemorySpace memspace) { return -1; } -} +} // namespace ReSolve diff --git a/resolve/hykkt/sccg/CMakeLists.txt b/resolve/hykkt/sccg/CMakeLists.txt index d5dcce446..0f97fd03f 100644 --- a/resolve/hykkt/sccg/CMakeLists.txt +++ b/resolve/hykkt/sccg/CMakeLists.txt @@ -1,16 +1,14 @@ - # Add source files for the SCCG module -set(SCCG_SRC SchurComplementConjugateGradient.cpp -) -set(SCCG_HEADER_INSTALL - SchurComplementConjugateGradient.hpp -) +set(SCCG_SRC SchurComplementConjugateGradient.cpp) +set(SCCG_HEADER_INSTALL SchurComplementConjugateGradient.hpp) # Build shared library ReSolve::hykkt add_library(resolve_hykkt_sccg SHARED ${SCCG_SRC}) target_link_libraries( - resolve_hykkt_sccg PRIVATE resolve_hykkt resolve_hykkt_chol resolve_logger resolve_vector resolve_matrix ${suitesparse_cholmod} + resolve_hykkt_sccg + PRIVATE resolve_hykkt resolve_hykkt_chol resolve_logger resolve_vector + resolve_matrix ${suitesparse_cholmod} ) # Link to CUDA ReSolve backend if CUDA is support enabled diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp index cf5b2a541..ce8b2e1d2 100644 --- a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp @@ -1,4 +1,5 @@ #include "SchurComplementConjugateGradient.hpp" + #include namespace ReSolve @@ -12,11 +13,10 @@ namespace ReSolve * @param memspace[in] - Memory space of incoming data and for computation. */ SchurComplementConjugateGradient::SchurComplementConjugateGradient( - index_type n, - index_type m, - CholeskySolver* choleskySolver, - memory::MemorySpace memspace - ) + index_type n, + index_type m, + CholeskySolver* choleskySolver, + memory::MemorySpace memspace) : n_(n), m_(m), choleskySolver_(choleskySolver), @@ -40,8 +40,9 @@ namespace ReSolve * @param[in] jc - Pointer to the JC matrix in CSR format. * @param[in] jc_tr - Pointer to the transposed JC matrix in CSR format. */ - void SchurComplementConjugateGradient::addMatrixInfo(matrix::Csr* jc, matrix::Csr* jc_tr) { - jc_ = jc; + void SchurComplementConjugateGradient::addMatrixInfo(matrix::Csr* jc, matrix::Csr* jc_tr) + { + jc_ = jc; jc_tr_ = jc_tr; } @@ -50,16 +51,18 @@ namespace ReSolve * @param[in] x0 - Pointer to the left-hand side vector. * @param[in] b - Pointer to the right-hand side vector. */ - void SchurComplementConjugateGradient::addVectorInfo(vector::Vector* x0, vector::Vector* b) { + void SchurComplementConjugateGradient::addVectorInfo(vector::Vector* x0, vector::Vector* b) + { x0_ = x0; - b_ = b; + b_ = b; } /** * @brief Reloads pointer to the Cholesky solver * @param[in] choleskySolver - Factorization of Hgamma to use for direct solve. */ - void SchurComplementConjugateGradient::updateCholeskySolver(CholeskySolver* choleskySolver) { + void SchurComplementConjugateGradient::updateCholeskySolver(CholeskySolver* choleskySolver) + { choleskySolver_ = choleskySolver; } @@ -73,7 +76,8 @@ namespace ReSolve itmax_ = itmax; } - void SchurComplementConjugateGradient::setup() { + void SchurComplementConjugateGradient::setup() + { y_.allocate(memspace_); z_.allocate(memspace_); r_.allocate(memspace_); @@ -87,11 +91,12 @@ namespace ReSolve p_.setToZero(memspace_); s_.setToZero(memspace_); w_.setToZero(memspace_); - + beta_ = 0; } - int SchurComplementConjugateGradient::solve() { + int SchurComplementConjugateGradient::solve() + { using namespace constants; // MatrixHandler.hpp says: "Should compute vec_result := alpha*A*vec_x + beta*vec_result, but at least on cpu alpha and beta are flipped". MatrixHandlerCpu.cpp seems correct however. Fix? @@ -107,7 +112,8 @@ namespace ReSolve alpha_ = gam_i_ / delta_; size_t i; - for (i = 0; i < itmax_; i++) { + for (i = 0; i < itmax_; i++) + { vectorhandler_.scal(beta_, &p_, memspace_); vectorhandler_.axpy(ONE, &r_, &p_, memspace_); vectorhandler_.scal(beta_, &s_, memspace_); @@ -116,7 +122,8 @@ namespace ReSolve minalpha_ = -alpha_; vectorhandler_.axpy(minalpha_, &s_, &r_, memspace_); gam_i1_ = vectorhandler_.dot(&r_, &r_, memspace_); - if(sqrt(gam_i1_) < tol_){ + if (sqrt(gam_i1_) < tol_) + { printf("Convergence occured at iteration %d\n", i); break; } @@ -126,13 +133,14 @@ namespace ReSolve choleskySolver_->solve(&z_, &y_); matrixhandler_.matvec(jc_, &z_, &w_, &ONE, &ZERO, memspace_); delta_ = vectorhandler_.dot(&w_, &r_, memspace_); - beta_ = gam_i1_ / gam_i_; + beta_ = gam_i1_ / gam_i_; gam_i_ = gam_i1_; alpha_ = gam_i_ / (delta_ - beta_ * gam_i_ / alpha_); } printf("Error is %32.32g \n", sqrt(gam_i1_)); - if (i == itmax_){ + if (i == itmax_) + { printf("No CG convergence in %d iterations\n", itmax_); return 1; } @@ -141,6 +149,6 @@ namespace ReSolve return 0; } - + } // namespace hykkt } // namespace ReSolve diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp index f43e3c973..e093d24ad 100644 --- a/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp @@ -7,12 +7,12 @@ #include #include +#include #include #include +#include #include #include -#include -#include namespace ReSolve { @@ -33,13 +33,13 @@ namespace ReSolve void setSolverItmax(int itmax); void setup(); - int solve(); - + int solve(); + private: - index_type n_; // Dimension of outer system - index_type m_; // Dimension of inner system - int itmax_ = 100; // Maximum iterations for conjugate gradient - double tol_ = 1e-12; // Solver tolerance for Schur + index_type n_; // Dimension of outer system + index_type m_; // Dimension of inner system + int itmax_ = 100; // Maximum iterations for conjugate gradient + double tol_ = 1e-12; // Solver tolerance for Schur #ifdef RESOLVE_USE_CUDA LinAlgWorkspaceCUDA workspace_; @@ -75,7 +75,7 @@ namespace ReSolve vector::Vector s_; vector::Vector w_; - MemoryHandler mem_; + MemoryHandler mem_; memory::MemorySpace memspace_; }; // class SchurComplementConjugateGradient } // namespace hykkt diff --git a/resolve/matrix/CMakeLists.txt b/resolve/matrix/CMakeLists.txt index 2d23b43e3..cdbc016e2 100644 --- a/resolve/matrix/CMakeLists.txt +++ b/resolve/matrix/CMakeLists.txt @@ -25,8 +25,14 @@ set(Matrix_CUDASDK_SRC MatrixHandlerCuda.cpp) set(Matrix_ROCM_SRC MatrixHandlerHip.cpp) # Header files to be installed -set(Matrix_HEADER_INSTALL io.hpp Matrix.hpp Sparse.hpp Coo.hpp Csr.hpp Csc.hpp - MatrixHandler.hpp +set(Matrix_HEADER_INSTALL + io.hpp + Matrix.hpp + Sparse.hpp + Coo.hpp + Csr.hpp + Csc.hpp + MatrixHandler.hpp ) # Build shared library ReSolve::matrix diff --git a/resolve/matrix/Csr.cpp b/resolve/matrix/Csr.cpp index 10fec0fd2..583008b56 100644 --- a/resolve/matrix/Csr.cpp +++ b/resolve/matrix/Csr.cpp @@ -452,7 +452,6 @@ namespace ReSolve return matrixHandler_->transpose(this, At, memspace); } - /** * @brief Left diagonal scaling of the sparse CSR matrix * @@ -489,7 +488,6 @@ namespace ReSolve return matrixHandler_->rightScale(this, diag, memspace); } - /** * @brief Prints matrix data. * diff --git a/resolve/matrix/Csr.hpp b/resolve/matrix/Csr.hpp index fc4b58170..b2147d3fb 100644 --- a/resolve/matrix/Csr.hpp +++ b/resolve/matrix/Csr.hpp @@ -56,7 +56,7 @@ namespace ReSolve virtual void print(std::ostream& file_out = std::cout, index_type indexing_base = 0); virtual int syncData(memory::MemorySpace memspaceOut); - + // Matrix operations virtual int transpose(Csr* At, memory::MemorySpace memspace); virtual int leftScale(vector_type* diag, memory::MemorySpace memspace); diff --git a/resolve/matrix/Matrix.cpp b/resolve/matrix/Matrix.cpp index 9afa5c65a..8570d1180 100644 --- a/resolve/matrix/Matrix.cpp +++ b/resolve/matrix/Matrix.cpp @@ -1,6 +1,7 @@ #include "Matrix.hpp" -namespace ReSolve { +namespace ReSolve +{ /** * @brief empty constructor that does absolutely nothing */ @@ -65,65 +66,65 @@ namespace ReSolve { } /** - * @brief Loads or reloads pointer to the matrix handler for matrix operations. - * @param[in] matrixHandler - New matrix handler - */ + * @brief Loads or reloads pointer to the matrix handler for matrix operations. + * @param[in] matrixHandler - New matrix handler + */ void matrix::Matrix::addMatrixHandler(MatrixHandler* matrixHandler) { this->matrixHandler_ = matrixHandler; } /** - * @brief Implementation missing in MatrixHandler. - */ + * @brief Implementation missing in MatrixHandler. + */ int matrix::Matrix::transpose(Matrix* At, memory::MemorySpace memspace) { return -1; } /** - * @brief Implementation missing in MatrixHandler. - */ + * @brief Implementation missing in MatrixHandler. + */ int matrix::Matrix::leftScale(vector_type* diag, memory::MemorySpace memspace) { return -1; } /** - * @brief Implementation missing in MatrixHandler. - */ + * @brief Implementation missing in MatrixHandler. + */ int matrix::Matrix::rightScale(vector_type* diag, memory::MemorySpace memspace) { return -1; } /** - * @brief Implementation missing in MatrixHandler. - */ + * @brief Implementation missing in MatrixHandler. + */ int matrix::Matrix::addConst(real_type alpha, memory::MemorySpace memspace) { return -1; } /** - * @brief Implementation missing in MatrixHandler. - */ + * @brief Implementation missing in MatrixHandler. + */ int matrix::Matrix::matvec( - vector_type* vec_x, - vector_type* vec_result, - const real_type* alpha, - const real_type* beta, - memory::MemorySpace memspace) + vector_type* vec_x, + vector_type* vec_result, + const real_type* alpha, + const real_type* beta, + memory::MemorySpace memspace) { return -1; } /** - * @brief Implementation missing in MatrixHandler. - */ + * @brief Implementation missing in MatrixHandler. + */ int matrix::Matrix::matrixInfNorm(real_type* norm, memory::MemorySpace memspace) { return -1; } -} +} // namespace ReSolve diff --git a/resolve/matrix/Matrix.hpp b/resolve/matrix/Matrix.hpp index 413f284b7..11b4253d7 100644 --- a/resolve/matrix/Matrix.hpp +++ b/resolve/matrix/Matrix.hpp @@ -2,13 +2,13 @@ #include #include -#include #include +#include namespace ReSolve { using vector_type = vector::Vector; - + namespace matrix { /** @@ -57,5 +57,5 @@ namespace ReSolve MatrixHandler* matrixHandler_{nullptr}; }; - } -} + } // namespace matrix +} // namespace ReSolve diff --git a/resolve/matrix/Sparse.cpp b/resolve/matrix/Sparse.cpp index 23c5181d2..d524212b1 100644 --- a/resolve/matrix/Sparse.cpp +++ b/resolve/matrix/Sparse.cpp @@ -454,11 +454,11 @@ namespace ReSolve * @return 0 if successful, 1 otherwise */ int matrix::Sparse::matvec( - vector_type* vec_x, - vector_type* vec_result, - const real_type* alpha, - const real_type* beta, - memory::MemorySpace memspace) + vector_type* vec_x, + vector_type* vec_result, + const real_type* alpha, + const real_type* beta, + memory::MemorySpace memspace) { return matrixHandler_->matvec(this, vec_x, vec_result, alpha, beta, memspace); } diff --git a/resolve/matrix/Sparse.hpp b/resolve/matrix/Sparse.hpp index 5f3c27d89..1bdbaf165 100644 --- a/resolve/matrix/Sparse.hpp +++ b/resolve/matrix/Sparse.hpp @@ -96,11 +96,11 @@ namespace ReSolve // matrix operations virtual int addConst(real_type alpha, memory::MemorySpace memspace); virtual int matvec( - vector_type* vec_x, - vector_type* vec_result, - const real_type* alpha, - const real_type* beta, - memory::MemorySpace memspace); + vector_type* vec_x, + vector_type* vec_result, + const real_type* alpha, + const real_type* beta, + memory::MemorySpace memspace); virtual int matrixInfNorm(real_type* norm, memory::MemorySpace memspace); protected: diff --git a/tests/unit/hykkt/CMakeLists.txt b/tests/unit/hykkt/CMakeLists.txt index 8d1d00166..a794dac85 100644 --- a/tests/unit/hykkt/CMakeLists.txt +++ b/tests/unit/hykkt/CMakeLists.txt @@ -31,10 +31,13 @@ target_link_libraries( add_executable(runHykktSCCGTests.exe runHykktSCCGTests.cpp) target_link_libraries( - runHykktSCCGTests.exe PRIVATE resolve_hykkt resolve_hykkt_sccg resolve_hykkt_chol resolve_matrix - resolve_vector + runHykktSCCGTests.exe + PRIVATE resolve_hykkt resolve_hykkt_sccg resolve_hykkt_chol resolve_matrix + resolve_vector ) -target_compile_definitions(runHykktSCCGTests.exe PRIVATE SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}") # For file paths +target_compile_definitions( + runHykktSCCGTests.exe PRIVATE SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}" +) # For file paths # Install tests set(installable_tests runHykktPermutationTests.exe runHykktRuizScalingTests.exe diff --git a/tests/unit/hykkt/HykktSCCGTests.hpp b/tests/unit/hykkt/HykktSCCGTests.hpp index 91436cfd6..574e266a1 100644 --- a/tests/unit/hykkt/HykktSCCGTests.hpp +++ b/tests/unit/hykkt/HykktSCCGTests.hpp @@ -44,10 +44,10 @@ namespace ReSolve { constexpr double tol = 1e-12; - std::string sourceDir = std::string(SOURCE_DIR); - std::string jcFileName = sourceDir + "/SCCGTestMatrices/JC_matrix_ACTIVSg200_AC_00.mtx"; - std::string hFileName = sourceDir + "/SCCGTestMatrices/H_matrix_ACTIVSg200_AC_00.mtx"; - std::string bFileName = sourceDir + "/SCCGTestMatrices/CG_rhs_ACTIVSg200_AC_00.mtx"; // rhs + std::string sourceDir = std::string(SOURCE_DIR); + std::string jcFileName = sourceDir + "/SCCGTestMatrices/JC_matrix_ACTIVSg200_AC_00.mtx"; + std::string hFileName = sourceDir + "/SCCGTestMatrices/H_matrix_ACTIVSg200_AC_00.mtx"; + std::string bFileName = sourceDir + "/SCCGTestMatrices/CG_rhs_ACTIVSg200_AC_00.mtx"; // rhs std::ifstream jcFile(jcFileName); std::ifstream hFile(hFileName); std::ifstream bFile(bFileName); @@ -64,19 +64,19 @@ namespace ReSolve matrix::Csr* jc = new matrix::Csr(1386, 2278, 6784, false, false); jc->allocateMatrixData(memspace_); io::updateMatrixFromFile(jcFile, jc); - - index_type n = jc->getNumRows(); - index_type m = jc->getNumColumns(); - index_type nnz = jc->getNnz(); + + index_type n = jc->getNumRows(); + index_type m = jc->getNumColumns(); + index_type nnz = jc->getNnz(); hykkt::SchurComplementConjugateGradient sccg(n, m, &choleskySolver, memspace_); sccg.setSolverTolerance(tol); LinAlgWorkspaceCpu workspace; - MatrixHandler matrix_handler(&workspace); + MatrixHandler matrix_handler(&workspace); matrix::Csr* jc_tr = new matrix::Csr(m, n, nnz); jc_tr->allocateMatrixData(memspace_); matrix_handler.transpose(jc, jc_tr, memspace_); - + vector::Vector* x0 = new vector::Vector(n); x0->allocate(memspace_); randomVector(x0); @@ -116,9 +116,9 @@ namespace ReSolve MatrixHandler& matrixHandler_; /** - * @brief Generate a random vector of doubles between 0 and RAND_MAX. Copied from HykktCholeskyTests.hpp. - * @param[in] vec Target vector to write to. - */ + * @brief Generate a random vector of doubles between 0 and RAND_MAX. Copied from HykktCholeskyTests.hpp. + * @param[in] vec Target vector to write to. + */ void randomVector(vector::Vector* vec) { for (index_type i = 0; i < vec->getSize(); ++i) diff --git a/tests/unit/hykkt/runHykktSCCGTests.cpp b/tests/unit/hykkt/runHykktSCCGTests.cpp index 954c363df..c4a052467 100644 --- a/tests/unit/hykkt/runHykktSCCGTests.cpp +++ b/tests/unit/hykkt/runHykktSCCGTests.cpp @@ -16,9 +16,8 @@ #include #endif -#include - #include "HykktSCCGTests.hpp" +#include /** * @brief Run tests with a given backend From e5d2d1800b198b085b6fde4e246b3d268fc362ed Mon Sep 17 00:00:00 2001 From: Andrew Xu Date: Fri, 15 May 2026 21:20:32 +0800 Subject: [PATCH 04/16] Fixed bug in MatrixHandlerTests.hpp that caused leftScale and rightScale tests to fail. Made "createIncrementingVector()" return a pointer to the new vector instead of a copy (which causes the data to be freed prematurely). --- tests/unit/matrix/MatrixHandlerTests.hpp | 30 +++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/tests/unit/matrix/MatrixHandlerTests.hpp b/tests/unit/matrix/MatrixHandlerTests.hpp index e6fb0eac9..12a7f7903 100644 --- a/tests/unit/matrix/MatrixHandlerTests.hpp +++ b/tests/unit/matrix/MatrixHandlerTests.hpp @@ -170,10 +170,10 @@ namespace ReSolve { TestStatus status; std::string testname(__func__); - matrix::Csr* A = createRectangularCsrMatrix(n, m); - vector::Vector diag = createIncrementingVector(n); + matrix::Csr* A = createRectangularCsrMatrix(n, m); + vector::Vector* diag = createIncrementingVector(n); - handler_.leftScale(&diag, A, memspace_); + handler_.leftScale(diag, A, memspace_); if (memspace_ == memory::DEVICE) { A->syncData(memory::HOST); @@ -181,6 +181,7 @@ namespace ReSolve status *= verifyLeftScaledCsrMatrix(A); delete A; + delete diag; return status.report(testname.c_str()); } @@ -188,10 +189,10 @@ namespace ReSolve { TestStatus status; std::string testname(__func__); - matrix::Csr* A = createRectangularCsrMatrix(n, m); - vector::Vector diag = createIncrementingVector(m); + matrix::Csr* A = createRectangularCsrMatrix(n, m); + vector::Vector* diag = createIncrementingVector(m); - handler_.rightScale(A, &diag, memspace_); + handler_.rightScale(A, diag, memspace_); if (memspace_ == memory::DEVICE) { A->syncData(memory::HOST); @@ -199,6 +200,7 @@ namespace ReSolve status *= verifyRightScaledCsrMatrix(A); delete A; + delete diag; return status.report(testname.c_str()); } @@ -584,19 +586,19 @@ namespace ReSolve * * @param[in] n number of elements */ - vector::Vector createIncrementingVector(const index_type n) + vector::Vector* createIncrementingVector(const index_type n) { - vector::Vector vec(n); - vec.allocate(memory::HOST); - real_type* data = vec.getData(memory::HOST); + vector::Vector* vec = new vector::Vector(n); + vec->allocate(memory::HOST); + real_type* data = vec->getData(memory::HOST); for (index_type i = 0; i < n; ++i) { data[i] = static_cast(i + 1.0); } - vec.setDataUpdated(memory::HOST); + vec->setDataUpdated(memory::HOST); if (memspace_ == memory::DEVICE) { - vec.syncData(memspace_); + vec->syncData(memspace_); } return vec; } @@ -787,8 +789,8 @@ namespace ReSolve const index_type n = scaled_vec->getSize(); // Create the original unscaled vector to compare against - vector::Vector original_vec = createIncrementingVector(n); - real_type* original_data = original_vec.getData(memory::HOST); + vector::Vector* original_vec = createIncrementingVector(n); + real_type* original_data = original_vec->getData(memory::HOST); // Get data from the vector real_type* data = scaled_vec->getData(memory::HOST); From 0214462a2c8adc606758f48dca12b654e7c58a2a Mon Sep 17 00:00:00 2001 From: Andrew Xu Date: Fri, 15 May 2026 21:51:31 +0800 Subject: [PATCH 05/16] Add to CHANGELOG.md. Removed some unnecessary comments. --- CHANGELOG.md | 6 +++++- resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp | 5 ----- tests/unit/hykkt/HykktSCCGTests.hpp | 2 -- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad503b2e8..3c760b738 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## HyKKT Release changes -- Added classes and tests for permutation, Ruiz scaling, Cholesky factorization, and matrix multiplication and addition. +- Added classes and tests for permutation, Ruiz scaling, Cholesky factorization, Schur complement conjugate gradient and matrix multiplication and addition. ## Changes to Re::Solve since release 0.99.2 @@ -22,6 +22,10 @@ - Improved coding guidelines for developers on floating point conventions. +- Added `SchurComplementConjugateGradient` with CPU implementation. + +- Created `Matrix`, a parent class for all matrix classes. + ## Changes to Re::Solve in release 0.99.2 ### Major Features diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp index cf5b2a541..847445a93 100644 --- a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp @@ -94,7 +94,6 @@ namespace ReSolve int SchurComplementConjugateGradient::solve() { using namespace constants; - // MatrixHandler.hpp says: "Should compute vec_result := alpha*A*vec_x + beta*vec_result, but at least on cpu alpha and beta are flipped". MatrixHandlerCpu.cpp seems correct however. Fix? matrixhandler_.matvec(jc_tr_, x0_, &y_, &ONE, &ZERO, memspace_); choleskySolver_->solve(&z_, &y_); matrixhandler_.matvec(jc_, &z_, &r_, &MINUS_ONE, &ONE, memspace_); @@ -120,8 +119,6 @@ namespace ReSolve printf("Convergence occured at iteration %d\n", i); break; } - - // Product with w=Ar starts here matrixhandler_.matvec(jc_tr_, &r_, &y_, &ONE, &ZERO, memspace_); choleskySolver_->solve(&z_, &y_); matrixhandler_.matvec(jc_, &z_, &w_, &ONE, &ZERO, memspace_); @@ -137,8 +134,6 @@ namespace ReSolve return 1; } - ; - return 0; } diff --git a/tests/unit/hykkt/HykktSCCGTests.hpp b/tests/unit/hykkt/HykktSCCGTests.hpp index 91436cfd6..e183dc0be 100644 --- a/tests/unit/hykkt/HykktSCCGTests.hpp +++ b/tests/unit/hykkt/HykktSCCGTests.hpp @@ -90,12 +90,10 @@ namespace ReSolve sccg.setup(); sccg.solve(); - // // // // real_type* x0_output_data = x0.getData(0, memspace_); // for (index_type i = 0; i < n; i++) { // std::cout << x0_output_data[i] << ", "; // } - // // // TestStatus status; std::string testname(__func__); From 7f91849fffa5be2f5bc0bba0288bc2c683ae5443 Mon Sep 17 00:00:00 2001 From: Andrew Xu Date: Fri, 15 May 2026 21:52:12 +0800 Subject: [PATCH 06/16] Bug fixes (missing , type mismatch of variable "i"). --- resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp index 847445a93..072004623 100644 --- a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp @@ -1,6 +1,8 @@ #include "SchurComplementConjugateGradient.hpp" #include +#include + namespace ReSolve { namespace hykkt @@ -105,7 +107,7 @@ namespace ReSolve delta_ = vectorhandler_.dot(&w_, &r_, memspace_); alpha_ = gam_i_ / delta_; - size_t i; + int i; for (i = 0; i < itmax_; i++) { vectorhandler_.scal(beta_, &p_, memspace_); vectorhandler_.axpy(ONE, &r_, &p_, memspace_); From 151832388e0ab1f91154190831546cb09dff8b0e Mon Sep 17 00:00:00 2001 From: Shaked Regev <35384901+shakedregev@users.noreply.github.com> Date: Fri, 15 May 2026 09:58:06 -0400 Subject: [PATCH 07/16] Update tests/unit/hykkt/HykktSCCGTests.hpp No commented out code. --- tests/unit/hykkt/HykktSCCGTests.hpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/unit/hykkt/HykktSCCGTests.hpp b/tests/unit/hykkt/HykktSCCGTests.hpp index 574e266a1..45f94dd1d 100644 --- a/tests/unit/hykkt/HykktSCCGTests.hpp +++ b/tests/unit/hykkt/HykktSCCGTests.hpp @@ -90,12 +90,6 @@ namespace ReSolve sccg.setup(); sccg.solve(); - // // // - // real_type* x0_output_data = x0.getData(0, memspace_); - // for (index_type i = 0; i < n; i++) { - // std::cout << x0_output_data[i] << ", "; - // } - // // // TestStatus status; std::string testname(__func__); From ec4003232a36a170716295dbe4542cc0b264f1b9 Mon Sep 17 00:00:00 2001 From: shakedregev Date: Fri, 15 May 2026 13:58:32 +0000 Subject: [PATCH 08/16] Apply pre-commmit fixes --- tests/unit/hykkt/HykktSCCGTests.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unit/hykkt/HykktSCCGTests.hpp b/tests/unit/hykkt/HykktSCCGTests.hpp index 45f94dd1d..c26cbc34a 100644 --- a/tests/unit/hykkt/HykktSCCGTests.hpp +++ b/tests/unit/hykkt/HykktSCCGTests.hpp @@ -90,7 +90,6 @@ namespace ReSolve sccg.setup(); sccg.solve(); - TestStatus status; std::string testname(__func__); testname += " n=" + std::to_string(n) + ", m=" + std::to_string(m) + ", nnz =" + std::to_string(nnz); From 21559d43eb3023e82736d45e24673b8eeb9baaf5 Mon Sep 17 00:00:00 2001 From: Andrew Xu Date: Fri, 15 May 2026 22:17:16 +0800 Subject: [PATCH 09/16] Revert "Create Matrix class, a parent class for matrices including Sparse" This reverts commit 00f6992fa047809935c89654a0cddb39b62f4e2e. Kept changes to "io.cpp", which fixes the an issue with out-of-bounds iterators. --- matrix/Matrix.cpp | 130 ---------------------------------- resolve/matrix/CMakeLists.txt | 3 +- resolve/matrix/Csr.cpp | 51 ------------- resolve/matrix/Csr.hpp | 5 -- resolve/matrix/Matrix.cpp | 129 --------------------------------- resolve/matrix/Matrix.hpp | 61 ---------------- resolve/matrix/Sparse.cpp | 94 ++++++++++++------------ resolve/matrix/Sparse.hpp | 23 +++--- 8 files changed, 58 insertions(+), 438 deletions(-) delete mode 100644 matrix/Matrix.cpp delete mode 100644 resolve/matrix/Matrix.cpp delete mode 100644 resolve/matrix/Matrix.hpp diff --git a/matrix/Matrix.cpp b/matrix/Matrix.cpp deleted file mode 100644 index e221c358b..000000000 --- a/matrix/Matrix.cpp +++ /dev/null @@ -1,130 +0,0 @@ -#include "Matrix.hpp" - -namespace ReSolve { - /** - * @brief empty constructor that does absolutely nothing - */ - matrix::Matrix::Matrix() - { - } - - /** - * @brief basic constructor - * - * @param[in] n - number of rows - * @param[in] m - number of columns - * @param[in] nnz - number of non-zeros - */ - matrix::Matrix::Matrix(index_type n, - index_type m, - index_type nnz) - : n_{n}, - m_{m}, - nnz_{nnz} - { - } - - /** - * @brief get number of matrix rows - * - * @return number of matrix rows. - */ - index_type matrix::Matrix::getNumRows() - { - return this->n_; - } - - /** - * @brief get number of matrix columns - * - * @return number of matrix columns. - */ - index_type matrix::Matrix::getNumColumns() - { - return this->m_; - } - - /** - * @brief get number of non-zeros in the matrix. - * - * @return number of non-zeros. - */ - index_type matrix::Matrix::getNnz() - { - return this->nnz_; - } - - /** - * @brief Set number of non-zeros. - * - * @param[in] nnz_new - new number of non-zeros - */ - void matrix::Matrix::setNnz(index_type nnz_new) - { - this->nnz_ = nnz_new; - } - - /** - * @brief Loads or reloads pointer to the matrix handler for matrix operations. - * @param[in] matrixHandler - New matrix handler - */ - void matrix::Matrix::addMatrixHandler(MatrixHandler* matrixHandler) - { - this->matrixHandler_ = matrixHandler; - } - - /** - * @brief Implementation missing. - */ - int matrix::Matrix::transpose(Matrix* At, memory::MemorySpace memspace) - { - return -1; - } - - /** - * @brief Implementation missing. - */ - int matrix::Matrix::leftScale(vector_type* diag, memory::MemorySpace memspace) - { - return -1; - } - - /** - * @brief Implementation missing. - */ - int matrix::Matrix::rightScale(vector_type* diag, memory::MemorySpace memspace) - { - return -1; - } - - /** - * @brief Implementation missing. - */ - int matrix::Matrix::addConst(real_type alpha, memory::MemorySpace memspace) - { - return -1; - } - - int matrix::Matrix::matvec( - vector_type* vec_x, - vector_type* vec_result, - const real_type* alpha, - - /** - * @brief Implementation missing. - */ - const real_type* beta, - memory::MemorySpace memspace) - { - return -1; - } - - /** - * @brief Implementation missing. - */ - int matrix::Matrix::matrixInfNorm(real_type* norm, memory::MemorySpace memspace) - { - return -1; - } - -} diff --git a/resolve/matrix/CMakeLists.txt b/resolve/matrix/CMakeLists.txt index 2d23b43e3..9098d8c07 100644 --- a/resolve/matrix/CMakeLists.txt +++ b/resolve/matrix/CMakeLists.txt @@ -9,7 +9,6 @@ # C++ code set(Matrix_SRC io.cpp - Matrix.cpp Sparse.cpp Csr.cpp Csc.cpp @@ -25,7 +24,7 @@ set(Matrix_CUDASDK_SRC MatrixHandlerCuda.cpp) set(Matrix_ROCM_SRC MatrixHandlerHip.cpp) # Header files to be installed -set(Matrix_HEADER_INSTALL io.hpp Matrix.hpp Sparse.hpp Coo.hpp Csr.hpp Csc.hpp +set(Matrix_HEADER_INSTALL io.hpp Sparse.hpp Coo.hpp Csr.hpp Csc.hpp MatrixHandler.hpp ) diff --git a/resolve/matrix/Csr.cpp b/resolve/matrix/Csr.cpp index 10fec0fd2..a851089f3 100644 --- a/resolve/matrix/Csr.cpp +++ b/resolve/matrix/Csr.cpp @@ -439,57 +439,6 @@ namespace ReSolve } // switch } - /** - * @brief Transpose the sparse CSR matrix. - * - * @param[out] At - Transposed matrix - * @param[in] memspace - Device where the transpose is computed - * - * @return 0 if successful, 1 otherwise - */ - int matrix::Csr::transpose(Csr* At, memory::MemorySpace memspace) - { - return matrixHandler_->transpose(this, At, memspace); - } - - - /** - * @brief Left diagonal scaling of the sparse CSR matrix - * - * @param[in] diag - vector representing the diagonal matrix - * @param[in] memspace - Device where the operation is computed - * - * @pre The diagonal vector must be of the same size as the number of rows in the matrix. - * @pre Current CSR matrix is unscaled and allocated - * @post Current CSR matrix is scaled - * @invariant diag - * - * @return 0 if successful, 1 otherwise - */ - int matrix::Csr::leftScale(vector_type* diag, memory::MemorySpace memspace) - { - return matrixHandler_->leftScale(diag, this, memspace); - } - - /** - * @brief Right diagonal scaling of the sparse CSR matrix - * - * @param[in] diag - vector representing the diagonal matrix - * @param[in] memspace - Device where the operation is computed - * - * @pre The diagonal vector must be of the same size as the number of columns in the matrix. - * @pre Current CSR matrix is unscaled and allocated - * @post Current CSR matrix is scaled - * @invariant diag - * - * @return 0 if successful, 1 otherwise - */ - int matrix::Csr::rightScale(vector_type* diag, memory::MemorySpace memspace) - { - return matrixHandler_->rightScale(this, diag, memspace); - } - - /** * @brief Prints matrix data. * diff --git a/resolve/matrix/Csr.hpp b/resolve/matrix/Csr.hpp index fc4b58170..d9b3bb9cc 100644 --- a/resolve/matrix/Csr.hpp +++ b/resolve/matrix/Csr.hpp @@ -56,11 +56,6 @@ namespace ReSolve virtual void print(std::ostream& file_out = std::cout, index_type indexing_base = 0); virtual int syncData(memory::MemorySpace memspaceOut); - - // Matrix operations - virtual int transpose(Csr* At, memory::MemorySpace memspace); - virtual int leftScale(vector_type* diag, memory::MemorySpace memspace); - virtual int rightScale(vector_type* diag, memory::MemorySpace memspace); }; } // namespace matrix diff --git a/resolve/matrix/Matrix.cpp b/resolve/matrix/Matrix.cpp deleted file mode 100644 index 9afa5c65a..000000000 --- a/resolve/matrix/Matrix.cpp +++ /dev/null @@ -1,129 +0,0 @@ -#include "Matrix.hpp" - -namespace ReSolve { - /** - * @brief empty constructor that does absolutely nothing - */ - matrix::Matrix::Matrix() - { - } - - /** - * @brief basic constructor - * - * @param[in] n - number of rows - * @param[in] m - number of columns - * @param[in] nnz - number of non-zeros - */ - matrix::Matrix::Matrix(index_type n, - index_type m, - index_type nnz) - : n_{n}, - m_{m}, - nnz_{nnz} - { - } - - /** - * @brief get number of matrix rows - * - * @return number of matrix rows. - */ - index_type matrix::Matrix::getNumRows() - { - return this->n_; - } - - /** - * @brief get number of matrix columns - * - * @return number of matrix columns. - */ - index_type matrix::Matrix::getNumColumns() - { - return this->m_; - } - - /** - * @brief get number of non-zeros in the matrix. - * - * @return number of non-zeros. - */ - index_type matrix::Matrix::getNnz() - { - return this->nnz_; - } - - /** - * @brief Set number of non-zeros. - * - * @param[in] nnz_new - new number of non-zeros - */ - void matrix::Matrix::setNnz(index_type nnz_new) - { - this->nnz_ = nnz_new; - } - - /** - * @brief Loads or reloads pointer to the matrix handler for matrix operations. - * @param[in] matrixHandler - New matrix handler - */ - void matrix::Matrix::addMatrixHandler(MatrixHandler* matrixHandler) - { - this->matrixHandler_ = matrixHandler; - } - - /** - * @brief Implementation missing in MatrixHandler. - */ - int matrix::Matrix::transpose(Matrix* At, memory::MemorySpace memspace) - { - return -1; - } - - /** - * @brief Implementation missing in MatrixHandler. - */ - int matrix::Matrix::leftScale(vector_type* diag, memory::MemorySpace memspace) - { - return -1; - } - - /** - * @brief Implementation missing in MatrixHandler. - */ - int matrix::Matrix::rightScale(vector_type* diag, memory::MemorySpace memspace) - { - return -1; - } - - /** - * @brief Implementation missing in MatrixHandler. - */ - int matrix::Matrix::addConst(real_type alpha, memory::MemorySpace memspace) - { - return -1; - } - - /** - * @brief Implementation missing in MatrixHandler. - */ - int matrix::Matrix::matvec( - vector_type* vec_x, - vector_type* vec_result, - const real_type* alpha, - const real_type* beta, - memory::MemorySpace memspace) - { - return -1; - } - - /** - * @brief Implementation missing in MatrixHandler. - */ - int matrix::Matrix::matrixInfNorm(real_type* norm, memory::MemorySpace memspace) - { - return -1; - } - -} diff --git a/resolve/matrix/Matrix.hpp b/resolve/matrix/Matrix.hpp deleted file mode 100644 index 413f284b7..000000000 --- a/resolve/matrix/Matrix.hpp +++ /dev/null @@ -1,61 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -namespace ReSolve -{ - using vector_type = vector::Vector; - - namespace matrix - { - /** - * @brief This class implements the matrix interface. - * - * This is a parent class for all matrix classes, including Sparse and, in the future, - * HyKKT matrices. This also provides an interface for matrix operations implemented - * in MatrixHandler. - */ - class Matrix - { - public: - Matrix(); - Matrix(index_type n, index_type m, index_type nnz); - - index_type getNumRows(); - index_type getNumColumns(); - index_type getNnz(); - - void setNnz(index_type nnz_new); // for resetting when removing duplicates - virtual int setUpdated(memory::MemorySpace memspace) = 0; - - void addMatrixHandler(MatrixHandler* matrixHandler); - - virtual int allocateMatrixData(memory::MemorySpace memspace) = 0; - virtual int destroyMatrixData(memory::MemorySpace memspace) = 0; - virtual void print(std::ostream& file_out, index_type indexing_base) = 0; - - // Matrix operations. They need to be properly implemented in MatrixHandler as well for the specific derived class. - virtual int transpose(Matrix* At, memory::MemorySpace memspace); - virtual int leftScale(vector_type* diag, memory::MemorySpace memspace); - virtual int rightScale(vector_type* diag, memory::MemorySpace memspace); - virtual int addConst(real_type alpha, memory::MemorySpace memspace); - virtual int matvec( - vector_type* vec_x, - vector_type* vec_result, - const real_type* alpha, - const real_type* beta, - memory::MemorySpace memspace); - virtual int matrixInfNorm(real_type* norm, memory::MemorySpace memspace); - - protected: - index_type n_{0}; ///< number of rows - index_type m_{0}; ///< number of columns - index_type nnz_{0}; ///< number of non-zeros - - MatrixHandler* matrixHandler_{nullptr}; - }; - } -} diff --git a/resolve/matrix/Sparse.cpp b/resolve/matrix/Sparse.cpp index 23c5181d2..edad7ca76 100644 --- a/resolve/matrix/Sparse.cpp +++ b/resolve/matrix/Sparse.cpp @@ -26,7 +26,9 @@ namespace ReSolve matrix::Sparse::Sparse(index_type n, index_type m, index_type nnz) - : Matrix(n, m, nnz) + : n_{n}, + m_{m}, + nnz_{nnz} { this->is_symmetric_ = false; this->is_expanded_ = true; // default is a normal non-symmetric fully expanded matrix @@ -63,7 +65,9 @@ namespace ReSolve index_type nnz, bool symmetric, bool expanded) - : Matrix(n, m, nnz), + : n_{n}, + m_{m}, + nnz_{nnz}, is_symmetric_{symmetric}, is_expanded_{expanded} { @@ -103,6 +107,36 @@ namespace ReSolve d_data_updated_ = false; } + /** + * @brief get number of matrix rows + * + * @return number of matrix rows. + */ + index_type matrix::Sparse::getNumRows() + { + return this->n_; + } + + /** + * @brief get number of matrix columns + * + * @return number of matrix columns. + */ + index_type matrix::Sparse::getNumColumns() + { + return this->m_; + } + + /** + * @brief get number of non-zeros in the matrix. + * + * @return number of non-zeros. + */ + index_type matrix::Sparse::getNnz() + { + return this->nnz_; + } + matrix::Sparse::SparseFormat matrix::Sparse::getSparseFormat() const { return sparse_format_; @@ -148,6 +182,16 @@ namespace ReSolve this->is_expanded_ = expanded; } + /** + * @brief Set number of non-zeros. + * + * @param[in] nnz_new - new number of non-zeros + */ + void matrix::Sparse::setNnz(index_type nnz_new) + { + this->nnz_ = nnz_new; + } + /** * @brief Tags `memspace` as updated. * @@ -430,50 +474,4 @@ namespace ReSolve return 0; } - /** - * @brief Add a constant to the nonzero values of this sparse matrix. - * @param[in] alpha - scalar parameter - * @param[in] memspace - Device where the operation is computed - * @return 0 if successful, 1 otherwise - */ - int matrix::Sparse::addConst(real_type alpha, memory::MemorySpace memspace) - { - return matrixHandler_->addConst(this, alpha, memspace); - } - - /** - * @brief Matrix vector product: result = alpha * this * x + beta * result - * - * @param[in] vec_x - Vector multiplied by the matrix - * @param[out] vec_result - Vector where the result is stored - * @param[in] alpha - scalar parameter - * @param[in] beta - scalar parameter - * @param[in] memspace - Device where the product is computed - * @param[in,out] result := alpha * this * x + beta * result - * - * @return 0 if successful, 1 otherwise - */ - int matrix::Sparse::matvec( - vector_type* vec_x, - vector_type* vec_result, - const real_type* alpha, - const real_type* beta, - memory::MemorySpace memspace) - { - return matrixHandler_->matvec(this, vec_x, vec_result, alpha, beta, memspace); - } - - /** - * @bried Matrix infinity norm (maximum absolute row sum) - * - * @param[out] norm - Maximum absolute row sum - * @param[in] memspace - Device where the norm is computed - * - * @return 0 if successful, 1 otherwise - */ - int matrix::Sparse::matrixInfNorm(real_type* norm, memory::MemorySpace memspace) - { - return matrixHandler_->matrixInfNorm(this, norm, memspace); - } - } // namespace ReSolve diff --git a/resolve/matrix/Sparse.hpp b/resolve/matrix/Sparse.hpp index 5f3c27d89..af0fea606 100644 --- a/resolve/matrix/Sparse.hpp +++ b/resolve/matrix/Sparse.hpp @@ -7,7 +7,6 @@ #include #include -#include namespace ReSolve { @@ -26,7 +25,7 @@ namespace ReSolve * * @author Kasia Swirydowicz */ - class Sparse : public Matrix + class Sparse { public: /// Supported sparse matrix formats @@ -49,12 +48,17 @@ namespace ReSolve bool expanded); virtual ~Sparse(); + // accessors + index_type getNumRows(); + index_type getNumColumns(); + index_type getNnz(); SparseFormat getSparseFormat() const; bool symmetric(); bool expanded(); void setSymmetric(bool symmetric); void setExpanded(bool expanded); + void setNnz(index_type nnz_new); // for resetting when removing duplicates int setUpdated(memory::MemorySpace what); virtual index_type* getRowData(memory::MemorySpace memspace) = 0; @@ -81,6 +85,8 @@ namespace ReSolve int destroyMatrixData(memory::MemorySpace memspace); + virtual void print(std::ostream& file_out, index_type indexing_base) = 0; + virtual int syncData(memory::MemorySpace memspaceOut) = 0; // update Values just updates values; it allocates if necessary. @@ -93,18 +99,11 @@ namespace ReSolve virtual int setValuesPointer(real_type* new_vals, memory::MemorySpace memspace); - // matrix operations - virtual int addConst(real_type alpha, memory::MemorySpace memspace); - virtual int matvec( - vector_type* vec_x, - vector_type* vec_result, - const real_type* alpha, - const real_type* beta, - memory::MemorySpace memspace); - virtual int matrixInfNorm(real_type* norm, memory::MemorySpace memspace); - protected: SparseFormat sparse_format_{NONE}; ///< Matrix format + index_type n_{0}; ///< number of rows + index_type m_{0}; ///< number of columns + index_type nnz_{0}; ///< number of non-zeros bool is_symmetric_{false}; ///< symmetry flag bool is_expanded_{false}; ///< "expanded" flag From 60cb8310d0744b7cb9fad4539d013ddc75f91194 Mon Sep 17 00:00:00 2001 From: andrewxu319 Date: Fri, 15 May 2026 14:50:51 +0000 Subject: [PATCH 10/16] Apply pre-commmit fixes --- .../hykkt/sccg/SchurComplementConjugateGradient.cpp | 4 ++-- tests/unit/matrix/MatrixHandlerTests.hpp | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp index afc624393..3e81d116e 100644 --- a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp @@ -1,9 +1,9 @@ #include "SchurComplementConjugateGradient.hpp" -#include - #include +#include + namespace ReSolve { namespace hykkt diff --git a/tests/unit/matrix/MatrixHandlerTests.hpp b/tests/unit/matrix/MatrixHandlerTests.hpp index 12a7f7903..063e64d75 100644 --- a/tests/unit/matrix/MatrixHandlerTests.hpp +++ b/tests/unit/matrix/MatrixHandlerTests.hpp @@ -168,9 +168,9 @@ namespace ReSolve TestOutcome leftScale(index_type n, index_type m) { - TestStatus status; - std::string testname(__func__); - matrix::Csr* A = createRectangularCsrMatrix(n, m); + TestStatus status; + std::string testname(__func__); + matrix::Csr* A = createRectangularCsrMatrix(n, m); vector::Vector* diag = createIncrementingVector(n); handler_.leftScale(diag, A, memspace_); @@ -187,9 +187,9 @@ namespace ReSolve TestOutcome rightScale(index_type n, index_type m) { - TestStatus status; - std::string testname(__func__); - matrix::Csr* A = createRectangularCsrMatrix(n, m); + TestStatus status; + std::string testname(__func__); + matrix::Csr* A = createRectangularCsrMatrix(n, m); vector::Vector* diag = createIncrementingVector(m); handler_.rightScale(A, diag, memspace_); From e031386718497d1c10325d83b836a81cd8f4f4a4 Mon Sep 17 00:00:00 2001 From: Andrew Xu Date: Fri, 15 May 2026 22:56:01 +0800 Subject: [PATCH 11/16] Formatting fixes. --- resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp | 3 +-- tests/unit/matrix/MatrixHandlerTests.hpp | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp index afc624393..ec949b725 100644 --- a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp @@ -1,8 +1,7 @@ #include "SchurComplementConjugateGradient.hpp" -#include - #include +#include namespace ReSolve { diff --git a/tests/unit/matrix/MatrixHandlerTests.hpp b/tests/unit/matrix/MatrixHandlerTests.hpp index 12a7f7903..bd4675b74 100644 --- a/tests/unit/matrix/MatrixHandlerTests.hpp +++ b/tests/unit/matrix/MatrixHandlerTests.hpp @@ -187,9 +187,9 @@ namespace ReSolve TestOutcome rightScale(index_type n, index_type m) { - TestStatus status; - std::string testname(__func__); - matrix::Csr* A = createRectangularCsrMatrix(n, m); + TestStatus status; + std::string testname(__func__); + matrix::Csr* A = createRectangularCsrMatrix(n, m); vector::Vector* diag = createIncrementingVector(m); handler_.rightScale(A, diag, memspace_); From 7b2018cbe23ef11e1eac1dafdd370ac7f67f2fe4 Mon Sep 17 00:00:00 2001 From: Andrew Xu Date: Fri, 15 May 2026 23:13:40 +0800 Subject: [PATCH 12/16] Removed "Matrix.hpp" from resolve/matrix/CMakeLists.txt --- resolve/matrix/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/resolve/matrix/CMakeLists.txt b/resolve/matrix/CMakeLists.txt index b4645613c..489e3880c 100644 --- a/resolve/matrix/CMakeLists.txt +++ b/resolve/matrix/CMakeLists.txt @@ -26,7 +26,6 @@ set(Matrix_ROCM_SRC MatrixHandlerHip.cpp) # Header files to be installed set(Matrix_HEADER_INSTALL io.hpp - Matrix.hpp Sparse.hpp Coo.hpp Csr.hpp From d753b6ece6c7cdbc04d15c2074ff84f0bd9d5e08 Mon Sep 17 00:00:00 2001 From: andrewxu319 Date: Fri, 15 May 2026 15:14:15 +0000 Subject: [PATCH 13/16] Apply pre-commmit fixes --- resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp | 1 - resolve/matrix/CMakeLists.txt | 9 ++------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp index 21846c6ce..3e81d116e 100644 --- a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp @@ -1,7 +1,6 @@ #include "SchurComplementConjugateGradient.hpp" #include -#include #include diff --git a/resolve/matrix/CMakeLists.txt b/resolve/matrix/CMakeLists.txt index 489e3880c..9098d8c07 100644 --- a/resolve/matrix/CMakeLists.txt +++ b/resolve/matrix/CMakeLists.txt @@ -24,13 +24,8 @@ set(Matrix_CUDASDK_SRC MatrixHandlerCuda.cpp) set(Matrix_ROCM_SRC MatrixHandlerHip.cpp) # Header files to be installed -set(Matrix_HEADER_INSTALL - io.hpp - Sparse.hpp - Coo.hpp - Csr.hpp - Csc.hpp - MatrixHandler.hpp +set(Matrix_HEADER_INSTALL io.hpp Sparse.hpp Coo.hpp Csr.hpp Csc.hpp + MatrixHandler.hpp ) # Build shared library ReSolve::matrix From fe13410e6f882d788d5145c39a0d6c01b28999e1 Mon Sep 17 00:00:00 2001 From: Shaked Regev <35384901+shakedregev@users.noreply.github.com> Date: Fri, 15 May 2026 12:09:04 -0400 Subject: [PATCH 14/16] Apply suggestion from @shakedregev --- resolve/hykkt/sccg/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resolve/hykkt/sccg/CMakeLists.txt b/resolve/hykkt/sccg/CMakeLists.txt index 0f97fd03f..a89fd53b6 100644 --- a/resolve/hykkt/sccg/CMakeLists.txt +++ b/resolve/hykkt/sccg/CMakeLists.txt @@ -22,6 +22,8 @@ if(RESOLVE_USE_CUDA) target_link_libraries(resolve_hykkt_sccg PUBLIC resolve_backend_cuda) endif() +# Link to HIP ReSolve backend if HIP is support enabled + if(RESOLVE_USE_HIP) target_sources(resolve_hykkt_sccg PRIVATE ${Matrix_ROCM_SRC}) target_link_libraries(resolve_hykkt_sccg PUBLIC resolve_backend_hip) From 6f52fd0c6a5a65777378e0fa58c62ecf16d57fa7 Mon Sep 17 00:00:00 2001 From: shakedregev Date: Fri, 15 May 2026 12:22:11 -0400 Subject: [PATCH 15/16] fixed not building test, test still fails on HIP --- resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp index e093d24ad..88664c6e7 100644 --- a/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp @@ -43,7 +43,7 @@ namespace ReSolve #ifdef RESOLVE_USE_CUDA LinAlgWorkspaceCUDA workspace_; -#elif RESOLVE_USE_HIP +#elif defined(RESOLVE_USE_HIP) LinAlgWorkspaceHIP workspace_; #else LinAlgWorkspaceCpu workspace_; From 1230d1d5cc0e4f69a75633c57b67abd83f985eda Mon Sep 17 00:00:00 2001 From: tamar-dewilde Date: Fri, 29 May 2026 13:26:46 -0700 Subject: [PATCH 16/16] Make SCCG test path CPU, CUDA, and HIP capable (#422) * use caller-provided backend-specific handlers in SCCG * load SCCG data on host before device sync * refresh CUDA SpMV cache when matrix changes * fix HyKKT SCCG HIP target setup * document SCCG backend setup and CUDA SpMV cache handling * mirror SpMV cache reset for HIP * Shaked/random error fix (#424) Fixed stochastic failures due to a faulty random number generator and asynchronous operations. Co-authored-by: shakedregev --------- Co-authored-by: tamar-dewilde Co-authored-by: Shaked Regev <35384901+shakedregev@users.noreply.github.com> Co-authored-by: shakedregev --- CHANGELOG.md | 4 + resolve/Common.hpp | 11 +-- resolve/hykkt/cholesky/CholeskySolverHip.cpp | 3 + resolve/hykkt/sccg/CMakeLists.txt | 4 +- .../sccg/SchurComplementConjugateGradient.cpp | 48 ++++++----- .../sccg/SchurComplementConjugateGradient.hpp | 29 ++++--- resolve/matrix/MatrixHandlerCuda.cpp | 28 +++--- resolve/matrix/MatrixHandlerCuda.hpp | 7 +- resolve/matrix/MatrixHandlerHip.cpp | 13 +++ resolve/matrix/MatrixHandlerHip.hpp | 7 +- resolve/workspace/LinAlgWorkspaceCUDA.cpp | 17 ++++ resolve/workspace/LinAlgWorkspaceCUDA.hpp | 7 ++ resolve/workspace/LinAlgWorkspaceHIP.cpp | 30 +++++-- resolve/workspace/LinAlgWorkspaceHIP.hpp | 7 ++ tests/unit/hykkt/HykktCholeskyTests.hpp | 19 +++-- tests/unit/hykkt/HykktSCCGTests.hpp | 85 ++++++++++++------- tests/unit/hykkt/runHykktCholeskyTests.cpp | 8 +- tests/unit/hykkt/runHykktSCCGTests.cpp | 9 +- 18 files changed, 229 insertions(+), 107 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c760b738..fdeb1ade5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ - Added classes and tests for permutation, Ruiz scaling, Cholesky factorization, Schur complement conjugate gradient and matrix multiplication and addition. +- Changed random number generation int tests to be C++ style and fixed-seed, to avoid random failures. + +- Added Schur Complement Conjugate Gradient class. + ## Changes to Re::Solve since release 0.99.2 - Added cmake-format. diff --git a/resolve/Common.hpp b/resolve/Common.hpp index af30adadb..5d5ae88aa 100644 --- a/resolve/Common.hpp +++ b/resolve/Common.hpp @@ -14,11 +14,12 @@ namespace ReSolve namespace constants { - constexpr real_type ZERO = 0.0; - constexpr real_type ONE = 1.0; - constexpr real_type TWO = 2.0; - constexpr real_type HALF = 0.5; - constexpr real_type MINUS_ONE = -1.0; + constexpr real_type ZERO = 0.0; + constexpr real_type ONE = 1.0; + constexpr real_type TWO = 2.0; + constexpr real_type HALF = 0.5; + constexpr real_type MINUS_ONE = -1.0; + constexpr index_type SEED = 12345; constexpr real_type MACHINE_EPSILON = std::numeric_limits::epsilon(); } // namespace constants diff --git a/resolve/hykkt/cholesky/CholeskySolverHip.cpp b/resolve/hykkt/cholesky/CholeskySolverHip.cpp index cc8ae4faa..358ebea9d 100644 --- a/resolve/hykkt/cholesky/CholeskySolverHip.cpp +++ b/resolve/hykkt/cholesky/CholeskySolverHip.cpp @@ -60,6 +60,7 @@ namespace ReSolve } A_chol_ = convertToCholmod(A); A_ = A; + mem_.deviceSynchronize(); } void CholeskySolverHip::symbolicAnalysis() @@ -70,6 +71,7 @@ namespace ReSolve { out::error() << "Cholesky symbolic analysis failed with status: " << Common_.status << "\n"; } + mem_.deviceSynchronize(); } /** @@ -156,6 +158,7 @@ namespace ReSolve out::error() << "Refactorization step failed with status: " << status << "\n"; } L_->setUpdated(memory::DEVICE); + mem_.deviceSynchronize(); } } diff --git a/resolve/hykkt/sccg/CMakeLists.txt b/resolve/hykkt/sccg/CMakeLists.txt index a89fd53b6..74e3939e8 100644 --- a/resolve/hykkt/sccg/CMakeLists.txt +++ b/resolve/hykkt/sccg/CMakeLists.txt @@ -13,9 +13,7 @@ target_link_libraries( # Link to CUDA ReSolve backend if CUDA is support enabled -target_include_directories( - resolve_hykkt_spgemm PUBLIC ${SUITESPARSE_INCLUDE_DIR} -) +target_include_directories(resolve_hykkt_sccg PUBLIC ${SUITESPARSE_INCLUDE_DIR}) if(RESOLVE_USE_CUDA) target_sources(resolve_hykkt_sccg PRIVATE ${Matrix_CUDASDK_SRC}) diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp index 3e81d116e..41d5141d6 100644 --- a/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.cpp @@ -13,26 +13,28 @@ namespace ReSolve * @param m[in] - Dimension of inner system. * @param choleskySolver[in] - Factorization of Hgamma to use for direct solve. * @param memspace[in] - Memory space of incoming data and for computation. + * @param matrix_handler[in] - Matrix handler for the selected backend. + * @param vector_handler[in] - Vector handler for the selected backend. */ SchurComplementConjugateGradient::SchurComplementConjugateGradient( index_type n, index_type m, CholeskySolver* choleskySolver, - memory::MemorySpace memspace) + memory::MemorySpace memspace, + MatrixHandler& matrix_handler, + VectorHandler& vector_handler) : n_(n), m_(m), + matrix_handler_(matrix_handler), + vector_handler_(vector_handler), choleskySolver_(choleskySolver), - memspace_(memspace), - mem_(), - workspace_(), - matrixhandler_(&workspace_), - vectorhandler_(&workspace_), y_(m_), z_(m_), r_(n_), p_(n_), s_(n_), - w_(n_) + w_(n_), + memspace_(memspace) { ; } @@ -101,37 +103,37 @@ namespace ReSolve { using namespace constants; - matrixhandler_.matvec(jc_tr_, x0_, &y_, &ONE, &ZERO, memspace_); + matrix_handler_.matvec(jc_tr_, x0_, &y_, &ONE, &ZERO, memspace_); choleskySolver_->solve(&z_, &y_); - matrixhandler_.matvec(jc_, &z_, &r_, &MINUS_ONE, &ONE, memspace_); - gam_i_ = vectorhandler_.dot(&r_, &r_, memspace_); + matrix_handler_.matvec(jc_, &z_, &r_, &MINUS_ONE, &ONE, memspace_); + gam_i_ = vector_handler_.dot(&r_, &r_, memspace_); - matrixhandler_.matvec(jc_tr_, &r_, &y_, &ONE, &ZERO, memspace_); + matrix_handler_.matvec(jc_tr_, &r_, &y_, &ONE, &ZERO, memspace_); choleskySolver_->solve(&z_, &y_); - matrixhandler_.matvec(jc_, &z_, &w_, &ONE, &ZERO, memspace_); - delta_ = vectorhandler_.dot(&w_, &r_, memspace_); + matrix_handler_.matvec(jc_, &z_, &w_, &ONE, &ZERO, memspace_); + delta_ = vector_handler_.dot(&w_, &r_, memspace_); alpha_ = gam_i_ / delta_; int i; for (i = 0; i < itmax_; i++) { - vectorhandler_.scal(beta_, &p_, memspace_); - vectorhandler_.axpy(ONE, &r_, &p_, memspace_); - vectorhandler_.scal(beta_, &s_, memspace_); - vectorhandler_.axpy(ONE, &w_, &s_, memspace_); - vectorhandler_.axpy(alpha_, &p_, x0_, memspace_); + vector_handler_.scal(beta_, &p_, memspace_); + vector_handler_.axpy(ONE, &r_, &p_, memspace_); + vector_handler_.scal(beta_, &s_, memspace_); + vector_handler_.axpy(ONE, &w_, &s_, memspace_); + vector_handler_.axpy(alpha_, &p_, x0_, memspace_); minalpha_ = -alpha_; - vectorhandler_.axpy(minalpha_, &s_, &r_, memspace_); - gam_i1_ = vectorhandler_.dot(&r_, &r_, memspace_); + vector_handler_.axpy(minalpha_, &s_, &r_, memspace_); + gam_i1_ = vector_handler_.dot(&r_, &r_, memspace_); if (sqrt(gam_i1_) < tol_) { printf("Convergence occured at iteration %d\n", i); break; } - matrixhandler_.matvec(jc_tr_, &r_, &y_, &ONE, &ZERO, memspace_); + matrix_handler_.matvec(jc_tr_, &r_, &y_, &ONE, &ZERO, memspace_); choleskySolver_->solve(&z_, &y_); - matrixhandler_.matvec(jc_, &z_, &w_, &ONE, &ZERO, memspace_); - delta_ = vectorhandler_.dot(&w_, &r_, memspace_); + matrix_handler_.matvec(jc_, &z_, &w_, &ONE, &ZERO, memspace_); + delta_ = vector_handler_.dot(&w_, &r_, memspace_); beta_ = gam_i1_ / gam_i_; gam_i_ = gam_i1_; alpha_ = gam_i_ / (delta_ - beta_ * gam_i_ / alpha_); diff --git a/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp b/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp index 88664c6e7..9f2131e59 100644 --- a/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp +++ b/resolve/hykkt/sccg/SchurComplementConjugateGradient.hpp @@ -1,6 +1,6 @@ /** * @file SchurComplementConjugateGradient.hpp - * @brief Currently CPU-only. + * @brief Schur complement conjugate gradient solver for HyKKT. */ #pragma once @@ -12,7 +12,6 @@ #include #include #include -#include namespace ReSolve { @@ -24,7 +23,19 @@ namespace ReSolve class SchurComplementConjugateGradient { public: - SchurComplementConjugateGradient(index_type n, index_type m, CholeskySolver* choleskySolver, memory::MemorySpace memspace); + /** + * @brief Constructor for SchurComplementConjugateGradient. + * + * The solver uses caller-provided matrix and vector handlers so the same solver can be run with CPU, CUDA, or HIP backends. + * + * @param[in] n Dimension of outer system. + * @param[in] m Dimension of inner system. + * @param[in] choleskySolver Factorization of Hgamma to use for direct solves. + * @param[in] memspace Memory space of incoming data and for computation. + * @param[in] matrix_handler Matrix handler for the selected backend. + * @param[in] vector_handler Vector handler for the selected backend. + */ + SchurComplementConjugateGradient(index_type n, index_type m, CholeskySolver* choleskySolver, memory::MemorySpace memspace, MatrixHandler& matrix_handler, VectorHandler& vector_handler); void addMatrixInfo(matrix::Csr* jc, matrix::Csr* jc_tr); void addVectorInfo(vector::Vector* x0, vector::Vector* b); @@ -41,15 +52,8 @@ namespace ReSolve int itmax_ = 100; // Maximum iterations for conjugate gradient double tol_ = 1e-12; // Solver tolerance for Schur -#ifdef RESOLVE_USE_CUDA - LinAlgWorkspaceCUDA workspace_; -#elif defined(RESOLVE_USE_HIP) - LinAlgWorkspaceHIP workspace_; -#else - LinAlgWorkspaceCpu workspace_; -#endif - MatrixHandler matrixhandler_; - VectorHandler vectorhandler_; + MatrixHandler& matrix_handler_; ///< Backend-specific matrix handler. + VectorHandler& vector_handler_; ///< Backend-specific vector handler. CholeskySolver* choleskySolver_; // Cholesky factorization on 1,1 block @@ -75,7 +79,6 @@ namespace ReSolve vector::Vector s_; vector::Vector w_; - MemoryHandler mem_; memory::MemorySpace memspace_; }; // class SchurComplementConjugateGradient } // namespace hykkt diff --git a/resolve/matrix/MatrixHandlerCuda.cpp b/resolve/matrix/MatrixHandlerCuda.cpp index 7b3108438..db95dbe9b 100644 --- a/resolve/matrix/MatrixHandlerCuda.cpp +++ b/resolve/matrix/MatrixHandlerCuda.cpp @@ -76,17 +76,23 @@ namespace ReSolve // result = alpha *A*x + beta * result cusparseStatus_t status; cusparseDnVecDescr_t vecx = workspace_->getVecX(); - cusparseCreateDnVec(&vecx, A->getNumRows(), vec_x->getData(memory::DEVICE), CUDA_R_64F); + cusparseCreateDnVec(&vecx, A->getNumColumns(), vec_x->getData(memory::DEVICE), CUDA_R_64F); cusparseDnVecDescr_t vecAx = workspace_->getVecY(); cusparseCreateDnVec(&vecAx, A->getNumRows(), vec_result->getData(memory::DEVICE), CUDA_R_64F); - cusparseSpMatDescr_t matA = workspace_->getSpmvMatrixDescriptor(); - - void* buffer_spmv = workspace_->getSpmvBuffer(); cusparseHandle_t handle_cusparse = workspace_->getCusparseHandle(); - if (values_changed_) + // Rebuild cached SpMV setup if the matrix object or dimensions changed. + bool matrix_changed = (matrix_for_matvec_ != A) || (matvec_num_rows_ != A->getNumRows()) || (matvec_num_cols_ != A->getNumColumns()) || (matvec_nnz_ != A->getNnz()); + if (matrix_changed || values_changed_) + { + workspace_->resetMatvecSetup(); + } + cusparseSpMatDescr_t matA = workspace_->getSpmvMatrixDescriptor(); + void* buffer_spmv = workspace_->getSpmvBuffer(); + if (!workspace_->matvecSetup()) { + // setup first, allocate, etc. status = cusparseCreateCsr(&matA, A->getNumRows(), A->getNumColumns(), @@ -99,11 +105,6 @@ namespace ReSolve CUSPARSE_INDEX_BASE_ZERO, CUDA_R_64F); error_sum += status; - values_changed_ = false; - } - if (!workspace_->matvecSetup()) - { - // setup first, allocate, etc. size_t bufferSize = 0; status = cusparseSpMV_bufferSize(handle_cusparse, @@ -123,6 +124,13 @@ namespace ReSolve workspace_->setSpmvBuffer(buffer_spmv); workspace_->matvecSetupDone(); + + matrix_for_matvec_ = A; + matvec_num_rows_ = A->getNumRows(); + matvec_num_cols_ = A->getNumColumns(); + matvec_nnz_ = A->getNnz(); + + values_changed_ = false; } status = cusparseSpMV(handle_cusparse, diff --git a/resolve/matrix/MatrixHandlerCuda.hpp b/resolve/matrix/MatrixHandlerCuda.hpp index f0efbcee8..13b099903 100644 --- a/resolve/matrix/MatrixHandlerCuda.hpp +++ b/resolve/matrix/MatrixHandlerCuda.hpp @@ -56,7 +56,12 @@ namespace ReSolve private: LinAlgWorkspaceCUDA* workspace_{nullptr}; - bool values_changed_{true}; ///< needed for matvec + bool values_changed_{true}; ///< Flag to indicate if matrix values changed since the cached SpMV setup. + + matrix::Sparse* matrix_for_matvec_{nullptr}; ///< Matrix used for cached SpMV setup. + index_type matvec_num_rows_{0}; ///< Number of rows in cached SpMV matrix. + index_type matvec_num_cols_{0}; ///< Number of columns in cached SpMV matrix. + index_type matvec_nnz_{0}; ///< Number of nonzeros in cached SpMV matrix. MemoryHandler mem_; ///< Device memory manager object }; diff --git a/resolve/matrix/MatrixHandlerHip.cpp b/resolve/matrix/MatrixHandlerHip.cpp index 8586101e7..b73e7b6c3 100644 --- a/resolve/matrix/MatrixHandlerHip.cpp +++ b/resolve/matrix/MatrixHandlerHip.cpp @@ -78,6 +78,13 @@ namespace ReSolve rocsparse_handle handle_rocsparse = workspace_->getRocsparseHandle(); + // Rebuild cached SpMV setup if the matrix object or dimensions changed. + bool matrix_changed = (matrix_for_matvec_ != A) || (matvec_num_rows_ != A->getNumRows()) || (matvec_num_cols_ != A->getNumColumns()) || (matvec_nnz_ != A->getNnz()); + if (matrix_changed || values_changed_) + { + workspace_->resetMatvecSetup(); + } + rocsparse_mat_info infoA = workspace_->getSpmvMatrixInfo(); rocsparse_mat_descr descrA = workspace_->getSpmvMatrixDescriptor(); @@ -106,6 +113,12 @@ namespace ReSolve workspace_->setSpmvMatrixDescriptor(descrA); workspace_->setSpmvMatrixInfo(infoA); workspace_->matvecSetupDone(); + + matrix_for_matvec_ = A; + matvec_num_rows_ = A->getNumRows(); + matvec_num_cols_ = A->getNumColumns(); + matvec_nnz_ = A->getNnz(); + values_changed_ = false; } status = rocsparse_dcsrmv(handle_rocsparse, diff --git a/resolve/matrix/MatrixHandlerHip.hpp b/resolve/matrix/MatrixHandlerHip.hpp index 7e69c3f1c..044362784 100644 --- a/resolve/matrix/MatrixHandlerHip.hpp +++ b/resolve/matrix/MatrixHandlerHip.hpp @@ -56,7 +56,12 @@ namespace ReSolve private: LinAlgWorkspaceHIP* workspace_{nullptr}; - bool values_changed_{true}; ///< needed for matvec + bool values_changed_{true}; ///< Flag to indicate if matrix values changed since the cached SpMV setup. + + matrix::Sparse* matrix_for_matvec_{nullptr}; ///< Matrix used for cached SpMV setup. + index_type matvec_num_rows_{0}; ///< Number of rows in cached SpMV matrix. + index_type matvec_num_cols_{0}; ///< Number of columns in cached SpMV matrix. + index_type matvec_nnz_{0}; ///< Number of nonzeros in cached SpMV matrix. MemoryHandler mem_; ///< Device memory manager object }; diff --git a/resolve/workspace/LinAlgWorkspaceCUDA.cpp b/resolve/workspace/LinAlgWorkspaceCUDA.cpp index fdb19c303..1c6facee0 100644 --- a/resolve/workspace/LinAlgWorkspaceCUDA.cpp +++ b/resolve/workspace/LinAlgWorkspaceCUDA.cpp @@ -204,6 +204,23 @@ namespace ReSolve matvec_setup_done_ = true; } + /** + * @brief Reset cached SpMV resources. + */ + void LinAlgWorkspaceCUDA::resetMatvecSetup() + { + if (matvec_setup_done_) + { + cusparseDestroySpMat(mat_A_); + matvec_setup_done_ = false; + } + if (buffer_spmv_ != nullptr) + { + mem_.deleteOnDevice(buffer_spmv_); + buffer_spmv_ = nullptr; + } + } + void LinAlgWorkspaceCUDA::initializeHandles() { cusparseCreate(&handle_cusparse_); diff --git a/resolve/workspace/LinAlgWorkspaceCUDA.hpp b/resolve/workspace/LinAlgWorkspaceCUDA.hpp index ac996b9bb..9c7b555be 100644 --- a/resolve/workspace/LinAlgWorkspaceCUDA.hpp +++ b/resolve/workspace/LinAlgWorkspaceCUDA.hpp @@ -47,6 +47,13 @@ namespace ReSolve bool matvecSetup(); void matvecSetupDone(); + /** + * @brief Reset the cached CUDA SpMV setup. + * + * Destroys the cached sparse matrix descriptor and frees the SpMV buffer so + * the next matvec call can rebuild the SpMV setup if the matrix or its dimensions have changed. + */ + void resetMatvecSetup(); private: // handles diff --git a/resolve/workspace/LinAlgWorkspaceHIP.cpp b/resolve/workspace/LinAlgWorkspaceHIP.cpp index fc13e6896..239dcb305 100644 --- a/resolve/workspace/LinAlgWorkspaceHIP.cpp +++ b/resolve/workspace/LinAlgWorkspaceHIP.cpp @@ -6,6 +6,8 @@ namespace ReSolve { handle_rocsparse_ = nullptr; handle_rocblas_ = nullptr; + mat_A_ = nullptr; + info_A_ = nullptr; matvec_setup_done_ = false; d_r_ = nullptr; @@ -18,12 +20,11 @@ namespace ReSolve LinAlgWorkspaceHIP::~LinAlgWorkspaceHIP() { + resetMatvecSetup(); + rocsparse_destroy_handle(handle_rocsparse_); rocblas_destroy_handle(handle_rocblas_); - if (matvec_setup_done_) - { - rocsparse_destroy_mat_descr(mat_A_); - } + if (d_r_size_ != 0) { mem_.deleteOnDevice(d_r_); @@ -47,11 +48,7 @@ namespace ReSolve */ void LinAlgWorkspaceHIP::resetLinAlgWorkspace() { - if (matvec_setup_done_) - { - rocsparse_destroy_mat_descr(mat_A_); - matvec_setup_done_ = false; - } + resetMatvecSetup(); if (d_r_size_ != 0) { mem_.deleteOnDevice(d_r_); @@ -143,6 +140,21 @@ namespace ReSolve matvec_setup_done_ = true; } + void LinAlgWorkspaceHIP::resetMatvecSetup() + { + if (mat_A_ != nullptr) + { + rocsparse_destroy_mat_descr(mat_A_); + mat_A_ = nullptr; + } + if (info_A_ != nullptr) + { + rocsparse_destroy_mat_info(info_A_); + info_A_ = nullptr; + } + matvec_setup_done_ = false; + } + void LinAlgWorkspaceHIP::initializeHandles() { rocsparse_create_handle(&handle_rocsparse_); diff --git a/resolve/workspace/LinAlgWorkspaceHIP.hpp b/resolve/workspace/LinAlgWorkspaceHIP.hpp index 4db4b89fa..911712579 100644 --- a/resolve/workspace/LinAlgWorkspaceHIP.hpp +++ b/resolve/workspace/LinAlgWorkspaceHIP.hpp @@ -38,6 +38,13 @@ namespace ReSolve bool matvecSetup(); void matvecSetupDone(); + /** + * @brief Reset the cached HIP SpMV setup. + * + * Destroys the cached rocSPARSE matrix descriptor and matrix info so the + * next matvec call can rebuild the setup if the matrix or its dimensions have changed. + */ + void resetMatvecSetup(); void setDrSize(index_type new_sz); void setDr(real_type* new_dr); diff --git a/tests/unit/hykkt/HykktCholeskyTests.hpp b/tests/unit/hykkt/HykktCholeskyTests.hpp index ec214381c..cf1a9b8a1 100644 --- a/tests/unit/hykkt/HykktCholeskyTests.hpp +++ b/tests/unit/hykkt/HykktCholeskyTests.hpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -26,8 +27,8 @@ namespace ReSolve class HykktCholeskyTests : public TestBase { public: - HykktCholeskyTests(memory::MemorySpace memspace, MatrixHandler& matrixHandler) - : memspace_(memspace), matrixHandler_(matrixHandler) + HykktCholeskyTests(memory::MemorySpace memspace, MatrixHandler& matrixHandler, std::mt19937& generator) + : memspace_(memspace), matrixHandler_(matrixHandler), generator_(generator) { cholmod_start(&Common); } @@ -127,7 +128,6 @@ namespace ReSolve solver.addMatrixInfo(A); solver.symbolicAnalysis(); solver.numericalFactorization(); - // Generate a random vector x_expected and compute b = A * x_expected vector::Vector* x_expected = randomVector(n); @@ -242,7 +242,8 @@ namespace ReSolve // reset values for (size_t j = 0; j < L->nzmax; j++) { - static_cast(L->x)[j] = 2.0 * static_cast(rand()) / RAND_MAX - 1.0; + std::uniform_real_distribution distribution(-1.0, 1.0); + static_cast(L->x)[j] = 2.0 * distribution(generator_) - 1.0; } cholmod_free_sparse(&L_tr, &Common); cholmod_free_sparse(&A_chol, &Common); @@ -266,6 +267,7 @@ namespace ReSolve private: ReSolve::memory::MemorySpace memspace_; MatrixHandler& matrixHandler_; + std::mt19937& generator_; cholmod_common Common; @@ -281,14 +283,16 @@ namespace ReSolve L_p[i + 1] = L_p[i]; for (size_t j = i; j < n; ++j) { - // with probability 'density', add a non-zero entry - if (i == j || static_cast(rand()) / RAND_MAX < density) + std::uniform_real_distribution rand_dist(0.0, 1.0); + if (i == j || rand_dist(generator_) < density) { L_i.push_back((int) j); // force diagonal entry to be non-zero double value = 2.0; if (i != j) { + std::uniform_real_distribution value_dist(-1.0, 1.0); + value = 2.0 * value_dist(generator_); value = 2.0 * static_cast(rand()) / RAND_MAX - 1.0; } L_x.push_back(value); @@ -311,9 +315,10 @@ namespace ReSolve { vector::Vector* v = new vector::Vector(n); v->allocate(memory::HOST); + std::uniform_real_distribution distribution(0.0, 1.0); for (index_type i = 0; i < n; ++i) { - v->getData(memory::HOST)[i] = static_cast(rand()) / RAND_MAX; + v->getData(memory::HOST)[i] = distribution(generator_); } v->setDataUpdated(memory::HOST); if (memspace_ == memory::DEVICE) diff --git a/tests/unit/hykkt/HykktSCCGTests.hpp b/tests/unit/hykkt/HykktSCCGTests.hpp index c26cbc34a..035c82cd2 100644 --- a/tests/unit/hykkt/HykktSCCGTests.hpp +++ b/tests/unit/hykkt/HykktSCCGTests.hpp @@ -6,12 +6,14 @@ #pragma once #include +#include #include #include #include #include #include +#include #include namespace ReSolve @@ -26,8 +28,18 @@ namespace ReSolve class HykktSchurComplementConjugateGradientTests : public TestBase { public: - HykktSchurComplementConjugateGradientTests(memory::MemorySpace memspace, MatrixHandler& matrixHandler) - : memspace_(memspace), matrixHandler_(matrixHandler) + /** + * @brief Constructs the SCCG test fixture with the specified memory space and handlers. + * + * The test fixture uses caller-provided matrix and vector handlers so the same test can be run with CPU, CUDA, or HIP backends. + * + * @param[in] memspace Memory space for the test (HOST or DEVICE). + * @param[in] matrix_handler Reference to a matrix handler for the selected backend. + * @param[in] vector_handler Reference to a vector handler for the selected backend. + * @param[in] generator Reference to a C++ random number generator. + */ + HykktSchurComplementConjugateGradientTests(memory::MemorySpace memspace, MatrixHandler& matrix_handler, VectorHandler& vector_handler, std::mt19937& generator) + : memspace_(memspace), matrix_handler_(matrix_handler), vector_handler_(vector_handler), generator_(generator) { } @@ -44,17 +56,23 @@ namespace ReSolve { constexpr double tol = 1e-12; - std::string sourceDir = std::string(SOURCE_DIR); - std::string jcFileName = sourceDir + "/SCCGTestMatrices/JC_matrix_ACTIVSg200_AC_00.mtx"; - std::string hFileName = sourceDir + "/SCCGTestMatrices/H_matrix_ACTIVSg200_AC_00.mtx"; - std::string bFileName = sourceDir + "/SCCGTestMatrices/CG_rhs_ACTIVSg200_AC_00.mtx"; // rhs - std::ifstream jcFile(jcFileName); - std::ifstream hFile(hFileName); - std::ifstream bFile(bFileName); + std::string source_dir = std::string(SOURCE_DIR); + std::string jc_file_name = source_dir + "/SCCGTestMatrices/JC_matrix_ACTIVSg200_AC_00.mtx"; + std::string h_file_name = source_dir + "/SCCGTestMatrices/H_matrix_ACTIVSg200_AC_00.mtx"; + std::string b_file_name = source_dir + "/SCCGTestMatrices/CG_rhs_ACTIVSg200_AC_00.mtx"; // rhs + std::ifstream jc_file(jc_file_name); + std::ifstream h_file(h_file_name); + std::ifstream b_file(b_file_name); + // The .mtx file readers write into host accessible memory. + // Load test data into HOST first, then sync to DEVICE for CUDA and HIP backends. matrix::Csr* h = new matrix::Csr(2278, 2278, 11304, true, false); - h->allocateMatrixData(memspace_); - io::updateMatrixFromFile(hFile, h); + h->allocateMatrixData(memory::HOST); + io::updateMatrixFromFile(h_file, h); + if (memspace_ == memory::DEVICE) + { + h->syncData(memory::DEVICE); + } hykkt::CholeskySolver choleskySolver(memspace_); choleskySolver.addMatrixInfo(h); choleskySolver.symbolicAnalysis(); @@ -62,28 +80,34 @@ namespace ReSolve choleskySolver.numericalFactorization(); matrix::Csr* jc = new matrix::Csr(1386, 2278, 6784, false, false); - jc->allocateMatrixData(memspace_); - io::updateMatrixFromFile(jcFile, jc); + jc->allocateMatrixData(memory::HOST); + io::updateMatrixFromFile(jc_file, jc); + if (memspace_ == memory::DEVICE) + { + jc->syncData(memory::DEVICE); + } index_type n = jc->getNumRows(); index_type m = jc->getNumColumns(); index_type nnz = jc->getNnz(); - hykkt::SchurComplementConjugateGradient sccg(n, m, &choleskySolver, memspace_); + hykkt::SchurComplementConjugateGradient sccg(n, m, &choleskySolver, memspace_, matrix_handler_, vector_handler_); sccg.setSolverTolerance(tol); - LinAlgWorkspaceCpu workspace; - MatrixHandler matrix_handler(&workspace); matrix::Csr* jc_tr = new matrix::Csr(m, n, nnz); jc_tr->allocateMatrixData(memspace_); - matrix_handler.transpose(jc, jc_tr, memspace_); + matrix_handler_.transpose(jc, jc_tr, memspace_); vector::Vector* x0 = new vector::Vector(n); - x0->allocate(memspace_); + x0->allocate(memory::HOST); randomVector(x0); vector::Vector* b = new vector::Vector(n); - b->allocate(memspace_); - io::updateVectorFromFile(bFile, b); + b->allocate(memory::HOST); + io::updateVectorFromFile(b_file, b); + if (memspace_ == memory::DEVICE) + { + b->syncData(memory::DEVICE); + } sccg.addMatrixInfo(jc, jc_tr); sccg.addVectorInfo(x0, b); @@ -105,18 +129,21 @@ namespace ReSolve } private: - memory::MemorySpace memspace_; - MatrixHandler& matrixHandler_; + memory::MemorySpace memspace_; ///< Memory space used by the test. + MatrixHandler& matrix_handler_; ///< Backend-specific matrix handler. + VectorHandler& vector_handler_; ///< Backend-specific vector handler. + std::mt19937& generator_; ///< C++ random number generator. /** - * @brief Generate a random vector of doubles between 0 and RAND_MAX. Copied from HykktCholeskyTests.hpp. + * @brief Generate a random vector of doubles between 0 and 1. Copied from HykktCholeskyTests.hpp. * @param[in] vec Target vector to write to. */ void randomVector(vector::Vector* vec) { + std::uniform_real_distribution distribution(0.0, 1.0); for (index_type i = 0; i < vec->getSize(); ++i) { - vec->getData(memory::HOST)[i] = static_cast(rand()) / RAND_MAX; + vec->getData(memory::HOST)[i] = distribution(generator_); } vec->setDataUpdated(memory::HOST); if (memspace_ == memory::DEVICE) @@ -126,11 +153,11 @@ namespace ReSolve } /** - * @brief Validate the results of the scaling - * @param[in] x0 Pointer to the output x0 vector - * @param[in] tol Solver tolerance + * @brief Validate the SCCG result. + * @param[in] x0 Pointer to the output x0 vector. + * @param[in] tol Solver tolerance. */ - bool validateResult(vector::Vector* x0, real_type tol) + bool validateResult(vector::Vector*, real_type) { bool test_passed = true; @@ -138,6 +165,6 @@ namespace ReSolve return test_passed; } - }; // class HykktPermutationTests + }; // class HykktSchurComplementConjugateGradientTests } // namespace tests } // namespace ReSolve diff --git a/tests/unit/hykkt/runHykktCholeskyTests.cpp b/tests/unit/hykkt/runHykktCholeskyTests.cpp index d05fb5603..55ebeb7d6 100644 --- a/tests/unit/hykkt/runHykktCholeskyTests.cpp +++ b/tests/unit/hykkt/runHykktCholeskyTests.cpp @@ -7,8 +7,10 @@ */ #include #include +#include #include +#include "resolve/Common.hpp" #include "tests/unit/hykkt/HykktCholeskyTests.hpp" /** @@ -24,9 +26,9 @@ void runTests(const std::string& backend, ReSolve::memory::MemorySpace memspace, WorkspaceType workspace; workspace.initializeHandles(); - ReSolve::MatrixHandler handler(&workspace); - - ReSolve::tests::HykktCholeskyTests test(memspace, handler); + ReSolve::MatrixHandler handler(&workspace); + std::mt19937 generator(ReSolve::constants::SEED); // set random seed for reproducibility + ReSolve::tests::HykktCholeskyTests test(memspace, handler, generator); result += test.minimalCorrectness(); handler.setValuesChanged(true, memspace); diff --git a/tests/unit/hykkt/runHykktSCCGTests.cpp b/tests/unit/hykkt/runHykktSCCGTests.cpp index c4a052467..33f0e3856 100644 --- a/tests/unit/hykkt/runHykktSCCGTests.cpp +++ b/tests/unit/hykkt/runHykktSCCGTests.cpp @@ -5,9 +5,11 @@ */ #include #include +#include #include #include +#include #include #ifdef RESOLVE_USE_CUDA #include @@ -32,9 +34,10 @@ void runTests(const std::string& backend, ReSolve::memory::MemorySpace memspace, WorkspaceType workspace; workspace.initializeHandles(); - ReSolve::MatrixHandler handler(&workspace); - - ReSolve::tests::HykktSchurComplementConjugateGradientTests test(memspace, handler); + ReSolve::MatrixHandler matrix_handler(&workspace); + ReSolve::VectorHandler vector_handler(&workspace); + std::mt19937 generator(ReSolve::constants::SEED); + ReSolve::tests::HykktSchurComplementConjugateGradientTests test(memspace, matrix_handler, vector_handler, generator); result += test.SCCGTest();