From 1bed02845d52b47f9f4738c04942fa4a4f6e5e44 Mon Sep 17 00:00:00 2001 From: Peter Munch Date: Thu, 30 Apr 2020 12:18:06 +0200 Subject: [PATCH] Remove template arguments form internal data structures of Triangulation --- include/deal.II/grid/tria.h | 29 +- include/deal.II/grid/tria_accessor.h | 4 +- .../deal.II/grid/tria_accessor.templates.h | 183 ++---- include/deal.II/grid/tria_faces.h | 117 ++-- include/deal.II/grid/tria_levels.h | 137 ++--- include/deal.II/grid/tria_object.h | 74 ++- include/deal.II/grid/tria_objects.h | 399 ++++--------- source/grid/tria.cc | 298 +++++----- source/grid/tria_accessor.cc | 2 +- source/grid/tria_faces.cc | 84 ++- source/grid/tria_levels.cc | 114 +--- source/grid/tria_objects.cc | 536 +++++++----------- source/grid/tria_objects.inst.in | 4 +- tests/serialization/triangulation_01.output | 40 +- tests/serialization/triangulation_02.output | 40 +- 15 files changed, 812 insertions(+), 1249 deletions(-) diff --git a/include/deal.II/grid/tria.h b/include/deal.II/grid/tria.h index d5d7652f1c..0b01ce88d3 100644 --- a/include/deal.II/grid/tria.h +++ b/include/deal.II/grid/tria.h @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -78,12 +79,8 @@ namespace internal { namespace TriangulationImplementation { - template - class TriaLevel; - template class TriaFaces; - template class TriaObjects; /** @@ -3829,8 +3826,8 @@ private: * Array of pointers pointing to the objects storing the cell data on the * different levels. */ - std::vector>> + std::vector< + std::unique_ptr> levels; /** @@ -3838,7 +3835,7 @@ private: * in 2D it contains data concerning lines and in 3D quads and lines. All * of these have no level and are therefore treated separately. */ - std::unique_ptr> + std::unique_ptr faces; @@ -3937,7 +3934,6 @@ private: friend struct dealii::internal::TriangulationImplementation::Implementation; - template friend class dealii::internal::TriangulationImplementation::TriaObjects; friend class CellId; @@ -4048,8 +4044,8 @@ Triangulation::save(Archive &ar, const unsigned int) const unsigned int n_levels = levels.size(); ar & n_levels; - for (unsigned int i = 0; i < levels.size(); ++i) - ar &levels[i]; + for (const auto &level : levels) + ar &level; // boost dereferences a nullptr when serializing a nullptr // at least up to 1.65.1. This causes problems with clang-5. @@ -4091,12 +4087,11 @@ Triangulation::load(Archive &ar, const unsigned int) unsigned int size; ar & size; levels.resize(size); - for (unsigned int i = 0; i < levels.size(); ++i) + for (auto &level_ : levels) { - std::unique_ptr> - level; - ar &level; - levels[i] = std::move(level); + std::unique_ptr level; + ar & level; + level_ = std::move(level); } // Workaround for nullptr, see in save(). @@ -4115,8 +4110,8 @@ Triangulation::load(Archive &ar, const unsigned int) // they are easy enough to rebuild upon re-loading data. do // this here. don't forget to first resize the fields appropriately { - for (unsigned int l = 0; l < levels.size(); ++l) - levels[l]->active_cell_indices.resize(levels[l]->refine_flags.size()); + for (auto &level : levels) + level->active_cell_indices.resize(level->refine_flags.size()); reset_active_cell_indices(); } diff --git a/include/deal.II/grid/tria_accessor.h b/include/deal.II/grid/tria_accessor.h index db99e0544b..90bf46d6c5 100644 --- a/include/deal.II/grid/tria_accessor.h +++ b/include/deal.II/grid/tria_accessor.h @@ -54,7 +54,6 @@ namespace internal { template class TriaObject; - template class TriaObjects; struct Implementation; } // namespace TriangulationImplementation @@ -419,8 +418,7 @@ protected: /** * Access to the other objects of a Triangulation with same dimension. */ - dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject> & + dealii::internal::TriangulationImplementation::TriaObjects & objects() const; public: diff --git a/include/deal.II/grid/tria_accessor.templates.h b/include/deal.II/grid/tria_accessor.templates.h index cc42c32c43..bbd52503ee 100644 --- a/include/deal.II/grid/tria_accessor.templates.h +++ b/include/deal.II/grid/tria_accessor.templates.h @@ -206,14 +206,14 @@ TriaAccessorBase::operator++() // have to set the level, since // dim!=1 and the object therefore // has no level) - if (this->present_index >= static_cast(objects().cells.size())) + if (this->present_index >= static_cast(objects().n_objects())) this->present_index = -1; } else { while (this->present_index >= static_cast( - this->tria->levels[this->present_level]->cells.cells.size())) + this->tria->levels[this->present_level]->cells.n_objects())) { // no -> go one level up until we find // one with more than zero cells @@ -259,127 +259,29 @@ TriaAccessorBase::operator--() } // else this->present_index = - this->tria->levels[this->present_level]->cells.cells.size() - 1; + this->tria->levels[this->present_level]->cells.n_objects() - 1; } } } -namespace internal -{ - namespace TriaAccessorBaseImplementation - { - /** - * Out of a face object, get the sub-objects of dimensionality given by - * the last argument. - */ - template - inline dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject<1>> * - get_objects( - dealii::internal::TriangulationImplementation::TriaFaces *faces, - const std::integral_constant) - { - return &faces->lines; - } - - - template - inline dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject<2>> * - get_objects( - dealii::internal::TriangulationImplementation::TriaFaces *faces, - const std::integral_constant) - { - return &faces->quads; - } - - inline dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject<1>> * - get_objects(dealii::internal::TriangulationImplementation::TriaFaces<1> *, - const std::integral_constant) - { - Assert(false, ExcInternalError()); - return nullptr; - } - - inline dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject<2>> * - get_objects(dealii::internal::TriangulationImplementation::TriaFaces<2> *, - const std::integral_constant) - { - Assert(false, ExcInternalError()); - return nullptr; - } - - inline dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject<3>> * - get_objects(dealii::internal::TriangulationImplementation::TriaFaces<3> *, - const std::integral_constant) - { - Assert(false, ExcInternalError()); - return nullptr; - } - - /** - * This function should never be used, but we need it for the template - * instantiation of TriaAccessorBase::objects() const - */ - template - inline dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject<3>> * - get_objects(dealii::internal::TriangulationImplementation::TriaFaces *, - const std::integral_constant) - { - Assert(false, ExcInternalError()); - return nullptr; - } - /** - * Copy the above functions for cell objects. - */ - template - inline dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject> * - get_objects( - dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject> *, - const std::integral_constant) - { - Assert(false, ExcInternalError()); - return nullptr; - } +template +inline dealii::internal::TriangulationImplementation::TriaObjects & +TriaAccessorBase::objects() const +{ + if (structdim == dim) + return this->tria->levels[this->present_level]->cells; - template - inline dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject> * - get_objects( - dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject> *cells, - const std::integral_constant) - { - return cells; - } - } // namespace TriaAccessorBaseImplementation -} // namespace internal + if (structdim == 1 && dim > 1) + return this->tria->faces->lines; + if (structdim == 2 && dim > 2) + return this->tria->faces->quads; + Assert(false, ExcInternalError()); -template -inline dealii::internal::TriangulationImplementation::TriaObjects< - dealii::internal::TriangulationImplementation::TriaObject> & -TriaAccessorBase::objects() const -{ - if (structdim != dim) - // get sub-objects. note that the - // current class is only used for - // objects that are *not* cells - return *dealii::internal::TriaAccessorBaseImplementation::get_objects( - this->tria->faces.get(), std::integral_constant()); - else - return *dealii::internal::TriaAccessorBaseImplementation::get_objects( - &this->tria->levels[this->present_level]->cells, - std::integral_constant()); + return this->tria->levels[this->present_level]->cells; } @@ -623,7 +525,7 @@ namespace internal line_index(const TriaAccessor<2, dim, spacedim> &accessor, const unsigned int i) { - return accessor.objects().cells[accessor.present_index].face(i); + return accessor.objects().get_object(accessor.present_index).face(i); } @@ -668,7 +570,7 @@ namespace internal const unsigned int i) { return accessor.tria->levels[accessor.present_level] - ->cells.cells[accessor.present_index] + ->cells.get_object(accessor.present_index) .face(i); } @@ -697,8 +599,10 @@ namespace internal face_orientation(const TriaAccessor<3, dim, spacedim> &accessor, const unsigned int face) { - return (accessor.tria->levels[accessor.present_level] - ->cells.face_orientation(accessor.present_index, face)); + return get_bit( + accessor.tria->levels[accessor.present_level]->face_orientations + [accessor.present_index * GeometryInfo<3>::faces_per_cell + face], + 0 /*=orientation_bit*/); } @@ -766,11 +670,11 @@ namespace internal AssertIndexRange(face, GeometryInfo<3>::faces_per_cell); Assert(accessor.present_index * GeometryInfo<3>::faces_per_cell + face < accessor.tria->levels[accessor.present_level] - ->cells.face_orientations.size(), + ->face_orientations.size(), ExcInternalError()); return get_bit( - accessor.tria->levels[accessor.present_level]->cells.face_orientations + accessor.tria->levels[accessor.present_level]->face_orientations [accessor.present_index * GeometryInfo<3>::faces_per_cell + face], 1 /*=flip_bit*/); } @@ -803,11 +707,11 @@ namespace internal AssertIndexRange(face, GeometryInfo<3>::faces_per_cell); Assert(accessor.present_index * GeometryInfo<3>::faces_per_cell + face < accessor.tria->levels[accessor.present_level] - ->cells.face_orientations.size(), + ->face_orientations.size(), ExcInternalError()); return get_bit( - accessor.tria->levels[accessor.present_level]->cells.face_orientations + accessor.tria->levels[accessor.present_level]->face_orientations [accessor.present_index * GeometryInfo<3>::faces_per_cell + face], 2 /*=rotation_bit*/); } @@ -838,12 +742,14 @@ namespace internal line_orientation(const TriaAccessor<2, 3, spacedim> &accessor, const unsigned int line) { - // quads as part of 3d hexes can have non-standard orientation + Assert(accessor.used(), TriaAccessorExceptions::ExcCellNotUsed()); + Assert(accessor.present_index * GeometryInfo<3>::lines_per_face + line < + accessor.tria->faces->quads_line_orientations.size(), + ExcInternalError()); - // TODO: why is this face_orientation, not line_orientation as in the - // setter function? - return accessor.tria->faces->quads.face_orientation( - accessor.present_index, line); + // quads as part of 3d hexes can have non-standard orientation + return accessor.tria->faces->quads_line_orientations + [accessor.present_index * GeometryInfo<3>::lines_per_face + line]; } @@ -959,10 +865,10 @@ namespace internal AssertIndexRange(face, GeometryInfo<3>::faces_per_cell); Assert(accessor.present_index * GeometryInfo<3>::faces_per_cell + face < accessor.tria->levels[accessor.present_level] - ->cells.face_orientations.size(), + ->face_orientations.size(), ExcInternalError()); set_bit( - accessor.tria->levels[accessor.present_level]->cells.face_orientations + accessor.tria->levels[accessor.present_level]->face_orientations [accessor.present_index * GeometryInfo<3>::faces_per_cell + face], 0 /*=orientation_bit*/, value); @@ -992,11 +898,11 @@ namespace internal AssertIndexRange(face, GeometryInfo<3>::faces_per_cell); Assert(accessor.present_index * GeometryInfo<3>::faces_per_cell + face < accessor.tria->levels[accessor.present_level] - ->cells.face_orientations.size(), + ->face_orientations.size(), ExcInternalError()); set_bit( - accessor.tria->levels[accessor.present_level]->cells.face_orientations + accessor.tria->levels[accessor.present_level]->face_orientations [accessor.present_index * GeometryInfo<3>::faces_per_cell + face], 1 /*=flip_bit*/, value); @@ -1026,11 +932,11 @@ namespace internal AssertIndexRange(face, GeometryInfo<3>::faces_per_cell); Assert(accessor.present_index * GeometryInfo<3>::faces_per_cell + face < accessor.tria->levels[accessor.present_level] - ->cells.face_orientations.size(), + ->face_orientations.size(), ExcInternalError()); set_bit( - accessor.tria->levels[accessor.present_level]->cells.face_orientations + accessor.tria->levels[accessor.present_level]->face_orientations [accessor.present_index * GeometryInfo<3>::faces_per_cell + face], 2 /*=rotation_bit*/, value); @@ -1070,12 +976,11 @@ namespace internal Assert(accessor.used(), TriaAccessorExceptions::ExcCellNotUsed()); AssertIndexRange(line, GeometryInfo<3>::lines_per_face); Assert(accessor.present_index * GeometryInfo<3>::lines_per_face + line < - accessor.tria->faces->quads.line_orientations.size(), + accessor.tria->faces->quads_line_orientations.size(), ExcInternalError()); - // quads as part of 3d hexes - // can have non-standard - // orientation - accessor.tria->faces->quads.line_orientations + + // quads as part of 3d hexes can have non-standard orientation + accessor.tria->faces->quads_line_orientations [accessor.present_index * GeometryInfo<3>::lines_per_face + line] = value; } @@ -1101,7 +1006,9 @@ namespace internal vertex_index(const TriaAccessor<1, dim, spacedim> &accessor, const unsigned int corner) { - return accessor.objects().cells[accessor.present_index].face(corner); + return accessor.objects() + .get_object(accessor.present_index) + .face(corner); } diff --git a/include/deal.II/grid/tria_faces.h b/include/deal.II/grid/tria_faces.h index b286dae372..3a5cc68cb9 100644 --- a/include/deal.II/grid/tria_faces.h +++ b/include/deal.II/grid/tria_faces.h @@ -29,7 +29,7 @@ namespace internal namespace TriangulationImplementation { /** - * General template for information belonging to the faces of a + * This class contains information belonging to the faces of a * triangulation. These classes are similar to the TriaLevel classes. As * cells are organised in a hierarchical structure of levels, each * triangulation consists of several such TriaLevels. However the faces of @@ -40,100 +40,57 @@ namespace internal * store the information belonging to the faces of a triangulation * separately from the TriaLevel classes. * - * This general template is only provided to enable a specialization - * below. - * * @author Tobias Leicht, 2006 + * @author Peter Munch, 2020 */ - - template class TriaFaces { public: /** - * Constructor. This constructor is deleted to prevent the use of this - * template, as only the specializations should be used + * Constructor. */ - TriaFaces() = delete; - }; - + TriaFaces(const unsigned int dim); - - /** - * Faces only have a meaning in dim@>=1. In dim=1 they - * are vertices, which are handled differently, so only for - * dim@>=2 the use of TriaFaces is reasonable, for dim=1 - * the class is empty. - */ - template <> - class TriaFaces<1> - { - public: /** - * Determine an estimate for the memory consumption (in bytes) of this - * object. Of course this returns 0. + * Default constructor for Boost::serialization. */ - std::size_t - memory_consumption() const; + TriaFaces() = default; /** - * Read or write the data of this object to or from a stream for the - * purpose of serialization + * Dimension of the underlying triangulation. */ - template - void - serialize(Archive &ar, const unsigned int version); - }; - - /** - * In dim=2 the cells are quads, the faces accordingly are lines. - */ - template <> - class TriaFaces<2> - { - public: - /** - * The TriaObject containing the data of lines. - */ - TriaObjects> lines; + unsigned int dim; - public: /** - * Determine an estimate for the memory consumption (in bytes) of this - * object. + * The TriaObject containing the data of quads. + * + * @note Used only for dim=3. */ - std::size_t - memory_consumption() const; + TriaObjects quads; /** - * Read or write the data of this object to or from a stream for the - * purpose of serialization + * Orientation of each line of each quad. + * + * @note Used only for dim=3. */ - template - void - serialize(Archive &ar, const unsigned int version); - }; + std::vector quads_line_orientations; - /** - * In dim=3 the cells are hexes, the faces accordingly are quads. - * In addition to that we also have to enable the storage of lines. - */ - template <> - class TriaFaces<3> - { - public: /** - * The TriaObject containing the data of quads. + * The TriaObject containing the data of lines. + * + * @note Used only for dim>1. */ - - TriaObjectsQuad3D quads; + TriaObjects lines; /** - * The TriaObject containing the data of lines. + * Reserve space for line_orientations. + * + * @note Used only for dim=3. */ - TriaObjects> lines; + void + reserve_space(const unsigned int new_quads_in_pairs, + const unsigned int new_quads_single = 0); - public: /** * Determine an estimate for the memory consumption (in bytes) of this * object. @@ -154,25 +111,15 @@ namespace internal template void - TriaFaces<1>::serialize(Archive &, const unsigned int) - {} - - - - template - void - TriaFaces<2>::serialize(Archive &ar, const unsigned int) + TriaFaces::serialize(Archive &ar, const unsigned int) { - ar &lines; - } - + ar &dim; + if (dim == 2) + ar &lines; - template - void - TriaFaces<3>::serialize(Archive &ar, const unsigned int) - { - ar &quads &lines; + if (dim == 3) + ar &quads &lines &quads_line_orientations; } } // namespace TriangulationImplementation } // namespace internal diff --git a/include/deal.II/grid/tria_levels.h b/include/deal.II/grid/tria_levels.h index 92d1572532..72e6a88fb3 100644 --- a/include/deal.II/grid/tria_levels.h +++ b/include/deal.II/grid/tria_levels.h @@ -54,10 +54,32 @@ namespace internal * * @author Wolfgang Bangerth, Guido Kanschat, 1998, 2007 */ - template class TriaLevel { public: + /** + * Constructor. + * + * @param dim Dimension of the Triangulation. + */ + TriaLevel(const unsigned int dim) + : dim(dim) + , cells(dim) + {} + + /** + * Default constructor (needed by Boost). + */ + TriaLevel() + : dim(numbers::invalid_unsigned_int) + , cells(numbers::invalid_unsigned_int) + {} + + /** + * Dimension of the Triangulation. + */ + unsigned int dim; + /** * @p RefinementCase::Type flags for the cells to be refined with * or not (RefinementCase::no_refinement). The meaning what a cell @@ -159,8 +181,33 @@ namespace internal /** * The object containing the data on lines and related functions */ - TriaObjects> cells; + TriaObjects cells; + /** + * For edges, we enforce a standard convention that opposite + * edges should be parallel. Now, that's enforceable in most + * cases, and we have code that makes sure that if a mesh allows + * this to happen, that we have this convention. We also know + * that it is always possible to have opposite faces have + * parallel normal vectors. (For both things, see the paper by + * Agelek, Anderson, Bangerth, Barth in the ACM Transactions on + * Mathematical Software mentioned in the documentation of the + * GridReordering class.) + * + * The problem is that we originally had another condition, namely that + * faces 0, 2 and 4 have normals that point into the cell, while the + * other faces have normals that point outward. It turns out that this + * is not always possible. In effect, we have to store whether the + * normal vector of each face of each cell follows this convention or + * not. If this is so, then this variable stores a @p true value, + * otherwise a @p false value. + * + * In effect, this field has 6*n_cells elements, being the + * number of cells times the six faces each has. + * + * @note Only needed for dim=3. + */ + std::vector face_orientations; /** * Reserve enough space to accommodate @p total_cells cells on this @@ -211,90 +258,13 @@ namespace internal << ", which is not as expected."); }; - // TODO: Replace TriaObjectsHex to avoid this specialization - - /** - * Specialization of TriaLevels for 3D. Since we need TriaObjectsHex - * instead of TriaObjects. Refer to the documentation of the general class - * template for details. - */ - template <> - class TriaLevel<3> - { - public: - std::vector refine_flags; - std::vector coarsen_flags; - std::vector active_cell_indices; - std::vector> neighbors; - std::vector subdomain_ids; - std::vector level_subdomain_ids; - std::vector parents; - - // The following is not used - // since we don't support - // codim=1 meshes in 3d; only - // needed to allow - // compilation - // TODO[TH]: this is no longer true and might be a bug. - std::vector direction_flags; - - TriaObjectsHex cells; - - - void - reserve_space(const unsigned int total_cells, - const unsigned int dimension, - const unsigned int space_dimension); - void - monitor_memory(const unsigned int true_dimension) const; - std::size_t - memory_consumption() const; - - /** - * Read or write the data of this object to or from a stream for the - * purpose of serialization - */ - template - void - serialize(Archive &ar, const unsigned int version); - - /** - * Exception - */ - DeclException2(ExcMemoryInexact, - int, - int, - << "The containers have sizes " << arg1 << " and " << arg2 - << ", which is not as expected."); - }; - - - template template void - TriaLevel::serialize(Archive &ar, const unsigned int) + TriaLevel::serialize(Archive &ar, const unsigned int) { - ar &refine_flags &coarsen_flags; - - // do not serialize 'active_cell_indices' here. instead of storing them - // to the stream and re-reading them again later, we just rebuild them - // in Triangulation::load() + ar &dim; - ar &neighbors; - ar &subdomain_ids; - ar &level_subdomain_ids; - ar &parents; - ar &direction_flags; - ar &cells; - } - - - - template - void - TriaLevel<3>::serialize(Archive &ar, const unsigned int) - { ar &refine_flags &coarsen_flags; // do not serialize 'active_cell_indices' here. instead of storing them @@ -307,13 +277,14 @@ namespace internal ar &parents; ar &direction_flags; ar &cells; + + if (dim == 3) + ar &face_orientations; } } // namespace TriangulationImplementation } // namespace internal - - DEAL_II_NAMESPACE_CLOSE #endif diff --git a/include/deal.II/grid/tria_object.h b/include/deal.II/grid/tria_object.h index 07a999e04b..339ed868a6 100644 --- a/include/deal.II/grid/tria_object.h +++ b/include/deal.II/grid/tria_object.h @@ -19,11 +19,22 @@ #include +#include #include #include DEAL_II_NAMESPACE_OPEN +#ifndef DOXYGEN +namespace internal +{ + namespace TriangulationImplementation + { + class TriaObjectView; + } +} // namespace internal +#endif + namespace internal { namespace TriangulationImplementation @@ -35,6 +46,9 @@ namespace internal * by the (global) indices of their faces, which are cells of dimension * structdim-1 or vertices if structdim=1. * + * @note This class is only used during setup of the Triangulation and its + * content is saved into a single long vector inside of `TriaObjects`. + * * @author Guido Kanschat, 2007 */ template @@ -104,12 +118,70 @@ namespace internal void serialize(Archive &ar, const unsigned int version); - protected: + private: /** * Global indices of the face iterators bounding this cell if dim@>1, * and the two vertex indices in 1d. */ int faces[GeometryInfo::faces_per_cell]; + + friend TriaObjectView; + }; + + /** + * View onto the current geometric object and its faces. + * + * @note The geometric objects are not saved as separate instances of + * TriaObject but in a single vector in TriaObjects. + */ + class TriaObjectView + { + public: + /** + * Constructor. + * + * @param faces ArrayView inside of the vector in TriaObjects. + */ + TriaObjectView(const ArrayView &faces) + : faces(faces) + {} + + /** + * Store the content of @p other in the vector of TriaObjects. + */ + template + TriaObjectView & + operator=(const TriaObject &other) + { + for (unsigned int i = 0; i < faces.size(); ++i) + faces[i] = other.faces[i]; + + return *this; + } + + /** + * Return index of the @p i-th face. + */ + int + face(const unsigned int i) const + { + return faces[i]; + } + + /** + * Set index of the @p i-th face. + */ + void + set_face(const unsigned int i, const int index) + { + faces[i] = index; + } + + private: + /** + * List of face this object is made up. + */ + const ArrayView faces; }; //----------------------------------------------------------------------// diff --git a/include/deal.II/grid/tria_objects.h b/include/deal.II/grid/tria_objects.h index e13eeee8d0..21c7166915 100644 --- a/include/deal.II/grid/tria_objects.h +++ b/include/deal.II/grid/tria_objects.h @@ -18,6 +18,7 @@ #include +#include #include #include @@ -27,18 +28,6 @@ DEAL_II_NAMESPACE_OPEN -// TODO: This should all be cleaned up. Currently, only a single -// function in the library makes use of the odd specializations, and -// this function is Triangulation::execute_refinement() in 3D. I -// assume, that the other refinement functions would profit from using -// next_free_single_object() and next_free_pair_object, but they seem -// to get around it. - -// TODO: The TriaObjects class contains a std::vector. This is only an -// efficient storage scheme if G is relatively well packed, i.e. it's not a -// bool and then an integer and then a double, etc. Verify that this is -// actually the case. - // Forward declarations #ifndef DOXYGEN template @@ -63,9 +52,8 @@ namespace internal * classes. * * @author Tobias Leicht, Guido Kanschat, 2006, 2007, 2012 + * @author Peter Munch, 2020 */ - - template class TriaObjects { public: @@ -74,11 +62,32 @@ namespace internal */ TriaObjects(); + /** + * Constructor for a specific dimension. + */ + TriaObjects(unsigned int structdim); + + private: + unsigned int structdim; + /** * Vector of the objects belonging to this level. The index of the * object equals the index in this container. */ - std::vector cells; + std::vector cells; + + public: + /** + * Return number of geometric objects stored by this class. + */ + unsigned int + n_objects() const; + + /** + * Return a view on the @p index-th geometric object. + */ + TriaObjectView + get_object(const unsigned int index); /** * Index of the even children of an object. Since when objects are @@ -98,7 +107,7 @@ namespace internal * vector might be replaced by vector > (dim, vector * (n_cells)) which is more memory efficient. */ - std::vector> refinement_cases; + std::vector refinement_cases; /** * Vector storing whether an object is used in the @p cells vector. @@ -202,8 +211,8 @@ namespace internal * * @todo This function is not instantiated for the codim-one case */ - template - dealii::TriaRawIterator> + template + dealii::TriaRawIterator> next_free_single_object(const Triangulation &tria); /** @@ -217,8 +226,8 @@ namespace internal * * @todo This function is not instantiated for the codim-one case */ - template - dealii::TriaRawIterator> + template + dealii::TriaRawIterator> next_free_pair_object(const Triangulation &tria); /** @@ -230,30 +239,6 @@ namespace internal next_free_hex(const Triangulation &tria, const unsigned int level); - /** - * Clear all the data contained in this object. - */ - void - clear(); - - /** - * The orientation of the face number face of the cell with - * number cell. The return value is true, if - * the normal vector points the usual way - * (GeometryInfo::unit_normal_orientation) and false else. - * - * The result is always true in this class, but derived - * classes will reimplement this. - * - * @warning There is a bug in the class hierarchy right now. Avoid ever - * calling this function through a reference, since you might end up - * with the base class function instead of the derived class. Still, we - * do not want to make it virtual for efficiency reasons. - */ - bool - face_orientation(const unsigned int cell, const unsigned int face) const; - - /** * Access to user pointers. */ @@ -415,187 +400,71 @@ namespace internal mutable UserDataType user_data_type; }; - /** - * For hexahedra the data of TriaObjects needs to be extended, as we can - * obtain faces (quads) in non-standard-orientation, therefore we declare - * a class TriaObjectsHex, which additionally contains a bool-vector of - * the face-orientations. - */ - class TriaObjectsHex : public TriaObjects> - { - public: - /** - * The orientation of the face number face of the cell with - * number cell. The return value is true, if - * the normal vector points the usual way - * (GeometryInfo::unit_normal_orientation) and false if - * they point in opposite direction. - */ - bool - face_orientation(const unsigned int cell, const unsigned int face) const; - - /** - * For edges, we enforce a standard convention that opposite - * edges should be parallel. Now, that's enforceable in most - * cases, and we have code that makes sure that if a mesh allows - * this to happen, that we have this convention. We also know - * that it is always possible to have opposite faces have - * parallel normal vectors. (For both things, see the paper by - * Agelek, Anderson, Bangerth, Barth in the ACM Transactions on - * Mathematical Software mentioned in the documentation of the - * GridReordering class.) - * - * The problem is that we originally had another condition, namely that - * faces 0, 2 and 6 have normals that point into the cell, while the - * other faces have normals that point outward. It turns out that this - * is not always possible. In effect, we have to store whether the - * normal vector of each face of each cell follows this convention or - * not. If this is so, then this variable stores a @p true value, - * otherwise a @p false value. - * - * In effect, this field has 6*n_cells elements, being the - * number of cells times the six faces each has. - * - * flip = rotation by 180 degrees - * - * rotation by 90 degrees - */ - std::vector face_orientations; + //----------------------------------------------------------------------// - /** - * Assert that enough space is allocated to accommodate - * new_objs new objects. This function does not only call - * vector::reserve(), but does really append the needed - * elements. - */ - void - reserve_space(const unsigned int new_objs); + inline unsigned int + TriaObjects::n_objects() const + { + // assume that each cell has the same number of faces - /** - * Clear all the data contained in this object. - */ - void - clear(); + unsigned int faces_per_cell = 1; - /** - * Check the memory consistency of the different containers. Should only - * be called with the preprocessor flag @p DEBUG set. The function - * should be called from the functions of the higher TriaLevel classes. - */ - void - monitor_memory(const unsigned int true_dimension) const; + if (this->structdim == 1) + faces_per_cell = GeometryInfo<1>::faces_per_cell; + else if (this->structdim == 2) + faces_per_cell = GeometryInfo<2>::faces_per_cell; + else if (this->structdim == 3) + faces_per_cell = GeometryInfo<3>::faces_per_cell; + else + AssertThrow(false, ExcNotImplemented()); - /** - * Determine an estimate for the memory consumption (in bytes) of this - * object. - */ - std::size_t - memory_consumption() const; + return cells.size() / faces_per_cell; + } - /** - * Read or write the data of this object to or from a stream for the - * purpose of serialization - */ - template - void - serialize(Archive &ar, const unsigned int version); - }; - /** - * For quadrilaterals in 3D the data of TriaObjects needs to be extended, - * as we can obtain faces (quads) with lines in non-standard-orientation, - * therefore we declare a class TriaObjectsQuad3D, which additionally - * contains a bool-vector of the line-orientations. - */ - class TriaObjectsQuad3D : public TriaObjects> + inline TriaObjectView + TriaObjects::get_object(const unsigned int index) { - public: - /** - * The orientation of the face number face of the cell with - * number cell. The return value is true, if - * the normal vector points the usual way - * (GeometryInfo::unit_normal_orientation) and false if - * they point in opposite direction. - */ - bool - face_orientation(const unsigned int cell, const unsigned int face) const; - - - /** - * In effect, this field has 4*n_quads elements, being the - * number of quads times the four lines each has. - */ - std::vector line_orientations; + // assume that each cell has the same number of faces - /** - * Assert that enough space is allocated to accommodate - * new_quads_in_pairs new quads, stored in pairs, plus - * new_quads_single stored individually. This function does - * not only call vector::reserve(), but does really append - * the needed elements. - */ - void - reserve_space(const unsigned int new_quads_in_pairs, - const unsigned int new_quads_single = 0); - - /** - * Clear all the data contained in this object. - */ - void - clear(); + unsigned int faces_per_cell = 1; - /** - * Check the memory consistency of the different containers. Should only - * be called with the preprocessor flag @p DEBUG set. The function - * should be called from the functions of the higher TriaLevel classes. - */ - void - monitor_memory(const unsigned int true_dimension) const; - - /** - * Determine an estimate for the memory consumption (in bytes) of this - * object. - */ - std::size_t - memory_consumption() const; + if (this->structdim == 1) + faces_per_cell = GeometryInfo<1>::faces_per_cell; + else if (this->structdim == 2) + faces_per_cell = GeometryInfo<2>::faces_per_cell; + else if (this->structdim == 3) + faces_per_cell = GeometryInfo<3>::faces_per_cell; + else + AssertThrow(false, ExcNotImplemented()); - /** - * Read or write the data of this object to or from a stream for the - * purpose of serialization - */ - template - void - serialize(Archive &ar, const unsigned int version); - }; + return { + ArrayView(cells.data() + index * faces_per_cell, faces_per_cell)}; + } - //----------------------------------------------------------------------// - template - inline TriaObjects::BoundaryOrMaterialId::BoundaryOrMaterialId() + inline TriaObjects::BoundaryOrMaterialId::BoundaryOrMaterialId() { material_id = numbers::invalid_material_id; } - template - std::size_t - TriaObjects::BoundaryOrMaterialId::memory_consumption() + inline std::size_t + TriaObjects::BoundaryOrMaterialId::memory_consumption() { return sizeof(BoundaryOrMaterialId); } - template template void - TriaObjects::BoundaryOrMaterialId::serialize( - Archive &ar, - const unsigned int /*version*/) + TriaObjects::BoundaryOrMaterialId::serialize(Archive &ar, + const unsigned int /*version*/) { // serialize this // structure by @@ -612,18 +481,8 @@ namespace internal } - template - inline bool - TriaObjects::face_orientation(const unsigned int, - const unsigned int) const - { - return true; - } - - - template inline void *& - TriaObjects::user_pointer(const unsigned int i) + TriaObjects::user_pointer(const unsigned int i) { Assert(user_data_type == data_unknown || user_data_type == data_pointer, ExcPointerIndexClash()); @@ -634,9 +493,8 @@ namespace internal } - template inline const void * - TriaObjects::user_pointer(const unsigned int i) const + TriaObjects::user_pointer(const unsigned int i) const { Assert(user_data_type == data_unknown || user_data_type == data_pointer, ExcPointerIndexClash()); @@ -647,9 +505,8 @@ namespace internal } - template inline unsigned int & - TriaObjects::user_index(const unsigned int i) + TriaObjects::user_index(const unsigned int i) { Assert(user_data_type == data_unknown || user_data_type == data_index, ExcPointerIndexClash()); @@ -660,27 +517,34 @@ namespace internal } - template inline void - TriaObjects::clear_user_data(const unsigned int i) + TriaObjects::clear_user_data(const unsigned int i) { AssertIndexRange(i, user_data.size()); user_data[i].i = 0; } - template - inline TriaObjects::TriaObjects() - : next_free_single(numbers::invalid_unsigned_int) + inline TriaObjects::TriaObjects() + : structdim(-1) + , next_free_single(numbers::invalid_unsigned_int) + , next_free_pair(numbers::invalid_unsigned_int) + , reverse_order_next_free_single(false) + , user_data_type(data_unknown) + {} + + + inline TriaObjects::TriaObjects(const unsigned int structdim) + : structdim(structdim) + , next_free_single(numbers::invalid_unsigned_int) , next_free_pair(numbers::invalid_unsigned_int) , reverse_order_next_free_single(false) , user_data_type(data_unknown) {} - template inline unsigned int - TriaObjects::user_index(const unsigned int i) const + TriaObjects::user_index(const unsigned int i) const { Assert(user_data_type == data_unknown || user_data_type == data_index, ExcPointerIndexClash()); @@ -691,28 +555,25 @@ namespace internal } - template inline void - TriaObjects::clear_user_data() + TriaObjects::clear_user_data() { user_data_type = data_unknown; - for (unsigned int i = 0; i < user_data.size(); ++i) - user_data[i].p = nullptr; + for (auto &data : user_data) + data.p = nullptr; } - template inline void - TriaObjects::clear_user_flags() + TriaObjects::clear_user_flags() { user_flags.assign(user_flags.size(), false); } - template template void - TriaObjects::UserData::serialize(Archive &ar, const unsigned int) + TriaObjects::UserData::serialize(Archive &ar, const unsigned int) { // serialize this as an integer ar &i; @@ -720,11 +581,11 @@ namespace internal - template template void - TriaObjects::serialize(Archive &ar, const unsigned int) + TriaObjects::serialize(Archive &ar, const unsigned int) { + ar &structdim; ar &cells &children; ar & refinement_cases; ar & used; @@ -736,63 +597,18 @@ namespace internal } - template - void - TriaObjectsHex::serialize(Archive &ar, const unsigned int version) - { - this->TriaObjects>::serialize(ar, version); - - ar &face_orientations; - } - - - template - void - TriaObjectsQuad3D::serialize(Archive &ar, const unsigned int version) - { - this->TriaObjects>::serialize(ar, version); - - ar &line_orientations; - } - - - //----------------------------------------------------------------------// - - inline bool - TriaObjectsHex::face_orientation(const unsigned int cell, - const unsigned int face) const - { - AssertIndexRange(cell, - face_orientations.size() / - GeometryInfo<3>::faces_per_cell); - AssertIndexRange(face, GeometryInfo<3>::faces_per_cell); - - return face_orientations[cell * GeometryInfo<3>::faces_per_cell + face] & - 1; - } - - //----------------------------------------------------------------------// - - inline bool - TriaObjectsQuad3D::face_orientation(const unsigned int cell, - const unsigned int face) const - { - return line_orientations[cell * GeometryInfo<2>::faces_per_cell + face] & - 1; - } - - //----------------------------------------------------------------------// - template - template - dealii::TriaRawIterator> - TriaObjects::next_free_single_object( + template + dealii::TriaRawIterator> + TriaObjects::next_free_single_object( const Triangulation &tria) { // TODO: Think of a way to ensure that we are using the correct // triangulation, i.e. the one containing *this. + AssertDimension(structdim_, this->structdim); + int pos = next_free_single, last = used.size() - 1; if (!reverse_order_next_free_single) { @@ -828,24 +644,24 @@ namespace internal else // no valid single object anymore return dealii::TriaRawIterator< - dealii::TriaAccessor>(&tria, -1, -1); + dealii::TriaAccessor>(&tria, -1, -1); } return dealii::TriaRawIterator< - dealii::TriaAccessor>(&tria, 0, pos); + dealii::TriaAccessor>(&tria, 0, pos); } - template - template - dealii::TriaRawIterator> - TriaObjects::next_free_pair_object( - const Triangulation &tria) + template + dealii::TriaRawIterator> + TriaObjects::next_free_pair_object(const Triangulation &tria) { // TODO: Think of a way to ensure that we are using the correct // triangulation, i.e. the one containing *this. + AssertDimension(structdim_, this->structdim); + int pos = next_free_pair, last = used.size() - 1; for (; pos < last; ++pos) if (!used[pos]) @@ -858,22 +674,13 @@ namespace internal if (pos >= last) // no free slot return dealii::TriaRawIterator< - dealii::TriaAccessor>(&tria, -1, -1); + dealii::TriaAccessor>(&tria, -1, -1); else next_free_pair = pos + 2; return dealii::TriaRawIterator< - dealii::TriaAccessor>(&tria, 0, pos); + dealii::TriaAccessor>(&tria, 0, pos); } - - - - // declaration of explicit specializations - - template <> - void - TriaObjects>::monitor_memory(const unsigned int) const; - } // namespace TriangulationImplementation } // namespace internal diff --git a/source/grid/tria.cc b/source/grid/tria.cc index 71a4988d24..8e8857d12c 100644 --- a/source/grid/tria.cc +++ b/source/grid/tria.cc @@ -1765,8 +1765,8 @@ namespace internal // reserve enough space triangulation.levels.push_back( - std::make_unique< - internal::TriangulationImplementation::TriaLevel>()); + std::make_unique( + dim)); triangulation.levels[0]->reserve_space(cells.size(), dim, spacedim); triangulation.levels[0]->cells.reserve_space(0, cells.size()); @@ -2035,10 +2035,11 @@ namespace internal // reserve enough space triangulation.levels.push_back( - std::make_unique< - internal::TriangulationImplementation::TriaLevel>()); - triangulation.faces = std::make_unique< - internal::TriangulationImplementation::TriaFaces>(); + std::make_unique( + dim)); + triangulation.faces = + std::make_unique( + dim); triangulation.levels[0]->reserve_space(cells.size(), dim, spacedim); triangulation.faces->lines.reserve_space(0, needed_lines.size()); triangulation.levels[0]->cells.reserve_space(0, cells.size()); @@ -2415,10 +2416,11 @@ namespace internal // for the lines // reserve enough space triangulation.levels.push_back( - std::make_unique< - internal::TriangulationImplementation::TriaLevel>()); - triangulation.faces = std::make_unique< - internal::TriangulationImplementation::TriaFaces>(); + std::make_unique( + dim)); + triangulation.faces = + std::make_unique( + dim); triangulation.levels[0]->reserve_space(cells.size(), dim, spacedim); triangulation.faces->lines.reserve_space(0, needed_lines.size()); @@ -2647,6 +2649,7 @@ namespace internal // the arrays of the Triangulation // // first reserve enough space + triangulation.faces->reserve_space(0, needed_quads.size()); triangulation.faces->quads.reserve_space(0, needed_quads.size()); { @@ -3905,22 +3908,22 @@ namespace internal l < triangulation.levels.size(); ++l) for (unsigned int h = 0; - h < triangulation.levels[l] - ->cells.cells.size(); + h < + triangulation.levels[l]->cells.n_objects(); ++h) for (const unsigned int q : GeometryInfo::face_indices()) { const int index = triangulation.levels[l] - ->cells.cells[h] + ->cells.get_object(h) .face(q); if (index == switch_1_index) triangulation.levels[l] - ->cells.cells[h] + ->cells.get_object(h) .set_face(q, switch_2_index); else if (index == switch_2_index) triangulation.levels[l] - ->cells.cells[h] + ->cells.get_object(h) .set_face(q, switch_1_index); } // now we have to copy @@ -4653,7 +4656,7 @@ namespace internal { triangulation.levels.push_back( std::make_unique< - internal::TriangulationImplementation::TriaLevel>()); + internal::TriangulationImplementation::TriaLevel>(dim)); break; } } @@ -4897,7 +4900,7 @@ namespace internal { triangulation.levels.push_back( std::make_unique< - internal::TriangulationImplementation::TriaLevel>()); + internal::TriangulationImplementation::TriaLevel>(dim)); break; } } @@ -5228,7 +5231,7 @@ namespace internal { triangulation.levels.push_back( std::make_unique< - internal::TriangulationImplementation::TriaLevel>()); + internal::TriangulationImplementation::TriaLevel>(dim)); break; } } @@ -5469,6 +5472,8 @@ namespace internal triangulation.faces->lines.reserve_space(needed_lines_pair, needed_lines_single); // reserve space for needed_quads new quads stored in pairs + triangulation.faces->reserve_space(needed_quads_pair, + needed_quads_single); triangulation.faces->quads.reserve_space(needed_quads_pair, needed_quads_single); @@ -5549,7 +5554,7 @@ namespace internal // two child lines (++ takes care of the end of the // vector) next_unused_line = - triangulation.faces->lines.next_free_pair_object( + triangulation.faces->lines.template next_free_pair_object<1>( triangulation); Assert(next_unused_line.state() == IteratorState::valid, ExcInternalError()); @@ -5677,8 +5682,8 @@ namespace internal new_line; new_line = - triangulation.faces->lines.next_free_single_object( - triangulation); + triangulation.faces->lines + .template next_free_single_object<1>(triangulation); Assert( new_line->used() == false, ExcMessage( @@ -5739,8 +5744,8 @@ namespace internal new_quads[2]; next_unused_quad = - triangulation.faces->quads.next_free_pair_object( - triangulation); + triangulation.faces->quads + .template next_free_pair_object<2>(triangulation); new_quads[0] = next_unused_quad; Assert( new_quads[0]->used() == false, @@ -5897,8 +5902,9 @@ namespace internal new_child[2]; new_child[0] = new_child[1] = - triangulation.faces->lines.next_free_pair_object( - triangulation); + triangulation.faces->lines + .template next_free_pair_object<1>( + triangulation); ++new_child[1]; new_child[0]->set_used_flag(); @@ -5912,19 +5918,20 @@ namespace internal // loop over all quads and replace the old // lines for (unsigned int q = 0; - q < triangulation.faces->quads.cells.size(); + q < triangulation.faces->quads.n_objects(); ++q) for (unsigned int l = 0; l < GeometryInfo::lines_per_face; ++l) { const int this_index = - triangulation.faces->quads.cells[q].face(l); + triangulation.faces->quads.get_object(q) + .face(l); if (this_index == old_index_0) - triangulation.faces->quads.cells[q] + triangulation.faces->quads.get_object(q) .set_face(l, new_index_0); else if (this_index == old_index_1) - triangulation.faces->quads.cells[q] + triangulation.faces->quads.get_object(q) .set_face(l, new_index_1); } // now we have to copy all information of @@ -6012,22 +6019,22 @@ namespace internal ++l) for (unsigned int h = 0; h < - triangulation.levels[l]->cells.cells.size(); + triangulation.levels[l]->cells.n_objects(); ++h) for (const unsigned int q : GeometryInfo::face_indices()) { const int face_index = triangulation.levels[l] - ->cells.cells[h] + ->cells.get_object(h) .face(q); if (face_index == switch_1_index) triangulation.levels[l] - ->cells.cells[h] + ->cells.get_object(h) .set_face(q, switch_2_index); else if (face_index == switch_2_index) triangulation.levels[l] - ->cells.cells[h] + ->cells.get_object(h) .set_face(q, switch_1_index); } // now we have to copy all information of @@ -6222,8 +6229,9 @@ namespace internal // now search a slot for the two // child lines next_unused_line = - triangulation.faces->lines.next_free_pair_object( - triangulation); + triangulation.faces->lines + .template next_free_pair_object<1>( + triangulation); // set the child pointer of the present // line @@ -6328,8 +6336,8 @@ namespace internal // anisotropically and the two lines end up // as children of new line next_unused_line = - triangulation.faces->lines.next_free_pair_object( - triangulation); + triangulation.faces->lines + .template next_free_pair_object<1>(triangulation); new_lines[i] = next_unused_line; ++next_unused_line; @@ -6444,8 +6452,8 @@ namespace internal new_quads[4]; next_unused_quad = - triangulation.faces->quads.next_free_pair_object( - triangulation); + triangulation.faces->quads + .template next_free_pair_object<2>(triangulation); new_quads[0] = next_unused_quad; Assert( @@ -6461,8 +6469,8 @@ namespace internal "Internal error: We want to use a cell during refinement that should be unused, but turns out not to be.")); next_unused_quad = - triangulation.faces->quads.next_free_pair_object( - triangulation); + triangulation.faces->quads + .template next_free_pair_object<2>(triangulation); new_quads[2] = next_unused_quad; Assert( new_quads[2]->used() == false, @@ -6634,8 +6642,8 @@ namespace internal for (unsigned int i = 0; i < n_new_lines; ++i) { new_lines[i] = - triangulation.faces->lines.next_free_single_object( - triangulation); + triangulation.faces->lines + .template next_free_single_object<1>(triangulation); Assert( new_lines[i]->used() == false, @@ -6661,8 +6669,8 @@ namespace internal for (unsigned int i = 0; i < n_new_quads; ++i) { new_quads[i] = - triangulation.faces->quads.next_free_single_object( - triangulation); + triangulation.faces->quads + .template next_free_single_object<2>(triangulation); Assert( new_quads[i]->used() == false, @@ -10409,9 +10417,8 @@ Triangulation::copy_triangulation( smooth_grid = other_tria.smooth_grid; if (dim > 1) - faces = - std::make_unique>( - *other_tria.faces); + faces = std::make_unique( + *other_tria.faces); auto bdry_iterator = other_tria.manifold.begin(); for (; bdry_iterator != other_tria.manifold.end(); ++bdry_iterator) @@ -10421,7 +10428,7 @@ Triangulation::copy_triangulation( levels.reserve(other_tria.levels.size()); for (unsigned int level = 0; level < other_tria.levels.size(); ++level) levels.push_back( - std::make_unique>( + std::make_unique( *other_tria.levels[level])); number_cache = other_tria.number_cache; @@ -10962,37 +10969,30 @@ Triangulation::get_anisotropic_refinement_flag() const namespace { // clear user data of cells - template void - clear_user_data( - std::vector< - std::unique_ptr>> - &levels) + clear_user_data(std::vector> &levels) { - for (unsigned int level = 0; level < levels.size(); ++level) - levels[level]->cells.clear_user_data(); + for (auto &level : levels) + level->cells.clear_user_data(); } // clear user data of faces - void clear_user_data(internal::TriangulationImplementation::TriaFaces<1> *) - { - // nothing to do in 1d - } - - void - clear_user_data(internal::TriangulationImplementation::TriaFaces<2> *faces) + clear_user_data(internal::TriangulationImplementation::TriaFaces *faces) { - faces->lines.clear_user_data(); - } + if (faces->dim == 2) + { + faces->lines.clear_user_data(); + } - void - clear_user_data(internal::TriangulationImplementation::TriaFaces<3> *faces) - { - faces->lines.clear_user_data(); - faces->quads.clear_user_data(); + if (faces->dim == 3) + { + faces->lines.clear_user_data(); + faces->quads.clear_user_data(); + } } } // namespace @@ -11010,24 +11010,27 @@ Triangulation::clear_user_data() namespace { - void clear_user_flags_line( - std::vector< - std::unique_ptr>> - &levels, - internal::TriangulationImplementation::TriaFaces<1> *) - { - for (const auto &level : levels) - level->cells.clear_user_flags(); - } - - template void clear_user_flags_line( + unsigned int dim, std::vector< - std::unique_ptr>> &, - internal::TriangulationImplementation::TriaFaces *faces) + std::unique_ptr> + & levels, + internal::TriangulationImplementation::TriaFaces *faces) { - faces->lines.clear_user_flags(); + if (dim == 1) + { + for (const auto &level : levels) + level->cells.clear_user_flags(); + } + else if (dim == 2 || dim == 3) + { + faces->lines.clear_user_flags(); + } + else + { + Assert(false, ExcNotImplemented()) + } } } // namespace @@ -11036,39 +11039,38 @@ template void Triangulation::clear_user_flags_line() { - dealii::clear_user_flags_line(levels, faces.get()); + dealii::clear_user_flags_line(dim, levels, faces.get()); } namespace { - void clear_user_flags_quad( - std::vector< - std::unique_ptr>> &, - internal::TriangulationImplementation::TriaFaces<1> *) - { - // nothing to do in 1d - } - - void clear_user_flags_quad( - std::vector< - std::unique_ptr>> - &levels, - internal::TriangulationImplementation::TriaFaces<2> *) - { - for (const auto &level : levels) - level->cells.clear_user_flags(); - } - - template void clear_user_flags_quad( + unsigned int dim, std::vector< - std::unique_ptr>> &, - internal::TriangulationImplementation::TriaFaces *faces) + std::unique_ptr> + & levels, + internal::TriangulationImplementation::TriaFaces *faces) { - faces->quads.clear_user_flags(); + if (dim == 1) + { + // nothing to do in 1d + } + else if (dim == 2) + { + for (const auto &level : levels) + level->cells.clear_user_flags(); + } + else if (dim == 3) + { + faces->quads.clear_user_flags(); + } + else + { + Assert(false, ExcNotImplemented()) + } } } // namespace @@ -11077,38 +11079,38 @@ template void Triangulation::clear_user_flags_quad() { - dealii::clear_user_flags_quad(levels, faces.get()); + dealii::clear_user_flags_quad(dim, levels, faces.get()); } namespace { - void clear_user_flags_hex( - std::vector< - std::unique_ptr>> &, - internal::TriangulationImplementation::TriaFaces<1> *) - { - // nothing to do in 1d - } - - - void clear_user_flags_hex( - std::vector< - std::unique_ptr>> &, - internal::TriangulationImplementation::TriaFaces<2> *) - { - // nothing to do in 2d - } - - void clear_user_flags_hex( + void + clear_user_flags_hex( + unsigned int dim, std::vector< - std::unique_ptr>> + std::unique_ptr> &levels, - internal::TriangulationImplementation::TriaFaces<3> *) + internal::TriangulationImplementation::TriaFaces *) { - for (const auto &level : levels) - level->cells.clear_user_flags(); + if (dim == 1) + { + // nothing to do in 1d + } + else if (dim == 2) + { + // nothing to do in 2d + } + else if (dim == 3) + { + for (const auto &level : levels) + level->cells.clear_user_flags(); + } + else + { + Assert(false, ExcNotImplemented()) + } } } // namespace @@ -11117,7 +11119,7 @@ template void Triangulation::clear_user_flags_hex() { - dealii::clear_user_flags_hex(levels, faces.get()); + dealii::clear_user_flags_hex(dim, levels, faces.get()); } @@ -11986,14 +11988,14 @@ typename Triangulation::cell_iterator Triangulation::last() const { const unsigned int level = levels.size() - 1; - if (levels[level]->cells.cells.size() == 0) + if (levels[level]->cells.n_objects() == 0) return end(level); // find the last raw iterator on // this level raw_cell_iterator ri(const_cast *>(this), level, - levels[level]->cells.cells.size() - 1); + levels[level]->cells.n_objects() - 1); // then move to the last used one if (ri->used() == true) @@ -12312,7 +12314,7 @@ Triangulation::begin_raw_line(const unsigned int level) const // triangulation. Assert(level < levels.size(), ExcInvalidLevel(level, levels.size())); - if (level >= levels.size() || levels[level]->cells.cells.size() == 0) + if (level >= levels.size() || levels[level]->cells.n_objects() == 0) return end_line(); return raw_line_iterator( @@ -12402,7 +12404,7 @@ Triangulation::begin_raw_quad(const unsigned int level) const // triangulation. Assert(level < levels.size(), ExcInvalidLevel(level, levels.size())); - if (level >= levels.size() || levels[level]->cells.cells.size() == 0) + if (level >= levels.size() || levels[level]->cells.n_objects() == 0) return end_quad(); return raw_quad_iterator( @@ -12502,7 +12504,7 @@ Triangulation::begin_raw_hex(const unsigned int level) const // triangulation. Assert(level < levels.size(), ExcInvalidLevel(level, levels.size())); - if (level >= levels.size() || levels[level]->cells.cells.size() == 0) + if (level >= levels.size() || levels[level]->cells.n_objects() == 0) return end_hex(); return raw_hex_iterator( @@ -12781,7 +12783,7 @@ unsigned int Triangulation<1, 1>::n_raw_lines(const unsigned int level) const { AssertIndexRange(level, n_levels()); - return levels[level]->cells.cells.size(); + return levels[level]->cells.n_objects(); } @@ -12800,7 +12802,7 @@ unsigned int Triangulation<1, 2>::n_raw_lines(const unsigned int level) const { AssertIndexRange(level, n_levels()); - return levels[level]->cells.cells.size(); + return levels[level]->cells.n_objects(); } @@ -12818,7 +12820,7 @@ unsigned int Triangulation<1, 3>::n_raw_lines(const unsigned int level) const { AssertIndexRange(level, n_levels()); - return levels[level]->cells.cells.size(); + return levels[level]->cells.n_objects(); } template <> @@ -12844,7 +12846,7 @@ template unsigned int Triangulation::n_raw_lines() const { - return faces->lines.cells.size(); + return faces->lines.n_objects(); } @@ -13047,7 +13049,7 @@ unsigned int Triangulation<2, 2>::n_raw_quads(const unsigned int level) const { AssertIndexRange(level, n_levels()); - return levels[level]->cells.cells.size(); + return levels[level]->cells.n_objects(); } @@ -13057,7 +13059,7 @@ unsigned int Triangulation<2, 3>::n_raw_quads(const unsigned int level) const { AssertIndexRange(level, n_levels()); - return levels[level]->cells.cells.size(); + return levels[level]->cells.n_objects(); } @@ -13085,7 +13087,7 @@ template <> unsigned int Triangulation<3, 3>::n_raw_quads() const { - return faces->quads.cells.size(); + return faces->quads.n_objects(); } @@ -13177,7 +13179,7 @@ unsigned int Triangulation<3, 3>::n_raw_hexs(const unsigned int level) const { AssertIndexRange(level, n_levels()); - return levels[level]->cells.cells.size(); + return levels[level]->cells.n_objects(); } @@ -13486,8 +13488,8 @@ Triangulation::execute_refinement() *this, levels.size(), number_cache); #ifdef DEBUG - for (unsigned int level = 0; level < levels.size(); ++level) - levels[level]->cells.monitor_memory(dim); + for (const auto &level : levels) + level->cells.monitor_memory(dim); // check whether really all refinement flags are reset (also of // previously non-active cells which we may not have touched. If the @@ -15111,8 +15113,8 @@ Triangulation::memory_consumption() const { std::size_t mem = 0; mem += MemoryConsumption::memory_consumption(levels); - for (unsigned int i = 0; i < levels.size(); ++i) - mem += MemoryConsumption::memory_consumption(*levels[i]); + for (const auto &level : levels) + mem += MemoryConsumption::memory_consumption(*level); mem += MemoryConsumption::memory_consumption(vertices); mem += MemoryConsumption::memory_consumption(vertices_used); mem += sizeof(manifold); diff --git a/source/grid/tria_accessor.cc b/source/grid/tria_accessor.cc index 0e584aef30..13654488ab 100644 --- a/source/grid/tria_accessor.cc +++ b/source/grid/tria_accessor.cc @@ -1494,7 +1494,7 @@ TriaAccessor::set( const internal::TriangulationImplementation::TriaObject &object) const { - this->objects().cells[this->present_index] = object; + this->objects().get_object(this->present_index) = object; } diff --git a/source/grid/tria_faces.cc b/source/grid/tria_faces.cc index 1dd6e930ac..1f547367d4 100644 --- a/source/grid/tria_faces.cc +++ b/source/grid/tria_faces.cc @@ -25,25 +25,87 @@ namespace internal { namespace TriangulationImplementation { + TriaFaces::TriaFaces(const unsigned int dim) + : dim(dim) + , quads(2) + , lines(1) + {} + std::size_t - TriaFaces<1>::memory_consumption() const + TriaFaces::memory_consumption() const { + if (dim == 2) + return MemoryConsumption::memory_consumption(lines); + if (dim == 3) + return (MemoryConsumption::memory_consumption(quads) + + MemoryConsumption::memory_consumption(lines)); + return 0; } - - std::size_t - TriaFaces<2>::memory_consumption() const + void + TriaFaces::reserve_space(const unsigned int new_quads_in_pairs, + const unsigned int new_quads_single) { - return MemoryConsumption::memory_consumption(lines); - } + AssertDimension(this->dim, 3); + Assert(new_quads_in_pairs % 2 == 0, ExcInternalError()); - std::size_t - TriaFaces<3>::memory_consumption() const - { - return (MemoryConsumption::memory_consumption(quads) + - MemoryConsumption::memory_consumption(lines)); + unsigned int next_free_single = 0; + unsigned int next_free_pair = 0; + + // count the number of objects, of unused single objects and of + // unused pairs of objects + unsigned int n_quads = 0; + unsigned int n_unused_pairs = 0; + unsigned int n_unused_singles = 0; + for (unsigned int i = 0; i < quads.used.size(); ++i) + { + if (quads.used[i]) + ++n_quads; + else if (i + 1 < quads.used.size()) + { + if (quads.used[i + 1]) + { + ++n_unused_singles; + if (next_free_single == 0) + next_free_single = i; + } + else + { + ++n_unused_pairs; + if (next_free_pair == 0) + next_free_pair = i; + ++i; + } + } + else + ++n_unused_singles; + } + Assert(n_quads + 2 * n_unused_pairs + n_unused_singles == + quads.used.size(), + ExcInternalError()); + + // how many single quads are needed in addition to n_unused_quads? + const int additional_single_quads = new_quads_single - n_unused_singles; + + unsigned int new_size = + quads.used.size() + new_quads_in_pairs - 2 * n_unused_pairs; + if (additional_single_quads > 0) + new_size += additional_single_quads; + + // see above... + if (new_size > quads.n_objects()) + { + // reserve the field of the derived class + quads_line_orientations.reserve(new_size * + GeometryInfo<2>::lines_per_cell); + quads_line_orientations.insert(quads_line_orientations.end(), + new_size * + GeometryInfo<2>::lines_per_cell - + quads_line_orientations.size(), + true); + } } } // namespace TriangulationImplementation } // namespace internal diff --git a/source/grid/tria_levels.cc b/source/grid/tria_levels.cc index 9932ae4a0b..8ce78dfc9f 100644 --- a/source/grid/tria_levels.cc +++ b/source/grid/tria_levels.cc @@ -24,11 +24,10 @@ namespace internal { namespace TriangulationImplementation { - template void - TriaLevel::reserve_space(const unsigned int total_cells, - const unsigned int dimension, - const unsigned int space_dimension) + TriaLevel::reserve_space(const unsigned int total_cells, + const unsigned int dimension, + const unsigned int space_dimension) { // we need space for total_cells cells. Maybe we have more already // with those cells which are unused, so only allocate new space if @@ -41,7 +40,7 @@ namespace internal refine_flags.reserve(total_cells); refine_flags.insert(refine_flags.end(), total_cells - refine_flags.size(), - RefinementCase::no_refinement); + /*RefinementCase::no_refinement=*/0); coarsen_flags.reserve(total_cells); coarsen_flags.insert(coarsen_flags.end(), @@ -82,104 +81,24 @@ namespace internal neighbors.insert(neighbors.end(), total_cells * (2 * dimension) - neighbors.size(), std::make_pair(-1, -1)); - } - } - - - template - void - TriaLevel::monitor_memory(const unsigned int true_dimension) const - { - (void)true_dimension; - Assert(2 * true_dimension * refine_flags.size() == neighbors.size(), - ExcMemoryInexact(refine_flags.size(), neighbors.size())); - Assert(2 * true_dimension * coarsen_flags.size() == neighbors.size(), - ExcMemoryInexact(coarsen_flags.size(), neighbors.size())); - } - - - template - std::size_t - TriaLevel::memory_consumption() const - { - return (MemoryConsumption::memory_consumption(refine_flags) + - MemoryConsumption::memory_consumption(coarsen_flags) + - MemoryConsumption::memory_consumption(active_cell_indices) + - MemoryConsumption::memory_consumption(neighbors) + - MemoryConsumption::memory_consumption(subdomain_ids) + - MemoryConsumption::memory_consumption(level_subdomain_ids) + - MemoryConsumption::memory_consumption(parents) + - MemoryConsumption::memory_consumption(direction_flags) + - MemoryConsumption::memory_consumption(cells)); - } - // This specialization should be only temporary, until the TriaObjects - // classes are straightened out. - void - TriaLevel<3>::reserve_space(const unsigned int total_cells, - const unsigned int dimension, - const unsigned int space_dimension) - { - // we need space for total_cells - // cells. Maybe we have more already - // with those cells which are unused, - // so only allocate new space if needed. - // - // note that all arrays should have equal - // sizes (checked by @p{monitor_memory} - if (total_cells > refine_flags.size()) - { - refine_flags.reserve(total_cells); - refine_flags.insert(refine_flags.end(), - total_cells - refine_flags.size(), - RefinementCase<3>::no_refinement); - - coarsen_flags.reserve(total_cells); - coarsen_flags.insert(coarsen_flags.end(), - total_cells - coarsen_flags.size(), - false); - - active_cell_indices.reserve(total_cells); - active_cell_indices.insert(active_cell_indices.end(), - total_cells - active_cell_indices.size(), - numbers::invalid_unsigned_int); - - subdomain_ids.reserve(total_cells); - subdomain_ids.insert(subdomain_ids.end(), - total_cells - subdomain_ids.size(), - 0); - - level_subdomain_ids.reserve(total_cells); - level_subdomain_ids.insert(level_subdomain_ids.end(), - total_cells - level_subdomain_ids.size(), - 0); - - if (dimension < space_dimension) + if (dim == 3) { - direction_flags.reserve(total_cells); - direction_flags.insert(direction_flags.end(), - total_cells - direction_flags.size(), - true); + face_orientations.reserve(total_cells * + GeometryInfo<3>::faces_per_cell); + face_orientations.insert(face_orientations.end(), + total_cells * + GeometryInfo<3>::faces_per_cell - + face_orientations.size(), + true); } - else - direction_flags.clear(); - - parents.reserve((total_cells + 1) / 2); - parents.insert(parents.end(), - (total_cells + 1) / 2 - parents.size(), - -1); - - neighbors.reserve(total_cells * (2 * dimension)); - neighbors.insert(neighbors.end(), - total_cells * (2 * dimension) - neighbors.size(), - std::make_pair(-1, -1)); } } void - TriaLevel<3>::monitor_memory(const unsigned int true_dimension) const + TriaLevel::monitor_memory(const unsigned int true_dimension) const { (void)true_dimension; Assert(2 * true_dimension * refine_flags.size() == neighbors.size(), @@ -190,13 +109,14 @@ namespace internal std::size_t - TriaLevel<3>::memory_consumption() const + TriaLevel::memory_consumption() const { return (MemoryConsumption::memory_consumption(refine_flags) + MemoryConsumption::memory_consumption(coarsen_flags) + MemoryConsumption::memory_consumption(active_cell_indices) + MemoryConsumption::memory_consumption(neighbors) + MemoryConsumption::memory_consumption(subdomain_ids) + + MemoryConsumption::memory_consumption(level_subdomain_ids) + MemoryConsumption::memory_consumption(parents) + MemoryConsumption::memory_consumption(direction_flags) + MemoryConsumption::memory_consumption(cells)); @@ -204,8 +124,4 @@ namespace internal } // namespace TriangulationImplementation } // namespace internal - -template class internal::TriangulationImplementation::TriaLevel<1>; -template class internal::TriangulationImplementation::TriaLevel<2>; - DEAL_II_NAMESPACE_CLOSE diff --git a/source/grid/tria_objects.cc b/source/grid/tria_objects.cc index 05800a2042..d21a5e72c9 100644 --- a/source/grid/tria_objects.cc +++ b/source/grid/tria_objects.cc @@ -31,117 +31,202 @@ namespace internal { namespace TriangulationImplementation { - template void - TriaObjects::reserve_space(const unsigned int new_objects_in_pairs, - const unsigned int new_objects_single) + TriaObjects::reserve_space(const unsigned int new_objects_in_pairs, + const unsigned int new_objects_single) { - Assert(new_objects_in_pairs % 2 == 0, ExcInternalError()); - - next_free_single = 0; - next_free_pair = 0; - reverse_order_next_free_single = false; - - // count the number of objects, of unused single objects and of - // unused pairs of objects - unsigned int n_objects = 0; - unsigned int n_unused_pairs = 0; - unsigned int n_unused_singles = 0; - for (unsigned int i = 0; i < used.size(); ++i) + if (structdim <= 2) { - if (used[i]) - ++n_objects; - else if (i + 1 < used.size()) + Assert(new_objects_in_pairs % 2 == 0, ExcInternalError()); + + next_free_single = 0; + next_free_pair = 0; + reverse_order_next_free_single = false; + + // count the number of objects, of unused single objects and of + // unused pairs of objects + unsigned int n_objects = 0; + unsigned int n_unused_pairs = 0; + unsigned int n_unused_singles = 0; + for (unsigned int i = 0; i < used.size(); ++i) { - if (used[i + 1]) + if (used[i]) + ++n_objects; + else if (i + 1 < used.size()) { - ++n_unused_singles; - if (next_free_single == 0) - next_free_single = i; + if (used[i + 1]) + { + ++n_unused_singles; + if (next_free_single == 0) + next_free_single = i; + } + else + { + ++n_unused_pairs; + if (next_free_pair == 0) + next_free_pair = i; + ++i; + } } else - { - ++n_unused_pairs; - if (next_free_pair == 0) - next_free_pair = i; - ++i; - } + ++n_unused_singles; } - else - ++n_unused_singles; - } - Assert(n_objects + 2 * n_unused_pairs + n_unused_singles == used.size(), - ExcInternalError()); + Assert(n_objects + 2 * n_unused_pairs + n_unused_singles == + used.size(), + ExcInternalError()); + + // how many single objects are needed in addition to + // n_unused_objects? + const int additional_single_objects = + new_objects_single - n_unused_singles; + + unsigned int new_size = + used.size() + new_objects_in_pairs - 2 * n_unused_pairs; + if (additional_single_objects > 0) + new_size += additional_single_objects; + + // only allocate space if necessary + if (new_size > this->n_objects()) + { + unsigned int faces_per_cell = 1; + unsigned int max_children_per_cell = 1; + + if (this->structdim == 1) + faces_per_cell = GeometryInfo<1>::faces_per_cell; + else if (this->structdim == 2) + faces_per_cell = GeometryInfo<2>::faces_per_cell; + else if (this->structdim == 3) + faces_per_cell = GeometryInfo<3>::faces_per_cell; + else + AssertThrow(false, ExcNotImplemented()); + + if (this->structdim == 1) + max_children_per_cell = GeometryInfo<1>::max_children_per_cell; + else if (this->structdim == 2) + max_children_per_cell = GeometryInfo<2>::max_children_per_cell; + else if (this->structdim == 3) + max_children_per_cell = GeometryInfo<3>::max_children_per_cell; + else + AssertThrow(false, ExcNotImplemented()); - // how many single objects are needed in addition to - // n_unused_objects? - const int additional_single_objects = - new_objects_single - n_unused_singles; + cells.reserve(new_size * faces_per_cell); + cells.insert(cells.end(), + (new_size - this->n_objects()) * faces_per_cell, + -1); - unsigned int new_size = - used.size() + new_objects_in_pairs - 2 * n_unused_pairs; - if (additional_single_objects > 0) - new_size += additional_single_objects; + used.reserve(new_size); + used.insert(used.end(), new_size - used.size(), false); - // only allocate space if necessary - if (new_size > cells.size()) - { - cells.reserve(new_size); - cells.insert(cells.end(), new_size - cells.size(), G()); + user_flags.reserve(new_size); + user_flags.insert(user_flags.end(), + new_size - user_flags.size(), + false); + + const unsigned int factor = max_children_per_cell / 2; + children.reserve(factor * new_size); + children.insert(children.end(), + factor * new_size - children.size(), + -1); + + if (structdim > 1) + { + refinement_cases.reserve(new_size); + refinement_cases.insert(refinement_cases.end(), + new_size - refinement_cases.size(), + /*RefinementCase::no_refinement=*/0); + } - used.reserve(new_size); - used.insert(used.end(), new_size - used.size(), false); + // first reserve, then resize. Otherwise the std library can + // decide to allocate more entries. + boundary_or_material_id.reserve(new_size); + boundary_or_material_id.resize(new_size); - user_flags.reserve(new_size); - user_flags.insert(user_flags.end(), - new_size - user_flags.size(), - false); + user_data.reserve(new_size); + user_data.resize(new_size); - const unsigned int factor = - GeometryInfo::max_children_per_cell / 2; - children.reserve(factor * new_size); - children.insert(children.end(), - factor * new_size - children.size(), - -1); + manifold_id.reserve(new_size); + manifold_id.insert(manifold_id.end(), + new_size - manifold_id.size(), + numbers::flat_manifold_id); + } - if (G::dimension > 1) + if (n_unused_singles == 0) { - refinement_cases.reserve(new_size); - refinement_cases.insert( - refinement_cases.end(), - new_size - refinement_cases.size(), - RefinementCase::no_refinement); + next_free_single = new_size - 1; + reverse_order_next_free_single = true; } + } + else + { + const unsigned int new_hexes = new_objects_in_pairs; + + const unsigned int new_size = + new_hexes + std::count(used.begin(), used.end(), true); + + // see above... + if (new_size > n_objects()) + { + unsigned int faces_per_cell = 1; + + if (this->structdim == 1) + faces_per_cell = GeometryInfo<1>::faces_per_cell; + else if (this->structdim == 2) + faces_per_cell = GeometryInfo<2>::faces_per_cell; + else if (this->structdim == 3) + faces_per_cell = GeometryInfo<3>::faces_per_cell; + else + AssertThrow(false, ExcNotImplemented()); - // first reserve, then resize. Otherwise the std library can decide to - // allocate more entries. - boundary_or_material_id.reserve(new_size); - boundary_or_material_id.resize(new_size); + cells.reserve(new_size * faces_per_cell); + cells.insert(cells.end(), + (new_size - n_objects()) * faces_per_cell, + -1); - user_data.reserve(new_size); - user_data.resize(new_size); + used.reserve(new_size); + used.insert(used.end(), new_size - used.size(), false); - manifold_id.reserve(new_size); - manifold_id.insert(manifold_id.end(), - new_size - manifold_id.size(), - numbers::flat_manifold_id); - } + user_flags.reserve(new_size); + user_flags.insert(user_flags.end(), + new_size - user_flags.size(), + false); - if (n_unused_singles == 0) - { - next_free_single = new_size - 1; - reverse_order_next_free_single = true; + children.reserve(4 * new_size); + children.insert(children.end(), + 4 * new_size - children.size(), + -1); + + // for the following fields, we know exactly how many elements + // we need, so first reserve then resize (resize itself, at least + // with some compiler libraries, appears to round up the size it + // actually reserves) + boundary_or_material_id.reserve(new_size); + boundary_or_material_id.resize(new_size); + + manifold_id.reserve(new_size); + manifold_id.insert(manifold_id.end(), + new_size - manifold_id.size(), + numbers::flat_manifold_id); + + user_data.reserve(new_size); + user_data.resize(new_size); + + refinement_cases.reserve(new_size); + refinement_cases.insert(refinement_cases.end(), + new_size - refinement_cases.size(), + /*RefinementCase::no_refinement=*/0); + } + next_free_single = next_free_pair = 0; } } - template <> template typename dealii::Triangulation::raw_hex_iterator - TriaObjects>::next_free_hex( - const dealii::Triangulation &tria, - const unsigned int level) + TriaObjects::next_free_hex(const dealii::Triangulation &tria, + const unsigned int level) { + AssertDimension(this->structdim, 3); + // TODO: Think of a way to ensure that we are using the correct // triangulation, i.e. the one containing *this. @@ -167,240 +252,60 @@ namespace internal void - TriaObjectsHex::reserve_space(const unsigned int new_hexes) + TriaObjects::monitor_memory(const unsigned int) const { - const unsigned int new_size = - new_hexes + std::count(used.begin(), used.end(), true); - - // see above... - if (new_size > cells.size()) + if (this->structdim == 1) { - cells.reserve(new_size); - cells.insert(cells.end(), new_size - cells.size(), TriaObject<3>()); - - used.reserve(new_size); - used.insert(used.end(), new_size - used.size(), false); - - user_flags.reserve(new_size); - user_flags.insert(user_flags.end(), - new_size - user_flags.size(), - false); - - children.reserve(4 * new_size); - children.insert(children.end(), 4 * new_size - children.size(), -1); - - // for the following fields, we know exactly how many elements - // we need, so first reserve then resize (resize itself, at least - // with some compiler libraries, appears to round up the size it - // actually reserves) - boundary_or_material_id.reserve(new_size); - boundary_or_material_id.resize(new_size); - - manifold_id.reserve(new_size); - manifold_id.insert(manifold_id.end(), - new_size - manifold_id.size(), - numbers::flat_manifold_id); - - user_data.reserve(new_size); - user_data.resize(new_size); - - face_orientations.reserve(new_size * GeometryInfo<3>::faces_per_cell); - face_orientations.insert(face_orientations.end(), - new_size * GeometryInfo<3>::faces_per_cell - - face_orientations.size(), - true); - - refinement_cases.reserve(new_size); - refinement_cases.insert(refinement_cases.end(), - new_size - refinement_cases.size(), - RefinementCase<3>::no_refinement); + Assert(n_objects() == used.size(), + ExcMemoryInexact(n_objects(), used.size())); + Assert(n_objects() == user_flags.size(), + ExcMemoryInexact(n_objects(), user_flags.size())); + Assert(n_objects() == children.size(), + ExcMemoryInexact(n_objects(), children.size())); + Assert(n_objects() == boundary_or_material_id.size(), + ExcMemoryInexact(n_objects(), boundary_or_material_id.size())); + Assert(n_objects() == manifold_id.size(), + ExcMemoryInexact(n_objects(), manifold_id.size())); + Assert(n_objects() == user_data.size(), + ExcMemoryInexact(n_objects(), user_data.size())); } - next_free_single = next_free_pair = 0; - } - - - void - TriaObjectsQuad3D::reserve_space(const unsigned int new_quads_in_pairs, - const unsigned int new_quads_single) - { - Assert(new_quads_in_pairs % 2 == 0, ExcInternalError()); - - next_free_single = 0; - next_free_pair = 0; - reverse_order_next_free_single = false; - - // count the number of objects, of unused single objects and of - // unused pairs of objects - unsigned int n_quads = 0; - unsigned int n_unused_pairs = 0; - unsigned int n_unused_singles = 0; - for (unsigned int i = 0; i < used.size(); ++i) - { - if (used[i]) - ++n_quads; - else if (i + 1 < used.size()) - { - if (used[i + 1]) - { - ++n_unused_singles; - if (next_free_single == 0) - next_free_single = i; - } - else - { - ++n_unused_pairs; - if (next_free_pair == 0) - next_free_pair = i; - ++i; - } - } - else - ++n_unused_singles; - } - Assert(n_quads + 2 * n_unused_pairs + n_unused_singles == used.size(), - ExcInternalError()); - - // how many single quads are needed in addition to n_unused_quads? - const int additional_single_quads = new_quads_single - n_unused_singles; - - unsigned int new_size = - used.size() + new_quads_in_pairs - 2 * n_unused_pairs; - if (additional_single_quads > 0) - new_size += additional_single_quads; - - // see above... - if (new_size > cells.size()) + else if (this->structdim == 2) { - // reseve space for the base class - TriaObjects>::reserve_space(new_quads_in_pairs, - new_quads_single); - // reserve the field of the derived class - line_orientations.reserve(new_size * GeometryInfo<2>::lines_per_cell); - line_orientations.insert(line_orientations.end(), - new_size * GeometryInfo<2>::lines_per_cell - - line_orientations.size(), - true); + Assert(n_objects() == used.size(), + ExcMemoryInexact(n_objects(), used.size())); + Assert(n_objects() == user_flags.size(), + ExcMemoryInexact(n_objects(), user_flags.size())); + Assert(2 * n_objects() == children.size(), + ExcMemoryInexact(n_objects(), children.size())); + Assert(n_objects() == refinement_cases.size(), + ExcMemoryInexact(n_objects(), refinement_cases.size())); + Assert(n_objects() == boundary_or_material_id.size(), + ExcMemoryInexact(n_objects(), boundary_or_material_id.size())); + Assert(n_objects() == manifold_id.size(), + ExcMemoryInexact(n_objects(), manifold_id.size())); + Assert(n_objects() == user_data.size(), + ExcMemoryInexact(n_objects(), user_data.size())); } - - if (n_unused_singles == 0) + else if (this->structdim == 3) { - next_free_single = new_size - 1; - reverse_order_next_free_single = true; + Assert(n_objects() == used.size(), + ExcMemoryInexact(n_objects(), used.size())); + Assert(n_objects() == user_flags.size(), + ExcMemoryInexact(n_objects(), user_flags.size())); + Assert(4 * n_objects() == children.size(), + ExcMemoryInexact(n_objects(), children.size())); + Assert(n_objects() == boundary_or_material_id.size(), + ExcMemoryInexact(n_objects(), boundary_or_material_id.size())); + Assert(n_objects() == manifold_id.size(), + ExcMemoryInexact(n_objects(), manifold_id.size())); + Assert(n_objects() == user_data.size(), + ExcMemoryInexact(n_objects(), user_data.size())); } } - template <> - void - TriaObjects>::monitor_memory(const unsigned int) const - { - Assert(cells.size() == used.size(), - ExcMemoryInexact(cells.size(), used.size())); - Assert(cells.size() == user_flags.size(), - ExcMemoryInexact(cells.size(), user_flags.size())); - Assert(cells.size() == children.size(), - ExcMemoryInexact(cells.size(), children.size())); - Assert(cells.size() == boundary_or_material_id.size(), - ExcMemoryInexact(cells.size(), boundary_or_material_id.size())); - Assert(cells.size() == manifold_id.size(), - ExcMemoryInexact(cells.size(), manifold_id.size())); - Assert(cells.size() == user_data.size(), - ExcMemoryInexact(cells.size(), user_data.size())); - } - - - template <> - void - TriaObjects>::monitor_memory(const unsigned int) const - { - Assert(cells.size() == used.size(), - ExcMemoryInexact(cells.size(), used.size())); - Assert(cells.size() == user_flags.size(), - ExcMemoryInexact(cells.size(), user_flags.size())); - Assert(2 * cells.size() == children.size(), - ExcMemoryInexact(cells.size(), children.size())); - Assert(cells.size() == refinement_cases.size(), - ExcMemoryInexact(cells.size(), refinement_cases.size())); - Assert(cells.size() == boundary_or_material_id.size(), - ExcMemoryInexact(cells.size(), boundary_or_material_id.size())); - Assert(cells.size() == manifold_id.size(), - ExcMemoryInexact(cells.size(), manifold_id.size())); - Assert(cells.size() == user_data.size(), - ExcMemoryInexact(cells.size(), user_data.size())); - } - - - void - TriaObjectsHex::monitor_memory(const unsigned int) const - { - Assert(cells.size() == used.size(), - ExcMemoryInexact(cells.size(), used.size())); - Assert(cells.size() == user_flags.size(), - ExcMemoryInexact(cells.size(), user_flags.size())); - Assert(4 * cells.size() == children.size(), - ExcMemoryInexact(cells.size(), children.size())); - Assert(cells.size() == boundary_or_material_id.size(), - ExcMemoryInexact(cells.size(), boundary_or_material_id.size())); - Assert(cells.size() == manifold_id.size(), - ExcMemoryInexact(cells.size(), manifold_id.size())); - Assert(cells.size() == user_data.size(), - ExcMemoryInexact(cells.size(), user_data.size())); - Assert(cells.size() * GeometryInfo<3>::faces_per_cell == - face_orientations.size(), - ExcMemoryInexact(cells.size() * GeometryInfo<3>::faces_per_cell, - face_orientations.size())); - } - - - void - TriaObjectsQuad3D::monitor_memory(const unsigned int) const - { - // check that we have not allocated too much memory. note that bool - // vectors allocate their memory in chunks of whole integers, so they - // may over-allocate by up to as many elements as an integer has bits - Assert(cells.size() * GeometryInfo<2>::lines_per_cell == - line_orientations.size(), - ExcMemoryInexact(cells.size() * GeometryInfo<2>::lines_per_cell, - line_orientations.size())); - TriaObjects>::monitor_memory(3); - } - - - template - void - TriaObjects::clear() - { - cells.clear(); - children.clear(); - refinement_cases.clear(); - used.clear(); - user_flags.clear(); - boundary_or_material_id.clear(); - manifold_id.clear(); - user_data.clear(); - user_data_type = data_unknown; - } - - - void - TriaObjectsHex::clear() - { - TriaObjects>::clear(); - face_orientations.clear(); - } - - - void - TriaObjectsQuad3D::clear() - { - TriaObjects>::clear(); - line_orientations.clear(); - } - - - template std::size_t - TriaObjects::memory_consumption() const + TriaObjects::memory_consumption() const { return (MemoryConsumption::memory_consumption(cells) + MemoryConsumption::memory_consumption(children) + @@ -413,28 +318,9 @@ namespace internal } - std::size_t - TriaObjectsHex::memory_consumption() const - { - return (MemoryConsumption::memory_consumption(face_orientations) + - TriaObjects>::memory_consumption()); - } - - - std::size_t - TriaObjectsQuad3D::memory_consumption() const - { - return (MemoryConsumption::memory_consumption(line_orientations) + - this->TriaObjects>::memory_consumption()); - } - - // explicit instantiations #ifndef DOXYGEN - template class TriaObjects>; - template class TriaObjects>; - # include "tria_objects.inst" #endif } // namespace TriangulationImplementation diff --git a/source/grid/tria_objects.inst.in b/source/grid/tria_objects.inst.in index bc4c5eccc0..3460342fe8 100644 --- a/source/grid/tria_objects.inst.in +++ b/source/grid/tria_objects.inst.in @@ -18,7 +18,7 @@ for (deal_II_dimension : DIMENSIONS) { #if deal_II_dimension >= 3 template dealii::Triangulation::raw_hex_iterator - TriaObjects>::next_free_hex( - const dealii::Triangulation &, const unsigned int); + TriaObjects::next_free_hex(const dealii::Triangulation &, + const unsigned int); #endif } diff --git a/tests/serialization/triangulation_01.output b/tests/serialization/triangulation_01.output index 48e3dcf7f3..7dfec284a1 100644 --- a/tests/serialization/triangulation_01.output +++ b/tests/serialization/triangulation_01.output @@ -1,34 +1,34 @@ DEAL::0 0 0 3 0 0 2 1 0 -0 1 0 0 1 0 0 0 2 0 0 0 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 0 0 1 0 0 0 2 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 -1 2 0 0 0 2 0 0 4 0 -1 -1 1 1 1 0 -1 -1 2 0 0 0 2 0 0 0 1 0 0 0 2 0 2 0 2 2 2 1 2 0 0 2 0 0 2 1 1 2 0 0 2 0 0 0 2 0 4294967295 4294967295 1 0 1 2 0 0 0 0 2 -2 4 0 1 0 0 0 4 0 0 0 0 8 0 -1 -1 2 1 2 0 2 2 2 1 2 3 2 2 -1 -1 4 0 1 0 0 0 4 0 4 0 0 0 2 0 0 1 0 4 0 2 0 3 2 3 2 2 2 4 2 4 1 4 0 -1 -1 -1 -1 0 0 4 1 1 1 1 4 1 0 0 0 4 0 2 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 3 0 0 0 2 1 0 0 5 0 0 0 0 0 1 0 0 0.00000000000000000e+00 1 1.00000000000000000e+00 1 5.00000000000000000e-01 1 2.50000000000000000e-01 1 7.50000000000000000e-01 5 1 1 1 1 1 0 0 0 3 7 3 0 1 2 4 4 3 0 0 0 4 0 0 0 23 1 0 -3 2 0 0 0 0 0 1 1 23 +0 1 1 0 0 1 0 0 0 2 0 0 0 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 1 2 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 +1 1 2 0 0 0 2 0 0 4 0 -1 -1 1 1 1 0 -1 -1 2 0 0 0 2 0 0 0 1 0 0 0 1 4 0 0 2 2 1 2 0 0 2 0 0 2 1 1 2 0 0 2 0 0 0 2 0 4294967295 4294967295 1 0 1 2 0 0 0 0 2 +2 1 4 0 1 0 0 0 4 0 0 0 0 8 0 -1 -1 2 1 2 0 2 2 2 1 2 3 2 2 -1 -1 4 0 1 0 0 0 4 0 4 0 0 0 2 0 0 1 0 1 8 0 0 3 3 2 2 4 4 1 4 0 -1 -1 -1 -1 0 0 4 1 1 1 1 4 1 0 0 0 4 0 2 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 3 0 0 0 2 1 0 0 5 0 0 0 0 0 1 0 0 0.00000000000000000e+00 1 1.00000000000000000e+00 1 5.00000000000000000e-01 1 2.50000000000000000e-01 1 7.50000000000000000e-01 5 1 1 1 1 1 0 0 0 3 7 3 0 1 2 4 4 3 0 0 0 4 0 0 0 20 1 0 +3 2 0 0 0 0 0 1 1 20 4 5 0 0 4294967295 1 4294967295 2 4294967295 3 4294967295 4 4294967295 DEAL::0 0 0 3 0 0 2 1 0 -0 1 0 0 1 0 0 0 2 0 0 0 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 1 1 0 0 0 0 1 0 0 0 2 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 -1 2 0 0 0 2 0 0 4 0 -1 -1 1 1 1 0 -1 -1 2 0 0 0 2 0 0 0 1 0 0 2 1 1 2 0 2 0 2 2 2 1 2 0 0 2 0 0 2 1 1 2 0 0 2 0 0 0 2 0 4294967295 4294967295 1 0 1 2 0 0 0 0 2 -2 4 0 1 0 0 0 4 0 0 0 0 8 0 -1 -1 2 1 2 0 2 2 2 1 2 3 2 2 -1 -1 4 0 1 0 0 0 4 0 4 0 0 0 2 0 0 1 4 1 1 1 1 4 0 2 0 3 2 3 2 2 2 4 2 4 1 4 0 -1 -1 -1 -1 0 0 4 1 1 1 1 4 1 0 0 0 4 0 2 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 3 0 0 0 2 1 0 0 5 0 0 0 0 0 2 0 0 0.00000000000000000e+00 0.00000000000000000e+00 2 1.00000000000000000e+00 0.00000000000000000e+00 2 5.00000000000000000e-01 0.00000000000000000e+00 2 2.50000000000000000e-01 0.00000000000000000e+00 2 7.50000000000000000e-01 0.00000000000000000e+00 5 1 1 1 1 1 0 0 0 3 7 3 0 1 2 4 4 3 0 0 0 4 0 0 0 23 1 0 -3 2 0 0 0 0 0 1 1 23 +0 1 1 0 0 1 0 0 0 2 0 0 0 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 1 1 0 0 1 2 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 +1 1 2 0 0 0 2 0 0 4 0 -1 -1 1 1 1 0 -1 -1 2 0 0 0 2 0 0 0 1 0 0 2 1 1 1 4 0 0 2 2 1 2 0 0 2 0 0 2 1 1 2 0 0 2 0 0 0 2 0 4294967295 4294967295 1 0 1 2 0 0 0 0 2 +2 1 4 0 1 0 0 0 4 0 0 0 0 8 0 -1 -1 2 1 2 0 2 2 2 1 2 3 2 2 -1 -1 4 0 1 0 0 0 4 0 4 0 0 0 2 0 0 1 4 1 1 1 1 1 8 0 0 3 3 2 2 4 4 1 4 0 -1 -1 -1 -1 0 0 4 1 1 1 1 4 1 0 0 0 4 0 2 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 3 0 0 0 2 1 0 0 5 0 0 0 0 0 2 0 0 0.00000000000000000e+00 0.00000000000000000e+00 2 1.00000000000000000e+00 0.00000000000000000e+00 2 5.00000000000000000e-01 0.00000000000000000e+00 2 2.50000000000000000e-01 0.00000000000000000e+00 2 7.50000000000000000e-01 0.00000000000000000e+00 5 1 1 1 1 1 0 0 0 3 7 3 0 1 2 4 4 3 0 0 0 4 0 0 0 20 1 0 +3 2 0 0 0 0 0 1 1 20 4 5 0 0 4294967295 1 4294967295 2 4294967295 3 4294967295 4 4294967295 DEAL::0 0 0 3 0 0 2 1 0 -0 1 0 0 1 0 0 0 4 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 0 0 1 0 0 0 4 1 2 0 3 2 0 0 2 0 0 1 0 0 0 3 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 -1 4 0 0 0 0 0 4 0 0 0 0 16 0 -1 -1 1 1 -1 -1 1 2 1 0 -1 -1 -1 -1 1 3 -1 -1 1 3 1 0 -1 -1 1 2 -1 -1 1 1 -1 -1 4 0 0 0 0 0 4 0 0 0 0 0 2 0 0 0 0 4 0 4 6 12 4 14 4 12 8 5 15 4 7 13 14 10 4 13 9 15 11 8 0 0 2 4 6 8 10 12 14 4 0 3 3 3 3 4 1 1 1 1 4 0 0 0 0 4 0 0 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 0 0 0 0 0 2 -2 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 -1 -1 2 1 -1 -1 2 2 2 0 2 4 -1 -1 2 3 -1 -1 2 3 2 0 2 8 2 2 2 6 2 1 2 9 2 1 2 5 -1 -1 2 6 2 4 -1 -1 -1 -1 2 7 2 3 2 7 2 4 2 12 2 6 -1 -1 2 5 2 13 -1 -1 2 9 2 2 2 10 2 8 2 12 2 3 2 11 -1 -1 2 11 2 8 -1 -1 2 10 2 14 2 9 -1 -1 2 9 2 13 2 6 2 14 2 12 -1 -1 2 7 2 15 2 11 2 15 2 12 -1 -1 2 14 -1 -1 2 13 -1 -1 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 1 1 2 2 3 3 0 16 0 4 20 40 16 42 4 40 32 17 43 4 21 41 42 36 4 41 33 43 37 4 32 44 18 46 4 44 24 19 47 4 33 45 46 38 4 45 25 47 39 4 22 48 36 50 4 48 34 37 51 4 23 49 50 28 4 49 35 51 29 4 34 52 38 54 4 52 26 39 55 4 35 53 54 30 4 53 27 55 31 32 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 15 0 1 16 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 19 1 0 -3 0 0 0 0 56 0 0 0 2 0 1 2 0 2 2 1 3 2 2 3 2 0 4 2 4 1 2 0 5 2 5 2 2 1 6 2 6 3 2 2 7 2 7 3 2 4 8 2 8 7 2 5 8 2 8 6 2 0 9 2 9 4 2 4 10 2 10 1 2 0 11 2 11 5 2 5 12 2 12 2 2 1 13 2 13 6 2 6 14 2 14 3 2 2 15 2 15 7 2 7 16 2 16 3 2 4 17 2 17 8 2 8 18 2 18 7 2 5 19 2 19 8 2 8 20 2 20 6 2 9 21 2 21 19 2 11 21 2 21 17 2 10 22 2 22 20 2 17 22 2 22 13 2 19 23 2 23 15 2 12 23 2 23 18 2 20 24 2 24 16 2 18 24 2 24 14 56 0 4 6 8 10 16 18 20 22 24 26 28 30 32 34 36 38 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 56 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 55 0 1 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 2 0 0 0.00000000000000000e+00 0.00000000000000000e+00 2 1.00000000000000000e+00 0.00000000000000000e+00 2 0.00000000000000000e+00 1.00000000000000000e+00 2 1.00000000000000000e+00 1.00000000000000000e+00 2 5.00000000000000000e-01 0.00000000000000000e+00 2 0.00000000000000000e+00 5.00000000000000000e-01 2 1.00000000000000000e+00 5.00000000000000000e-01 2 5.00000000000000000e-01 1.00000000000000000e+00 2 5.00000000000000000e-01 5.00000000000000000e-01 2 2.50000000000000000e-01 0.00000000000000000e+00 2 7.50000000000000000e-01 0.00000000000000000e+00 2 0.00000000000000000e+00 2.50000000000000000e-01 2 0.00000000000000000e+00 7.50000000000000000e-01 2 1.00000000000000000e+00 2.50000000000000000e-01 2 1.00000000000000000e+00 7.50000000000000000e-01 2 2.50000000000000000e-01 1.00000000000000000e+00 2 7.50000000000000000e-01 1.00000000000000000e+00 2 5.00000000000000000e-01 2.50000000000000000e-01 2 5.00000000000000000e-01 7.50000000000000000e-01 2 2.50000000000000000e-01 5.00000000000000000e-01 2 7.50000000000000000e-01 5.00000000000000000e-01 2 2.50000000000000000e-01 2.50000000000000000e-01 2 7.50000000000000000e-01 2.50000000000000000e-01 2 2.50000000000000000e-01 7.50000000000000000e-01 2 7.50000000000000000e-01 7.50000000000000000e-01 25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 3 56 0 0 40 0 0 21 3 0 1 4 16 16 3 0 0 0 16 0 +0 2 1 0 0 1 0 0 0 4 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 2 4 0 1 2 0 3 2 0 0 2 1 0 3 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 +1 2 4 0 0 0 0 0 4 0 0 0 0 16 0 -1 -1 1 1 -1 -1 1 2 1 0 -1 -1 -1 -1 1 3 -1 -1 1 3 1 0 -1 -1 1 2 -1 -1 1 1 -1 -1 4 0 0 0 0 0 4 0 0 0 0 0 2 0 0 0 0 2 16 0 6 12 4 14 12 8 5 15 7 13 14 10 13 9 15 11 8 0 0 2 4 6 8 10 12 14 4 0 3 3 3 3 4 1 1 1 1 4 0 0 0 0 4 0 0 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 0 0 0 0 0 2 +2 2 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 -1 -1 2 1 -1 -1 2 2 2 0 2 4 -1 -1 2 3 -1 -1 2 3 2 0 2 8 2 2 2 6 2 1 2 9 2 1 2 5 -1 -1 2 6 2 4 -1 -1 -1 -1 2 7 2 3 2 7 2 4 2 12 2 6 -1 -1 2 5 2 13 -1 -1 2 9 2 2 2 10 2 8 2 12 2 3 2 11 -1 -1 2 11 2 8 -1 -1 2 10 2 14 2 9 -1 -1 2 9 2 13 2 6 2 14 2 12 -1 -1 2 7 2 15 2 11 2 15 2 12 -1 -1 2 14 -1 -1 2 13 -1 -1 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 1 1 2 2 3 3 0 2 64 0 20 40 16 42 40 32 17 43 21 41 42 36 41 33 43 37 32 44 18 46 44 24 19 47 33 45 46 38 45 25 47 39 22 48 36 50 48 34 37 51 23 49 50 28 49 35 51 29 34 52 38 54 52 26 39 55 35 53 54 30 53 27 55 31 32 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 15 0 1 16 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 15 1 0 +3 2 1 112 0 0 1 0 2 1 3 2 3 0 4 4 1 0 5 5 2 1 6 6 3 2 7 7 3 4 8 8 7 5 8 8 6 0 9 9 4 4 10 10 1 0 11 11 5 5 12 12 2 1 13 13 6 6 14 14 3 2 15 15 7 7 16 16 3 4 17 17 8 8 18 18 7 5 19 19 8 8 20 20 6 9 21 21 19 11 21 21 17 10 22 22 20 17 22 22 13 19 23 23 15 12 23 23 18 20 24 24 16 18 24 24 14 56 0 4 6 8 10 16 18 20 22 24 26 28 30 32 34 36 38 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 56 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 55 0 1 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 2 0 0 0.00000000000000000e+00 0.00000000000000000e+00 2 1.00000000000000000e+00 0.00000000000000000e+00 2 0.00000000000000000e+00 1.00000000000000000e+00 2 1.00000000000000000e+00 1.00000000000000000e+00 2 5.00000000000000000e-01 0.00000000000000000e+00 2 0.00000000000000000e+00 5.00000000000000000e-01 2 1.00000000000000000e+00 5.00000000000000000e-01 2 5.00000000000000000e-01 1.00000000000000000e+00 2 5.00000000000000000e-01 5.00000000000000000e-01 2 2.50000000000000000e-01 0.00000000000000000e+00 2 7.50000000000000000e-01 0.00000000000000000e+00 2 0.00000000000000000e+00 2.50000000000000000e-01 2 0.00000000000000000e+00 7.50000000000000000e-01 2 1.00000000000000000e+00 2.50000000000000000e-01 2 1.00000000000000000e+00 7.50000000000000000e-01 2 2.50000000000000000e-01 1.00000000000000000e+00 2 7.50000000000000000e-01 1.00000000000000000e+00 2 5.00000000000000000e-01 2.50000000000000000e-01 2 5.00000000000000000e-01 7.50000000000000000e-01 2 2.50000000000000000e-01 5.00000000000000000e-01 2 7.50000000000000000e-01 5.00000000000000000e-01 2 2.50000000000000000e-01 2.50000000000000000e-01 2 7.50000000000000000e-01 2.50000000000000000e-01 2 2.50000000000000000e-01 7.50000000000000000e-01 2 7.50000000000000000e-01 7.50000000000000000e-01 25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 3 56 0 0 40 0 0 21 3 0 1 4 16 16 3 0 0 0 16 0 DEAL::0 0 0 3 0 0 2 1 0 -0 1 0 0 1 0 0 0 4 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 1 1 0 0 0 0 1 0 0 0 4 1 2 0 3 2 0 0 2 0 0 1 0 0 0 3 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 -1 4 0 0 0 0 0 4 0 0 0 0 16 0 -1 -1 1 1 -1 -1 1 2 1 0 -1 -1 -1 -1 1 3 -1 -1 1 3 1 0 -1 -1 1 2 -1 -1 1 1 -1 -1 4 0 0 0 0 0 4 0 0 0 0 0 2 0 0 0 4 1 1 1 1 4 0 4 6 12 4 14 4 12 8 5 15 4 7 13 14 10 4 13 9 15 11 8 0 0 2 4 6 8 10 12 14 4 0 3 3 3 3 4 1 1 1 1 4 0 0 0 0 4 0 0 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 0 0 0 0 0 2 -2 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 -1 -1 2 1 -1 -1 2 2 2 0 2 4 -1 -1 2 3 -1 -1 2 3 2 0 2 8 2 2 2 6 2 1 2 9 2 1 2 5 -1 -1 2 6 2 4 -1 -1 -1 -1 2 7 2 3 2 7 2 4 2 12 2 6 -1 -1 2 5 2 13 -1 -1 2 9 2 2 2 10 2 8 2 12 2 3 2 11 -1 -1 2 11 2 8 -1 -1 2 10 2 14 2 9 -1 -1 2 9 2 13 2 6 2 14 2 12 -1 -1 2 7 2 15 2 11 2 15 2 12 -1 -1 2 14 -1 -1 2 13 -1 -1 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 1 1 2 2 3 3 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 0 4 20 40 16 42 4 40 32 17 43 4 21 41 42 36 4 41 33 43 37 4 32 44 18 46 4 44 24 19 47 4 33 45 46 38 4 45 25 47 39 4 22 48 36 50 4 48 34 37 51 4 23 49 50 28 4 49 35 51 29 4 34 52 38 54 4 52 26 39 55 4 35 53 54 30 4 53 27 55 31 32 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 15 0 1 16 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 19 1 0 -3 0 0 0 0 56 0 0 0 2 0 1 2 0 2 2 1 3 2 2 3 2 0 4 2 4 1 2 0 5 2 5 2 2 1 6 2 6 3 2 2 7 2 7 3 2 4 8 2 8 7 2 5 8 2 8 6 2 0 9 2 9 4 2 4 10 2 10 1 2 0 11 2 11 5 2 5 12 2 12 2 2 1 13 2 13 6 2 6 14 2 14 3 2 2 15 2 15 7 2 7 16 2 16 3 2 4 17 2 17 8 2 8 18 2 18 7 2 5 19 2 19 8 2 8 20 2 20 6 2 9 21 2 21 19 2 11 21 2 21 17 2 10 22 2 22 20 2 17 22 2 22 13 2 19 23 2 23 15 2 12 23 2 23 18 2 20 24 2 24 16 2 18 24 2 24 14 56 0 4 6 8 10 16 18 20 22 24 26 28 30 32 34 36 38 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 56 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 55 0 1 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 3 0 0 0.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 7.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 7.50000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 7.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 3 56 0 0 40 0 0 21 3 0 1 4 16 16 3 0 0 0 16 0 +0 2 1 0 0 1 0 0 0 4 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 1 1 0 0 2 4 0 1 2 0 3 2 0 0 2 1 0 3 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 +1 2 4 0 0 0 0 0 4 0 0 0 0 16 0 -1 -1 1 1 -1 -1 1 2 1 0 -1 -1 -1 -1 1 3 -1 -1 1 3 1 0 -1 -1 1 2 -1 -1 1 1 -1 -1 4 0 0 0 0 0 4 0 0 0 0 0 2 0 0 0 4 1 1 1 1 2 16 0 6 12 4 14 12 8 5 15 7 13 14 10 13 9 15 11 8 0 0 2 4 6 8 10 12 14 4 0 3 3 3 3 4 1 1 1 1 4 0 0 0 0 4 0 0 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 0 0 0 0 0 2 +2 2 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 -1 -1 2 1 -1 -1 2 2 2 0 2 4 -1 -1 2 3 -1 -1 2 3 2 0 2 8 2 2 2 6 2 1 2 9 2 1 2 5 -1 -1 2 6 2 4 -1 -1 -1 -1 2 7 2 3 2 7 2 4 2 12 2 6 -1 -1 2 5 2 13 -1 -1 2 9 2 2 2 10 2 8 2 12 2 3 2 11 -1 -1 2 11 2 8 -1 -1 2 10 2 14 2 9 -1 -1 2 9 2 13 2 6 2 14 2 12 -1 -1 2 7 2 15 2 11 2 15 2 12 -1 -1 2 14 -1 -1 2 13 -1 -1 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 1 1 2 2 3 3 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 64 0 20 40 16 42 40 32 17 43 21 41 42 36 41 33 43 37 32 44 18 46 44 24 19 47 33 45 46 38 45 25 47 39 22 48 36 50 48 34 37 51 23 49 50 28 49 35 51 29 34 52 38 54 52 26 39 55 35 53 54 30 53 27 55 31 32 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 15 0 1 16 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 15 1 0 +3 2 1 112 0 0 1 0 2 1 3 2 3 0 4 4 1 0 5 5 2 1 6 6 3 2 7 7 3 4 8 8 7 5 8 8 6 0 9 9 4 4 10 10 1 0 11 11 5 5 12 12 2 1 13 13 6 6 14 14 3 2 15 15 7 7 16 16 3 4 17 17 8 8 18 18 7 5 19 19 8 8 20 20 6 9 21 21 19 11 21 21 17 10 22 22 20 17 22 22 13 19 23 23 15 12 23 23 18 20 24 24 16 18 24 24 14 56 0 4 6 8 10 16 18 20 22 24 26 28 30 32 34 36 38 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 56 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 55 0 1 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 3 0 0 0.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 7.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 7.50000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 7.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 3 56 0 0 40 0 0 21 3 0 1 4 16 16 3 0 0 0 16 0 DEAL::0 0 0 3 0 0 2 1 0 -0 1 0 0 1 0 0 0 6 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 0 0 1 0 0 0 6 2 3 0 4 1 5 4 0 0 2 4 6 0 0 1 0 0 0 7 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 0 0 0 1 0 0 0 0 0 6 0 1 1 1 1 1 1 2 -1 8 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 48 0 -1 -1 1 1 -1 -1 1 2 -1 -1 1 4 1 0 -1 -1 -1 -1 1 3 -1 -1 1 5 -1 -1 1 3 1 0 -1 -1 -1 -1 1 6 1 2 -1 -1 1 1 -1 -1 -1 -1 1 7 -1 -1 1 5 -1 -1 1 6 1 0 -1 -1 1 4 -1 -1 -1 -1 1 7 1 1 -1 -1 -1 -1 1 7 1 4 -1 -1 1 2 -1 -1 1 6 -1 -1 1 5 -1 -1 1 3 -1 -1 8 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 8 0 6 14 41 6 37 10 33 6 41 18 8 35 11 32 6 15 40 37 22 12 31 6 40 19 35 24 13 30 6 16 39 7 36 33 26 6 39 20 9 34 32 27 6 17 38 36 23 31 28 6 38 21 34 25 30 29 32 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 8 0 7 7 7 7 7 7 7 7 8 1 1 1 1 1 1 1 1 8 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 8 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 8 0 0 0 0 0 0 0 0 0 0 48 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 -2 64 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 0 -1 -1 2 1 -1 -1 2 2 -1 -1 2 4 2 0 2 8 -1 -1 2 3 -1 -1 2 5 -1 -1 2 3 2 0 2 16 -1 -1 2 6 2 2 2 10 2 1 2 17 -1 -1 2 7 -1 -1 2 5 -1 -1 2 6 2 0 2 32 2 4 2 12 -1 -1 2 7 2 1 2 33 -1 -1 2 7 2 4 2 20 2 2 2 34 2 6 2 14 2 5 2 21 2 3 2 35 2 1 2 9 -1 -1 2 10 -1 -1 2 12 2 8 -1 -1 -1 -1 2 11 -1 -1 2 13 2 3 2 11 2 8 2 24 -1 -1 2 14 2 10 -1 -1 2 9 2 25 -1 -1 2 15 2 5 2 13 -1 -1 2 14 2 8 2 40 2 12 -1 -1 -1 -1 2 15 2 9 2 41 2 7 2 15 2 12 2 28 2 10 2 42 2 14 -1 -1 2 13 2 29 2 11 2 43 -1 -1 2 17 2 2 2 18 -1 -1 2 20 2 16 2 24 2 3 2 19 -1 -1 2 21 -1 -1 2 19 2 16 -1 -1 -1 -1 2 22 2 18 2 26 2 17 -1 -1 -1 -1 2 23 -1 -1 2 21 2 6 2 22 2 16 2 48 2 20 2 28 2 7 2 23 2 17 2 49 -1 -1 2 23 2 20 -1 -1 2 18 2 50 2 22 2 30 2 21 -1 -1 2 19 2 51 2 17 2 25 2 10 2 26 -1 -1 2 28 2 24 -1 -1 2 11 2 27 -1 -1 2 29 2 19 2 27 2 24 -1 -1 -1 -1 2 30 2 26 -1 -1 2 25 -1 -1 -1 -1 2 31 2 21 2 29 2 14 2 30 2 24 2 56 2 28 -1 -1 2 15 2 31 2 25 2 57 2 23 2 31 2 28 -1 -1 2 26 2 58 2 30 -1 -1 2 29 -1 -1 2 27 2 59 -1 -1 2 33 -1 -1 2 34 2 4 2 36 2 32 2 40 -1 -1 2 35 2 5 2 37 -1 -1 2 35 2 32 2 48 2 6 2 38 2 34 2 42 2 33 2 49 2 7 2 39 -1 -1 2 37 -1 -1 2 38 2 32 -1 -1 2 36 2 44 -1 -1 2 39 2 33 -1 -1 -1 -1 2 39 2 36 2 52 2 34 -1 -1 2 38 2 46 2 37 2 53 2 35 -1 -1 2 33 2 41 -1 -1 2 42 2 12 2 44 2 40 -1 -1 -1 -1 2 43 2 13 2 45 2 35 2 43 2 40 2 56 2 14 2 46 2 42 -1 -1 2 41 2 57 2 15 2 47 2 37 2 45 -1 -1 2 46 2 40 -1 -1 2 44 -1 -1 -1 -1 2 47 2 41 -1 -1 2 39 2 47 2 44 2 60 2 42 -1 -1 2 46 -1 -1 2 45 2 61 2 43 -1 -1 -1 -1 2 49 2 34 2 50 2 20 2 52 2 48 2 56 2 35 2 51 2 21 2 53 -1 -1 2 51 2 48 -1 -1 2 22 2 54 2 50 2 58 2 49 -1 -1 2 23 2 55 -1 -1 2 53 2 38 2 54 2 48 -1 -1 2 52 2 60 2 39 2 55 2 49 -1 -1 -1 -1 2 55 2 52 -1 -1 2 50 -1 -1 2 54 2 62 2 53 -1 -1 2 51 -1 -1 2 49 2 57 2 42 2 58 2 28 2 60 2 56 -1 -1 2 43 2 59 2 29 2 61 2 51 2 59 2 56 -1 -1 2 30 2 62 2 58 -1 -1 2 57 -1 -1 2 31 2 63 2 53 2 61 2 46 2 62 2 56 -1 -1 2 60 -1 -1 2 47 2 63 2 57 -1 -1 2 55 2 63 2 60 -1 -1 2 58 -1 -1 2 62 -1 -1 2 61 -1 -1 2 59 -1 -1 64 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 0 64 0 6 74 281 42 277 58 273 6 281 182 44 275 59 272 6 75 280 277 166 60 271 6 280 183 275 168 61 270 6 76 279 43 276 273 150 6 279 184 45 274 272 151 6 77 278 276 167 271 152 6 278 185 274 169 270 153 6 182 269 50 265 62 261 6 269 90 52 263 63 260 6 183 268 265 158 64 259 6 268 91 263 160 65 258 6 184 267 51 264 261 146 6 267 92 53 262 260 147 6 185 266 264 159 259 148 6 266 93 262 161 258 149 6 78 257 166 253 66 249 6 257 178 168 251 67 248 6 79 256 253 106 68 247 6 256 179 251 108 69 246 6 80 255 167 252 249 142 6 255 180 169 250 248 143 6 81 254 252 107 247 144 6 254 181 250 109 246 145 6 178 245 158 241 70 237 6 245 94 160 239 71 236 6 179 244 241 114 72 235 6 244 95 239 116 73 234 6 180 243 159 240 237 138 6 243 96 161 238 236 139 6 181 242 240 115 235 140 6 242 97 238 117 234 141 6 82 233 46 229 150 225 6 233 174 48 227 151 224 6 83 232 229 162 152 223 6 232 175 227 164 153 222 6 84 231 47 228 225 122 6 231 176 49 226 224 123 6 85 230 228 163 223 124 6 230 177 226 165 222 125 6 174 221 54 217 146 213 6 221 98 56 215 147 212 6 175 220 217 154 148 211 6 220 99 215 156 149 210 6 176 219 55 216 213 126 6 219 100 57 214 212 127 6 177 218 216 155 211 128 6 218 101 214 157 210 129 6 86 209 162 205 142 201 6 209 170 164 203 143 200 6 87 208 205 110 144 199 6 208 171 203 112 145 198 6 88 207 163 204 201 130 6 207 172 165 202 200 131 6 89 206 204 111 199 132 6 206 173 202 113 198 133 6 170 197 154 193 138 189 6 197 102 156 191 139 188 6 171 196 193 118 140 187 6 196 103 191 120 141 186 6 172 195 155 192 189 134 6 195 104 157 190 188 135 6 173 194 192 119 187 136 6 194 105 190 121 186 137 256 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 64 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 64 0 64 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 384 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 19 1 0 -3 0 0 0 0 282 0 0 0 4 0 8 2 4 4 1 3 0 5 4 2 6 1 9 4 4 7 3 10 4 5 11 6 7 4 9 10 8 11 4 12 36 16 38 4 36 28 17 39 4 13 37 38 20 4 37 29 39 21 4 14 40 12 42 4 40 18 13 43 4 15 41 42 22 4 41 19 43 23 4 16 44 14 46 4 44 24 15 47 4 17 45 46 30 4 45 25 47 31 4 20 48 18 50 4 48 26 19 51 4 21 49 50 32 4 49 27 51 33 4 22 52 24 54 4 52 34 25 55 4 23 53 54 26 4 53 35 55 27 4 30 56 28 58 4 56 32 29 59 4 31 57 58 34 4 57 33 59 35 4 64 51 62 53 4 47 64 63 52 4 65 50 37 62 4 46 65 36 63 4 62 59 60 49 4 43 62 61 48 4 63 58 45 60 4 42 63 44 61 4 60 55 64 57 4 39 60 65 56 4 61 54 41 64 4 38 61 40 65 4 66 174 74 176 4 174 114 75 177 4 67 175 176 118 4 175 115 177 119 4 114 178 76 180 4 178 98 77 181 4 115 179 180 120 4 179 99 181 121 4 68 182 118 184 4 182 116 119 185 4 69 183 184 82 4 183 117 185 83 4 116 186 120 188 4 186 100 121 189 4 117 187 188 84 4 187 101 189 85 4 70 190 66 192 4 190 122 67 193 4 71 191 192 126 4 191 123 193 127 4 122 194 68 196 4 194 78 69 197 4 123 195 196 128 4 195 79 197 129 4 72 198 126 200 4 198 124 127 201 4 73 199 200 86 4 199 125 201 87 4 124 202 128 204 4 202 80 129 205 4 125 203 204 88 4 203 81 205 89 4 74 206 70 208 4 206 130 71 209 4 75 207 208 134 4 207 131 209 135 4 130 210 72 212 4 210 90 73 213 4 131 211 212 136 4 211 91 213 137 4 76 214 134 216 4 214 132 135 217 4 77 215 216 102 4 215 133 217 103 4 132 218 136 220 4 218 92 137 221 4 133 219 220 104 4 219 93 221 105 4 82 222 78 224 4 222 138 79 225 4 83 223 224 142 4 223 139 225 143 4 138 226 80 228 4 226 94 81 229 4 139 227 228 144 4 227 95 229 145 4 84 230 142 232 4 230 140 143 233 4 85 231 232 106 4 231 141 233 107 4 140 234 144 236 4 234 96 145 237 4 141 235 236 108 4 235 97 237 109 4 86 238 90 240 4 238 146 91 241 4 87 239 240 150 4 239 147 241 151 4 146 242 92 244 4 242 110 93 245 4 147 243 244 152 4 243 111 245 153 4 88 246 150 248 4 246 148 151 249 4 89 247 248 94 4 247 149 249 95 4 148 250 152 252 4 250 112 153 253 4 149 251 252 96 4 251 113 253 97 4 102 254 98 256 4 254 154 99 257 4 103 255 256 158 4 255 155 257 159 4 154 258 100 260 4 258 106 101 261 4 155 259 260 160 4 259 107 261 161 4 104 262 158 264 4 262 156 159 265 4 105 263 264 110 4 263 157 265 111 4 156 266 160 268 4 266 108 161 269 4 157 267 268 112 4 267 109 269 113 4 170 270 166 272 4 270 144 167 273 4 171 271 272 148 4 271 145 273 149 4 136 274 168 276 4 274 170 169 277 4 137 275 276 146 4 275 171 277 147 4 172 278 116 280 4 278 142 117 281 4 173 279 280 166 4 279 143 281 167 4 134 282 114 284 4 282 172 115 285 4 135 283 284 168 4 283 173 285 169 4 166 286 162 288 4 286 160 163 289 4 167 287 288 140 4 287 161 289 141 4 128 290 164 292 4 290 166 165 293 4 129 291 292 138 4 291 167 293 139 4 168 294 132 296 4 294 158 133 297 4 169 295 296 162 4 295 159 297 163 4 126 298 130 300 4 298 168 131 301 4 127 299 300 164 4 299 169 301 165 4 162 302 170 304 4 302 152 171 305 4 163 303 304 156 4 303 153 305 157 4 120 306 172 308 4 306 162 173 309 4 121 307 308 154 4 307 163 309 155 4 164 310 124 312 4 310 150 125 313 4 165 311 312 170 4 311 151 313 171 4 118 314 122 316 4 314 164 123 317 4 119 315 316 172 4 315 165 317 173 4 322 237 320 251 4 305 322 321 250 4 323 236 287 320 4 304 323 286 321 4 320 269 318 235 4 273 320 319 234 4 321 268 303 318 4 272 321 302 319 4 318 253 322 267 4 289 318 323 266 4 319 252 271 322 4 288 319 270 323 4 328 305 326 243 4 221 328 327 242 4 329 304 295 326 4 220 329 294 327 4 326 265 324 303 4 277 326 325 302 4 327 264 219 324 4 276 327 218 325 4 324 245 328 263 4 297 324 329 262 4 325 244 275 328 4 296 325 274 329 4 334 233 332 287 4 309 334 333 286 4 335 232 187 332 4 308 335 186 333 4 332 261 330 231 4 281 332 331 230 4 333 260 307 330 4 280 333 306 331 4 330 289 334 259 4 189 330 335 258 4 331 288 279 334 4 188 331 278 335 4 340 309 338 295 4 217 340 339 294 4 341 308 179 338 4 216 341 178 339 4 338 257 336 307 4 285 338 337 306 4 339 256 215 336 4 284 339 214 337 4 336 297 340 255 4 181 336 341 254 4 337 296 283 340 4 180 337 282 341 4 346 229 344 247 4 313 346 345 246 4 347 228 291 344 4 312 347 290 345 4 344 273 342 227 4 205 344 343 226 4 345 272 311 342 4 204 345 310 343 4 342 249 346 271 4 293 342 347 270 4 343 248 203 346 4 292 343 202 347 4 352 313 350 239 4 213 352 351 238 4 353 312 299 350 4 212 353 298 351 4 350 277 348 311 4 201 350 349 310 4 351 276 211 348 4 200 351 210 349 4 348 241 352 275 4 301 348 353 274 4 349 240 199 352 4 300 349 198 353 4 358 225 356 291 4 317 358 357 290 4 359 224 183 356 4 316 359 182 357 4 356 281 354 223 4 197 356 355 222 4 357 280 315 354 4 196 357 314 355 4 354 293 358 279 4 185 354 359 278 4 355 292 195 358 4 184 355 194 359 4 364 317 362 299 4 209 364 363 298 4 365 316 175 362 4 208 365 174 363 4 362 285 360 315 4 193 362 361 314 4 363 284 207 360 4 192 363 206 361 4 360 301 364 283 4 177 360 365 282 4 361 300 191 364 4 176 361 190 365 564 0 6 8 10 12 14 16 18 20 22 24 26 28 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 282 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 0 0 0 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 282 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 185 186 1 0 0 282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1128 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 366 0 0 0 2 0 1 2 0 2 2 0 4 2 1 3 2 1 5 2 2 3 2 2 6 2 3 7 2 4 5 2 4 6 2 5 7 2 6 7 2 0 8 2 8 1 2 0 9 2 9 2 2 0 10 2 10 4 2 1 11 2 11 3 2 1 12 2 12 5 2 2 13 2 13 3 2 2 14 2 14 6 2 3 15 2 15 7 2 4 16 2 16 5 2 4 17 2 17 6 2 5 18 2 18 7 2 6 19 2 19 7 2 10 20 2 20 12 2 8 20 2 20 16 2 8 21 2 21 13 2 9 21 2 21 11 2 9 22 2 22 17 2 10 22 2 22 14 2 11 23 2 23 18 2 12 23 2 23 15 2 14 24 2 24 15 2 13 24 2 24 19 2 16 25 2 25 19 2 17 25 2 25 18 2 26 25 2 21 26 2 26 23 2 22 26 2 26 24 2 20 26 2 0 27 2 27 8 2 8 28 2 28 1 2 0 29 2 29 9 2 9 30 2 30 2 2 0 31 2 31 10 2 10 32 2 32 4 2 1 33 2 33 11 2 11 34 2 34 3 2 1 35 2 35 12 2 12 36 2 36 5 2 2 37 2 37 13 2 13 38 2 38 3 2 2 39 2 39 14 2 14 40 2 40 6 2 3 41 2 41 15 2 15 42 2 42 7 2 4 43 2 43 16 2 16 44 2 44 5 2 4 45 2 45 17 2 17 46 2 46 6 2 5 47 2 47 18 2 18 48 2 48 7 2 6 49 2 49 19 2 19 50 2 50 7 2 10 51 2 51 20 2 20 52 2 52 12 2 8 53 2 53 20 2 20 54 2 54 16 2 8 55 2 55 21 2 21 56 2 56 13 2 9 57 2 57 21 2 21 58 2 58 11 2 9 59 2 59 22 2 22 60 2 60 17 2 10 61 2 61 22 2 22 62 2 62 14 2 11 63 2 63 23 2 23 64 2 64 18 2 12 65 2 65 23 2 23 66 2 66 15 2 14 67 2 67 24 2 24 68 2 68 15 2 13 69 2 69 24 2 24 70 2 70 19 2 16 71 2 71 25 2 25 72 2 72 19 2 17 73 2 73 25 2 25 74 2 74 18 2 26 75 2 75 25 2 21 76 2 76 26 2 26 77 2 77 23 2 22 78 2 78 26 2 26 79 2 79 24 2 20 80 2 80 26 2 31 81 2 81 53 2 27 81 2 81 51 2 32 82 2 82 54 2 51 82 2 82 43 2 53 83 2 83 35 2 28 83 2 83 52 2 54 84 2 84 36 2 52 84 2 84 44 2 27 85 2 85 57 2 29 85 2 85 55 2 28 86 2 86 58 2 55 86 2 86 33 2 57 87 2 87 37 2 30 87 2 87 56 2 58 88 2 88 38 2 56 88 2 88 34 2 29 89 2 89 61 2 31 89 2 89 59 2 30 90 2 90 62 2 59 90 2 90 39 2 61 91 2 91 45 2 32 91 2 91 60 2 62 92 2 92 46 2 60 92 2 92 40 2 33 93 2 93 65 2 35 93 2 93 63 2 34 94 2 94 66 2 63 94 2 94 41 2 65 95 2 95 47 2 36 95 2 95 64 2 66 96 2 96 48 2 64 96 2 96 42 2 39 97 2 97 69 2 37 97 2 97 67 2 40 98 2 98 70 2 67 98 2 98 49 2 69 99 2 99 41 2 38 99 2 99 68 2 70 100 2 100 42 2 68 100 2 100 50 2 43 101 2 101 73 2 45 101 2 101 71 2 44 102 2 102 74 2 71 102 2 102 47 2 73 103 2 103 49 2 46 103 2 103 72 2 74 104 2 104 50 2 72 104 2 104 48 2 77 105 2 105 68 2 79 105 2 105 66 2 78 106 2 106 67 2 62 106 2 106 79 2 52 107 2 107 77 2 80 107 2 107 65 2 51 108 2 108 78 2 61 108 2 108 80 2 75 109 2 109 64 2 77 109 2 109 74 2 76 110 2 110 63 2 58 110 2 110 77 2 60 111 2 111 75 2 78 111 2 111 73 2 59 112 2 112 76 2 57 112 2 112 78 2 79 113 2 113 72 2 75 113 2 113 70 2 80 114 2 114 71 2 54 114 2 114 75 2 56 115 2 115 79 2 76 115 2 115 69 2 55 116 2 116 80 2 53 116 2 116 76 2 124 104 2 105 124 2 124 96 2 113 124 2 124 100 2 109 124 2 123 103 2 106 123 2 123 113 2 92 123 2 123 98 2 111 123 2 122 102 2 107 122 2 122 95 2 114 122 2 122 109 2 84 122 2 121 101 2 108 121 2 121 114 2 91 121 2 121 111 2 82 121 2 120 105 2 88 120 2 120 94 2 115 120 2 120 99 2 110 120 2 119 106 2 87 119 2 119 115 2 90 119 2 119 97 2 112 119 2 118 107 2 86 118 2 118 93 2 116 118 2 118 110 2 83 118 2 117 108 2 85 117 2 117 116 2 89 117 2 117 112 2 81 117 366 0 12 14 16 18 20 22 24 26 28 30 32 34 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 366 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 366 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 317 318 1 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 0 0 0 0 0 3 0 0 0.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01 3 1.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 1.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 7.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 7.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 2.50000000000000000e-01 3 0.00000000000000000e+00 0.00000000000000000e+00 7.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 7.50000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 2.50000000000000000e-01 3 1.00000000000000000e+00 0.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 7.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 2.50000000000000000e-01 3 0.00000000000000000e+00 1.00000000000000000e+00 7.50000000000000000e-01 3 1.00000000000000000e+00 1.00000000000000000e+00 2.50000000000000000e-01 3 1.00000000000000000e+00 1.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 1.00000000000000000e+00 3 7.50000000000000000e-01 0.00000000000000000e+00 1.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 1.00000000000000000e+00 3 0.00000000000000000e+00 7.50000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 2.50000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 7.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 7.50000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 2.50000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 5.00000000000000000e-01 7.50000000000000000e-01 3 0.00000000000000000e+00 2.50000000000000000e-01 5.00000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 2.50000000000000000e-01 7.50000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 125 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 3 366 0 0 300 0 0 282 0 0 240 0 0 73 3 0 1 8 64 64 3 0 0 0 64 0 +0 3 1 0 0 1 0 0 0 6 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 3 6 0 2 3 0 4 1 5 4 0 0 2 4 6 1 0 7 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 0 0 0 1 0 0 0 0 0 6 0 1 1 1 1 1 1 2 +1 3 8 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 48 0 -1 -1 1 1 -1 -1 1 2 -1 -1 1 4 1 0 -1 -1 -1 -1 1 3 -1 -1 1 5 -1 -1 1 3 1 0 -1 -1 -1 -1 1 6 1 2 -1 -1 1 1 -1 -1 -1 -1 1 7 -1 -1 1 5 -1 -1 1 6 1 0 -1 -1 1 4 -1 -1 -1 -1 1 7 1 1 -1 -1 -1 -1 1 7 1 4 -1 -1 1 2 -1 -1 1 6 -1 -1 1 5 -1 -1 1 3 -1 -1 8 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 3 48 0 14 41 6 37 10 33 41 18 8 35 11 32 15 40 37 22 12 31 40 19 35 24 13 30 16 39 7 36 33 26 39 20 9 34 32 27 17 38 36 23 31 28 38 21 34 25 30 29 32 0 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 8 0 7 7 7 7 7 7 7 7 8 1 1 1 1 1 1 1 1 8 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 8 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 8 0 0 0 0 0 0 0 0 0 0 48 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 +2 3 64 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 0 -1 -1 2 1 -1 -1 2 2 -1 -1 2 4 2 0 2 8 -1 -1 2 3 -1 -1 2 5 -1 -1 2 3 2 0 2 16 -1 -1 2 6 2 2 2 10 2 1 2 17 -1 -1 2 7 -1 -1 2 5 -1 -1 2 6 2 0 2 32 2 4 2 12 -1 -1 2 7 2 1 2 33 -1 -1 2 7 2 4 2 20 2 2 2 34 2 6 2 14 2 5 2 21 2 3 2 35 2 1 2 9 -1 -1 2 10 -1 -1 2 12 2 8 -1 -1 -1 -1 2 11 -1 -1 2 13 2 3 2 11 2 8 2 24 -1 -1 2 14 2 10 -1 -1 2 9 2 25 -1 -1 2 15 2 5 2 13 -1 -1 2 14 2 8 2 40 2 12 -1 -1 -1 -1 2 15 2 9 2 41 2 7 2 15 2 12 2 28 2 10 2 42 2 14 -1 -1 2 13 2 29 2 11 2 43 -1 -1 2 17 2 2 2 18 -1 -1 2 20 2 16 2 24 2 3 2 19 -1 -1 2 21 -1 -1 2 19 2 16 -1 -1 -1 -1 2 22 2 18 2 26 2 17 -1 -1 -1 -1 2 23 -1 -1 2 21 2 6 2 22 2 16 2 48 2 20 2 28 2 7 2 23 2 17 2 49 -1 -1 2 23 2 20 -1 -1 2 18 2 50 2 22 2 30 2 21 -1 -1 2 19 2 51 2 17 2 25 2 10 2 26 -1 -1 2 28 2 24 -1 -1 2 11 2 27 -1 -1 2 29 2 19 2 27 2 24 -1 -1 -1 -1 2 30 2 26 -1 -1 2 25 -1 -1 -1 -1 2 31 2 21 2 29 2 14 2 30 2 24 2 56 2 28 -1 -1 2 15 2 31 2 25 2 57 2 23 2 31 2 28 -1 -1 2 26 2 58 2 30 -1 -1 2 29 -1 -1 2 27 2 59 -1 -1 2 33 -1 -1 2 34 2 4 2 36 2 32 2 40 -1 -1 2 35 2 5 2 37 -1 -1 2 35 2 32 2 48 2 6 2 38 2 34 2 42 2 33 2 49 2 7 2 39 -1 -1 2 37 -1 -1 2 38 2 32 -1 -1 2 36 2 44 -1 -1 2 39 2 33 -1 -1 -1 -1 2 39 2 36 2 52 2 34 -1 -1 2 38 2 46 2 37 2 53 2 35 -1 -1 2 33 2 41 -1 -1 2 42 2 12 2 44 2 40 -1 -1 -1 -1 2 43 2 13 2 45 2 35 2 43 2 40 2 56 2 14 2 46 2 42 -1 -1 2 41 2 57 2 15 2 47 2 37 2 45 -1 -1 2 46 2 40 -1 -1 2 44 -1 -1 -1 -1 2 47 2 41 -1 -1 2 39 2 47 2 44 2 60 2 42 -1 -1 2 46 -1 -1 2 45 2 61 2 43 -1 -1 -1 -1 2 49 2 34 2 50 2 20 2 52 2 48 2 56 2 35 2 51 2 21 2 53 -1 -1 2 51 2 48 -1 -1 2 22 2 54 2 50 2 58 2 49 -1 -1 2 23 2 55 -1 -1 2 53 2 38 2 54 2 48 -1 -1 2 52 2 60 2 39 2 55 2 49 -1 -1 -1 -1 2 55 2 52 -1 -1 2 50 -1 -1 2 54 2 62 2 53 -1 -1 2 51 -1 -1 2 49 2 57 2 42 2 58 2 28 2 60 2 56 -1 -1 2 43 2 59 2 29 2 61 2 51 2 59 2 56 -1 -1 2 30 2 62 2 58 -1 -1 2 57 -1 -1 2 31 2 63 2 53 2 61 2 46 2 62 2 56 -1 -1 2 60 -1 -1 2 47 2 63 2 57 -1 -1 2 55 2 63 2 60 -1 -1 2 58 -1 -1 2 62 -1 -1 2 61 -1 -1 2 59 -1 -1 64 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 0 3 384 0 74 281 42 277 58 273 281 182 44 275 59 272 75 280 277 166 60 271 280 183 275 168 61 270 76 279 43 276 273 150 279 184 45 274 272 151 77 278 276 167 271 152 278 185 274 169 270 153 182 269 50 265 62 261 269 90 52 263 63 260 183 268 265 158 64 259 268 91 263 160 65 258 184 267 51 264 261 146 267 92 53 262 260 147 185 266 264 159 259 148 266 93 262 161 258 149 78 257 166 253 66 249 257 178 168 251 67 248 79 256 253 106 68 247 256 179 251 108 69 246 80 255 167 252 249 142 255 180 169 250 248 143 81 254 252 107 247 144 254 181 250 109 246 145 178 245 158 241 70 237 245 94 160 239 71 236 179 244 241 114 72 235 244 95 239 116 73 234 180 243 159 240 237 138 243 96 161 238 236 139 181 242 240 115 235 140 242 97 238 117 234 141 82 233 46 229 150 225 233 174 48 227 151 224 83 232 229 162 152 223 232 175 227 164 153 222 84 231 47 228 225 122 231 176 49 226 224 123 85 230 228 163 223 124 230 177 226 165 222 125 174 221 54 217 146 213 221 98 56 215 147 212 175 220 217 154 148 211 220 99 215 156 149 210 176 219 55 216 213 126 219 100 57 214 212 127 177 218 216 155 211 128 218 101 214 157 210 129 86 209 162 205 142 201 209 170 164 203 143 200 87 208 205 110 144 199 208 171 203 112 145 198 88 207 163 204 201 130 207 172 165 202 200 131 89 206 204 111 199 132 206 173 202 113 198 133 170 197 154 193 138 189 197 102 156 191 139 188 171 196 193 118 140 187 196 103 191 120 141 186 172 195 155 192 189 134 195 104 157 190 188 135 173 194 192 119 187 136 194 105 190 121 186 137 256 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 64 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 64 0 64 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 384 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 15 1 0 +3 3 2 1128 0 0 8 2 4 1 3 0 5 2 6 1 9 4 7 3 10 5 11 6 7 9 10 8 11 12 36 16 38 36 28 17 39 13 37 38 20 37 29 39 21 14 40 12 42 40 18 13 43 15 41 42 22 41 19 43 23 16 44 14 46 44 24 15 47 17 45 46 30 45 25 47 31 20 48 18 50 48 26 19 51 21 49 50 32 49 27 51 33 22 52 24 54 52 34 25 55 23 53 54 26 53 35 55 27 30 56 28 58 56 32 29 59 31 57 58 34 57 33 59 35 64 51 62 53 47 64 63 52 65 50 37 62 46 65 36 63 62 59 60 49 43 62 61 48 63 58 45 60 42 63 44 61 60 55 64 57 39 60 65 56 61 54 41 64 38 61 40 65 66 174 74 176 174 114 75 177 67 175 176 118 175 115 177 119 114 178 76 180 178 98 77 181 115 179 180 120 179 99 181 121 68 182 118 184 182 116 119 185 69 183 184 82 183 117 185 83 116 186 120 188 186 100 121 189 117 187 188 84 187 101 189 85 70 190 66 192 190 122 67 193 71 191 192 126 191 123 193 127 122 194 68 196 194 78 69 197 123 195 196 128 195 79 197 129 72 198 126 200 198 124 127 201 73 199 200 86 199 125 201 87 124 202 128 204 202 80 129 205 125 203 204 88 203 81 205 89 74 206 70 208 206 130 71 209 75 207 208 134 207 131 209 135 130 210 72 212 210 90 73 213 131 211 212 136 211 91 213 137 76 214 134 216 214 132 135 217 77 215 216 102 215 133 217 103 132 218 136 220 218 92 137 221 133 219 220 104 219 93 221 105 82 222 78 224 222 138 79 225 83 223 224 142 223 139 225 143 138 226 80 228 226 94 81 229 139 227 228 144 227 95 229 145 84 230 142 232 230 140 143 233 85 231 232 106 231 141 233 107 140 234 144 236 234 96 145 237 141 235 236 108 235 97 237 109 86 238 90 240 238 146 91 241 87 239 240 150 239 147 241 151 146 242 92 244 242 110 93 245 147 243 244 152 243 111 245 153 88 246 150 248 246 148 151 249 89 247 248 94 247 149 249 95 148 250 152 252 250 112 153 253 149 251 252 96 251 113 253 97 102 254 98 256 254 154 99 257 103 255 256 158 255 155 257 159 154 258 100 260 258 106 101 261 155 259 260 160 259 107 261 161 104 262 158 264 262 156 159 265 105 263 264 110 263 157 265 111 156 266 160 268 266 108 161 269 157 267 268 112 267 109 269 113 170 270 166 272 270 144 167 273 171 271 272 148 271 145 273 149 136 274 168 276 274 170 169 277 137 275 276 146 275 171 277 147 172 278 116 280 278 142 117 281 173 279 280 166 279 143 281 167 134 282 114 284 282 172 115 285 135 283 284 168 283 173 285 169 166 286 162 288 286 160 163 289 167 287 288 140 287 161 289 141 128 290 164 292 290 166 165 293 129 291 292 138 291 167 293 139 168 294 132 296 294 158 133 297 169 295 296 162 295 159 297 163 126 298 130 300 298 168 131 301 127 299 300 164 299 169 301 165 162 302 170 304 302 152 171 305 163 303 304 156 303 153 305 157 120 306 172 308 306 162 173 309 121 307 308 154 307 163 309 155 164 310 124 312 310 150 125 313 165 311 312 170 311 151 313 171 118 314 122 316 314 164 123 317 119 315 316 172 315 165 317 173 322 237 320 251 305 322 321 250 323 236 287 320 304 323 286 321 320 269 318 235 273 320 319 234 321 268 303 318 272 321 302 319 318 253 322 267 289 318 323 266 319 252 271 322 288 319 270 323 328 305 326 243 221 328 327 242 329 304 295 326 220 329 294 327 326 265 324 303 277 326 325 302 327 264 219 324 276 327 218 325 324 245 328 263 297 324 329 262 325 244 275 328 296 325 274 329 334 233 332 287 309 334 333 286 335 232 187 332 308 335 186 333 332 261 330 231 281 332 331 230 333 260 307 330 280 333 306 331 330 289 334 259 189 330 335 258 331 288 279 334 188 331 278 335 340 309 338 295 217 340 339 294 341 308 179 338 216 341 178 339 338 257 336 307 285 338 337 306 339 256 215 336 284 339 214 337 336 297 340 255 181 336 341 254 337 296 283 340 180 337 282 341 346 229 344 247 313 346 345 246 347 228 291 344 312 347 290 345 344 273 342 227 205 344 343 226 345 272 311 342 204 345 310 343 342 249 346 271 293 342 347 270 343 248 203 346 292 343 202 347 352 313 350 239 213 352 351 238 353 312 299 350 212 353 298 351 350 277 348 311 201 350 349 310 351 276 211 348 200 351 210 349 348 241 352 275 301 348 353 274 349 240 199 352 300 349 198 353 358 225 356 291 317 358 357 290 359 224 183 356 316 359 182 357 356 281 354 223 197 356 355 222 357 280 315 354 196 357 314 355 354 293 358 279 185 354 359 278 355 292 195 358 184 355 194 359 364 317 362 299 209 364 363 298 365 316 175 362 208 365 174 363 362 285 360 315 193 362 361 314 363 284 207 360 192 363 206 361 360 301 364 283 177 360 365 282 361 300 191 364 176 361 190 365 564 0 6 8 10 12 14 16 18 20 22 24 26 28 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 282 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 0 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 282 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 185 186 1 282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 732 0 0 1 0 2 0 4 1 3 1 5 2 3 2 6 3 7 4 5 4 6 5 7 6 7 0 8 8 1 0 9 9 2 0 10 10 4 1 11 11 3 1 12 12 5 2 13 13 3 2 14 14 6 3 15 15 7 4 16 16 5 4 17 17 6 5 18 18 7 6 19 19 7 10 20 20 12 8 20 20 16 8 21 21 13 9 21 21 11 9 22 22 17 10 22 22 14 11 23 23 18 12 23 23 15 14 24 24 15 13 24 24 19 16 25 25 19 17 25 25 18 26 25 21 26 26 23 22 26 26 24 20 26 0 27 27 8 8 28 28 1 0 29 29 9 9 30 30 2 0 31 31 10 10 32 32 4 1 33 33 11 11 34 34 3 1 35 35 12 12 36 36 5 2 37 37 13 13 38 38 3 2 39 39 14 14 40 40 6 3 41 41 15 15 42 42 7 4 43 43 16 16 44 44 5 4 45 45 17 17 46 46 6 5 47 47 18 18 48 48 7 6 49 49 19 19 50 50 7 10 51 51 20 20 52 52 12 8 53 53 20 20 54 54 16 8 55 55 21 21 56 56 13 9 57 57 21 21 58 58 11 9 59 59 22 22 60 60 17 10 61 61 22 22 62 62 14 11 63 63 23 23 64 64 18 12 65 65 23 23 66 66 15 14 67 67 24 24 68 68 15 13 69 69 24 24 70 70 19 16 71 71 25 25 72 72 19 17 73 73 25 25 74 74 18 26 75 75 25 21 76 76 26 26 77 77 23 22 78 78 26 26 79 79 24 20 80 80 26 31 81 81 53 27 81 81 51 32 82 82 54 51 82 82 43 53 83 83 35 28 83 83 52 54 84 84 36 52 84 84 44 27 85 85 57 29 85 85 55 28 86 86 58 55 86 86 33 57 87 87 37 30 87 87 56 58 88 88 38 56 88 88 34 29 89 89 61 31 89 89 59 30 90 90 62 59 90 90 39 61 91 91 45 32 91 91 60 62 92 92 46 60 92 92 40 33 93 93 65 35 93 93 63 34 94 94 66 63 94 94 41 65 95 95 47 36 95 95 64 66 96 96 48 64 96 96 42 39 97 97 69 37 97 97 67 40 98 98 70 67 98 98 49 69 99 99 41 38 99 99 68 70 100 100 42 68 100 100 50 43 101 101 73 45 101 101 71 44 102 102 74 71 102 102 47 73 103 103 49 46 103 103 72 74 104 104 50 72 104 104 48 77 105 105 68 79 105 105 66 78 106 106 67 62 106 106 79 52 107 107 77 80 107 107 65 51 108 108 78 61 108 108 80 75 109 109 64 77 109 109 74 76 110 110 63 58 110 110 77 60 111 111 75 78 111 111 73 59 112 112 76 57 112 112 78 79 113 113 72 75 113 113 70 80 114 114 71 54 114 114 75 56 115 115 79 76 115 115 69 55 116 116 80 53 116 116 76 124 104 105 124 124 96 113 124 124 100 109 124 123 103 106 123 123 113 92 123 123 98 111 123 122 102 107 122 122 95 114 122 122 109 84 122 121 101 108 121 121 114 91 121 121 111 82 121 120 105 88 120 120 94 115 120 120 99 110 120 119 106 87 119 119 115 90 119 119 97 112 119 118 107 86 118 118 93 116 118 118 110 83 118 117 108 85 117 117 116 89 117 117 112 81 117 366 0 12 14 16 18 20 22 24 26 28 30 32 34 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 366 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 366 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 317 318 1 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1128 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 125 0 0 0 0 0 3 0 0 0.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01 3 1.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 1.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 7.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 7.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 2.50000000000000000e-01 3 0.00000000000000000e+00 0.00000000000000000e+00 7.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 7.50000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 2.50000000000000000e-01 3 1.00000000000000000e+00 0.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 7.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 2.50000000000000000e-01 3 0.00000000000000000e+00 1.00000000000000000e+00 7.50000000000000000e-01 3 1.00000000000000000e+00 1.00000000000000000e+00 2.50000000000000000e-01 3 1.00000000000000000e+00 1.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 1.00000000000000000e+00 3 7.50000000000000000e-01 0.00000000000000000e+00 1.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 1.00000000000000000e+00 3 0.00000000000000000e+00 7.50000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 2.50000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 7.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 7.50000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 2.50000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 5.00000000000000000e-01 7.50000000000000000e-01 3 0.00000000000000000e+00 2.50000000000000000e-01 5.00000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 2.50000000000000000e-01 7.50000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 125 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 3 366 0 0 300 0 0 282 0 0 240 0 0 73 3 0 1 8 64 64 3 0 0 0 64 0 DEAL::OK diff --git a/tests/serialization/triangulation_02.output b/tests/serialization/triangulation_02.output index c27cb7c205..2b5e5d4699 100644 --- a/tests/serialization/triangulation_02.output +++ b/tests/serialization/triangulation_02.output @@ -1,34 +1,34 @@ DEAL::0 0 0 3 0 0 2 1 0 -0 1 0 0 1 0 0 0 2 0 0 0 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 0 0 1 0 0 0 2 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 -1 2 0 0 1 2 0 0 4 0 -1 -1 1 1 1 0 -1 -1 2 0 0 1 2 0 0 4 1 0 0 0 2 0 2 0 2 2 2 1 2 0 0 -1 0 0 2 1 1 2 0 1 2 0 0 2 2 0 4294967295 4294967295 1 0 1 2 0 0 3 2 2 -2 4 0 0 0 0 0 4 0 0 0 0 8 0 -1 -1 2 1 2 0 1 1 2 1 2 3 2 2 -1 -1 4 0 0 0 0 0 4 0 0 0 0 0 2 0 0 1 0 4 0 2 0 3 2 3 2 2 2 4 2 4 1 4 0 -1 -1 -1 -1 0 0 4 1 1 0 0 4 0 0 0 0 4 0 0 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 1 2 1 4 0 0 0 0 0 0 1 0 0 5 0 0 0 0 0 1 0 0 0.00000000000000000e+00 1 1.00000000000000000e+00 1 5.00000000000000000e-01 1 2.50000000000000000e-01 1 7.50000000000000000e-01 5 1 1 1 1 0 0 0 0 3 5 3 0 1 2 2 3 3 0 0 1 2 0 0 0 23 1 0 -3 2 0 0 0 0 0 1 1 23 +0 1 1 0 0 1 0 0 0 2 0 0 0 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 1 2 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 +1 1 2 0 0 1 2 0 0 4 0 -1 -1 1 1 1 0 -1 -1 2 0 0 1 2 0 0 4 1 0 0 0 1 4 0 0 2 2 1 2 0 0 -1 0 0 2 1 1 2 0 1 2 0 0 2 2 0 4294967295 4294967295 1 0 1 2 0 0 3 2 2 +2 1 4 0 0 0 0 0 4 0 0 0 0 8 0 -1 -1 2 1 2 0 1 1 2 1 2 3 2 2 -1 -1 4 0 0 0 0 0 4 0 0 0 0 0 2 0 0 1 0 1 8 0 0 3 3 2 2 4 4 1 4 0 -1 -1 -1 -1 0 0 4 1 1 0 0 4 0 0 0 0 4 0 0 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 1 2 1 4 0 0 0 0 0 0 1 0 0 5 0 0 0 0 0 1 0 0 0.00000000000000000e+00 1 1.00000000000000000e+00 1 5.00000000000000000e-01 1 2.50000000000000000e-01 1 7.50000000000000000e-01 5 1 1 1 1 0 0 0 0 3 5 3 0 1 2 2 3 3 0 0 1 2 0 0 0 20 1 0 +3 2 0 0 0 0 0 1 1 20 4 5 0 0 4294967295 1 4294967295 2 4294967295 3 4294967295 4 4294967295 DEAL::0 0 0 3 0 0 2 1 0 -0 1 0 0 1 0 0 0 2 0 0 0 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 1 1 0 0 0 0 1 0 0 0 2 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 -1 2 0 0 1 2 0 0 4 0 -1 -1 1 1 1 0 -1 -1 2 0 0 1 2 0 0 4 1 0 0 2 1 1 2 0 2 0 2 2 2 1 2 0 0 -1 0 0 2 1 1 2 0 1 2 0 0 2 2 0 4294967295 4294967295 1 0 1 2 0 0 3 2 2 -2 4 0 0 0 0 0 4 0 0 0 0 8 0 -1 -1 2 1 2 0 1 1 2 1 2 3 2 2 -1 -1 4 0 0 0 0 0 4 0 0 0 0 0 2 0 0 1 4 1 1 1 1 4 0 2 0 3 2 3 2 2 2 4 2 4 1 4 0 -1 -1 -1 -1 0 0 4 1 1 0 0 4 0 0 0 0 4 0 0 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 1 2 1 4 0 0 0 0 0 0 1 0 0 5 0 0 0 0 0 2 0 0 0.00000000000000000e+00 0.00000000000000000e+00 2 1.00000000000000000e+00 0.00000000000000000e+00 2 5.00000000000000000e-01 0.00000000000000000e+00 2 2.50000000000000000e-01 0.00000000000000000e+00 2 7.50000000000000000e-01 0.00000000000000000e+00 5 1 1 1 1 0 0 0 0 3 5 3 0 1 2 2 3 3 0 0 1 2 0 0 0 23 1 0 -3 2 0 0 0 0 0 1 1 23 +0 1 1 0 0 1 0 0 0 2 0 0 0 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 1 1 0 0 1 2 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 +1 1 2 0 0 1 2 0 0 4 0 -1 -1 1 1 1 0 -1 -1 2 0 0 1 2 0 0 4 1 0 0 2 1 1 1 4 0 0 2 2 1 2 0 0 -1 0 0 2 1 1 2 0 1 2 0 0 2 2 0 4294967295 4294967295 1 0 1 2 0 0 3 2 2 +2 1 4 0 0 0 0 0 4 0 0 0 0 8 0 -1 -1 2 1 2 0 1 1 2 1 2 3 2 2 -1 -1 4 0 0 0 0 0 4 0 0 0 0 0 2 0 0 1 4 1 1 1 1 1 8 0 0 3 3 2 2 4 4 1 4 0 -1 -1 -1 -1 0 0 4 1 1 0 0 4 0 0 0 0 4 0 0 0 0 0 4 0 4294967295 4294967295 4294967295 4294967295 1 2 1 4 0 0 0 0 0 0 1 0 0 5 0 0 0 0 0 2 0 0 0.00000000000000000e+00 0.00000000000000000e+00 2 1.00000000000000000e+00 0.00000000000000000e+00 2 5.00000000000000000e-01 0.00000000000000000e+00 2 2.50000000000000000e-01 0.00000000000000000e+00 2 7.50000000000000000e-01 0.00000000000000000e+00 5 1 1 1 1 0 0 0 0 3 5 3 0 1 2 2 3 3 0 0 1 2 0 0 0 20 1 0 +3 2 0 0 0 0 0 1 1 20 4 5 0 0 4294967295 1 4294967295 2 4294967295 3 4294967295 4 4294967295 DEAL::0 0 0 3 0 0 2 1 0 -0 1 0 0 1 0 0 0 4 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 0 0 1 0 0 0 4 1 2 0 3 2 0 0 2 0 0 1 0 0 0 3 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 -1 4 0 0 1 0 0 4 0 0 0 0 16 0 -1 -1 1 1 -1 -1 1 2 1 0 -1 -1 -1 -1 1 3 -1 -1 1 3 1 0 -1 -1 1 2 -1 -1 1 1 -1 -1 4 0 0 1 0 0 4 0 0 4 0 0 2 0 0 0 0 4 0 4 6 12 4 14 4 12 8 5 15 4 7 13 14 10 4 13 9 15 11 8 0 0 2 -1 -1 -1 -1 -1 -1 4 0 3 0 0 0 4 1 1 1 1 4 0 1 0 0 4 0 0 2 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 0 3 0 0 2 2 -2 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 -1 -1 2 1 -1 -1 2 2 2 0 1 1 -1 -1 2 3 -1 -1 2 3 2 0 1 2 2 2 1 1 2 1 1 2 2 1 2 5 -1 -1 2 6 2 4 -1 -1 -1 -1 2 7 2 3 2 7 2 4 2 12 2 6 -1 -1 2 5 2 13 -1 -1 2 9 2 2 2 10 2 8 2 12 2 3 2 11 -1 -1 2 11 2 8 -1 -1 2 10 2 14 2 9 -1 -1 2 9 2 13 2 6 2 14 2 12 -1 -1 2 7 2 15 2 11 2 15 2 12 -1 -1 2 14 -1 -1 2 13 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 1 1 2 2 3 3 0 16 0 4 18 24 16 26 4 24 20 17 27 4 19 25 26 22 4 25 21 27 23 4 32 44 18 46 4 44 24 19 47 4 33 45 46 38 4 45 25 47 39 4 22 48 36 50 4 48 34 37 51 4 23 49 50 28 4 49 35 51 29 4 34 52 38 54 4 52 26 39 55 4 35 53 54 30 4 53 27 55 31 32 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 3 2 1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1 0 -3 0 0 0 0 56 0 0 0 2 0 1 2 0 2 2 1 3 2 2 3 2 0 4 2 4 1 2 0 5 2 5 2 2 1 6 2 6 3 2 2 7 2 7 3 2 4 8 2 8 7 2 5 8 2 8 6 2 0 9 2 9 4 2 0 10 2 10 5 2 4 11 2 11 8 2 5 12 2 12 8 2 9 13 2 13 12 2 10 13 2 13 11 2 2 15 2 15 7 2 7 16 2 16 3 2 4 17 2 17 8 2 8 18 2 18 7 2 5 19 2 19 8 2 8 20 2 20 6 2 9 21 2 21 19 2 11 21 2 21 17 2 10 22 2 22 20 2 17 22 2 22 13 2 19 23 2 23 15 2 12 23 2 23 18 2 20 24 2 24 16 2 18 24 2 24 14 56 0 4 6 8 10 16 -1 18 -1 -1 -1 -1 -1 20 -1 22 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 56 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 27 24 1 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 2 0 0 0.00000000000000000e+00 0.00000000000000000e+00 2 1.00000000000000000e+00 0.00000000000000000e+00 2 0.00000000000000000e+00 1.00000000000000000e+00 2 1.00000000000000000e+00 1.00000000000000000e+00 2 5.00000000000000000e-01 0.00000000000000000e+00 2 0.00000000000000000e+00 5.00000000000000000e-01 2 1.00000000000000000e+00 5.00000000000000000e-01 2 5.00000000000000000e-01 1.00000000000000000e+00 2 5.00000000000000000e-01 5.00000000000000000e-01 2 2.50000000000000000e-01 0.00000000000000000e+00 2 0.00000000000000000e+00 2.50000000000000000e-01 2 5.00000000000000000e-01 2.50000000000000000e-01 2 2.50000000000000000e-01 5.00000000000000000e-01 2 2.50000000000000000e-01 2.50000000000000000e-01 2 1.00000000000000000e+00 7.50000000000000000e-01 2 2.50000000000000000e-01 1.00000000000000000e+00 2 7.50000000000000000e-01 1.00000000000000000e+00 2 5.00000000000000000e-01 2.50000000000000000e-01 2 5.00000000000000000e-01 7.50000000000000000e-01 2 2.50000000000000000e-01 5.00000000000000000e-01 2 7.50000000000000000e-01 5.00000000000000000e-01 2 2.50000000000000000e-01 2.50000000000000000e-01 2 7.50000000000000000e-01 2.50000000000000000e-01 2 2.50000000000000000e-01 7.50000000000000000e-01 2 7.50000000000000000e-01 7.50000000000000000e-01 25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 28 0 0 20 0 0 9 3 0 1 4 4 7 3 0 0 3 4 0 +0 2 1 0 0 1 0 0 0 4 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 2 4 0 1 2 0 3 2 0 0 2 1 0 3 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 +1 2 4 0 0 1 0 0 4 0 0 0 0 16 0 -1 -1 1 1 -1 -1 1 2 1 0 -1 -1 -1 -1 1 3 -1 -1 1 3 1 0 -1 -1 1 2 -1 -1 1 1 -1 -1 4 0 0 1 0 0 4 0 0 4 0 0 2 0 0 0 0 2 16 0 6 12 4 14 12 8 5 15 7 13 14 10 13 9 15 11 8 0 0 2 -1 -1 -1 -1 -1 -1 4 0 3 0 0 0 4 1 1 1 1 4 0 1 0 0 4 0 0 2 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 0 3 0 0 2 2 +2 2 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 -1 -1 2 1 -1 -1 2 2 2 0 1 1 -1 -1 2 3 -1 -1 2 3 2 0 1 2 2 2 1 1 2 1 1 2 2 1 2 5 -1 -1 2 6 2 4 -1 -1 -1 -1 2 7 2 3 2 7 2 4 2 12 2 6 -1 -1 2 5 2 13 -1 -1 2 9 2 2 2 10 2 8 2 12 2 3 2 11 -1 -1 2 11 2 8 -1 -1 2 10 2 14 2 9 -1 -1 2 9 2 13 2 6 2 14 2 12 -1 -1 2 7 2 15 2 11 2 15 2 12 -1 -1 2 14 -1 -1 2 13 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 1 1 2 2 3 3 0 2 64 0 18 24 16 26 24 20 17 27 19 25 26 22 25 21 27 23 32 44 18 46 44 24 19 47 33 45 46 38 45 25 47 39 22 48 36 50 48 34 37 51 23 49 50 28 49 35 51 29 34 52 38 54 52 26 39 55 35 53 54 30 53 27 55 31 32 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 3 2 1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 1 0 +3 2 1 112 0 0 1 0 2 1 3 2 3 0 4 4 1 0 5 5 2 1 6 6 3 2 7 7 3 4 8 8 7 5 8 8 6 0 9 9 4 0 10 10 5 4 11 11 8 5 12 12 8 9 13 13 12 10 13 13 11 2 15 15 7 7 16 16 3 4 17 17 8 8 18 18 7 5 19 19 8 8 20 20 6 9 21 21 19 11 21 21 17 10 22 22 20 17 22 22 13 19 23 23 15 12 23 23 18 20 24 24 16 18 24 24 14 56 0 4 6 8 10 16 -1 18 -1 -1 -1 -1 -1 20 -1 22 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 56 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 27 24 1 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 2 0 0 0.00000000000000000e+00 0.00000000000000000e+00 2 1.00000000000000000e+00 0.00000000000000000e+00 2 0.00000000000000000e+00 1.00000000000000000e+00 2 1.00000000000000000e+00 1.00000000000000000e+00 2 5.00000000000000000e-01 0.00000000000000000e+00 2 0.00000000000000000e+00 5.00000000000000000e-01 2 1.00000000000000000e+00 5.00000000000000000e-01 2 5.00000000000000000e-01 1.00000000000000000e+00 2 5.00000000000000000e-01 5.00000000000000000e-01 2 2.50000000000000000e-01 0.00000000000000000e+00 2 0.00000000000000000e+00 2.50000000000000000e-01 2 5.00000000000000000e-01 2.50000000000000000e-01 2 2.50000000000000000e-01 5.00000000000000000e-01 2 2.50000000000000000e-01 2.50000000000000000e-01 2 1.00000000000000000e+00 7.50000000000000000e-01 2 2.50000000000000000e-01 1.00000000000000000e+00 2 7.50000000000000000e-01 1.00000000000000000e+00 2 5.00000000000000000e-01 2.50000000000000000e-01 2 5.00000000000000000e-01 7.50000000000000000e-01 2 2.50000000000000000e-01 5.00000000000000000e-01 2 7.50000000000000000e-01 5.00000000000000000e-01 2 2.50000000000000000e-01 2.50000000000000000e-01 2 7.50000000000000000e-01 2.50000000000000000e-01 2 2.50000000000000000e-01 7.50000000000000000e-01 2 7.50000000000000000e-01 7.50000000000000000e-01 25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 28 0 0 20 0 0 9 3 0 1 4 4 7 3 0 0 3 4 0 DEAL::0 0 0 3 0 0 2 1 0 -0 1 0 0 1 0 0 0 4 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 1 1 0 0 0 0 1 0 0 0 4 1 2 0 3 2 0 0 2 0 0 1 0 0 0 3 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 -1 4 0 0 1 0 0 4 0 0 0 0 16 0 -1 -1 1 1 -1 -1 1 2 1 0 -1 -1 -1 -1 1 3 -1 -1 1 3 1 0 -1 -1 1 2 -1 -1 1 1 -1 -1 4 0 0 1 0 0 4 0 0 4 0 0 2 0 0 0 4 1 1 1 1 4 0 4 6 12 4 14 4 12 8 5 15 4 7 13 14 10 4 13 9 15 11 8 0 0 2 -1 -1 -1 -1 -1 -1 4 0 3 0 0 0 4 1 1 1 1 4 0 1 0 0 4 0 0 2 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 0 3 0 0 2 2 -2 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 -1 -1 2 1 -1 -1 2 2 2 0 1 1 -1 -1 2 3 -1 -1 2 3 2 0 1 2 2 2 1 1 2 1 1 2 2 1 2 5 -1 -1 2 6 2 4 -1 -1 -1 -1 2 7 2 3 2 7 2 4 2 12 2 6 -1 -1 2 5 2 13 -1 -1 2 9 2 2 2 10 2 8 2 12 2 3 2 11 -1 -1 2 11 2 8 -1 -1 2 10 2 14 2 9 -1 -1 2 9 2 13 2 6 2 14 2 12 -1 -1 2 7 2 15 2 11 2 15 2 12 -1 -1 2 14 -1 -1 2 13 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 1 1 2 2 3 3 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 0 4 18 24 16 26 4 24 20 17 27 4 19 25 26 22 4 25 21 27 23 4 32 44 18 46 4 44 24 19 47 4 33 45 46 38 4 45 25 47 39 4 22 48 36 50 4 48 34 37 51 4 23 49 50 28 4 49 35 51 29 4 34 52 38 54 4 52 26 39 55 4 35 53 54 30 4 53 27 55 31 32 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 3 2 1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1 0 -3 0 0 0 0 56 0 0 0 2 0 1 2 0 2 2 1 3 2 2 3 2 0 4 2 4 1 2 0 5 2 5 2 2 1 6 2 6 3 2 2 7 2 7 3 2 4 8 2 8 7 2 5 8 2 8 6 2 0 9 2 9 4 2 0 10 2 10 5 2 4 11 2 11 8 2 5 12 2 12 8 2 9 13 2 13 12 2 10 13 2 13 11 2 2 15 2 15 7 2 7 16 2 16 3 2 4 17 2 17 8 2 8 18 2 18 7 2 5 19 2 19 8 2 8 20 2 20 6 2 9 21 2 21 19 2 11 21 2 21 17 2 10 22 2 22 20 2 17 22 2 22 13 2 19 23 2 23 15 2 12 23 2 23 18 2 20 24 2 24 16 2 18 24 2 24 14 56 0 4 6 8 10 16 -1 18 -1 -1 -1 -1 -1 20 -1 22 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 56 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 27 24 1 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 3 0 0 0.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 7.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 28 0 0 20 0 0 9 3 0 1 4 4 7 3 0 0 3 4 0 +0 2 1 0 0 1 0 0 0 4 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 1 1 0 0 2 4 0 1 2 0 3 2 0 0 2 1 0 3 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 1 0 0 1 0 0 0 0 0 2 +1 2 4 0 0 1 0 0 4 0 0 0 0 16 0 -1 -1 1 1 -1 -1 1 2 1 0 -1 -1 -1 -1 1 3 -1 -1 1 3 1 0 -1 -1 1 2 -1 -1 1 1 -1 -1 4 0 0 1 0 0 4 0 0 4 0 0 2 0 0 0 4 1 1 1 1 2 16 0 6 12 4 14 12 8 5 15 7 13 14 10 13 9 15 11 8 0 0 2 -1 -1 -1 -1 -1 -1 4 0 3 0 0 0 4 1 1 1 1 4 0 1 0 0 4 0 0 2 0 0 4 0 4294967295 4294967295 4294967295 4294967295 3 0 1 4 0 0 3 0 0 2 2 +2 2 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 -1 -1 2 1 -1 -1 2 2 2 0 1 1 -1 -1 2 3 -1 -1 2 3 2 0 1 2 2 2 1 1 2 1 1 2 2 1 2 5 -1 -1 2 6 2 4 -1 -1 -1 -1 2 7 2 3 2 7 2 4 2 12 2 6 -1 -1 2 5 2 13 -1 -1 2 9 2 2 2 10 2 8 2 12 2 3 2 11 -1 -1 2 11 2 8 -1 -1 2 10 2 14 2 9 -1 -1 2 9 2 13 2 6 2 14 2 12 -1 -1 2 7 2 15 2 11 2 15 2 12 -1 -1 2 14 -1 -1 2 13 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 1 1 2 2 3 3 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 64 0 18 24 16 26 24 20 17 27 19 25 26 22 25 21 27 23 32 44 18 46 44 24 19 47 33 45 46 38 45 25 47 39 22 48 36 50 48 34 37 51 23 49 50 28 49 35 51 29 34 52 38 54 52 26 39 55 35 53 54 30 53 27 55 31 32 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 3 2 1 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 1 0 +3 2 1 112 0 0 1 0 2 1 3 2 3 0 4 4 1 0 5 5 2 1 6 6 3 2 7 7 3 4 8 8 7 5 8 8 6 0 9 9 4 0 10 10 5 4 11 11 8 5 12 12 8 9 13 13 12 10 13 13 11 2 15 15 7 7 16 16 3 4 17 17 8 8 18 18 7 5 19 19 8 8 20 20 6 9 21 21 19 11 21 21 17 10 22 22 20 17 22 22 13 19 23 23 15 12 23 23 18 20 24 24 16 18 24 24 14 56 0 4 6 8 10 16 -1 18 -1 -1 -1 -1 -1 20 -1 22 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 56 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 27 24 1 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 3 0 0 0.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 7.50000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 28 0 0 20 0 0 9 3 0 1 4 4 7 3 0 0 3 4 0 DEAL::0 0 0 3 0 0 2 1 0 -0 1 0 0 1 0 0 0 6 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 0 0 1 0 0 0 6 2 3 0 4 1 5 4 0 0 2 4 6 0 0 1 0 0 0 7 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 0 0 0 1 0 0 0 0 0 6 0 1 1 1 1 1 1 2 -1 8 0 0 1 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 48 0 -1 -1 1 1 -1 -1 1 2 -1 -1 1 4 1 0 -1 -1 -1 -1 1 3 -1 -1 1 5 -1 -1 1 3 1 0 -1 -1 -1 -1 1 6 1 2 -1 -1 1 1 -1 -1 -1 -1 1 7 -1 -1 1 5 -1 -1 1 6 1 0 -1 -1 1 4 -1 -1 -1 -1 1 7 1 1 -1 -1 -1 -1 1 7 1 4 -1 -1 1 2 -1 -1 1 6 -1 -1 1 5 -1 -1 1 3 -1 -1 8 0 0 1 0 0 0 0 0 0 8 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 8 0 6 14 41 6 37 10 33 6 41 18 8 35 11 32 6 15 40 37 22 12 31 6 40 19 35 24 13 30 6 16 39 7 36 33 26 6 39 20 9 34 32 27 6 17 38 36 23 31 28 6 38 21 34 25 30 29 32 0 0 2 4 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 8 0 7 0 0 0 0 0 0 0 8 1 1 1 1 1 1 1 1 8 0 1 0 0 0 0 0 0 8 0 0 2 0 0 0 0 0 0 8 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 8 0 0 3 0 0 0 0 0 0 2 48 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 -2 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 0 -1 -1 2 1 -1 -1 2 2 -1 -1 2 4 2 0 1 1 -1 -1 2 3 -1 -1 2 5 -1 -1 2 3 2 0 1 2 -1 -1 2 6 2 2 1 1 2 1 1 2 -1 -1 2 7 -1 -1 2 5 -1 -1 2 6 2 0 1 4 2 4 1 1 -1 -1 2 7 2 1 1 4 -1 -1 2 7 2 4 1 2 2 2 1 4 2 6 1 1 2 5 1 2 2 3 1 4 2 1 2 9 -1 -1 2 10 -1 -1 2 12 2 8 -1 -1 -1 -1 2 11 -1 -1 2 13 2 3 2 11 2 8 2 24 -1 -1 2 14 2 10 -1 -1 2 9 2 25 -1 -1 2 15 2 5 2 13 -1 -1 2 14 2 8 2 40 2 12 -1 -1 -1 -1 2 15 2 9 2 41 2 7 2 15 2 12 2 28 2 10 2 42 2 14 -1 -1 2 13 2 29 2 11 2 43 -1 -1 2 17 2 2 2 18 -1 -1 2 20 2 16 2 24 2 3 2 19 -1 -1 2 21 -1 -1 2 19 2 16 -1 -1 -1 -1 2 22 2 18 2 26 2 17 -1 -1 -1 -1 2 23 -1 -1 2 21 2 6 2 22 2 16 2 48 2 20 2 28 2 7 2 23 2 17 2 49 -1 -1 2 23 2 20 -1 -1 2 18 2 50 2 22 2 30 2 21 -1 -1 2 19 2 51 2 17 2 25 2 10 2 26 -1 -1 2 28 2 24 -1 -1 2 11 2 27 -1 -1 2 29 2 19 2 27 2 24 -1 -1 -1 -1 2 30 2 26 -1 -1 2 25 -1 -1 -1 -1 2 31 2 21 2 29 2 14 2 30 2 24 2 56 2 28 -1 -1 2 15 2 31 2 25 2 57 2 23 2 31 2 28 -1 -1 2 26 2 58 2 30 -1 -1 2 29 -1 -1 2 27 2 59 -1 -1 2 33 -1 -1 2 34 2 4 2 36 2 32 2 40 -1 -1 2 35 2 5 2 37 -1 -1 2 35 2 32 2 48 2 6 2 38 2 34 2 42 2 33 2 49 2 7 2 39 -1 -1 2 37 -1 -1 2 38 2 32 -1 -1 2 36 2 44 -1 -1 2 39 2 33 -1 -1 -1 -1 2 39 2 36 2 52 2 34 -1 -1 2 38 2 46 2 37 2 53 2 35 -1 -1 2 33 2 41 -1 -1 2 42 2 12 2 44 2 40 -1 -1 -1 -1 2 43 2 13 2 45 2 35 2 43 2 40 2 56 2 14 2 46 2 42 -1 -1 2 41 2 57 2 15 2 47 2 37 2 45 -1 -1 2 46 2 40 -1 -1 2 44 -1 -1 -1 -1 2 47 2 41 -1 -1 2 39 2 47 2 44 2 60 2 42 -1 -1 2 46 -1 -1 2 45 2 61 2 43 -1 -1 -1 -1 2 49 2 34 2 50 2 20 2 52 2 48 2 56 2 35 2 51 2 21 2 53 -1 -1 2 51 2 48 -1 -1 2 22 2 54 2 50 2 58 2 49 -1 -1 2 23 2 55 -1 -1 2 53 2 38 2 54 2 48 -1 -1 2 52 2 60 2 39 2 55 2 49 -1 -1 -1 -1 2 55 2 52 -1 -1 2 50 -1 -1 2 54 2 62 2 53 -1 -1 2 51 -1 -1 2 49 2 57 2 42 2 58 2 28 2 60 2 56 -1 -1 2 43 2 59 2 29 2 61 2 51 2 59 2 56 -1 -1 2 30 2 62 2 58 -1 -1 2 57 -1 -1 2 31 2 63 2 53 2 61 2 46 2 62 2 56 -1 -1 2 60 -1 -1 2 47 2 63 2 57 -1 -1 2 55 2 63 2 60 -1 -1 2 58 -1 -1 2 62 -1 -1 2 61 -1 -1 2 59 -1 -1 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 0 64 0 6 50 77 42 73 46 69 6 77 62 44 71 47 68 6 51 76 73 58 48 67 6 76 63 71 60 49 66 6 52 75 43 72 69 54 6 75 64 45 70 68 55 6 53 74 72 59 67 56 6 74 65 70 61 66 57 6 182 269 50 265 62 261 6 269 90 52 263 63 260 6 183 268 265 158 64 259 6 268 91 263 160 65 258 6 184 267 51 264 261 146 6 267 92 53 262 260 147 6 185 266 264 159 259 148 6 266 93 262 161 258 149 6 78 257 166 253 66 249 6 257 178 168 251 67 248 6 79 256 253 106 68 247 6 256 179 251 108 69 246 6 80 255 167 252 249 142 6 255 180 169 250 248 143 6 81 254 252 107 247 144 6 254 181 250 109 246 145 6 178 245 158 241 70 237 6 245 94 160 239 71 236 6 179 244 241 114 72 235 6 244 95 239 116 73 234 6 180 243 159 240 237 138 6 243 96 161 238 236 139 6 181 242 240 115 235 140 6 242 97 238 117 234 141 6 82 233 46 229 150 225 6 233 174 48 227 151 224 6 83 232 229 162 152 223 6 232 175 227 164 153 222 6 84 231 47 228 225 122 6 231 176 49 226 224 123 6 85 230 228 163 223 124 6 230 177 226 165 222 125 6 174 221 54 217 146 213 6 221 98 56 215 147 212 6 175 220 217 154 148 211 6 220 99 215 156 149 210 6 176 219 55 216 213 126 6 219 100 57 214 212 127 6 177 218 216 155 211 128 6 218 101 214 157 210 129 6 86 209 162 205 142 201 6 209 170 164 203 143 200 6 87 208 205 110 144 199 6 208 171 203 112 145 198 6 88 207 163 204 201 130 6 207 172 165 202 200 131 6 89 206 204 111 199 132 6 206 173 202 113 198 133 6 170 197 154 193 138 189 6 197 102 156 191 139 188 6 171 196 193 118 140 187 6 196 103 191 120 141 186 6 172 195 155 192 189 134 6 195 104 157 190 188 135 6 173 194 192 119 187 136 6 194 105 190 121 186 137 256 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 8 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 19 1 0 -3 0 0 0 0 282 0 0 0 4 0 8 2 4 4 1 3 0 5 4 2 6 1 9 4 4 7 3 10 4 5 11 6 7 4 9 10 8 11 4 12 36 16 38 4 36 28 17 39 4 13 37 38 20 4 37 29 39 21 4 14 40 12 42 4 40 18 13 43 4 15 41 42 22 4 41 19 43 23 4 16 44 14 46 4 44 24 15 47 4 17 45 46 30 4 45 25 47 31 4 20 48 18 50 4 48 26 19 51 4 21 49 50 32 4 49 27 51 33 4 22 52 24 54 4 52 34 25 55 4 23 53 54 26 4 53 35 55 27 4 30 56 28 58 4 56 32 29 59 4 31 57 58 34 4 57 33 59 35 4 64 51 62 53 4 47 64 63 52 4 65 50 37 62 4 46 65 36 63 4 62 59 60 49 4 43 62 61 48 4 63 58 45 60 4 42 63 44 61 4 60 55 64 57 4 39 60 65 56 4 61 54 41 64 4 38 61 40 65 4 66 90 70 92 4 90 72 71 93 4 67 91 92 74 4 91 73 93 75 4 68 94 66 96 4 94 76 67 97 4 69 95 96 78 4 95 77 97 79 4 70 98 68 100 4 98 80 69 101 4 71 99 100 82 4 99 81 101 83 4 82 102 72 104 4 102 88 73 105 4 83 103 104 86 4 103 89 105 87 4 78 106 80 108 4 106 86 81 109 4 79 107 108 84 4 107 87 109 85 4 74 110 76 112 4 110 84 77 113 4 75 111 112 88 4 111 85 113 89 4 118 113 116 107 4 101 118 117 106 4 119 112 91 116 4 100 119 90 117 4 116 105 114 111 4 97 116 115 110 4 117 104 99 114 4 96 117 98 115 4 114 109 118 103 4 93 114 119 102 4 115 108 95 118 4 92 115 94 119 4 130 210 72 212 4 210 90 73 213 4 131 211 212 136 4 211 91 213 137 4 76 214 134 216 4 214 132 135 217 4 77 215 216 102 4 215 133 217 103 4 132 218 136 220 4 218 92 137 221 4 133 219 220 104 4 219 93 221 105 4 82 222 78 224 4 222 138 79 225 4 83 223 224 142 4 223 139 225 143 4 138 226 80 228 4 226 94 81 229 4 139 227 228 144 4 227 95 229 145 4 84 230 142 232 4 230 140 143 233 4 85 231 232 106 4 231 141 233 107 4 140 234 144 236 4 234 96 145 237 4 141 235 236 108 4 235 97 237 109 4 86 238 90 240 4 238 146 91 241 4 87 239 240 150 4 239 147 241 151 4 146 242 92 244 4 242 110 93 245 4 147 243 244 152 4 243 111 245 153 4 88 246 150 248 4 246 148 151 249 4 89 247 248 94 4 247 149 249 95 4 148 250 152 252 4 250 112 153 253 4 149 251 252 96 4 251 113 253 97 4 102 254 98 256 4 254 154 99 257 4 103 255 256 158 4 255 155 257 159 4 154 258 100 260 4 258 106 101 261 4 155 259 260 160 4 259 107 261 161 4 104 262 158 264 4 262 156 159 265 4 105 263 264 110 4 263 157 265 111 4 156 266 160 268 4 266 108 161 269 4 157 267 268 112 4 267 109 269 113 4 170 270 166 272 4 270 144 167 273 4 171 271 272 148 4 271 145 273 149 4 136 274 168 276 4 274 170 169 277 4 137 275 276 146 4 275 171 277 147 4 172 278 116 280 4 278 142 117 281 4 173 279 280 166 4 279 143 281 167 4 134 282 114 284 4 282 172 115 285 4 135 283 284 168 4 283 173 285 169 4 166 286 162 288 4 286 160 163 289 4 167 287 288 140 4 287 161 289 141 4 128 290 164 292 4 290 166 165 293 4 129 291 292 138 4 291 167 293 139 4 168 294 132 296 4 294 158 133 297 4 169 295 296 162 4 295 159 297 163 4 126 298 130 300 4 298 168 131 301 4 127 299 300 164 4 299 169 301 165 4 162 302 170 304 4 302 152 171 305 4 163 303 304 156 4 303 153 305 157 4 120 306 172 308 4 306 162 173 309 4 121 307 308 154 4 307 163 309 155 4 164 310 124 312 4 310 150 125 313 4 165 311 312 170 4 311 151 313 171 4 118 314 122 316 4 314 164 123 317 4 119 315 316 172 4 315 165 317 173 4 322 237 320 251 4 305 322 321 250 4 323 236 287 320 4 304 323 286 321 4 320 269 318 235 4 273 320 319 234 4 321 268 303 318 4 272 321 302 319 4 318 253 322 267 4 289 318 323 266 4 319 252 271 322 4 288 319 270 323 4 328 305 326 243 4 221 328 327 242 4 329 304 295 326 4 220 329 294 327 4 326 265 324 303 4 277 326 325 302 4 327 264 219 324 4 276 327 218 325 4 324 245 328 263 4 297 324 329 262 4 325 244 275 328 4 296 325 274 329 4 334 233 332 287 4 309 334 333 286 4 335 232 187 332 4 308 335 186 333 4 332 261 330 231 4 281 332 331 230 4 333 260 307 330 4 280 333 306 331 4 330 289 334 259 4 189 330 335 258 4 331 288 279 334 4 188 331 278 335 4 340 309 338 295 4 217 340 339 294 4 341 308 179 338 4 216 341 178 339 4 338 257 336 307 4 285 338 337 306 4 339 256 215 336 4 284 339 214 337 4 336 297 340 255 4 181 336 341 254 4 337 296 283 340 4 180 337 282 341 4 346 229 344 247 4 313 346 345 246 4 347 228 291 344 4 312 347 290 345 4 344 273 342 227 4 205 344 343 226 4 345 272 311 342 4 204 345 310 343 4 342 249 346 271 4 293 342 347 270 4 343 248 203 346 4 292 343 202 347 4 352 313 350 239 4 213 352 351 238 4 353 312 299 350 4 212 353 298 351 4 350 277 348 311 4 201 350 349 310 4 351 276 211 348 4 200 351 210 349 4 348 241 352 275 4 301 348 353 274 4 349 240 199 352 4 300 349 198 353 4 358 225 356 291 4 317 358 357 290 4 359 224 183 356 4 316 359 182 357 4 356 281 354 223 4 197 356 355 222 4 357 280 315 354 4 196 357 314 355 4 354 293 358 279 4 185 354 359 278 4 355 292 195 358 4 184 355 194 359 4 364 317 362 299 4 209 364 363 298 4 365 316 175 362 4 208 365 174 363 4 362 285 360 315 4 193 362 361 314 4 363 284 207 360 4 192 363 206 361 4 360 301 364 283 4 177 360 365 282 4 361 300 191 364 4 176 361 190 365 564 0 6 8 10 12 14 16 18 20 22 24 26 28 42 44 -1 -1 -1 -1 -1 -1 46 48 -1 -1 -1 -1 -1 -1 50 52 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 54 56 -1 -1 -1 -1 -1 -1 58 60 -1 -1 -1 -1 -1 -1 62 64 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 282 0 0 0 3 3 3 3 3 3 3 0 0 0 3 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 3 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 0 0 0 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 282 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 65 66 1 0 0 282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1128 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 366 0 0 0 2 0 1 2 0 2 2 0 4 2 1 3 2 1 5 2 2 3 2 2 6 2 3 7 2 4 5 2 4 6 2 5 7 2 6 7 2 0 8 2 8 1 2 0 9 2 9 2 2 0 10 2 10 4 2 1 11 2 11 3 2 1 12 2 12 5 2 2 13 2 13 3 2 2 14 2 14 6 2 3 15 2 15 7 2 4 16 2 16 5 2 4 17 2 17 6 2 5 18 2 18 7 2 6 19 2 19 7 2 10 20 2 20 12 2 8 20 2 20 16 2 8 21 2 21 13 2 9 21 2 21 11 2 9 22 2 22 17 2 10 22 2 22 14 2 11 23 2 23 18 2 12 23 2 23 15 2 14 24 2 24 15 2 13 24 2 24 19 2 16 25 2 25 19 2 17 25 2 25 18 2 26 25 2 21 26 2 26 23 2 22 26 2 26 24 2 20 26 2 0 27 2 27 8 2 0 28 2 28 9 2 0 29 2 29 10 2 10 30 2 30 20 2 8 31 2 31 20 2 8 32 2 32 21 2 9 33 2 33 21 2 9 34 2 34 22 2 10 35 2 35 22 2 21 36 2 36 26 2 22 37 2 37 26 2 20 38 2 38 26 2 29 39 2 39 31 2 27 39 2 39 30 2 27 40 2 40 33 2 28 40 2 40 32 2 28 41 2 41 35 2 29 41 2 41 34 2 30 42 2 42 37 2 35 42 2 42 38 2 34 43 2 43 36 2 33 43 2 43 37 2 32 44 2 44 38 2 31 44 2 44 36 2 45 42 2 40 45 2 45 44 2 41 45 2 45 43 2 39 45 2 20 54 2 54 16 2 8 55 2 55 21 2 21 56 2 56 13 2 9 57 2 57 21 2 21 58 2 58 11 2 9 59 2 59 22 2 22 60 2 60 17 2 10 61 2 61 22 2 22 62 2 62 14 2 11 63 2 63 23 2 23 64 2 64 18 2 12 65 2 65 23 2 23 66 2 66 15 2 14 67 2 67 24 2 24 68 2 68 15 2 13 69 2 69 24 2 24 70 2 70 19 2 16 71 2 71 25 2 25 72 2 72 19 2 17 73 2 73 25 2 25 74 2 74 18 2 26 75 2 75 25 2 21 76 2 76 26 2 26 77 2 77 23 2 22 78 2 78 26 2 26 79 2 79 24 2 20 80 2 80 26 2 31 81 2 81 53 2 27 81 2 81 51 2 32 82 2 82 54 2 51 82 2 82 43 2 53 83 2 83 35 2 28 83 2 83 52 2 54 84 2 84 36 2 52 84 2 84 44 2 27 85 2 85 57 2 29 85 2 85 55 2 28 86 2 86 58 2 55 86 2 86 33 2 57 87 2 87 37 2 30 87 2 87 56 2 58 88 2 88 38 2 56 88 2 88 34 2 29 89 2 89 61 2 31 89 2 89 59 2 30 90 2 90 62 2 59 90 2 90 39 2 61 91 2 91 45 2 32 91 2 91 60 2 62 92 2 92 46 2 60 92 2 92 40 2 33 93 2 93 65 2 35 93 2 93 63 2 34 94 2 94 66 2 63 94 2 94 41 2 65 95 2 95 47 2 36 95 2 95 64 2 66 96 2 96 48 2 64 96 2 96 42 2 39 97 2 97 69 2 37 97 2 97 67 2 40 98 2 98 70 2 67 98 2 98 49 2 69 99 2 99 41 2 38 99 2 99 68 2 70 100 2 100 42 2 68 100 2 100 50 2 43 101 2 101 73 2 45 101 2 101 71 2 44 102 2 102 74 2 71 102 2 102 47 2 73 103 2 103 49 2 46 103 2 103 72 2 74 104 2 104 50 2 72 104 2 104 48 2 77 105 2 105 68 2 79 105 2 105 66 2 78 106 2 106 67 2 62 106 2 106 79 2 52 107 2 107 77 2 80 107 2 107 65 2 51 108 2 108 78 2 61 108 2 108 80 2 75 109 2 109 64 2 77 109 2 109 74 2 76 110 2 110 63 2 58 110 2 110 77 2 60 111 2 111 75 2 78 111 2 111 73 2 59 112 2 112 76 2 57 112 2 112 78 2 79 113 2 113 72 2 75 113 2 113 70 2 80 114 2 114 71 2 54 114 2 114 75 2 56 115 2 115 79 2 76 115 2 115 69 2 55 116 2 116 80 2 53 116 2 116 76 2 124 104 2 105 124 2 124 96 2 113 124 2 124 100 2 109 124 2 123 103 2 106 123 2 123 113 2 92 123 2 123 98 2 111 123 2 122 102 2 107 122 2 122 95 2 114 122 2 122 109 2 84 122 2 121 101 2 108 121 2 121 114 2 91 121 2 121 111 2 82 121 2 120 105 2 88 120 2 120 94 2 115 120 2 120 99 2 110 120 2 119 106 2 87 119 2 119 115 2 90 119 2 119 97 2 112 119 2 118 107 2 86 118 2 118 93 2 116 118 2 118 110 2 83 118 2 117 108 2 85 117 2 117 116 2 89 117 2 117 112 2 81 117 366 0 12 14 16 18 20 22 24 26 28 30 32 34 66 -1 68 -1 70 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 72 -1 74 -1 76 -1 78 -1 80 -1 82 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 84 -1 86 -1 88 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 366 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 366 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 113 114 1 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 0 0 0 0 0 3 0 0 0.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01 3 1.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 1.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 2.50000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 2.50000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 7.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 7.50000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 2.50000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 5.00000000000000000e-01 7.50000000000000000e-01 3 0.00000000000000000e+00 2.50000000000000000e-01 5.00000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 2.50000000000000000e-01 7.50000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 125 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 120 0 0 96 0 0 78 0 0 66 0 0 17 3 0 1 8 8 15 3 0 0 7 8 0 +0 3 1 0 0 1 0 0 0 6 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0 0 1 0 0 1 0 -1 0 0 0 3 6 0 2 3 0 4 1 5 4 0 0 2 4 6 1 0 7 1 1 1 0 0 0 1 0 0 0 0 1 0 4294967295 0 0 0 0 0 1 0 0 0 0 0 6 0 1 1 1 1 1 1 2 +1 3 8 0 0 1 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 48 0 -1 -1 1 1 -1 -1 1 2 -1 -1 1 4 1 0 -1 -1 -1 -1 1 3 -1 -1 1 5 -1 -1 1 3 1 0 -1 -1 -1 -1 1 6 1 2 -1 -1 1 1 -1 -1 -1 -1 1 7 -1 -1 1 5 -1 -1 1 6 1 0 -1 -1 1 4 -1 -1 -1 -1 1 7 1 1 -1 -1 -1 -1 1 7 1 4 -1 -1 1 2 -1 -1 1 6 -1 -1 1 5 -1 -1 1 3 -1 -1 8 0 0 1 0 0 0 0 0 0 8 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 3 48 0 14 41 6 37 10 33 41 18 8 35 11 32 15 40 37 22 12 31 40 19 35 24 13 30 16 39 7 36 33 26 39 20 9 34 32 27 17 38 36 23 31 28 38 21 34 25 30 29 32 0 0 2 4 6 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 8 0 7 0 0 0 0 0 0 0 8 1 1 1 1 1 1 1 1 8 0 1 0 0 0 0 0 0 8 0 0 2 0 0 0 0 0 0 8 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 8 0 0 3 0 0 0 0 0 0 2 48 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 +2 3 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 0 -1 -1 2 1 -1 -1 2 2 -1 -1 2 4 2 0 1 1 -1 -1 2 3 -1 -1 2 5 -1 -1 2 3 2 0 1 2 -1 -1 2 6 2 2 1 1 2 1 1 2 -1 -1 2 7 -1 -1 2 5 -1 -1 2 6 2 0 1 4 2 4 1 1 -1 -1 2 7 2 1 1 4 -1 -1 2 7 2 4 1 2 2 2 1 4 2 6 1 1 2 5 1 2 2 3 1 4 2 1 2 9 -1 -1 2 10 -1 -1 2 12 2 8 -1 -1 -1 -1 2 11 -1 -1 2 13 2 3 2 11 2 8 2 24 -1 -1 2 14 2 10 -1 -1 2 9 2 25 -1 -1 2 15 2 5 2 13 -1 -1 2 14 2 8 2 40 2 12 -1 -1 -1 -1 2 15 2 9 2 41 2 7 2 15 2 12 2 28 2 10 2 42 2 14 -1 -1 2 13 2 29 2 11 2 43 -1 -1 2 17 2 2 2 18 -1 -1 2 20 2 16 2 24 2 3 2 19 -1 -1 2 21 -1 -1 2 19 2 16 -1 -1 -1 -1 2 22 2 18 2 26 2 17 -1 -1 -1 -1 2 23 -1 -1 2 21 2 6 2 22 2 16 2 48 2 20 2 28 2 7 2 23 2 17 2 49 -1 -1 2 23 2 20 -1 -1 2 18 2 50 2 22 2 30 2 21 -1 -1 2 19 2 51 2 17 2 25 2 10 2 26 -1 -1 2 28 2 24 -1 -1 2 11 2 27 -1 -1 2 29 2 19 2 27 2 24 -1 -1 -1 -1 2 30 2 26 -1 -1 2 25 -1 -1 -1 -1 2 31 2 21 2 29 2 14 2 30 2 24 2 56 2 28 -1 -1 2 15 2 31 2 25 2 57 2 23 2 31 2 28 -1 -1 2 26 2 58 2 30 -1 -1 2 29 -1 -1 2 27 2 59 -1 -1 2 33 -1 -1 2 34 2 4 2 36 2 32 2 40 -1 -1 2 35 2 5 2 37 -1 -1 2 35 2 32 2 48 2 6 2 38 2 34 2 42 2 33 2 49 2 7 2 39 -1 -1 2 37 -1 -1 2 38 2 32 -1 -1 2 36 2 44 -1 -1 2 39 2 33 -1 -1 -1 -1 2 39 2 36 2 52 2 34 -1 -1 2 38 2 46 2 37 2 53 2 35 -1 -1 2 33 2 41 -1 -1 2 42 2 12 2 44 2 40 -1 -1 -1 -1 2 43 2 13 2 45 2 35 2 43 2 40 2 56 2 14 2 46 2 42 -1 -1 2 41 2 57 2 15 2 47 2 37 2 45 -1 -1 2 46 2 40 -1 -1 2 44 -1 -1 -1 -1 2 47 2 41 -1 -1 2 39 2 47 2 44 2 60 2 42 -1 -1 2 46 -1 -1 2 45 2 61 2 43 -1 -1 -1 -1 2 49 2 34 2 50 2 20 2 52 2 48 2 56 2 35 2 51 2 21 2 53 -1 -1 2 51 2 48 -1 -1 2 22 2 54 2 50 2 58 2 49 -1 -1 2 23 2 55 -1 -1 2 53 2 38 2 54 2 48 -1 -1 2 52 2 60 2 39 2 55 2 49 -1 -1 -1 -1 2 55 2 52 -1 -1 2 50 -1 -1 2 54 2 62 2 53 -1 -1 2 51 -1 -1 2 49 2 57 2 42 2 58 2 28 2 60 2 56 -1 -1 2 43 2 59 2 29 2 61 2 51 2 59 2 56 -1 -1 2 30 2 62 2 58 -1 -1 2 57 -1 -1 2 31 2 63 2 53 2 61 2 46 2 62 2 56 -1 -1 2 60 -1 -1 2 47 2 63 2 57 -1 -1 2 55 2 63 2 60 -1 -1 2 58 -1 -1 2 62 -1 -1 2 61 -1 -1 2 59 -1 -1 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 0 3 384 0 50 77 42 73 46 69 77 62 44 71 47 68 51 76 73 58 48 67 76 63 71 60 49 66 52 75 43 72 69 54 75 64 45 70 68 55 53 74 72 59 67 56 74 65 70 61 66 57 182 269 50 265 62 261 269 90 52 263 63 260 183 268 265 158 64 259 268 91 263 160 65 258 184 267 51 264 261 146 267 92 53 262 260 147 185 266 264 159 259 148 266 93 262 161 258 149 78 257 166 253 66 249 257 178 168 251 67 248 79 256 253 106 68 247 256 179 251 108 69 246 80 255 167 252 249 142 255 180 169 250 248 143 81 254 252 107 247 144 254 181 250 109 246 145 178 245 158 241 70 237 245 94 160 239 71 236 179 244 241 114 72 235 244 95 239 116 73 234 180 243 159 240 237 138 243 96 161 238 236 139 181 242 240 115 235 140 242 97 238 117 234 141 82 233 46 229 150 225 233 174 48 227 151 224 83 232 229 162 152 223 232 175 227 164 153 222 84 231 47 228 225 122 231 176 49 226 224 123 85 230 228 163 223 124 230 177 226 165 222 125 174 221 54 217 146 213 221 98 56 215 147 212 175 220 217 154 148 211 220 99 215 156 149 210 176 219 55 216 213 126 219 100 57 214 212 127 177 218 216 155 211 128 218 101 214 157 210 129 86 209 162 205 142 201 209 170 164 203 143 200 87 208 205 110 144 199 208 171 203 112 145 198 88 207 163 204 201 130 207 172 165 202 200 131 89 206 204 111 199 132 206 173 202 113 198 133 170 197 154 193 138 189 197 102 156 191 139 188 171 196 193 118 140 187 196 103 191 120 141 186 172 195 155 192 189 134 195 104 157 190 188 135 173 194 192 119 187 136 194 105 190 121 186 137 256 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 8 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 15 1 0 +3 3 2 1128 0 0 8 2 4 1 3 0 5 2 6 1 9 4 7 3 10 5 11 6 7 9 10 8 11 12 36 16 38 36 28 17 39 13 37 38 20 37 29 39 21 14 40 12 42 40 18 13 43 15 41 42 22 41 19 43 23 16 44 14 46 44 24 15 47 17 45 46 30 45 25 47 31 20 48 18 50 48 26 19 51 21 49 50 32 49 27 51 33 22 52 24 54 52 34 25 55 23 53 54 26 53 35 55 27 30 56 28 58 56 32 29 59 31 57 58 34 57 33 59 35 64 51 62 53 47 64 63 52 65 50 37 62 46 65 36 63 62 59 60 49 43 62 61 48 63 58 45 60 42 63 44 61 60 55 64 57 39 60 65 56 61 54 41 64 38 61 40 65 66 90 70 92 90 72 71 93 67 91 92 74 91 73 93 75 68 94 66 96 94 76 67 97 69 95 96 78 95 77 97 79 70 98 68 100 98 80 69 101 71 99 100 82 99 81 101 83 82 102 72 104 102 88 73 105 83 103 104 86 103 89 105 87 78 106 80 108 106 86 81 109 79 107 108 84 107 87 109 85 74 110 76 112 110 84 77 113 75 111 112 88 111 85 113 89 118 113 116 107 101 118 117 106 119 112 91 116 100 119 90 117 116 105 114 111 97 116 115 110 117 104 99 114 96 117 98 115 114 109 118 103 93 114 119 102 115 108 95 118 92 115 94 119 130 210 72 212 210 90 73 213 131 211 212 136 211 91 213 137 76 214 134 216 214 132 135 217 77 215 216 102 215 133 217 103 132 218 136 220 218 92 137 221 133 219 220 104 219 93 221 105 82 222 78 224 222 138 79 225 83 223 224 142 223 139 225 143 138 226 80 228 226 94 81 229 139 227 228 144 227 95 229 145 84 230 142 232 230 140 143 233 85 231 232 106 231 141 233 107 140 234 144 236 234 96 145 237 141 235 236 108 235 97 237 109 86 238 90 240 238 146 91 241 87 239 240 150 239 147 241 151 146 242 92 244 242 110 93 245 147 243 244 152 243 111 245 153 88 246 150 248 246 148 151 249 89 247 248 94 247 149 249 95 148 250 152 252 250 112 153 253 149 251 252 96 251 113 253 97 102 254 98 256 254 154 99 257 103 255 256 158 255 155 257 159 154 258 100 260 258 106 101 261 155 259 260 160 259 107 261 161 104 262 158 264 262 156 159 265 105 263 264 110 263 157 265 111 156 266 160 268 266 108 161 269 157 267 268 112 267 109 269 113 170 270 166 272 270 144 167 273 171 271 272 148 271 145 273 149 136 274 168 276 274 170 169 277 137 275 276 146 275 171 277 147 172 278 116 280 278 142 117 281 173 279 280 166 279 143 281 167 134 282 114 284 282 172 115 285 135 283 284 168 283 173 285 169 166 286 162 288 286 160 163 289 167 287 288 140 287 161 289 141 128 290 164 292 290 166 165 293 129 291 292 138 291 167 293 139 168 294 132 296 294 158 133 297 169 295 296 162 295 159 297 163 126 298 130 300 298 168 131 301 127 299 300 164 299 169 301 165 162 302 170 304 302 152 171 305 163 303 304 156 303 153 305 157 120 306 172 308 306 162 173 309 121 307 308 154 307 163 309 155 164 310 124 312 310 150 125 313 165 311 312 170 311 151 313 171 118 314 122 316 314 164 123 317 119 315 316 172 315 165 317 173 322 237 320 251 305 322 321 250 323 236 287 320 304 323 286 321 320 269 318 235 273 320 319 234 321 268 303 318 272 321 302 319 318 253 322 267 289 318 323 266 319 252 271 322 288 319 270 323 328 305 326 243 221 328 327 242 329 304 295 326 220 329 294 327 326 265 324 303 277 326 325 302 327 264 219 324 276 327 218 325 324 245 328 263 297 324 329 262 325 244 275 328 296 325 274 329 334 233 332 287 309 334 333 286 335 232 187 332 308 335 186 333 332 261 330 231 281 332 331 230 333 260 307 330 280 333 306 331 330 289 334 259 189 330 335 258 331 288 279 334 188 331 278 335 340 309 338 295 217 340 339 294 341 308 179 338 216 341 178 339 338 257 336 307 285 338 337 306 339 256 215 336 284 339 214 337 336 297 340 255 181 336 341 254 337 296 283 340 180 337 282 341 346 229 344 247 313 346 345 246 347 228 291 344 312 347 290 345 344 273 342 227 205 344 343 226 345 272 311 342 204 345 310 343 342 249 346 271 293 342 347 270 343 248 203 346 292 343 202 347 352 313 350 239 213 352 351 238 353 312 299 350 212 353 298 351 350 277 348 311 201 350 349 310 351 276 211 348 200 351 210 349 348 241 352 275 301 348 353 274 349 240 199 352 300 349 198 353 358 225 356 291 317 358 357 290 359 224 183 356 316 359 182 357 356 281 354 223 197 356 355 222 357 280 315 354 196 357 314 355 354 293 358 279 185 354 359 278 355 292 195 358 184 355 194 359 364 317 362 299 209 364 363 298 365 316 175 362 208 365 174 363 362 285 360 315 193 362 361 314 363 284 207 360 192 363 206 361 360 301 364 283 177 360 365 282 361 300 191 364 176 361 190 365 564 0 6 8 10 12 14 16 18 20 22 24 26 28 42 44 -1 -1 -1 -1 -1 -1 46 48 -1 -1 -1 -1 -1 -1 50 52 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 54 56 -1 -1 -1 -1 -1 -1 58 60 -1 -1 -1 -1 -1 -1 62 64 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 282 0 3 3 3 3 3 3 3 0 0 0 3 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 3 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 0 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 42 42 42 42 42 42 42 42 42 42 42 42 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 282 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 65 66 1 282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 732 0 0 1 0 2 0 4 1 3 1 5 2 3 2 6 3 7 4 5 4 6 5 7 6 7 0 8 8 1 0 9 9 2 0 10 10 4 1 11 11 3 1 12 12 5 2 13 13 3 2 14 14 6 3 15 15 7 4 16 16 5 4 17 17 6 5 18 18 7 6 19 19 7 10 20 20 12 8 20 20 16 8 21 21 13 9 21 21 11 9 22 22 17 10 22 22 14 11 23 23 18 12 23 23 15 14 24 24 15 13 24 24 19 16 25 25 19 17 25 25 18 26 25 21 26 26 23 22 26 26 24 20 26 0 27 27 8 0 28 28 9 0 29 29 10 10 30 30 20 8 31 31 20 8 32 32 21 9 33 33 21 9 34 34 22 10 35 35 22 21 36 36 26 22 37 37 26 20 38 38 26 29 39 39 31 27 39 39 30 27 40 40 33 28 40 40 32 28 41 41 35 29 41 41 34 30 42 42 37 35 42 42 38 34 43 43 36 33 43 43 37 32 44 44 38 31 44 44 36 45 42 40 45 45 44 41 45 45 43 39 45 20 54 54 16 8 55 55 21 21 56 56 13 9 57 57 21 21 58 58 11 9 59 59 22 22 60 60 17 10 61 61 22 22 62 62 14 11 63 63 23 23 64 64 18 12 65 65 23 23 66 66 15 14 67 67 24 24 68 68 15 13 69 69 24 24 70 70 19 16 71 71 25 25 72 72 19 17 73 73 25 25 74 74 18 26 75 75 25 21 76 76 26 26 77 77 23 22 78 78 26 26 79 79 24 20 80 80 26 31 81 81 53 27 81 81 51 32 82 82 54 51 82 82 43 53 83 83 35 28 83 83 52 54 84 84 36 52 84 84 44 27 85 85 57 29 85 85 55 28 86 86 58 55 86 86 33 57 87 87 37 30 87 87 56 58 88 88 38 56 88 88 34 29 89 89 61 31 89 89 59 30 90 90 62 59 90 90 39 61 91 91 45 32 91 91 60 62 92 92 46 60 92 92 40 33 93 93 65 35 93 93 63 34 94 94 66 63 94 94 41 65 95 95 47 36 95 95 64 66 96 96 48 64 96 96 42 39 97 97 69 37 97 97 67 40 98 98 70 67 98 98 49 69 99 99 41 38 99 99 68 70 100 100 42 68 100 100 50 43 101 101 73 45 101 101 71 44 102 102 74 71 102 102 47 73 103 103 49 46 103 103 72 74 104 104 50 72 104 104 48 77 105 105 68 79 105 105 66 78 106 106 67 62 106 106 79 52 107 107 77 80 107 107 65 51 108 108 78 61 108 108 80 75 109 109 64 77 109 109 74 76 110 110 63 58 110 110 77 60 111 111 75 78 111 111 73 59 112 112 76 57 112 112 78 79 113 113 72 75 113 113 70 80 114 114 71 54 114 114 75 56 115 115 79 76 115 115 69 55 116 116 80 53 116 116 76 124 104 105 124 124 96 113 124 124 100 109 124 123 103 106 123 123 113 92 123 123 98 111 123 122 102 107 122 122 95 114 122 122 109 84 122 121 101 108 121 121 114 91 121 121 111 82 121 120 105 88 120 120 94 115 120 120 99 110 120 119 106 87 119 119 115 90 119 119 97 112 119 118 107 86 118 118 93 116 118 118 110 83 118 117 108 85 117 117 116 89 117 117 112 81 117 366 0 12 14 16 18 20 22 24 26 28 30 32 34 66 -1 68 -1 70 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 72 -1 74 -1 76 -1 78 -1 80 -1 82 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 84 -1 86 -1 88 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 366 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 366 0 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 4294967295 113 114 1 366 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1128 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 125 0 0 0 0 0 3 0 0 0.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 1.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00 3 1.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 0.00000000000000000e+00 3 1.00000000000000000e+00 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01 3 1.00000000000000000e+00 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 1.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 5.00000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 0.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 2.50000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 2.50000000000000000e-01 1.00000000000000000e+00 3 1.00000000000000000e+00 7.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 7.50000000000000000e-01 1.00000000000000000e+00 1.00000000000000000e+00 3 2.50000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 5.00000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 5.00000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 5.00000000000000000e-01 7.50000000000000000e-01 3 0.00000000000000000e+00 2.50000000000000000e-01 5.00000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 5.00000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 5.00000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 5.00000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 5.00000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 5.00000000000000000e-01 1.00000000000000000e+00 3 5.00000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 2.50000000000000000e-01 3 7.50000000000000000e-01 0.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 0.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 0.00000000000000000e+00 3 0.00000000000000000e+00 2.50000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 2.50000000000000000e-01 3 0.00000000000000000e+00 2.50000000000000000e-01 7.50000000000000000e-01 3 0.00000000000000000e+00 7.50000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 2.50000000000000000e-01 3 1.00000000000000000e+00 2.50000000000000000e-01 7.50000000000000000e-01 3 1.00000000000000000e+00 7.50000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 2.50000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 2.50000000000000000e-01 3 7.50000000000000000e-01 1.00000000000000000e+00 7.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 2.50000000000000000e-01 1.00000000000000000e+00 3 2.50000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 1.00000000000000000e+00 3 7.50000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 5.00000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 5.00000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 5.00000000000000000e-01 2.50000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 5.00000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 5.00000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 7.50000000000000000e-01 7.50000000000000000e-01 2.50000000000000000e-01 3 2.50000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 2.50000000000000000e-01 7.50000000000000000e-01 3 2.50000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 3 7.50000000000000000e-01 7.50000000000000000e-01 7.50000000000000000e-01 125 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 120 0 0 96 0 0 78 0 0 66 0 0 17 3 0 1 8 8 15 3 0 0 7 8 0 DEAL::OK -- 2.39.5