diff --git a/Constrained_triangulation_3/doc/Constrained_triangulation_3/Constrained_triangulation_3.txt b/Constrained_triangulation_3/doc/Constrained_triangulation_3/Constrained_triangulation_3.txt index f277069b401..92a5d59499e 100644 --- a/Constrained_triangulation_3/doc/Constrained_triangulation_3/Constrained_triangulation_3.txt +++ b/Constrained_triangulation_3/doc/Constrained_triangulation_3/Constrained_triangulation_3.txt @@ -187,6 +187,21 @@ when it is self-intersecting. \cgalExample{Constrained_triangulation_3/ccdt_3_after_autorefinement.cpp } +\subsubsection CT_3_example_self_intersecting_non_triangles Non-Triangulated Self-Intersecting Input Mesh + +The following example shows how to build a conforming constrained Delaunay triangulation from +an input mesh that is not triangulated, and (possibly) self-intersecting. + +The function `CGAL::Polygon_mesh_processing::does_self_intersect()` is used to check for self-intersections, +but this function can be used only on triangulated meshes. It is therefore necessary to triangulate +the input mesh before checking for self-intersections, using the function +`CGAL::Polygon_mesh_processing::triangulate_faces()`. + +The triangulated version of the mesh is then kept in case of self-intersections, +to use the `CGAL::Polygon_mesh_processing::autorefine()` function to remove the self-intersections. + +\cgalExample{Constrained_triangulation_3/ccdt_3_preprocessing.cpp } + \subsection CT_3_example_remesh Remeshing a Conforming Constrained Delaunay Triangulation diff --git a/Constrained_triangulation_3/doc/Constrained_triangulation_3/examples.txt b/Constrained_triangulation_3/doc/Constrained_triangulation_3/examples.txt index d587edb9fff..1010a05ab7c 100644 --- a/Constrained_triangulation_3/doc/Constrained_triangulation_3/examples.txt +++ b/Constrained_triangulation_3/doc/Constrained_triangulation_3/examples.txt @@ -26,6 +26,7 @@ How to use `CGAL::tetrahedral_isotropic_remeshing` with a constrained Delaunay t /*! \example Constrained_triangulation_3/conforming_constrained_Delaunay_triangulation_3_fpmap.cpp @brief + How to detect surface patches separated by sharp edges, before the construction of the constrained Delaunay conforming_constrained_Delaunay_triangulation_3_from_soup. */ @@ -33,13 +34,22 @@ constrained Delaunay conforming_constrained_Delaunay_triangulation_3_from_soup. /*! \example Constrained_triangulation_3/ccdt_3_from_soup_fpmap.cpp @brief + From a non-manifold OFF file, construct the constrained Delaunay triangulation. */ /*! \example Constrained_triangulation_3/ccdt_3_after_autorefinement.cpp @brief -From a self-intersecting polyhedral surface in an OFF file, construct the constrained Delaunay triangulation + +From a self-intersecting triangulated surface in an OFF file, construct the constrained Delaunay triangulation after autorefinement. */ +/*! +\example Constrained_triangulation_3/ccdt_3_preprocessing.cpp +@brief + +From a self-intersecting and non-triangulated surface surface in an OFF file, +construct the constrained Delaunay triangulation after preprocessing. +*/ diff --git a/Constrained_triangulation_3/examples/Constrained_triangulation_3/CMakeLists.txt b/Constrained_triangulation_3/examples/Constrained_triangulation_3/CMakeLists.txt index a2e4abcba9d..1475d38fc43 100644 --- a/Constrained_triangulation_3/examples/Constrained_triangulation_3/CMakeLists.txt +++ b/Constrained_triangulation_3/examples/Constrained_triangulation_3/CMakeLists.txt @@ -8,6 +8,7 @@ create_single_source_cgal_program(conforming_constrained_Delaunay_triangulation_ create_single_source_cgal_program(conforming_constrained_Delaunay_triangulation_3_from_soup.cpp) create_single_source_cgal_program(ccdt_3_from_soup_fpmap.cpp) create_single_source_cgal_program(ccdt_3_after_autorefinement.cpp) +create_single_source_cgal_program(ccdt_3_preprocessing.cpp) create_single_source_cgal_program(remesh_constrained_Delaunay_triangulation_3.cpp) if(CGAL_Qt6_FOUND) @@ -15,6 +16,7 @@ if(CGAL_Qt6_FOUND) target_link_libraries(conforming_constrained_Delaunay_triangulation_3_from_soup PUBLIC CGAL::CGAL_Basic_viewer) target_link_libraries(ccdt_3_from_soup_fpmap PUBLIC CGAL::CGAL_Basic_viewer) target_link_libraries(ccdt_3_after_autorefinement PUBLIC CGAL::CGAL_Basic_viewer) + target_link_libraries(ccdt_3_preprocessing PUBLIC CGAL::CGAL_Basic_viewer) target_link_libraries(remesh_constrained_Delaunay_triangulation_3 PUBLIC CGAL::CGAL_Basic_viewer) else() message(STATUS "NOTICE: The example 'conforming_constrained_Delaunay_triangulation_3' cannot draw the result without Qt6.") diff --git a/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_after_autorefinement.cpp b/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_after_autorefinement.cpp index 2990d7a23b5..f848e83b131 100644 --- a/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_after_autorefinement.cpp +++ b/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_after_autorefinement.cpp @@ -1,8 +1,7 @@ #include -#include -#include #include +#include #include #include @@ -31,6 +30,7 @@ int main(int argc, char* argv[]) if(PMP::does_self_intersect(mesh)) { + std::cout << "Mesh self-intersects, performing autorefine...\n"; PMP::autorefine(mesh); } diff --git a/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_preprocessing.cpp b/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_preprocessing.cpp new file mode 100644 index 00000000000..7593f161d0c --- /dev/null +++ b/Constrained_triangulation_3/examples/Constrained_triangulation_3/ccdt_3_preprocessing.cpp @@ -0,0 +1,72 @@ +#include + +#include +#include +#include +#include +#include + +#include + +#include + +using K = CGAL::Exact_predicates_inexact_constructions_kernel; +using Point = K::Point_3; +using Surface_mesh = CGAL::Surface_mesh; + +namespace PMP = CGAL::Polygon_mesh_processing; + +int main(int argc, char* argv[]) +{ + const auto filename = (argc > 1) ? argv[1] + : CGAL::data_file_path("meshes/mpi_and_sphere.off"); + + CGAL::Surface_mesh mesh; + std::ifstream in(filename); + if(!in || !(in >> mesh)) { + std::cerr << "Error: cannot read file " << filename << std::endl; + return EXIT_FAILURE; + } + + std::cout << "Number of facets in " << filename << ": " + << mesh.number_of_faces() << "\n"; + + // Check if the mesh is a triangle mesh + bool triangle_mesh = CGAL::is_triangle_mesh(mesh); + if(!triangle_mesh) + { + std::cout << "Mesh is not a triangle mesh, triangulate faces" + << " to check self-intersections...\n"; + + CGAL::Surface_mesh trimesh; + CGAL::copy_face_graph(mesh, trimesh); + PMP::triangulate_faces(trimesh); + + if(PMP::does_self_intersect(trimesh)) + { + std::cout << "Mesh self-intersects, let's keep the triangulated version" + << " for future autorefinement\n"; + CGAL::copy_face_graph(trimesh, mesh); + mesh = std::move(trimesh); + triangle_mesh = true; + } + } + + if(triangle_mesh && PMP::does_self_intersect(mesh)) + { + std::cout << "Mesh is a self-intersecting triangle mesh, perform autorefinement...\n"; + PMP::autorefine(mesh); + } + + std::cout << "Number of facets after preprocessing: " + << mesh.number_of_faces() << "\n"; + + auto ccdt = CGAL::make_conforming_constrained_Delaunay_triangulation_3(mesh); + + std::cout << "Number of constrained facets in the CDT: " + << ccdt.number_of_constrained_facets() << '\n'; + + CGAL::draw(ccdt); + + return EXIT_SUCCESS; +} diff --git a/Data/data/meshes/mpi_and_sphere.off b/Data/data/meshes/mpi_and_sphere.off new file mode 100644 index 00000000000..092169d2a92 --- /dev/null +++ b/Data/data/meshes/mpi_and_sphere.off @@ -0,0 +1,628 @@ +NOFF +252 372 0 + +0 5 0 -3.9175704980344513e-06 0.99999999972950115 -2.2927069935740453e-05 +1.3664999008178711 4.8094997406005859 0 0.26975502572682841 0.96292898289288098 0 +0.42219999432563782 4.8094997406005859 -1.2994999885559082 0.083293192846419215 0.96293706553434788 -0.25654327480085726 +2.6284999847412109 4.2534999847412109 0 0.5186760270638795 0.85497086438616698 2.8192964678353464e-17 +1.8089998960494995 4.4720001220703125 -1.3144999742507935 0.36327528276451015 0.89351207942970978 -0.26394551112978065 +0.8125 4.2534999847412109 -2.5 0.16034724458788202 0.85487689464393113 -0.49343110578582583 +3.6909999847412109 3.3730001449584961 0 0.74597007602093079 0.66597946340808933 -5.6413658440793638e-17 +3.0894999504089355 3.7020001411437988 -1.3234999179840088 0.61884037456759367 0.73827996174058697 -0.26828956166306223 +2.2135000228881836 3.7020001411437988 -2.5290000438690186 0.44639653273832852 0.73823013421616679 -0.50571375746995328 +1.1405000686645508 3.3730001449584961 -3.5100002288818359 0.23049817691841165 0.66600201166532225 -0.70944479058981935 +4.4720001220703125 2.2360000610351562 0 0.89437191260368809 0.4473241222757266 -0.00010759122519210596 +4.1129999160766602 2.5285000801086426 -1.2994999885559082 0.82360072242878479 0.50530950649056772 -0.25757358689322701 +3.4409999847412109 2.6284999847412109 -2.5 0.68817562829654644 0.52567874647333801 -0.50007615432539221 +2.5069999694824219 2.5285000801086426 -3.5100002288818359 0.49948695974987467 0.50532061891565627 -0.70367879685160695 +1.3819999694824219 2.2360000610351562 -4.2534999847412109 0.27645080403004008 0.44738802311731485 -0.85054036337044314 +-1.1054999828338623 4.8094997406005859 -0.80300003290176392 -0.21824108606985812 0.96293139791493654 -0.15853690819690802 +-0.69099998474121094 4.4720001220703125 -2.126500129699707 -0.13877100061948819 0.89351610720479546 -0.42704985136709078 +-2.126500129699707 4.2534999847412109 -1.5449999570846558 -0.4197104109475373 0.85493339720504213 -0.30484759681797524 +-0.3039499819278717 3.7020001411437988 -3.3469998836517334 -0.063928569761353485 0.73828431162986063 -0.67145320996290625 +-1.721500039100647 3.7020001411437988 -2.8865001201629639 -0.34287771494993158 0.7383163972069261 -0.58079580766918237 +-2.9859998226165771 3.3730001449584961 -2.1694998741149902 -0.60348585317362391 0.66605640392616094 -0.43837619895274171 +0.035155002027750015 2.5285000801086426 -4.313499927520752 0.0096581285088901663 0.50539469876395404 -0.86283423611664711 +-1.3144999742507935 2.6284999847412109 -4.0450000762939453 -0.2629678476652198 0.52573020042689245 -0.8089843431447985 +-2.5639998912811279 2.5285000801086426 -3.4689998626708984 -0.51494438538768705 0.50528492158102645 -0.69247341319400346 +-3.617999792098999 2.2360000610351562 -2.6284999847412109 -0.72358295705302189 0.44731965191534406 -0.52567369467450054 +-1.1054999828338623 4.8094997406005859 0.80300003290176392 -0.21824108606985812 0.96293139791493654 0.15853690819690799 +-2.2360000610351562 4.4720001220703125 0 -0.4490886606553216 0.89348719905257146 0 +-2.126500129699707 4.2534999847412109 1.5449999570846558 -0.41971041094753736 0.85493339720504224 0.30484759681797524 +-3.2769999504089355 3.7020001411437988 -0.74500000476837158 -0.658305741337051 0.73833219504868552 -0.14662578448985539 +-3.2769999504089355 3.7020001411437988 0.74500000476837158 -0.658305741337051 0.73833219504868552 0.14662578448985539 +-2.9859998226165771 3.3730001449584961 2.1694998741149902 -0.60348585317362391 0.66605640392616094 0.43837619895274177 +-4.0915002822875977 2.5285000801086426 -1.3664999008178711 -0.81759848270723323 0.5054187109924092 -0.27583445697302139 +-4.2534999847412109 2.6284999847412109 0 -0.85061250238259811 0.52579308743118203 0 +-4.0915002822875977 2.5285000801086426 1.3664999008178711 -0.81759848270723334 0.5054187109924092 0.27583445697302134 +-3.617999792098999 2.2360000610351562 2.6284999847412109 -0.72358295705302189 0.44731965191534401 0.52567369467450054 +0.42219999432563782 4.8094997406005859 1.2994999885559082 0.083293192846419215 0.96293706553434788 0.25654327480085726 +-0.69099998474121094 4.4720001220703125 2.126500129699707 -0.13877100061948816 0.89351610720479546 0.42704985136709073 +0.8125 4.2534999847412109 2.5 0.16034724458788202 0.85487689464393124 0.49343110578582594 +-1.721500039100647 3.7020001411437988 2.8865001201629639 -0.34287771494993158 0.7383163972069261 0.58079580766918237 +-0.3039499819278717 3.7020001411437988 3.3469998836517334 -0.063928630249931562 0.73828434598771997 0.67145316642626096 +1.1405000686645508 3.3730001449584961 3.5100002288818359 0.23049815221616016 0.66600210124727433 0.70944471451914504 +-2.5639998912811279 2.5285000801086426 3.4689998626708984 -0.51494438538768705 0.50528492158102645 0.69247341319400346 +-1.3144999742507935 2.6284999847412109 4.0450000762939453 -0.2629678476652198 0.52573020042689245 0.8089843431447985 +0.035160001367330551 2.5285000801086426 4.313499927520752 0.0096588235192445384 0.50539469986343322 0.86283422769276741 +1.3819999694824219 2.2360000610351562 4.2534999847412109 0.276451076354849 0.44738811046426735 0.85054022891187109 +1.8089998960494995 4.4720001220703125 1.3144999742507935 0.36327528276451015 0.89351207942970978 0.26394551112978065 +2.2135000228881836 3.7020001411437988 2.5290000438690186 0.44639653273832852 0.73823013421616679 0.50571375746995328 +3.0894999504089355 3.7020001411437988 1.3234999179840088 0.61884037456759367 0.73827996174058697 0.26828956166306223 +2.5069999694824219 2.5285000801086426 3.5100002288818359 0.49948695974987467 0.50532061891565627 0.70367879685160695 +3.4409999847412109 2.6284999847412109 2.5 0.68817562829654644 0.52567874647333801 0.50007615432539221 +4.1129999160766602 2.5285000801086426 1.2994999885559082 0.82360072242878479 0.50530950649056772 0.25757358689322701 +4.7964997291564941 1.1625000238418579 0.80300003290176392 0.95773123283460193 0.23850477842289586 0.16083020960801717 +4.7964997291564941 1.1625000238418579 -0.80300003290176392 0.95773123283460193 0.23850477842289589 -0.16083020960801717 +4.7554998397827148 0 1.5449999570846558 0.95105706266404066 3.2396218149174858e-05 0.30901531112120001 +5 0 0 0.99999749009084138 -0.0022404936995218481 0 +4.7554998397827148 0 -1.5449999570846558 0.95105706266404066 3.2396218149174858e-05 -0.30901531112120001 +4.3524999618530273 -1.1625000238418579 2.1694998741149902 0.86930597990251268 -0.23847839393538117 0.43293783495062366 +4.7769999504089355 -1.2755000591278076 0.74500000476837158 0.95479640222292206 -0.25857554589466991 0.14663736688660756 +4.7769999504089355 -1.2755000591278076 -0.74500000476837158 0.95479640222292206 -0.25857554589466991 -0.14663736688660756 +4.3524999618530273 -1.1625000238418579 -2.1694998741149902 0.86930597990251257 -0.23847839393538112 -0.43293783495062371 +3.617999792098999 -2.2360000610351562 2.6284999847412109 0.72358295705302189 -0.44731965191534406 0.52567369467450054 +4.0915002822875977 -2.5285000801086426 1.3664999008178711 0.81759848270723334 -0.5054187109924092 0.27583445697302134 +4.2534999847412109 -2.6284999847412109 0 0.85061250238259811 -0.52579308743118203 0 +4.0915002822875977 -2.5285000801086426 -1.3664999008178711 0.81759848270723334 -0.5054187109924092 -0.27583445697302134 +3.617999792098999 -2.2360000610351562 -2.6284999847412109 0.72358295705302189 -0.44731965191534401 -0.52567369467450054 +2.2460000514984131 1.1625000238418579 -4.313499927520752 0.44888981228308017 0.23853754037694366 -0.86116071569677333 +0.71850001811981201 1.1625000238418579 -4.8094997406005859 0.14305050619220269 0.2384757250458687 -0.96055498605858158 +2.939000129699707 0 -4.0450000762939453 0.58783669188253806 -4.7213023697550829e-05 -0.80897961744874913 +1.5449999570846558 0 -4.7554998397827148 0.30907320283178491 -0.0021936263291935081 -0.95103572135584391 +0 0 -5 0 0 -1 +3.4079999923706055 -1.1625000238418579 -3.4689998626708984 0.68027788652559917 -0.23844554642731755 -0.69308420736101162 +2.184999942779541 -1.2755000591278076 -4.3125 0.43454960374011575 -0.25861556736457192 -0.86271932295852105 +0.76750004291534424 -1.2755000591278076 -4.7734999656677246 0.15559904100555391 -0.2586843244364041 -0.95334744911235436 +-0.71850001811981201 -1.1625000238418579 -4.8094997406005859 -0.14305050619220269 -0.2384757250458687 -0.96055498605858158 +2.5639998912811279 -2.5285000801086426 -3.4689998626708984 0.51494438538768716 -0.50528492158102645 -0.69247341319400346 +1.3144999742507935 -2.6284999847412109 -4.0450000762939453 0.2629678476652198 -0.52573020042689245 -0.8089843431447985 +-0.035155002027750015 -2.5285000801086426 -4.313499927520752 -0.0096581285088901663 -0.50539469876395404 -0.86283423611664711 +-1.3819999694824219 -2.2360000610351562 -4.2534999847412109 -0.27645080403004013 -0.44738802311731479 -0.85054036337044314 +-3.4079999923706055 1.1625000238418579 -3.4689998626708984 -0.68027788652559928 0.23844554642731755 -0.69308420736101173 +-4.3524999618530273 1.1625000238418579 -2.1694998741149902 -0.86930597990251268 0.23847839393538114 -0.4329378349506236 +-2.939000129699707 0 -4.0450000762939453 -0.58783669188253806 4.7213023697550829e-05 -0.80897961744874913 +-4.0450000762939453 0 -2.939000129699707 -0.80897196247350367 -0.0022074775125021356 -0.58784308363269888 +-4.7554998397827148 0 -1.5449999570846558 -0.95105706266404066 -3.2396218149174858e-05 -0.30901531112120001 +-2.2460000514984131 -1.1625000238418579 -4.313499927520752 -0.44888981228308028 -0.23853754037694369 -0.86116071569677333 +-3.4264998435974121 -1.2755000591278076 -3.4105000495910645 -0.68623967507638894 -0.25860731057116793 -0.67985098901906416 +-4.3024997711181641 -1.2755000591278076 -2.2050001621246338 -0.85860947456090975 -0.25864000147677468 -0.44260040649589616 +-4.7964997291564941 -1.1625000238418579 -0.80300003290176392 -0.95773123283460193 -0.23850477842289589 -0.16083020960801719 +-2.5069999694824219 -2.5285000801086426 -3.5100002288818359 -0.49948695974987467 -0.50532061891565638 -0.70367879685160706 +-3.4409999847412109 -2.6284999847412109 -2.5 -0.68817562829654644 -0.52567874647333801 -0.50007615432539221 +-4.1129999160766602 -2.5285000801086426 -1.2994999885559082 -0.82360072242878479 -0.50530950649056772 -0.25757358689322701 +-4.4720001220703125 -2.2360000610351562 0 -0.89437191260368809 -0.44732412227572654 0.00010759122519213094 +-4.3524999618530273 1.1625000238418579 2.1694998741149902 -0.86930597990251268 0.23847839393538109 0.4329378349506236 +-3.4079999923706055 1.1625000238418579 3.4689998626708984 -0.68027788652559928 0.23844554642731752 0.69308420736101173 +-4.7554998397827148 0 1.5449999570846558 -0.95105706266404066 -3.2396218149174858e-05 0.30901531112120001 +-4.0450000762939453 0 2.939000129699707 -0.80897196247350367 -0.002207477512502051 0.58784308363269888 +-2.939000129699707 0 4.0450000762939453 -0.58783669188253806 4.7213023697550829e-05 0.80897961744874913 +-4.7964997291564941 -1.1625000238418579 0.80300003290176392 -0.95773123283460193 -0.23850477842289589 0.16083020960801719 +-4.3024997711181641 -1.2755000591278076 2.2050001621246338 -0.85860947456090975 -0.25864000147677468 0.44260040649589616 +-3.4264998435974121 -1.2755000591278076 3.4105000495910645 -0.68623967507638894 -0.25860731057116793 0.67985098901906416 +-2.2460000514984131 -1.1625000238418579 4.313499927520752 -0.44888981228308028 -0.23853754037694369 0.86116071569677333 +-4.1129999160766602 -2.5285000801086426 1.2994999885559082 -0.82360072242878479 -0.50530950649056761 0.25757358689322696 +-3.4409999847412109 -2.6284999847412109 2.5 -0.68817562829654644 -0.52567874647333801 0.50007615432539221 +-2.5069999694824219 -2.5285000801086426 3.5100002288818359 -0.49948695974987467 -0.50532061891565627 0.70367879685160695 +-1.3819999694824219 -2.2360000610351562 4.2534999847412109 -0.27645080403004013 -0.44738802311731479 0.85054036337044314 +0.71850001811981201 1.1625000238418579 4.8094997406005859 0.14305050832505847 0.23847572227676736 0.96055498642842752 +2.2460000514984131 1.1625000238418579 4.313499927520752 0.44888981228308017 0.23853754037694366 0.86116071569677333 +0 0 5 0 0 1 +1.5449999570846558 0 4.7554998397827148 0.30907320283178491 -0.0021936263291935081 0.95103572135584391 +2.939000129699707 0 4.0450000762939453 0.58783669188253806 -4.7213023697550829e-05 0.80897961744874913 +-0.71850001811981201 -1.1625000238418579 4.8094997406005859 -0.14305050619220269 -0.2384757250458687 0.96055498605858158 +0.76750004291534424 -1.2755000591278076 4.7734999656677246 0.15559904100555391 -0.2586843244364041 0.95334744911235436 +2.184999942779541 -1.2755000591278076 4.3125 0.43454960374011575 -0.25861556736457192 0.86271932295852105 +3.4079999923706055 -1.1625000238418579 3.4689998626708984 0.68027788652559917 -0.23844554642731755 0.69308420736101162 +-0.035155002027750015 -2.5285000801086426 4.313499927520752 -0.0096581285088901663 -0.50539469876395404 0.86283423611664711 +1.3144999742507935 -2.6284999847412109 4.0450000762939453 0.2629678476652198 -0.52573020042689245 0.8089843431447985 +2.5639998912811279 -2.5285000801086426 3.4689998626708984 0.51494438538768705 -0.50528492158102645 0.69247341319400346 +4.0450000762939453 0 -2.939000129699707 0.80897196247350367 0.0022074775125021356 -0.58784308363269888 +3.4264998435974121 1.2755000591278076 -3.4105000495910645 0.68623967507638894 0.25860731057116793 -0.67985098901906416 +4.3024997711181641 1.2755000591278076 -2.2050001621246338 0.85860947456090975 0.25864000147677468 -0.44260040649589616 +-1.5449999570846558 0 -4.7554998397827148 -0.30907320283178491 0.0021936263291935081 -0.95103572135584391 +-2.184999942779541 1.2755000591278076 -4.3125 -0.43454960374011575 0.25861556736457192 -0.86271932295852105 +-0.76750004291534424 1.2755000591278076 -4.7734999656677246 -0.15559904100555391 0.2586843244364041 -0.95334744911235436 +-5 0 0 -0.99999749009084138 0.0022404936995218481 0 +-4.7769999504089355 1.2755000591278076 0.74500000476837158 -0.95479640222292206 0.25857554589466991 0.14663736688660756 +-4.7769999504089355 1.2755000591278076 -0.74500000476837158 -0.95479640222292206 0.25857554589466991 -0.14663736688660756 +-1.5449999570846558 0 4.7554998397827148 -0.30907320283178491 0.0021936263291935081 0.95103572135584391 +-0.76750004291534424 1.2755000591278076 4.7734999656677246 -0.15559904500926688 0.25868432249461937 0.95334744898578494 +-2.184999942779541 1.2755000591278076 4.3125 -0.43454960374011575 0.25861556736457192 0.86271932295852105 +4.0450000762939453 0 2.939000129699707 0.80897196247350367 0.002207477512502051 0.58784308363269888 +4.3024997711181641 1.2755000591278076 2.2050001621246338 0.85860947456090975 0.25864000147677468 0.44260040649589616 +3.4264998435974121 1.2755000591278076 3.4105000495910645 0.68623967507638894 0.25860731057116793 0.67985098901906416 +0 -5 0 3.9175704980344513e-06 -0.99999999972950115 -2.2927069935740453e-05 +-0.42219999432563782 -4.8094997406005859 -1.2994999885559082 -0.083293192846419215 -0.96293706553434788 -0.25654327480085726 +1.1054999828338623 -4.8094997406005859 -0.80300003290176392 0.21824108606985812 -0.96293139791493654 -0.15853690819690802 +-0.8125 -4.2534999847412109 -2.5 -0.16034724458788202 -0.85487689464393124 -0.49343110578582594 +0.69099998474121094 -4.4720001220703125 -2.126500129699707 0.13877100061948819 -0.89351610720479546 -0.42704985136709078 +2.126500129699707 -4.2534999847412109 -1.5449999570846558 0.4197104109475373 -0.85493339720504213 -0.30484759681797524 +-1.1405000686645508 -3.3730001449584961 -3.5100002288818359 -0.23049817691841171 -0.66600201166532225 -0.70944479058981924 +0.3039499819278717 -3.7020001411437988 -3.3469998836517334 0.063928569761353485 -0.73828431162986063 -0.67145320996290625 +1.721500039100647 -3.7020001411437988 -2.8865001201629639 0.34287771494993158 -0.7383163972069261 -0.58079580766918237 +2.9859998226165771 -3.3730001449584961 -2.1694998741149902 0.60348585317362391 -0.66605640392616094 -0.43837619895274171 +-1.3664999008178711 -4.8094997406005859 0 -0.26975502572682841 -0.96292898289288098 0 +-2.6284999847412109 -4.2534999847412109 0 -0.5186760270638795 -0.85497086438616698 2.8192964678353464e-17 +-1.8089998960494995 -4.4720001220703125 -1.3144999742507935 -0.36327528276451015 -0.89351207942970978 -0.26394551112978065 +-3.6909999847412109 -3.3730001449584961 0 -0.74597007602093079 -0.66597946340808933 -5.6413658440793638e-17 +-3.0894999504089355 -3.7020001411437988 -1.3234999179840088 -0.61884037456759367 -0.73827996174058697 -0.26828956166306223 +-2.2135000228881836 -3.7020001411437988 -2.5290000438690186 -0.44639653273832852 -0.73823013421616679 -0.50571375746995328 +-0.42219999432563782 -4.8094997406005859 1.2994999885559082 -0.083293192846419215 -0.96293706553434788 0.25654327480085726 +-0.8125 -4.2534999847412109 2.5 -0.16034724458788205 -0.85487689464393113 0.49343110578582589 +-1.8089998960494995 -4.4720001220703125 1.3144999742507935 -0.36327528276451015 -0.89351207942970978 0.26394551112978065 +-1.1405000686645508 -3.3730001449584961 3.5100002288818359 -0.23049817691841173 -0.66600201166532225 0.70944479058981935 +-2.2135000228881836 -3.7020001411437988 2.5290000438690186 -0.44639653273832852 -0.73823013421616679 0.50571375746995328 +-3.0894999504089355 -3.7020001411437988 1.3234999179840088 -0.61884037456759367 -0.73827996174058697 0.26828956166306223 +1.1054999828338623 -4.8094997406005859 0.80300003290176392 0.21824108606985812 -0.96293139791493654 0.15853690819690802 +2.126500129699707 -4.2534999847412109 1.5449999570846558 0.4197104109475373 -0.85493339720504213 0.30484759681797524 +0.69099998474121094 -4.4720001220703125 2.126500129699707 0.13877100061948816 -0.89351610720479546 0.42704985136709073 +2.9859998226165771 -3.3730001449584961 2.1694998741149902 0.60348585317362391 -0.66605640392616094 0.43837619895274177 +1.721500039100647 -3.7020001411437988 2.8865001201629639 0.34287771494993158 -0.7383163972069261 0.58079580766918237 +0.3039499819278717 -3.7020001411437988 3.3469998836517334 0.063928569761353485 -0.73828431162986075 0.67145320996290614 +2.2360000610351562 -4.4720001220703125 0 0.4490886606553216 -0.89348719905257146 0 +3.2769999504089355 -3.7020001411437988 -0.74500000476837158 0.658305741337051 -0.73833219504868552 -0.14662578448985539 +3.2769999504089355 -3.7020001411437988 0.74500000476837158 0.658305741337051 -0.73833219504868552 0.14662578448985539 +-6.0240900000000002 -10.0321 -6.0240900000000002 0.70668233448323714 -0.7075295559984448 0.0014161631140424808 +-6.0240900000000002 -6.0240900000000002 -10.0321 0.70668110452339572 0.001423578495193643 -0.70753076960218597 +-10.0402 -10.0402 -10.0402 -0.57734892644598634 -0.57734900678569046 -0.57735287432838145 +-10.0321 -6.0240900000000002 -10.0321 -0.57719310028757576 0.57766308605221028 -0.57719449407721579 +-6.0240900000000002 -6.0192699999999997 -10.0321 0.57704394486392596 0.57843178982549648 -0.57657345604454513 +-10.0321 -6.0240900000000002 -6.0240900000000002 -0.70752956841409775 0.70668232075973458 0.0014168081720495314 +-10.01 -6.0240600000000004 5.0200500000000003 -0.32950200485826109 0.3273301448360777 -0.88559776709066906 +-6.0192600000000001 -6.0192600000000001 5.0160499999999999 0.3279936002867837 0.32799341861856901 -0.88591225045927535 +-6.0192600000000001 -6.0192600000000001 4.0128399999999997 0.57773603578736543 0.57773604127992184 0.57657795618537522 +-6.0072000000000001 -6.0192500000000004 4.0128399999999997 0.57773471390265718 0.5777367023551665 0.57657861831981994 +-6.0168499999999998 -6.0192600000000001 -4.0128399999999997 0.5768107923689213 0.57819792582372709 -0.57704113231196696 +-6.0192600000000001 -6.0192600000000001 -4.0128399999999997 0.57773594408498752 0.57773581294886944 -0.5765782768614659 +-6.0192600000000001 -6.0192600000000001 -6.0192600000000001 0.70710700028857376 0.70710656208416689 -6.3649840009942376e-07 +-10.0219 -0.92678099999999997 -0.92678099999999997 -0.70747570677964222 -0.53729471881622604 -0.45912145391915438 +-10.02 0 -2.0080200000000001 -0.54535570859659988 7.8273142250040924e-08 -0.83820471908782179 +-10 10 10 -0.57734780632358018 0.57734889818607582 0.57735410303961099 +-6 10 10 0.57858183887210823 0.57673059564504303 0.57673640059760733 +-9.9999800000000008 5.9965700000000002 10.007999999999999 -0.67145775535608776 -0.30926223585304302 0.67342509030132014 +-6.00481 5.9986300000000004 10.007999999999999 0.67213807385008906 -0.30843373536237001 0.67312631843622617 +-10.013999999999999 0 3.0120300000000002 -0.54412323770818116 2.0348887993908543e-07 0.83900530521917727 +10.013999999999999 0 2.9999899999999999 0.54441987804084202 2.5298661532909035e-07 0.83881284944493484 +10 6 10 0.67213846087915052 -0.31056713296421601 0.67214428906998358 +-9.9999400000000005 -6.0172100000000004 10.0321 -0.67179771199765348 0.31048231684857641 0.67252402565191527 +-6.0192600000000001 -6.0192600000000001 10.0321 0.67288474812719101 0.30949755510581506 0.67189089822777759 +-6.0130499999999998 -0.85634999999999994 4.0087000000000002 0.67278216086970455 0.3091300507909629 0.67216275983832041 +6.0130600000000003 -0.86255199999999999 4.0087099999999998 -0.67263824063196997 0.30975784840522264 0.67201776210967457 +10.0093 -2.0018699999999998 5.3355100000000002 0.3264035707758533 -0.32782998538744795 0.88655976091047473 +-9.9999199999999995 -9.9999199999999995 10.040100000000001 -0.57657543492278907 -0.57657743138359729 0.57889483799969199 +-6.0240499999999999 -9.9999400000000005 10.0321 0.57766111867420489 -0.57719720848600253 0.57719235484198184 +-6.0240600000000004 -10.012 4.0160400000000003 0.57712022827160669 -0.57665349293570511 0.57827587811076742 +-6.01823 -5.1587800000000001 4.0121500000000001 0.38444875426500008 -0.83851289641081783 0.38612857689742502 +-6.0072000000000001 -10.012 4.0160400000000003 0.57804521717736468 -0.57619136712540331 0.5778124568997558 +-6.0168499999999998 -10.0281 -4.0160499999999999 0.5763472433893847 -0.57819795057462431 -0.57750409954281845 +-6.0240799999999997 -10.0281 -4.0160499999999999 0.57634589584420493 -0.57819862299902436 -0.57750477115394705 +-6.0240900000000002 -10.0321 -10.0321 0.57771492359360854 -0.57709040630951081 -0.577245294482991 +-6.0072000000000001 -5.1587699999999996 4.0121500000000001 0.38570296850310898 -0.83803746200204488 0.38590987596725346 +-6.0072000000000001 -2.0024000000000002 4.00962 0.57773693651920732 -0.57680976787986427 0.57750370029964193 +6.0144299999999999 -2.0024000000000002 4.00962 -0.57681081300987513 -0.5772727869936044 0.57796662134722243 +-6.0116300000000003 -2.0038800000000001 0.33143699999999998 0.68394892455272438 -0.68435479051622272 -0.25272987417531112 +10.019399999999999 -2.00387 0.33785900000000002 0.68438125226255264 -0.6839744529440307 -0.25258909175072086 +6.0144299999999999 -2.0018699999999998 5.3379099999999999 -0.32752871592321908 -0.32756714388257102 0.88624190066499475 +10.0219 -0.92307300000000003 -0.92307300000000003 0.707660044598034 -0.53715743625295176 -0.45899798469891412 +10.02 0 -1.9999899999999999 0.54555347709548063 1.5803862131338817e-07 -0.83807601303760393 +10.007999999999999 5.9999900000000004 4.9999900000000004 0.32822568618738268 -0.32796546888955525 -0.88583663851913241 +-10.007999999999999 6.0240600000000004 5.0200500000000003 -0.32850537614152436 -0.32745115950952469 -0.88592322239683008 +-6.0047899999999998 6.0192399999999999 5.0160400000000003 0.3272892806435691 -0.32807744354916396 -0.88614159015930427 +-6.0048000000000004 6.0060099999999998 5.0006000000000004 0.32794229297758554 -0.32726837708601586 -0.88619933527174855 +-10.007999999999999 6.0240600000000004 -10.007999999999999 -0.57796778797347803 -0.57611352519850167 -0.57796750959582499 +-6.0240600000000004 6.0192699999999997 -10.007999999999999 0.5762675452860484 -0.5776561277761566 -0.57812551776638321 +-6.0047899999999998 6.0192399999999999 -4.00319 0.57650156663358743 -0.57788950988780541 -0.57765877300587354 +-4.00319 6.0168400000000002 -4.00319 -0.00085057783316206303 -0.70682290197319142 -0.70739003510336917 +-6.0047899999999998 6.0192399999999999 4.00319 0.57650138887798774 -0.57788958159759485 0.57765887866690635 +-9.9999199999999995 10.040100000000001 -9.9999199999999995 -0.57657713198739824 0.57889386695006595 -0.5765767092736106 +-5.9999599999999997 10.0321 -9.9999400000000005 0.57858407235033626 0.5767333303766129 -0.57673142523639309 +-6.0047800000000002 6.0240600000000004 -10.007999999999999 0.57671793929948467 -0.5767590992885171 -0.57857182776043847 +-6.0240600000000004 6.0240600000000004 -10.007999999999999 0.57671605820960459 -0.5767600367055179 -0.57857276833828408 +-5.9999599999999997 10.0321 -5.9999599999999997 0.70753200288016649 0.70667987391102438 0.0014215166121720965 +-6.0047899999999998 6.0192399999999999 -6.0047899999999998 0.70625568473538725 -0.70795685446139844 2.6788943945234034e-07 +-5.9999700000000002 10.0281 -3.9999799999999999 0.57758211728944731 0.5780446345611181 -0.57642284673887001 +-3.9999799999999999 10.0281 -3.9999799999999999 2.4221915181681129e-07 0.70809930605865501 -0.70611286120505734 +5.9999900000000004 10.007999999999999 -3.9999899999999999 -0.57758153784042154 0.57804468885566385 -0.57642337290541257 +3.9999899999999999 10.012 3.9999899999999999 0.0014160830208648425 0.70738840950879178 0.70682362213037275 +5.9999900000000004 10.007999999999999 3.9999899999999999 -0.57758200463497078 0.57804422494497909 0.5764233703881263 +5.9999900000000004 10.007999999999999 5.9999900000000004 -0.70682348542325324 0.70738996349538641 3.4681317556723266e-07 +10 10 -10 0.57735120442582799 0.57735120442566035 -0.57734839871284405 +5.9999900000000004 10.007999999999999 -9.9999800000000008 -0.57781473906182457 0.57827807656968222 -0.57595537455759904 +4.0031999999999996 6.0072099999999997 4.0031999999999996 -3.577613367098949e-07 -0.70724861929592353 0.70696491462015421 +-5.9999900000000004 10.012 3.9999899999999999 0.57835233862020263 0.57650044756300078 0.57719650585585014 +-6.0110000000000001 0.85517500000000002 4.0073299999999996 0.67223927580543397 -0.30879695999906415 0.67285867279832412 +-6.0072099999999997 4.00481 4.00481 0.70753176914946325 0.00056826234027187311 0.70668130916428185 +-6.0048000000000004 6.0048000000000004 6.0048000000000004 0.70710542430803769 -0.70710608814862352 -0.0017026500817594172 +6.0109899999999996 0.86136599999999997 4.0073299999999996 -0.67209492825780703 -0.30942388572926532 0.67271484772549484 +6.0072099999999997 4.00481 4.00481 -0.70753215883407361 0.00056445004395625994 0.70668092206578159 +6.0072099999999997 2.0024000000000002 4.0064099999999998 -0.57804728827071816 0.57711780753474295 0.57688505679135116 +-6.0072099999999997 2.0024000000000002 4.0064099999999998 0.57804514282606534 0.5771183605052852 0.57688665335825329 +6.0048000000000004 6.0072099999999997 4.0031999999999996 -0.57650108603802663 -0.5778900742102876 0.57765868809029797 +6.0048000000000004 6.0048000000000004 10.007999999999999 -0.671794194133708 -0.30834375313894613 0.67351072050000094 +6 10 10 -0.57858092870636313 0.57673464902030402 0.57673326031772176 +10 10 10 0.57734905822585003 0.57734905822585014 0.57735269110955734 +6.0240600000000004 6.0047800000000002 -10.007999999999999 -0.57672721219628686 -0.57673354414804845 -0.5785880587833887 +10.007999999999999 5.9999900000000004 -9.9999800000000008 0.57827683545930031 -0.57781520182949397 -0.57595615640942555 +6.0240600000000004 6.0240600000000004 -10.007999999999999 -0.57672931832828245 -0.57672931832828234 -0.57859017167697324 +6.0047800000000002 6.0240600000000004 -10.007999999999999 -0.57673233437311744 -0.57672950596722516 -0.57858697828013295 +6.0060099999999998 6.0048000000000004 5.0039999999999996 -0.32696289610091167 -0.32763818869031608 -0.88642454945981353 +6.0048000000000004 6.0048000000000004 6.0048000000000004 -0.7071037411417781 -0.70710777504088929 -0.0017010996514838395 +6.0116199999999997 2.00387 0.336254 -0.68385646295197455 0.6842582641333802 -0.2532409248995669 +-6.0116300000000003 2.0038800000000001 0.33143699999999998 0.68394980468793354 0.68435402179256088 -0.2527295739000181 +-6.0060099999999998 6.0060099999999998 5.0006000000000004 0.32734185433928503 -0.32734042316421436 -0.88639469637424562 +6.0047899999999998 6.0168400000000002 -4.00319 -0.57696540955036357 -0.57696342256290689 -0.57812120286915436 +-6.0192600000000001 6.0192600000000001 -6.0192600000000001 0.70668090366755765 -0.70753188971521619 -0.00085172038786390737 +3 0 1 2 +3 1 3 4 +3 1 4 2 +3 2 4 5 +3 3 6 7 +3 3 7 4 +3 4 7 8 +3 4 8 5 +3 5 8 9 +3 6 10 11 +3 6 11 7 +3 7 11 12 +3 7 12 8 +3 8 12 13 +3 8 13 9 +3 9 13 14 +3 0 2 15 +3 2 5 16 +3 2 16 15 +3 15 16 17 +3 5 9 18 +3 5 18 16 +3 16 18 19 +3 16 19 17 +3 17 19 20 +3 9 14 21 +3 9 21 18 +3 18 21 22 +3 18 22 19 +3 19 22 23 +3 19 23 20 +3 20 23 24 +3 0 15 25 +3 15 17 26 +3 15 26 25 +3 25 26 27 +3 17 20 28 +3 17 28 26 +3 26 28 29 +3 26 29 27 +3 27 29 30 +3 20 24 31 +3 20 31 28 +3 28 31 32 +3 28 32 29 +3 29 32 33 +3 29 33 30 +3 30 33 34 +3 0 25 35 +3 25 27 36 +3 25 36 35 +3 35 36 37 +3 27 30 38 +3 27 38 36 +3 36 38 39 +3 36 39 37 +3 37 39 40 +3 30 34 41 +3 30 41 38 +3 38 41 42 +3 38 42 39 +3 39 42 43 +3 39 43 40 +3 40 43 44 +3 0 35 1 +3 35 37 45 +3 35 45 1 +3 1 45 3 +3 37 40 46 +3 37 46 45 +3 45 46 47 +3 45 47 3 +3 3 47 6 +3 40 44 48 +3 40 48 46 +3 46 48 49 +3 46 49 47 +3 47 49 50 +3 47 50 6 +3 6 50 10 +3 10 51 52 +3 51 53 54 +3 51 54 52 +3 52 54 55 +3 53 56 57 +3 53 57 54 +3 54 57 58 +3 54 58 55 +3 55 58 59 +3 56 60 61 +3 56 61 57 +3 57 61 62 +3 57 62 58 +3 58 62 63 +3 58 63 59 +3 59 63 64 +3 14 65 66 +3 65 67 68 +3 65 68 66 +3 66 68 69 +3 67 70 71 +3 67 71 68 +3 68 71 72 +3 68 72 69 +3 69 72 73 +3 70 64 74 +3 70 74 71 +3 71 74 75 +3 71 75 72 +3 72 75 76 +3 72 76 73 +3 73 76 77 +3 24 78 79 +3 78 80 81 +3 78 81 79 +3 79 81 82 +3 80 83 84 +3 80 84 81 +3 81 84 85 +3 81 85 82 +3 82 85 86 +3 83 77 87 +3 83 87 84 +3 84 87 88 +3 84 88 85 +3 85 88 89 +3 85 89 86 +3 86 89 90 +3 34 91 92 +3 91 93 94 +3 91 94 92 +3 92 94 95 +3 93 96 97 +3 93 97 94 +3 94 97 98 +3 94 98 95 +3 95 98 99 +3 96 90 100 +3 96 100 97 +3 97 100 101 +3 97 101 98 +3 98 101 102 +3 98 102 99 +3 99 102 103 +3 44 104 105 +3 104 106 107 +3 104 107 105 +3 105 107 108 +3 106 109 110 +3 106 110 107 +3 107 110 111 +3 107 111 108 +3 108 111 112 +3 109 103 113 +3 109 113 110 +3 110 113 114 +3 110 114 111 +3 111 114 115 +3 111 115 112 +3 112 115 60 +3 64 70 59 +3 70 67 116 +3 70 116 59 +3 59 116 55 +3 67 65 117 +3 67 117 116 +3 116 117 118 +3 116 118 55 +3 55 118 52 +3 65 14 13 +3 65 13 117 +3 117 13 12 +3 117 12 118 +3 118 12 11 +3 118 11 52 +3 52 11 10 +3 77 83 73 +3 83 80 119 +3 83 119 73 +3 73 119 69 +3 80 78 120 +3 80 120 119 +3 119 120 121 +3 119 121 69 +3 69 121 66 +3 78 24 23 +3 78 23 120 +3 120 23 22 +3 120 22 121 +3 121 22 21 +3 121 21 66 +3 66 21 14 +3 90 96 86 +3 96 93 122 +3 96 122 86 +3 86 122 82 +3 93 91 123 +3 93 123 122 +3 122 123 124 +3 122 124 82 +3 82 124 79 +3 91 34 33 +3 91 33 123 +3 123 33 32 +3 123 32 124 +3 124 32 31 +3 124 31 79 +3 79 31 24 +3 103 109 99 +3 109 106 125 +3 109 125 99 +3 99 125 95 +3 106 104 126 +3 106 126 125 +3 125 126 127 +3 125 127 95 +3 95 127 92 +3 104 44 43 +3 104 43 126 +3 126 43 42 +3 126 42 127 +3 127 42 41 +3 127 41 92 +3 92 41 34 +3 60 56 112 +3 56 53 128 +3 56 128 112 +3 112 128 108 +3 53 51 129 +3 53 129 128 +3 128 129 130 +3 128 130 108 +3 108 130 105 +3 51 10 50 +3 51 50 129 +3 129 50 49 +3 129 49 130 +3 130 49 48 +3 130 48 105 +3 105 48 44 +3 131 132 133 +3 132 134 135 +3 132 135 133 +3 133 135 136 +3 134 137 138 +3 134 138 135 +3 135 138 139 +3 135 139 136 +3 136 139 140 +3 137 77 76 +3 137 76 138 +3 138 76 75 +3 138 75 139 +3 139 75 74 +3 139 74 140 +3 140 74 64 +3 131 141 132 +3 141 142 143 +3 141 143 132 +3 132 143 134 +3 142 144 145 +3 142 145 143 +3 143 145 146 +3 143 146 134 +3 134 146 137 +3 144 90 89 +3 144 89 145 +3 145 89 88 +3 145 88 146 +3 146 88 87 +3 146 87 137 +3 137 87 77 +3 131 147 141 +3 147 148 149 +3 147 149 141 +3 141 149 142 +3 148 150 151 +3 148 151 149 +3 149 151 152 +3 149 152 142 +3 142 152 144 +3 150 103 102 +3 150 102 151 +3 151 102 101 +3 151 101 152 +3 152 101 100 +3 152 100 144 +3 144 100 90 +3 131 153 147 +3 153 154 155 +3 153 155 147 +3 147 155 148 +3 154 156 157 +3 154 157 155 +3 155 157 158 +3 155 158 148 +3 148 158 150 +3 156 60 115 +3 156 115 157 +3 157 115 114 +3 157 114 158 +3 158 114 113 +3 158 113 150 +3 150 113 103 +3 131 133 153 +3 133 136 159 +3 133 159 153 +3 153 159 154 +3 136 140 160 +3 136 160 159 +3 159 160 161 +3 159 161 154 +3 154 161 156 +3 140 64 63 +3 140 63 160 +3 160 63 62 +3 160 62 161 +3 161 62 61 +3 161 61 156 +3 156 61 60 +9 167 164 189 184 181 179 177 175 168 +8 189 164 162 195 194 193 191 190 +3 162 164 196 +3 196 164 163 +4 163 164 165 166 +3 165 164 167 +10 166 165 167 168 169 170 171 172 173 174 +10 168 175 176 204 203 201 200 197 192 169 +6 176 175 177 214 209 206 +8 214 177 178 229 223 221 220 218 +4 178 177 179 180 +8 179 181 182 183 238 233 230 180 +8 182 181 184 185 186 187 202 188 +3 185 184 189 +3 185 189 190 +7 190 191 170 169 192 186 185 +4 170 191 193 171 +4 193 194 172 171 +4 194 195 173 172 +5 162 196 174 173 195 +4 174 196 163 166 +6 186 192 197 198 199 187 +3 197 200 198 +6 198 200 201 188 202 199 +6 240 183 182 188 201 203 +6 242 226 240 203 204 205 +10 204 176 206 207 208 249 248 247 245 205 +10 206 209 210 251 219 211 212 228 213 207 +6 210 209 214 215 216 217 +3 215 214 218 +6 211 219 216 215 218 220 +6 212 211 220 221 222 250 +8 222 221 223 224 225 240 226 227 +6 229 213 228 237 224 223 +9 180 230 231 232 208 207 213 229 178 +6 231 230 233 234 235 236 +8 225 224 237 246 234 233 238 239 +3 240 238 183 +3 240 239 238 +3 202 187 199 +3 240 225 239 +4 242 241 243 226 +4 244 227 226 243 +4 205 245 241 242 +7 234 246 243 241 245 247 235 +4 247 248 236 235 +5 236 248 249 232 231 +3 232 249 208 +7 228 212 250 244 243 246 237 +4 251 217 216 219 +3 251 210 217 +4 222 227 244 250 +