diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp
index ad73f425987a90f15fd5af91bfb7af6d5126b1d7..4ab4e4c43f040c69345fc8381b83b179a9a56898 100644
--- a/Geo/GFace.cpp
+++ b/Geo/GFace.cpp
@@ -1,4 +1,4 @@
-// $Id: GFace.cpp,v 1.35 2007-08-03 00:44:28 geuzaine Exp $
+// $Id: GFace.cpp,v 1.36 2007-09-19 19:03:01 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -133,6 +133,28 @@ void GFace::deleteMeshPartitions()
     quadrangles[i]->setPartition(0);
 }
 
+std::string GFace::getAdditionalInfoString()
+{
+  if(l_edges.empty()) return std::string("");
+
+  char tmp[256];
+  if(l_edges.size() > 10){
+    sprintf(tmp, "{%d, ..., %d}", (*l_edges.begin())->tag(), (*l_edges.end())->tag());
+    return std::string(tmp);
+  }
+
+  std::string str("");
+  std::list<GEdge*>::const_iterator it = l_edges.begin();
+  str += "{";
+  for(; it != l_edges.end(); it++){
+    if(it != l_edges.begin()) str += ",";
+    sprintf(tmp, "%d", (*it)->tag());
+    str += tmp;
+  }
+  str += "}";
+  return str;
+}
+
 void GFace::computeMeanPlane()
 {
   std::vector<SPoint3> pts;
diff --git a/Geo/GFace.h b/Geo/GFace.h
index cb1d1847c117ef221f82b03da1a9596d05e7f6cf..6305156aebf818388241f033099aff2a9175afb7 100644
--- a/Geo/GFace.h
+++ b/Geo/GFace.h
@@ -144,6 +144,9 @@ class GFace : public GEntity
   // Delete the mesh partitions defined on this face.
   void deleteMeshPartitions();
 
+  // Returns a type-specific additional information string
+  virtual std::string getAdditionalInfoString();
+
   // Recompute the mean plane of the surface from a list of points
   void computeMeanPlane(const std::vector<MVertex*> &points);
   void computeMeanPlane(const std::vector<SPoint3> &points);
diff --git a/Geo/GRegion.cpp b/Geo/GRegion.cpp
index 7d27487930f96a5a852a83399a722f15901c5a60..c1782a70a981c896e51833e153840c7055b71018 100644
--- a/Geo/GRegion.cpp
+++ b/Geo/GRegion.cpp
@@ -1,4 +1,4 @@
-// $Id: GRegion.cpp,v 1.17 2007-09-04 13:47:01 remacle Exp $
+// $Id: GRegion.cpp,v 1.18 2007-09-19 19:03:01 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -117,6 +117,28 @@ void GRegion::deleteMeshPartitions()
     pyramids[i]->setPartition(0);
 }
 
+std::string GRegion::getAdditionalInfoString()
+{
+  if(l_faces.empty()) return std::string("");
+
+  char tmp[256];
+  if(l_faces.size() > 10){
+    sprintf(tmp, "{%d, ..., %d}", (*l_faces.begin())->tag(), (*l_faces.end())->tag());
+    return std::string(tmp);
+  }
+
+  std::string str("");
+  std::list<GFace*>::const_iterator it = l_faces.begin();
+  str += "{";
+  for(; it != l_faces.end(); it++){
+    if(it != l_faces.begin()) str += ",";
+    sprintf(tmp, "%d", (*it)->tag());
+    str += tmp;
+  }
+  str += "}";
+  return str;
+}
+
 std::list<GEdge*> GRegion::edges() const
 {
   std::list<GEdge*> e;
diff --git a/Geo/GRegion.h b/Geo/GRegion.h
index 8a6cda9a180dc69d790811b909e235def492aded..40bdff76179d39300a2a3890a81e5e098da60b53 100644
--- a/Geo/GRegion.h
+++ b/Geo/GRegion.h
@@ -52,6 +52,9 @@ class GRegion : public GEntity {
   // Delete the mesh partitions defined on this region.
   void deleteMeshPartitions();
 
+  // Returns a type-specific additional information string
+  virtual std::string getAdditionalInfoString();
+
   // Resets the mesh attributes to default values
   virtual void resetMeshAttributes();
 
diff --git a/benchmarks/3d/escaliers.geo b/benchmarks/3d/escaliers.geo
new file mode 100644
index 0000000000000000000000000000000000000000..16d0906087a1c81ef9f7d952591e28a397737835
--- /dev/null
+++ b/benchmarks/3d/escaliers.geo
@@ -0,0 +1,1374 @@
+ lc = 4 ;
+Point ( 105192 ) = { 20 , 6 , 45 , lc };
+Point ( 107881 ) = { 20 , 6 , 46 , lc };
+Point ( 110642 ) = { 20 , 7 , 47 , lc };
+Point ( 113396 ) = { 20 , 7 , 48 , lc };
+Point ( 116254 ) = { 20 , 8 , 49 , lc };
+Point ( 119115 ) = { 20 , 8 , 50 , lc };
+Point ( 122063 ) = { 20 , 9 , 51 , lc };
+Point ( 124983 ) = { 20 , 9 , 52 , lc };
+Point ( 127964 ) = { 20 , 10 , 53 , lc };
+Point ( 130979 ) = { 20 , 11 , 54 , lc };
+Point ( 133950 ) = { 20 , 11 , 55 , lc };
+Point ( 136989 ) = { 20 , 12 , 56 , lc };
+Point ( 140062 ) = { 20 , 13 , 57 , lc };
+Point ( 143123 ) = { 20 , 13 , 58 , lc };
+Point ( 146233 ) = { 20 , 13 , 59 , lc };
+Point ( 149443 ) = { 20 , 14 , 60 , lc };
+Point ( 152653 ) = { 20 , 15 , 61 , lc };
+Point ( 155857 ) = { 20 , 16 , 62 , lc };
+Point ( 159026 ) = { 20 , 16 , 63 , lc };
+Point ( 162217 ) = { 20 , 17 , 64 , lc };
+Point ( 165314 ) = { 20 , 18 , 65 , lc };
+Point ( 165352 ) = { 20 , 19 , 65 , lc };
+Point ( 168344 ) = { 20 , 20 , 66 , lc };
+Point ( 171226 ) = { 20 , 21 , 67 , lc };
+Point ( 173978 ) = { 20 , 22 , 68 , lc };
+Point ( 174014 ) = { 20 , 23 , 68 , lc };
+Point ( 176647 ) = { 20 , 24 , 69 , lc };
+Point ( 176683 ) = { 20 , 25 , 69 , lc };
+Point ( 179174 ) = { 20 , 26 , 70 , lc };
+Point ( 181549 ) = { 20 , 27 , 71 , lc };
+Point ( 183779 ) = { 20 , 28 , 72 , lc };
+Point ( 185858 ) = { 20 , 28 , 73 , lc };
+Point ( 185889 ) = { 20 , 29 , 73 , lc };
+Point ( 187780 ) = { 20 , 30 , 74 , lc };
+Point ( 189432 ) = { 20 , 31 , 75 , lc };
+Point ( 190822 ) = { 20 , 32 , 76 , lc };
+Point ( 190850 ) = { 20 , 33 , 76 , lc };
+Point ( 191966 ) = { 20 , 34 , 77 , lc };
+Point ( 191992 ) = { 20 , 35 , 77 , lc };
+Point ( 192020 ) = { 20 , 36 , 77 , lc };
+Point ( 192845 ) = { 20 , 37 , 78 , lc };
+Spline ( 1 ) = { 105192 , 107881 , 110642 , 113396 , 116254 , 119115 , 122063 , 124983 , 127964 , 130979 , 133950 , 136989 , 140062 , 143123 , 146233 , 149443 , 152653 , 155857 , 159026 , 162217 , 165314 , 165352 , 168344 , 171226 , 173978 , 174014 , 176647 , 176683 , 179174 , 181549 , 183779 , 185858 , 185889 , 187780 , 189432 , 190822 , 190850 , 191966 , 191992 , 192020 , 192845 };
+
+//Point ( 192845 ) = { 20 , 37 , 78 , lc };
+Point ( 192869 ) = { 20 , 38 , 78 , lc };
+Point ( 192894 ) = { 20 , 39 , 78 , lc };
+Point ( 192920 ) = { 20 , 40 , 78 , lc };
+Point ( 192947 ) = { 20 , 41 , 78 , lc };
+Point ( 192976 ) = { 20 , 42 , 78 , lc };
+Point ( 193006 ) = { 20 , 43 , 78 , lc };
+Point ( 193484 ) = { 20 , 44 , 79 , lc };
+Point ( 193508 ) = { 20 , 45 , 79 , lc };
+Point ( 193533 ) = { 20 , 46 , 79 , lc };
+Point ( 193558 ) = { 20 , 47 , 79 , lc };
+Point ( 193583 ) = { 20 , 48 , 79 , lc };
+Point ( 193190 ) = { 20 , 49 , 78 , lc };
+Point ( 193220 ) = { 20 , 50 , 78 , lc };
+Point ( 193249 ) = { 20 , 51 , 78 , lc };
+Point ( 193276 ) = { 20 , 52 , 78 , lc };
+Point ( 193303 ) = { 20 , 53 , 78 , lc };
+Point ( 192645 ) = { 20 , 54 , 77 , lc };
+Point ( 192675 ) = { 20 , 55 , 77 , lc };
+Point ( 192703 ) = { 20 , 56 , 77 , lc };
+Point ( 192730 ) = { 20 , 57 , 77 , lc };
+Point ( 192756 ) = { 20 , 58 , 77 , lc };
+Point ( 191816 ) = { 20 , 59 , 76 , lc };
+Point ( 191845 ) = { 20 , 60 , 76 , lc };
+Point ( 190636 ) = { 20 , 61 , 75 , lc };
+Point ( 190667 ) = { 20 , 62 , 75 , lc };
+Point ( 190697 ) = { 20 , 63 , 75 , lc };
+Point ( 189224 ) = { 20 , 64 , 74 , lc };
+Point ( 189256 ) = { 20 , 65 , 74 , lc };
+Point ( 187549 ) = { 20 , 66 , 73 , lc };
+Point ( 187581 ) = { 20 , 67 , 73 , lc };
+Point ( 185638 ) = { 20 , 68 , 72 , lc };
+Point ( 185670 ) = { 20 , 69 , 72 , lc };
+Point ( 185699 ) = { 20 , 70 , 72 , lc };
+Point ( 183560 ) = { 20 , 71 , 71 , lc };
+Point ( 183587 ) = { 20 , 72 , 71 , lc };
+Point ( 181318 ) = { 20 , 73 , 70 , lc };
+Point ( 178904 ) = { 20 , 74 , 69 , lc };
+Point ( 178929 ) = { 20 , 75 , 69 , lc };
+Point ( 176412 ) = { 20 , 76 , 68 , lc };
+Point ( 173762 ) = { 20 , 77 , 67 , lc };
+Point ( 170991 ) = { 20 , 78 , 66 , lc };
+Point ( 168089 ) = { 20 , 78 , 65 , lc };
+Point ( 165101 ) = { 20 , 79 , 64 , lc };
+Point ( 162007 ) = { 20 , 80 , 63 , lc };
+Point ( 158808 ) = { 20 , 80 , 62 , lc };
+Point ( 155617 ) = { 20 , 81 , 61 , lc };
+Point ( 152413 ) = { 20 , 81 , 60 , lc };
+Point ( 149222 ) = { 20 , 82 , 59 , lc };
+Point ( 146019 ) = { 20 , 82 , 58 , lc };
+Point ( 142876 ) = { 20 , 82 , 57 , lc };
+Point ( 139801 ) = { 20 , 83 , 56 , lc };
+Point ( 136746 ) = { 20 , 83 , 55 , lc };
+Point ( 133726 ) = { 20 , 83 , 54 , lc };
+Point ( 130729 ) = { 20 , 83 , 53 , lc };
+Point ( 127751 ) = { 20 , 84 , 52 , lc };
+Point ( 124791 ) = { 20 , 84 , 51 , lc };
+Point ( 121857 ) = { 20 , 84 , 50 , lc };
+Point ( 118933 ) = { 20 , 84 , 49 , lc };
+Point ( 116061 ) = { 20 , 84 , 48 , lc };
+Point ( 113229 ) = { 20 , 84 , 47 , lc };
+Point ( 110465 ) = { 20 , 84 , 46 , lc };
+Point ( 107733 ) = { 20 , 84 , 45 , lc };
+Spline ( 2 ) = { 192845 , 192869 , 192894 , 192920 , 192947 , 192976 , 193006 , 193484 , 193508 , 193533 , 193558 , 193583 , 193190 , 193220 , 193249 , 193276 , 193303 , 192645 , 192675 , 192703 , 192730 , 192756 , 191816 , 191845 , 190636 , 190667 , 190697 , 189224 , 189256 , 187549 , 187581 , 185638 , 185670 , 185699 , 183560 , 183587 , 181318 , 178904 , 178929 , 176412 , 173762 , 170991 , 168089 , 165101 , 162007 , 158808 , 155617 , 152413 , 149222 , 146019 , 142876 , 139801 , 136746 , 133726 , 130729 , 127751 , 124791 , 121857 , 118933 , 116061 , 113229 , 110465 , 107733 };
+
+//Point ( 107733 ) = { 20 , 84 , 45 , lc };
+Point ( 105039 ) = { 20 , 84 , 44 , lc };
+Point ( 102359 ) = { 20 , 84 , 43 , lc };
+Point ( 99699 ) = { 20 , 84 , 42 , lc };
+Point ( 97045 ) = { 20 , 84 , 41 , lc };
+Point ( 94395 ) = { 20 , 84 , 40 , lc };
+Point ( 91735 ) = { 20 , 84 , 39 , lc };
+Point ( 89052 ) = { 20 , 84 , 38 , lc };
+Point ( 86323 ) = { 20 , 84 , 37 , lc };
+Point ( 83552 ) = { 20 , 83 , 36 , lc };
+Point ( 80758 ) = { 20 , 83 , 35 , lc };
+Point ( 77941 ) = { 20 , 83 , 34 , lc };
+Point ( 75069 ) = { 20 , 83 , 33 , lc };
+Point ( 72126 ) = { 20 , 83 , 32 , lc };
+Point ( 69078 ) = { 20 , 82 , 31 , lc };
+Point ( 65940 ) = { 20 , 82 , 30 , lc };
+Point ( 62701 ) = { 20 , 82 , 29 , lc };
+Point ( 59408 ) = { 20 , 82 , 28 , lc };
+Point ( 56045 ) = { 20 , 81 , 27 , lc };
+Point ( 52632 ) = { 20 , 81 , 26 , lc };
+Point ( 49194 ) = { 20 , 80 , 25 , lc };
+Point ( 45785 ) = { 20 , 80 , 24 , lc };
+Point ( 42420 ) = { 20 , 80 , 23 , lc };
+Point ( 39125 ) = { 20 , 79 , 22 , lc };
+Point ( 35922 ) = { 20 , 78 , 21 , lc };
+Point ( 32836 ) = { 20 , 78 , 20 , lc };
+Point ( 29825 ) = { 20 , 78 , 19 , lc };
+Point ( 26919 ) = { 20 , 77 , 18 , lc };
+Point ( 24123 ) = { 20 , 76 , 17 , lc };
+Point ( 21456 ) = { 20 , 76 , 16 , lc };
+Point ( 18914 ) = { 20 , 75 , 15 , lc };
+Point ( 16512 ) = { 20 , 74 , 14 , lc };
+Point ( 14267 ) = { 20 , 73 , 13 , lc };
+Point ( 12108 ) = { 20 , 72 , 12 , lc };
+Point ( 10101 ) = { 20 , 72 , 11 , lc };
+Point ( 10094 ) = { 20 , 71 , 11 , lc };
+Point ( 8173 ) = { 20 , 70 , 10 , lc };
+Point ( 6453 ) = { 20 , 69 , 9 , lc };
+Point ( 4935 ) = { 20 , 68 , 8 , lc };
+Point ( 3630 ) = { 20 , 67 , 7 , lc };
+Point ( 3623 ) = { 20 , 66 , 7 , lc };
+Point ( 2538 ) = { 20 , 65 , 6 , lc };
+Point ( 1651 ) = { 20 , 64 , 5 , lc };
+Point ( 1645 ) = { 20 , 63 , 5 , lc };
+Point ( 1636 ) = { 20 , 62 , 5 , lc };
+Point ( 944 ) = { 20 , 61 , 4 , lc };
+Point ( 935 ) = { 20 , 60 , 4 , lc };
+Point ( 458 ) = { 20 , 59 , 3 , lc };
+Point ( 451 ) = { 20 , 58 , 3 , lc };
+Point ( 441 ) = { 20 , 57 , 3 , lc };
+Point ( 430 ) = { 20 , 56 , 3 , lc };
+Point ( 157 ) = { 20 , 55 , 2 , lc };
+Point ( 148 ) = { 20 , 54 , 2 , lc };
+Point ( 138 ) = { 20 , 53 , 2 , lc };
+Point ( 128 ) = { 20 , 52 , 2 , lc };
+Point ( 116 ) = { 20 , 51 , 2 , lc };
+Point ( 104 ) = { 20 , 50 , 2 , lc };
+Point ( 92 ) = { 20 , 49 , 2 , lc };
+Point ( 80 ) = { 20 , 48 , 2 , lc };
+Point ( 67 ) = { 20 , 47 , 2 , lc };
+Point ( 56 ) = { 20 , 46 , 2 , lc };
+Point ( 45 ) = { 20 , 45 , 2 , lc };
+Point ( 35 ) = { 20 , 44 , 2 , lc };
+Point ( 27 ) = { 20 , 43 , 2 , lc };
+Point ( 200 ) = { 20 , 42 , 3 , lc };
+Point ( 187 ) = { 20 , 41 , 3 , lc };
+Point ( 177 ) = { 20 , 40 , 3 , lc };
+Point ( 493 ) = { 20 , 39 , 4 , lc };
+Point ( 477 ) = { 20 , 38 , 4 , lc };
+Point ( 465 ) = { 20 , 37 , 4 , lc };
+Spline ( 3 ) = { 107733 , 105039 , 102359 , 99699 , 97045 , 94395 , 91735 , 89052 , 86323 , 83552 , 80758 , 77941 , 75069 , 72126 , 69078 , 65940 , 62701 , 59408 , 56045 , 52632 , 49194 , 45785 , 42420 , 39125 , 35922 , 32836 , 29825 , 26919 , 24123 , 21456 , 18914 , 16512 , 14267 , 12108 , 10101 , 10094 , 8173 , 6453 , 4935 , 3630 , 3623 , 2538 , 1651 , 1645 , 1636 , 944 , 935 , 458 , 451 , 441 , 430 , 157 , 148 , 138 , 128 , 116 , 104 , 92 , 80 , 67 , 56 , 45 , 35 , 27 , 200 , 187 , 177 , 493 , 477 , 465 };
+
+//Point ( 465 ) = { 20 , 37 , 4 , lc };
+Point ( 994 ) = { 20 , 36 , 5 , lc };
+Point ( 1736 ) = { 20 , 35 , 6 , lc };
+Point ( 1709 ) = { 20 , 34 , 6 , lc };
+Point ( 2630 ) = { 20 , 33 , 7 , lc };
+Point ( 3770 ) = { 20 , 32 , 8 , lc };
+Point ( 3735 ) = { 20 , 31 , 8 , lc };
+Point ( 5072 ) = { 20 , 30 , 9 , lc };
+Point ( 6616 ) = { 20 , 29 , 10 , lc };
+Point ( 6580 ) = { 20 , 28 , 10 , lc };
+Point ( 8325 ) = { 20 , 27 , 11 , lc };
+Point ( 10270 ) = { 20 , 26 , 12 , lc };
+Point ( 10237 ) = { 20 , 25 , 12 , lc };
+Point ( 12268 ) = { 20 , 24 , 13 , lc };
+Point ( 12235 ) = { 20 , 23 , 13 , lc };
+Point ( 14405 ) = { 20 , 22 , 14 , lc };
+Point ( 16656 ) = { 20 , 21 , 15 , lc };
+Point ( 19064 ) = { 20 , 20 , 16 , lc };
+Point ( 21614 ) = { 20 , 19 , 17 , lc };
+Point ( 24292 ) = { 20 , 18 , 18 , lc };
+Point ( 27084 ) = { 20 , 17 , 19 , lc };
+Point ( 29990 ) = { 20 , 16 , 20 , lc };
+Point ( 32998 ) = { 20 , 15 , 21 , lc };
+Point ( 36089 ) = { 20 , 14 , 22 , lc };
+Point ( 39280 ) = { 20 , 13 , 23 , lc };
+Point ( 39245 ) = { 20 , 12 , 23 , lc };
+Point ( 42563 ) = { 20 , 12 , 24 , lc };
+Point ( 45917 ) = { 20 , 11 , 25 , lc };
+Point ( 49324 ) = { 20 , 10 , 26 , lc };
+Point ( 52735 ) = { 20 , 9 , 27 , lc };
+Point ( 56179 ) = { 20 , 9 , 28 , lc };
+Point ( 59511 ) = { 20 , 8 , 29 , lc };
+Point ( 62796 ) = { 20 , 7 , 30 , lc };
+Point ( 66051 ) = { 20 , 7 , 31 , lc };
+Point ( 69208 ) = { 20 , 7 , 32 , lc };
+Point ( 72224 ) = { 20 , 6 , 33 , lc };
+Point ( 75182 ) = { 20 , 6 , 34 , lc };
+Point ( 78066 ) = { 20 , 6 , 35 , lc };
+Point ( 80897 ) = { 20 , 6 , 36 , lc };
+Point ( 83665 ) = { 20 , 5 , 37 , lc };
+Point ( 86428 ) = { 20 , 5 , 38 , lc };
+Point ( 89161 ) = { 20 , 5 , 39 , lc };
+Point ( 91850 ) = { 20 , 5 , 40 , lc };
+Point ( 94517 ) = { 20 , 5 , 41 , lc };
+Point ( 97208 ) = { 20 , 6 , 42 , lc };
+Point ( 99862 ) = { 20 , 6 , 43 , lc };
+Point ( 102519 ) = { 20 , 6 , 44 , lc };
+//Point ( 105192 ) = { 20 , 6 , 45 , lc };
+Spline ( 4 ) = { 465 , 994 , 1736 , 1709 , 2630 , 3770 , 3735 , 5072 , 6616 , 6580 , 8325 , 10270 , 10237 , 12268 , 12235 , 14405 , 16656 , 19064 , 21614 , 24292 , 27084 , 29990 , 32998 , 36089 , 39280 , 39245 , 42563 , 45917 , 49324 , 52735 , 56179 , 59511 , 62796 , 66051 , 69208 , 72224 , 75182 , 78066 , 80897 , 83665 , 86428 , 89161 , 91850 , 94517 , 97208 , 99862 , 102519 , 105192 };
+
+Point ( 105597 ) = { 20 , 15 , 45 , lc };
+Point ( 108285 ) = { 20 , 15 , 46 , lc };
+Point ( 110955 ) = { 20 , 14 , 47 , lc };
+Point ( 113705 ) = { 20 , 14 , 48 , lc };
+Point ( 116470 ) = { 20 , 13 , 49 , lc };
+Point ( 119328 ) = { 20 , 13 , 50 , lc };
+Point ( 122234 ) = { 20 , 13 , 51 , lc };
+Point ( 125152 ) = { 20 , 13 , 52 , lc };
+Point ( 128090 ) = { 20 , 13 , 53 , lc };
+Point ( 131109 ) = { 20 , 14 , 54 , lc };
+Point ( 134124 ) = { 20 , 15 , 55 , lc };
+Point ( 137164 ) = { 20 , 16 , 56 , lc };
+Point ( 137212 ) = { 20 , 17 , 56 , lc };
+Point ( 140289 ) = { 20 , 18 , 57 , lc };
+Point ( 140339 ) = { 20 , 19 , 57 , lc };
+Point ( 143443 ) = { 20 , 20 , 58 , lc };
+Point ( 143496 ) = { 20 , 21 , 58 , lc };
+Point ( 146651 ) = { 20 , 22 , 59 , lc };
+Point ( 149864 ) = { 20 , 23 , 60 , lc };
+Point ( 153080 ) = { 20 , 24 , 61 , lc };
+Point ( 153135 ) = { 20 , 25 , 61 , lc };
+Point ( 156337 ) = { 20 , 26 , 62 , lc };
+Point ( 159542 ) = { 20 , 27 , 63 , lc };
+Point ( 159599 ) = { 20 , 28 , 63 , lc };
+Point ( 159656 ) = { 20 , 29 , 63 , lc };
+Point ( 159715 ) = { 20 , 30 , 63 , lc };
+Point ( 159774 ) = { 20 , 31 , 63 , lc };
+Point ( 159834 ) = { 20 , 32 , 63 , lc };
+Point ( 156686 ) = { 20 , 33 , 62 , lc };
+Point ( 156741 ) = { 20 , 34 , 62 , lc };
+Point ( 156804 ) = { 20 , 35 , 62 , lc };
+Point ( 153645 ) = { 20 , 36 , 61 , lc };
+Point ( 150497 ) = { 20 , 37 , 60 , lc };
+Spline ( 5 ) = { 105597 , 108285 , 110955 , 113705 , 116470 , 119328 , 122234 , 125152 , 128090 , 131109 , 134124 , 137164 , 137212 , 140289 , 140339 , 143443 , 143496 , 146651 , 149864 , 153080 , 153135 , 156337 , 159542 , 159599 , 159656 , 159715 , 159774 , 159834 , 156686 , 156741 , 156804 , 153645 , 150497 };
+
+//Point ( 150497 ) = { 20 , 37 , 60 , lc };
+Point ( 147363 ) = { 20 , 38 , 59 , lc };
+Point ( 144250 ) = { 20 , 39 , 58 , lc };
+Point ( 141189 ) = { 20 , 40 , 57 , lc };
+Point ( 138157 ) = { 20 , 41 , 56 , lc };
+Point ( 135155 ) = { 20 , 42 , 55 , lc };
+Point ( 132158 ) = { 20 , 42 , 54 , lc };
+Point ( 129196 ) = { 20 , 43 , 53 , lc };
+Point ( 126216 ) = { 20 , 43 , 52 , lc };
+Point ( 123252 ) = { 20 , 43 , 51 , lc };
+Point ( 120319 ) = { 20 , 43 , 50 , lc };
+Point ( 117440 ) = { 20 , 44 , 49 , lc };
+Point ( 114568 ) = { 20 , 44 , 48 , lc };
+Point ( 111790 ) = { 20 , 45 , 47 , lc };
+Point ( 109032 ) = { 20 , 45 , 46 , lc };
+Point ( 106315 ) = { 20 , 45 , 45 , lc };
+Spline ( 6 ) = { 150497 , 147363 , 144250 , 141189 , 138157 , 135155 , 132158 , 129196 , 126216 , 123252 , 120319 , 117440 , 114568 , 111790 , 109032 , 106315 };
+
+//Point ( 106315 ) = { 20 , 45 , 45 , lc };
+Point ( 103631 ) = { 20 , 45 , 44 , lc };
+Point ( 100964 ) = { 20 , 45 , 43 , lc };
+Point ( 98312 ) = { 20 , 45 , 42 , lc };
+Point ( 95631 ) = { 20 , 44 , 41 , lc };
+Point ( 92977 ) = { 20 , 44 , 40 , lc };
+Point ( 90272 ) = { 20 , 43 , 39 , lc };
+Point ( 87553 ) = { 20 , 42 , 38 , lc };
+Point ( 84820 ) = { 20 , 42 , 37 , lc };
+Point ( 82036 ) = { 20 , 41 , 36 , lc };
+Point ( 79244 ) = { 20 , 41 , 35 , lc };
+Point ( 76385 ) = { 20 , 40 , 34 , lc };
+Point ( 73460 ) = { 20 , 39 , 33 , lc };
+Point ( 73434 ) = { 20 , 38 , 33 , lc };
+Point ( 70431 ) = { 20 , 37 , 32 , lc };
+Spline ( 7 ) = { 106315 , 103631 , 100964 , 98312 , 95631 , 92977 , 90272 , 87553 , 84820 , 82036 , 79244 , 76385 , 73460 , 73434 , 70431 };
+
+//Point ( 70431 ) = { 20 , 37 , 32 , lc };
+Point ( 70401 ) = { 20 , 36 , 32 , lc };
+Point ( 70372 ) = { 20 , 35 , 32 , lc };
+Point ( 70342 ) = { 20 , 34 , 32 , lc };
+Point ( 70312 ) = { 20 , 33 , 32 , lc };
+Point ( 70281 ) = { 20 , 32 , 32 , lc };
+Point ( 67141 ) = { 20 , 31 , 31 , lc };
+Point ( 67107 ) = { 20 , 30 , 31 , lc };
+Point ( 67075 ) = { 20 , 29 , 31 , lc };
+Point ( 63803 ) = { 20 , 28 , 30 , lc };
+Point ( 63755 ) = { 20 , 27 , 30 , lc };
+Point ( 63707 ) = { 20 , 26 , 30 , lc };
+Point ( 63659 ) = { 20 , 25 , 30 , lc };
+Point ( 63612 ) = { 20 , 24 , 30 , lc };
+Point ( 66821 ) = { 20 , 23 , 31 , lc };
+Point ( 66775 ) = { 20 , 22 , 31 , lc };
+Point ( 69885 ) = { 20 , 21 , 32 , lc };
+Point ( 72892 ) = { 20 , 20 , 33 , lc };
+Point ( 75805 ) = { 20 , 19 , 34 , lc };
+Point ( 78640 ) = { 20 , 18 , 35 , lc };
+Point ( 81476 ) = { 20 , 18 , 36 , lc };
+Point ( 84226 ) = { 20 , 17 , 37 , lc };
+Point ( 86991 ) = { 20 , 17 , 38 , lc };
+Point ( 89669 ) = { 20 , 16 , 39 , lc };
+Point ( 92360 ) = { 20 , 16 , 40 , lc };
+Point ( 95026 ) = { 20 , 16 , 41 , lc };
+Point ( 97677 ) = { 20 , 16 , 42 , lc };
+Point ( 100276 ) = { 20 , 15 , 43 , lc };
+Point ( 102932 ) = { 20 , 15 , 44 , lc };
+//Point ( 105597 ) = { 20 , 15 , 45 , lc };
+Spline ( 8 ) = { 70431 , 70401 , 70372 , 70342 , 70312 , 70281 , 67141 , 67107 , 67075 , 63803 , 63755 , 63707 , 63659 , 63612 , 66821 , 66775 , 69885 , 72892 , 75805 , 78640 , 81476 , 84226 , 86991 , 89669 , 92360 , 95026 , 97677 , 100276 , 102932 , 105597 };
+
+Point ( 106656 ) = { 20 , 51 , 45 , lc };
+Point ( 109383 ) = { 20 , 51 , 46 , lc };
+Point ( 112159 ) = { 20 , 51 , 47 , lc };
+Point ( 114996 ) = { 20 , 51 , 48 , lc };
+Point ( 117872 ) = { 20 , 51 , 49 , lc };
+Point ( 120795 ) = { 20 , 51 , 50 , lc };
+Point ( 123735 ) = { 20 , 51 , 51 , lc };
+Point ( 126710 ) = { 20 , 51 , 52 , lc };
+Point ( 129698 ) = { 20 , 51 , 53 , lc };
+Point ( 132707 ) = { 20 , 51 , 54 , lc };
+Point ( 135722 ) = { 20 , 51 , 55 , lc };
+Point ( 138787 ) = { 20 , 51 , 56 , lc };
+Point ( 141894 ) = { 20 , 51 , 57 , lc };
+Point ( 144973 ) = { 20 , 50 , 58 , lc };
+Point ( 148178 ) = { 20 , 50 , 59 , lc };
+Point ( 151392 ) = { 20 , 50 , 60 , lc };
+Point ( 154532 ) = { 20 , 49 , 61 , lc };
+Point ( 157745 ) = { 20 , 49 , 62 , lc };
+Point ( 160890 ) = { 20 , 48 , 63 , lc };
+Point ( 164064 ) = { 20 , 49 , 64 , lc };
+Point ( 167072 ) = { 20 , 49 , 65 , lc };
+Point ( 169914 ) = { 20 , 48 , 66 , lc };
+Point ( 172771 ) = { 20 , 49 , 67 , lc };
+Point ( 172830 ) = { 20 , 50 , 67 , lc };
+Point ( 172884 ) = { 20 , 51 , 67 , lc };
+Point ( 172935 ) = { 20 , 52 , 67 , lc };
+Point ( 170193 ) = { 20 , 53 , 66 , lc };
+Point ( 170233 ) = { 20 , 54 , 66 , lc };
+Point ( 170265 ) = { 20 , 55 , 66 , lc };
+Point ( 170289 ) = { 20 , 56 , 66 , lc };
+Point ( 170313 ) = { 20 , 57 , 66 , lc };
+Point ( 170335 ) = { 20 , 58 , 66 , lc };
+Point ( 167469 ) = { 20 , 59 , 65 , lc };
+Point ( 167489 ) = { 20 , 60 , 65 , lc };
+Point ( 167509 ) = { 20 , 61 , 65 , lc };
+Point ( 164537 ) = { 20 , 62 , 64 , lc };
+Point ( 164557 ) = { 20 , 63 , 64 , lc };
+Point ( 164578 ) = { 20 , 64 , 64 , lc };
+Point ( 164601 ) = { 20 , 65 , 64 , lc };
+Point ( 161517 ) = { 20 , 66 , 63 , lc };
+Spline ( 9 ) = { 106656 , 109383 , 112159 , 114996 , 117872 , 120795 , 123735 , 126710 , 129698 , 132707 , 135722 , 138787 , 141894 , 144973 , 148178 , 151392 , 154532 , 157745 , 160890 , 164064 , 167072 , 169914 , 172771 , 172830 , 172884 , 172935 , 170193 , 170233 , 170265 , 170289 , 170313 , 170335 , 167469 , 167489 , 167509 , 164537 , 164557 , 164578 , 164601 , 161517 };
+
+//Point ( 161517 ) = { 20 , 66 , 63 , lc };
+Point ( 158344 ) = { 20 , 67 , 62 , lc };
+Point ( 158367 ) = { 20 , 68 , 62 , lc };
+Point ( 155182 ) = { 20 , 69 , 61 , lc };
+Point ( 152008 ) = { 20 , 70 , 60 , lc };
+Point ( 148821 ) = { 20 , 71 , 59 , lc };
+Point ( 145643 ) = { 20 , 72 , 58 , lc };
+Point ( 142508 ) = { 20 , 72 , 57 , lc };
+Point ( 139433 ) = { 20 , 73 , 56 , lc };
+Point ( 136408 ) = { 20 , 74 , 55 , lc };
+Point ( 133390 ) = { 20 , 74 , 54 , lc };
+Point ( 130389 ) = { 20 , 74 , 53 , lc };
+Point ( 127426 ) = { 20 , 75 , 52 , lc };
+Point ( 124464 ) = { 20 , 75 , 51 , lc };
+Point ( 121554 ) = { 20 , 76 , 50 , lc };
+Point ( 118636 ) = { 20 , 76 , 49 , lc };
+Point ( 115773 ) = { 20 , 76 , 48 , lc };
+Point ( 112938 ) = { 20 , 76 , 47 , lc };
+Point ( 110174 ) = { 20 , 76 , 46 , lc };
+Point ( 107467 ) = { 20 , 77 , 45 , lc };
+Spline ( 10 ) = { 161517 , 158344 , 158367 , 155182 , 152008 , 148821 , 145643 , 142508 , 139433 , 136408 , 133390 , 130389 , 127426 , 124464 , 121554 , 118636 , 115773 , 112938 , 110174 , 107467 };
+
+//Point ( 107467 ) = { 20 , 77 , 45 , lc };
+Point ( 104777 ) = { 20 , 77 , 44 , lc };
+Point ( 102102 ) = { 20 , 77 , 43 , lc };
+Point ( 99442 ) = { 20 , 77 , 42 , lc };
+Point ( 96795 ) = { 20 , 77 , 41 , lc };
+Point ( 94147 ) = { 20 , 77 , 40 , lc };
+Point ( 91492 ) = { 20 , 77 , 39 , lc };
+Point ( 88815 ) = { 20 , 77 , 38 , lc };
+Point ( 86069 ) = { 20 , 76 , 37 , lc };
+Point ( 83325 ) = { 20 , 76 , 36 , lc };
+Point ( 80535 ) = { 20 , 76 , 35 , lc };
+Point ( 77717 ) = { 20 , 76 , 34 , lc };
+Point ( 74845 ) = { 20 , 76 , 33 , lc };
+Point ( 71908 ) = { 20 , 76 , 32 , lc };
+Point ( 68858 ) = { 20 , 75 , 31 , lc };
+Point ( 65719 ) = { 20 , 75 , 30 , lc };
+Point ( 62489 ) = { 20 , 75 , 29 , lc };
+Point ( 59175 ) = { 20 , 74 , 28 , lc };
+Point ( 55834 ) = { 20 , 74 , 27 , lc };
+Point ( 52402 ) = { 20 , 73 , 26 , lc };
+Point ( 48985 ) = { 20 , 73 , 25 , lc };
+Point ( 45553 ) = { 20 , 72 , 24 , lc };
+Point ( 42199 ) = { 20 , 72 , 23 , lc };
+Point ( 38900 ) = { 20 , 71 , 22 , lc };
+Point ( 35689 ) = { 20 , 70 , 21 , lc };
+Point ( 32581 ) = { 20 , 69 , 20 , lc };
+Point ( 29556 ) = { 20 , 68 , 19 , lc };
+Point ( 26649 ) = { 20 , 67 , 18 , lc };
+Point ( 23846 ) = { 20 , 66 , 17 , lc };
+Spline ( 11 ) = { 107467 , 104777 , 102102 , 99442 , 96795 , 94147 , 91492 , 88815 , 86069 , 83325 , 80535 , 77717 , 74845 , 71908 , 68858 , 65719 , 62489 , 59175 , 55834 , 52402 , 48985 , 45553 , 42199 , 38900 , 35689 , 32581 , 29556 , 26649 , 23846 };
+
+//Point ( 23846 ) = { 20 , 66 , 17 , lc };
+Point ( 23810 ) = { 20 , 65 , 17 , lc };
+Point ( 21133 ) = { 20 , 64 , 16 , lc };
+Point ( 18593 ) = { 20 , 63 , 15 , lc };
+Point ( 18557 ) = { 20 , 62 , 15 , lc };
+Point ( 16156 ) = { 20 , 61 , 14 , lc };
+Point ( 16119 ) = { 20 , 60 , 14 , lc };
+Point ( 13873 ) = { 20 , 59 , 13 , lc };
+Point ( 13835 ) = { 20 , 58 , 13 , lc };
+Point ( 13796 ) = { 20 , 57 , 13 , lc };
+Point ( 11642 ) = { 20 , 56 , 12 , lc };
+Point ( 11603 ) = { 20 , 55 , 12 , lc };
+Point ( 11561 ) = { 20 , 54 , 12 , lc };
+Point ( 11518 ) = { 20 , 53 , 12 , lc };
+Point ( 13635 ) = { 20 , 52 , 13 , lc };
+Point ( 13602 ) = { 20 , 51 , 13 , lc };
+Point ( 15800 ) = { 20 , 50 , 14 , lc };
+Point ( 18232 ) = { 20 , 51 , 15 , lc };
+Point ( 18269 ) = { 20 , 52 , 15 , lc };
+Point ( 20827 ) = { 20 , 53 , 16 , lc };
+Point ( 23519 ) = { 20 , 54 , 17 , lc };
+Point ( 26298 ) = { 20 , 54 , 18 , lc };
+Point ( 29219 ) = { 20 , 55 , 19 , lc };
+Point ( 32221 ) = { 20 , 55 , 20 , lc };
+Point ( 35341 ) = { 20 , 56 , 21 , lc };
+Point ( 38519 ) = { 20 , 56 , 22 , lc };
+Point ( 41787 ) = { 20 , 56 , 23 , lc };
+Point ( 45146 ) = { 20 , 56 , 24 , lc };
+Point ( 48551 ) = { 20 , 56 , 25 , lc };
+Point ( 51918 ) = { 20 , 55 , 26 , lc };
+Point ( 55321 ) = { 20 , 55 , 27 , lc };
+Point ( 58670 ) = { 20 , 55 , 28 , lc };
+Point ( 61951 ) = { 20 , 55 , 29 , lc };
+Point ( 65131 ) = { 20 , 54 , 30 , lc };
+Point ( 68265 ) = { 20 , 54 , 31 , lc };
+Point ( 71297 ) = { 20 , 54 , 32 , lc };
+Point ( 74176 ) = { 20 , 53 , 33 , lc };
+Point ( 77044 ) = { 20 , 53 , 34 , lc };
+Point ( 79858 ) = { 20 , 53 , 35 , lc };
+Point ( 82643 ) = { 20 , 53 , 36 , lc };
+Point ( 85327 ) = { 20 , 52 , 37 , lc };
+Point ( 88055 ) = { 20 , 52 , 38 , lc };
+Point ( 90731 ) = { 20 , 52 , 39 , lc };
+Point ( 93387 ) = { 20 , 52 , 40 , lc };
+Point ( 95980 ) = { 20 , 51 , 41 , lc };
+Point ( 98626 ) = { 20 , 51 , 42 , lc };
+Point ( 101288 ) = { 20 , 51 , 43 , lc };
+Point ( 103965 ) = { 20 , 51 , 44 , lc };
+//Point ( 106656 ) = { 20 , 51 , 45 , lc };
+Spline ( 12 ) = { 23846 , 23810 , 21133 , 18593 , 18557 , 16156 , 16119 , 13873 , 13835 , 13796 , 11642 , 11603 , 11561 , 11518 , 13635 , 13602 , 15800 , 18232 , 18269 , 20827 , 23519 , 26298 , 29219 , 32221 , 35341 , 38519 , 41787 , 45146 , 48551 , 51918 , 55321 , 58670 , 61951 , 65131 , 68265 , 71297 , 74176 , 77044 , 79858 , 82643 , 85327 , 88055 , 90731 , 93387 , 95980 , 98626 , 101288 , 103965 , 106656 };
+
+Point ( 106193 ) = { 89 , 37 , 45 , lc };
+Point ( 106181 ) = { 89 , 36 , 45 , lc };
+Point ( 106180 ) = { 88 , 36 , 45 , lc };
+Point ( 106169 ) = { 88 , 35 , 45 , lc };
+Point ( 106158 ) = { 88 , 34 , 45 , lc };
+Point ( 106147 ) = { 88 , 33 , 45 , lc };
+Point ( 106135 ) = { 88 , 32 , 45 , lc };
+Point ( 106134 ) = { 87 , 32 , 45 , lc };
+Point ( 106122 ) = { 87 , 31 , 45 , lc };
+Point ( 106109 ) = { 87 , 30 , 45 , lc };
+Point ( 106108 ) = { 86 , 30 , 45 , lc };
+Point ( 106095 ) = { 86 , 29 , 45 , lc };
+Point ( 106080 ) = { 86 , 28 , 45 , lc };
+Point ( 106059 ) = { 86 , 27 , 45 , lc };
+Point ( 106058 ) = { 85 , 27 , 45 , lc };
+Point ( 106032 ) = { 85 , 26 , 45 , lc };
+Point ( 106031 ) = { 84 , 26 , 45 , lc };
+Point ( 106003 ) = { 84 , 25 , 45 , lc };
+Point ( 106002 ) = { 83 , 25 , 45 , lc };
+Point ( 105974 ) = { 83 , 24 , 45 , lc };
+Point ( 105945 ) = { 83 , 23 , 45 , lc };
+Point ( 105944 ) = { 82 , 23 , 45 , lc };
+Point ( 105943 ) = { 81 , 23 , 45 , lc };
+Point ( 105914 ) = { 81 , 22 , 45 , lc };
+Point ( 105913 ) = { 80 , 22 , 45 , lc };
+Point ( 105884 ) = { 80 , 21 , 45 , lc };
+Point ( 105883 ) = { 79 , 21 , 45 , lc };
+Point ( 105853 ) = { 79 , 20 , 45 , lc };
+Point ( 105852 ) = { 78 , 20 , 45 , lc };
+Point ( 105820 ) = { 78 , 19 , 45 , lc };
+Point ( 105819 ) = { 77 , 19 , 45 , lc };
+Point ( 105785 ) = { 77 , 18 , 45 , lc };
+Point ( 105784 ) = { 76 , 18 , 45 , lc };
+Point ( 105783 ) = { 75 , 18 , 45 , lc };
+Point ( 105747 ) = { 75 , 17 , 45 , lc };
+Point ( 105746 ) = { 74 , 17 , 45 , lc };
+Point ( 105745 ) = { 73 , 17 , 45 , lc };
+Point ( 105701 ) = { 73 , 16 , 45 , lc };
+Point ( 105700 ) = { 72 , 16 , 45 , lc };
+Point ( 105649 ) = { 72 , 15 , 45 , lc };
+Point ( 105648 ) = { 71 , 15 , 45 , lc };
+Point ( 105647 ) = { 70 , 15 , 45 , lc };
+Point ( 105596 ) = { 70 , 14 , 45 , lc };
+Point ( 105595 ) = { 69 , 14 , 45 , lc };
+Point ( 105594 ) = { 68 , 14 , 45 , lc };
+Point ( 105545 ) = { 68 , 13 , 45 , lc };
+Point ( 105544 ) = { 67 , 13 , 45 , lc };
+Point ( 105543 ) = { 66 , 13 , 45 , lc };
+Point ( 105496 ) = { 66 , 12 , 45 , lc };
+Point ( 105495 ) = { 65 , 12 , 45 , lc };
+Point ( 105494 ) = { 64 , 12 , 45 , lc };
+Point ( 105448 ) = { 64 , 11 , 45 , lc };
+Point ( 105447 ) = { 63 , 11 , 45 , lc };
+Point ( 105402 ) = { 63 , 10 , 45 , lc };
+Point ( 105401 ) = { 62 , 10 , 45 , lc };
+Point ( 105357 ) = { 62 , 9 , 45 , lc };
+Point ( 105356 ) = { 61 , 9 , 45 , lc };
+Point ( 105355 ) = { 60 , 9 , 45 , lc };
+Point ( 105313 ) = { 60 , 8 , 45 , lc };
+Point ( 105312 ) = { 59 , 8 , 45 , lc };
+Point ( 105270 ) = { 59 , 7 , 45 , lc };
+Point ( 105269 ) = { 58 , 7 , 45 , lc };
+Point ( 105268 ) = { 57 , 7 , 45 , lc };
+Point ( 105229 ) = { 57 , 6 , 45 , lc };
+Point ( 105228 ) = { 56 , 6 , 45 , lc };
+Point ( 105227 ) = { 55 , 6 , 45 , lc };
+Point ( 105191 ) = { 55 , 5 , 45 , lc };
+Point ( 105190 ) = { 54 , 5 , 45 , lc };
+Point ( 105189 ) = { 53 , 5 , 45 , lc };
+Point ( 105188 ) = { 52 , 5 , 45 , lc };
+Point ( 105156 ) = { 52 , 4 , 45 , lc };
+Point ( 105155 ) = { 51 , 4 , 45 , lc };
+Point ( 105154 ) = { 50 , 4 , 45 , lc };
+Point ( 105153 ) = { 49 , 4 , 45 , lc };
+Point ( 105126 ) = { 49 , 3 , 45 , lc };
+Point ( 105125 ) = { 48 , 3 , 45 , lc };
+Point ( 105124 ) = { 47 , 3 , 45 , lc };
+Point ( 105123 ) = { 46 , 3 , 45 , lc };
+Point ( 105122 ) = { 45 , 3 , 45 , lc };
+Point ( 105121 ) = { 44 , 3 , 45 , lc };
+Point ( 105100 ) = { 44 , 2 , 45 , lc };
+Point ( 105099 ) = { 43 , 2 , 45 , lc };
+Point ( 105098 ) = { 42 , 2 , 45 , lc };
+Point ( 105097 ) = { 41 , 2 , 45 , lc };
+Point ( 105096 ) = { 40 , 2 , 45 , lc };
+Point ( 105095 ) = { 39 , 2 , 45 , lc };
+Point ( 105094 ) = { 38 , 2 , 45 , lc };
+Point ( 105093 ) = { 37 , 2 , 45 , lc };
+Point ( 105092 ) = { 36 , 2 , 45 , lc };
+Point ( 105081 ) = { 36 , 1 , 45 , lc };
+Point ( 105080 ) = { 35 , 1 , 45 , lc };
+Point ( 105079 ) = { 34 , 1 , 45 , lc };
+Point ( 105078 ) = { 33 , 1 , 45 , lc };
+Point ( 105077 ) = { 32 , 1 , 45 , lc };
+Point ( 105076 ) = { 31 , 1 , 45 , lc };
+Point ( 105075 ) = { 30 , 1 , 45 , lc };
+Point ( 105085 ) = { 29 , 2 , 45 , lc };
+Point ( 105084 ) = { 28 , 2 , 45 , lc };
+Point ( 105083 ) = { 27 , 2 , 45 , lc };
+Point ( 105082 ) = { 26 , 2 , 45 , lc };
+Point ( 105102 ) = { 25 , 3 , 45 , lc };
+Point ( 105101 ) = { 24 , 3 , 45 , lc };
+Point ( 105127 ) = { 23 , 4 , 45 , lc };
+Point ( 105158 ) = { 22 , 5 , 45 , lc };
+Point ( 105157 ) = { 21 , 5 , 45 , lc };
+//Point ( 105192 ) = { 20 , 6 , 45 , lc };
+Spline ( 13 ) = { 106193 , 106181 , 106180 , 106169 , 106158 , 106147 , 106135 , 106134 , 106122 , 106109 , 106108 , 106095 , 106080 , 106059 , 106058 , 106032 , 106031 , 106003 , 106002 , 105974 , 105945 , 105944 , 105943 , 105914 , 105913 , 105884 , 105883 , 105853 , 105852 , 105820 , 105819 , 105785 , 105784 , 105783 , 105747 , 105746 , 105745 , 105701 , 105700 , 105649 , 105648 , 105647 , 105596 , 105595 , 105594 , 105545 , 105544 , 105543 , 105496 , 105495 , 105494 , 105448 , 105447 , 105402 , 105401 , 105357 , 105356 , 105355 , 105313 , 105312 , 105270 , 105269 , 105268 , 105229 , 105228 , 105227 , 105191 , 105190 , 105189 , 105188 , 105156 , 105155 , 105154 , 105153 , 105126 , 105125 , 105124 , 105123 , 105122 , 105121 , 105100 , 105099 , 105098 , 105097 , 105096 , 105095 , 105094 , 105093 , 105092 , 105081 , 105080 , 105079 , 105078 , 105077 , 105076 , 105075 , 105085 , 105084 , 105083 , 105082 , 105102 , 105101 , 105127 , 105158 , 105157 , 105192 };
+
+//Point ( 107733 ) = { 20 , 84 , 45 , lc };
+Point ( 107734 ) = { 21 , 84 , 45 , lc };
+Point ( 107735 ) = { 22 , 84 , 45 , lc };
+Point ( 107736 ) = { 23 , 84 , 45 , lc };
+Point ( 107737 ) = { 24 , 84 , 45 , lc };
+Point ( 107754 ) = { 24 , 85 , 45 , lc };
+Point ( 107755 ) = { 25 , 85 , 45 , lc };
+Point ( 107756 ) = { 26 , 85 , 45 , lc };
+Point ( 107757 ) = { 27 , 85 , 45 , lc };
+Point ( 107758 ) = { 28 , 85 , 45 , lc };
+Point ( 107759 ) = { 29 , 85 , 45 , lc };
+Point ( 107760 ) = { 30 , 85 , 45 , lc };
+Point ( 107761 ) = { 31 , 85 , 45 , lc };
+Point ( 107762 ) = { 32 , 85 , 45 , lc };
+Point ( 107763 ) = { 33 , 85 , 45 , lc };
+Point ( 107764 ) = { 34 , 85 , 45 , lc };
+Point ( 107765 ) = { 35 , 85 , 45 , lc };
+Point ( 107766 ) = { 36 , 85 , 45 , lc };
+Point ( 107767 ) = { 37 , 85 , 45 , lc };
+Point ( 107751 ) = { 38 , 84 , 45 , lc };
+Point ( 107752 ) = { 39 , 84 , 45 , lc };
+Point ( 107753 ) = { 40 , 84 , 45 , lc };
+Point ( 107728 ) = { 41 , 83 , 45 , lc };
+Point ( 107729 ) = { 42 , 83 , 45 , lc };
+Point ( 107730 ) = { 43 , 83 , 45 , lc };
+Point ( 107698 ) = { 44 , 82 , 45 , lc };
+Point ( 107699 ) = { 45 , 82 , 45 , lc };
+Point ( 107663 ) = { 46 , 81 , 45 , lc };
+Point ( 107664 ) = { 47 , 81 , 45 , lc };
+Point ( 107624 ) = { 48 , 80 , 45 , lc };
+Point ( 107625 ) = { 49 , 80 , 45 , lc };
+Point ( 107584 ) = { 50 , 79 , 45 , lc };
+Point ( 107542 ) = { 51 , 78 , 45 , lc };
+Point ( 107499 ) = { 52 , 77 , 45 , lc };
+Point ( 107456 ) = { 53 , 76 , 45 , lc };
+Point ( 107435 ) = { 54 , 75 , 45 , lc };
+Point ( 107418 ) = { 55 , 74 , 45 , lc };
+Point ( 107404 ) = { 55 , 73 , 45 , lc };
+Point ( 107392 ) = { 56 , 72 , 45 , lc };
+Point ( 107383 ) = { 57 , 71 , 45 , lc };
+Point ( 107373 ) = { 58 , 70 , 45 , lc };
+Point ( 107364 ) = { 59 , 69 , 45 , lc };
+Point ( 107356 ) = { 60 , 68 , 45 , lc };
+Point ( 107347 ) = { 61 , 67 , 45 , lc };
+Point ( 107348 ) = { 62 , 67 , 45 , lc };
+Point ( 107336 ) = { 63 , 66 , 45 , lc };
+Point ( 107337 ) = { 64 , 66 , 45 , lc };
+Point ( 107324 ) = { 65 , 65 , 45 , lc };
+Point ( 107325 ) = { 66 , 65 , 45 , lc };
+Point ( 107302 ) = { 67 , 64 , 45 , lc };
+Point ( 107303 ) = { 68 , 64 , 45 , lc };
+Point ( 107276 ) = { 69 , 63 , 45 , lc };
+Point ( 107277 ) = { 70 , 63 , 45 , lc };
+Point ( 107247 ) = { 71 , 62 , 45 , lc };
+Point ( 107214 ) = { 72 , 61 , 45 , lc };
+Point ( 107178 ) = { 73 , 60 , 45 , lc };
+Point ( 107179 ) = { 74 , 60 , 45 , lc };
+Point ( 107139 ) = { 75 , 59 , 45 , lc };
+Point ( 107140 ) = { 76 , 59 , 45 , lc };
+Point ( 107097 ) = { 77 , 58 , 45 , lc };
+Point ( 107051 ) = { 78 , 57 , 45 , lc };
+Point ( 107003 ) = { 79 , 56 , 45 , lc };
+Point ( 106952 ) = { 80 , 55 , 45 , lc };
+Point ( 106898 ) = { 81 , 54 , 45 , lc };
+Point ( 106841 ) = { 82 , 53 , 45 , lc };
+Point ( 106782 ) = { 83 , 52 , 45 , lc };
+Point ( 106720 ) = { 84 , 51 , 45 , lc };
+Point ( 106653 ) = { 84 , 50 , 45 , lc };
+Point ( 106586 ) = { 85 , 49 , 45 , lc };
+Point ( 106522 ) = { 85 , 48 , 45 , lc };
+Point ( 106462 ) = { 86 , 47 , 45 , lc };
+Point ( 106406 ) = { 87 , 46 , 45 , lc };
+Point ( 106354 ) = { 87 , 45 , 45 , lc };
+Point ( 106311 ) = { 87 , 44 , 45 , lc };
+Point ( 106277 ) = { 88 , 43 , 45 , lc };
+Point ( 106252 ) = { 88 , 42 , 45 , lc };
+Point ( 106239 ) = { 88 , 41 , 45 , lc };
+Point ( 106227 ) = { 88 , 40 , 45 , lc };
+Point ( 106216 ) = { 88 , 39 , 45 , lc };
+Point ( 106205 ) = { 89 , 38 , 45 , lc };
+//Point ( 106193 ) = { 89 , 37 , 45 , lc };
+Spline ( 14 ) = { 107733 , 107734 , 107735 , 107736 , 107737 , 107754 , 107755 , 107756 , 107757 , 107758 , 107759 , 107760 , 107761 , 107762 , 107763 , 107764 , 107765 , 107766 , 107767 , 107751 , 107752 , 107753 , 107728 , 107729 , 107730 , 107698 , 107699 , 107663 , 107664 , 107624 , 107625 , 107584 , 107542 , 107499 , 107456 , 107435 , 107418 , 107404 , 107392 , 107383 , 107373 , 107364 , 107356 , 107347 , 107348 , 107336 , 107337 , 107324 , 107325 , 107302 , 107303 , 107276 , 107277 , 107247 , 107214 , 107178 , 107179 , 107139 , 107140 , 107097 , 107051 , 107003 , 106952 , 106898 , 106841 , 106782 , 106720 , 106653 , 106586 , 106522 , 106462 , 106406 , 106354 , 106311 , 106277 , 106252 , 106239 , 106227 , 106216 , 106205 , 106193 };
+
+//Point ( 106315 ) = { 20 , 45 , 45 , lc };
+Point ( 106316 ) = { 21 , 45 , 45 , lc };
+Point ( 106279 ) = { 22 , 44 , 45 , lc };
+Point ( 106280 ) = { 23 , 44 , 45 , lc };
+Point ( 106281 ) = { 24 , 44 , 45 , lc };
+Point ( 106282 ) = { 25 , 44 , 45 , lc };
+Point ( 106254 ) = { 26 , 43 , 45 , lc };
+Point ( 106255 ) = { 27 , 43 , 45 , lc };
+Point ( 106256 ) = { 28 , 43 , 45 , lc };
+Point ( 106257 ) = { 29 , 43 , 45 , lc };
+Point ( 106258 ) = { 30 , 43 , 45 , lc };
+Point ( 106259 ) = { 31 , 43 , 45 , lc };
+Point ( 106260 ) = { 32 , 43 , 45 , lc };
+Point ( 106261 ) = { 33 , 43 , 45 , lc };
+Point ( 106262 ) = { 34 , 43 , 45 , lc };
+Point ( 106263 ) = { 35 , 43 , 45 , lc };
+Point ( 106264 ) = { 36 , 43 , 45 , lc };
+Point ( 106293 ) = { 36 , 44 , 45 , lc };
+Point ( 106294 ) = { 37 , 44 , 45 , lc };
+Point ( 106295 ) = { 38 , 44 , 45 , lc };
+Point ( 106296 ) = { 39 , 44 , 45 , lc };
+Point ( 106297 ) = { 40 , 44 , 45 , lc };
+Point ( 106298 ) = { 41 , 44 , 45 , lc };
+Point ( 106336 ) = { 41 , 45 , 45 , lc };
+Point ( 106337 ) = { 42 , 45 , 45 , lc };
+Point ( 106338 ) = { 43 , 45 , 45 , lc };
+Point ( 106339 ) = { 44 , 45 , 45 , lc };
+Point ( 106385 ) = { 44 , 46 , 45 , lc };
+Point ( 106386 ) = { 45 , 46 , 45 , lc };
+Point ( 106387 ) = { 46 , 46 , 45 , lc };
+Point ( 106388 ) = { 47 , 46 , 45 , lc };
+Point ( 106389 ) = { 48 , 46 , 45 , lc };
+Point ( 106441 ) = { 48 , 47 , 45 , lc };
+Point ( 106442 ) = { 49 , 47 , 45 , lc };
+Point ( 106443 ) = { 50 , 47 , 45 , lc };
+Point ( 106500 ) = { 50 , 48 , 45 , lc };
+Point ( 106501 ) = { 51 , 48 , 45 , lc };
+Point ( 106561 ) = { 51 , 49 , 45 , lc };
+Point ( 106562 ) = { 52 , 49 , 45 , lc };
+Point ( 106563 ) = { 53 , 49 , 45 , lc };
+Point ( 106628 ) = { 53 , 50 , 45 , lc };
+Point ( 106629 ) = { 54 , 50 , 45 , lc };
+Point ( 106690 ) = { 54 , 51 , 45 , lc };
+Point ( 106691 ) = { 55 , 51 , 45 , lc };
+Point ( 106692 ) = { 56 , 51 , 45 , lc };
+Point ( 106693 ) = { 57 , 51 , 45 , lc };
+Point ( 106694 ) = { 58 , 51 , 45 , lc };
+Point ( 106695 ) = { 59 , 51 , 45 , lc };
+Point ( 106696 ) = { 60 , 51 , 45 , lc };
+Point ( 106697 ) = { 61 , 51 , 45 , lc };
+Point ( 106631 ) = { 62 , 50 , 45 , lc };
+Point ( 106632 ) = { 63 , 50 , 45 , lc };
+Point ( 106565 ) = { 64 , 49 , 45 , lc };
+Point ( 106566 ) = { 65 , 49 , 45 , lc };
+Point ( 106503 ) = { 66 , 48 , 45 , lc };
+Point ( 106504 ) = { 67 , 48 , 45 , lc };
+Point ( 106505 ) = { 68 , 48 , 45 , lc };
+Point ( 106445 ) = { 69 , 47 , 45 , lc };
+Point ( 106446 ) = { 70 , 47 , 45 , lc };
+Point ( 106447 ) = { 71 , 47 , 45 , lc };
+Point ( 106391 ) = { 72 , 46 , 45 , lc };
+Point ( 106392 ) = { 73 , 46 , 45 , lc };
+Point ( 106341 ) = { 74 , 45 , 45 , lc };
+Point ( 106342 ) = { 75 , 45 , 45 , lc };
+Point ( 106300 ) = { 76 , 44 , 45 , lc };
+Point ( 106265 ) = { 76 , 43 , 45 , lc };
+Point ( 106241 ) = { 77 , 42 , 45 , lc };
+Point ( 106229 ) = { 78 , 41 , 45 , lc };
+Point ( 106217 ) = { 78 , 40 , 45 , lc };
+Point ( 106206 ) = { 78 , 39 , 45 , lc };
+Point ( 106194 ) = { 78 , 38 , 45 , lc };
+Point ( 106182 ) = { 78 , 37 , 45 , lc };
+Spline ( 15 ) = { 106315 , 106316 , 106279 , 106280 , 106281 , 106282 , 106254 , 106255 , 106256 , 106257 , 106258 , 106259 , 106260 , 106261 , 106262 , 106263 , 106264 , 106293 , 106294 , 106295 , 106296 , 106297 , 106298 , 106336 , 106337 , 106338 , 106339 , 106385 , 106386 , 106387 , 106388 , 106389 , 106441 , 106442 , 106443 , 106500 , 106501 , 106561 , 106562 , 106563 , 106628 , 106629 , 106690 , 106691 , 106692 , 106693 , 106694 , 106695 , 106696 , 106697 , 106631 , 106632 , 106565 , 106566 , 106503 , 106504 , 106505 , 106445 , 106446 , 106447 , 106391 , 106392 , 106341 , 106342 , 106300 , 106265 , 106241 , 106229 , 106217 , 106206 , 106194 , 106182 };
+
+//Point ( 106182 ) = { 78 , 37 , 45 , lc };
+Point ( 106170 ) = { 78 , 36 , 45 , lc };
+Point ( 106159 ) = { 78 , 35 , 45 , lc };
+Point ( 106148 ) = { 78 , 34 , 45 , lc };
+Point ( 106137 ) = { 78 , 33 , 45 , lc };
+Point ( 106136 ) = { 77 , 33 , 45 , lc };
+Point ( 106124 ) = { 77 , 32 , 45 , lc };
+Point ( 106123 ) = { 76 , 32 , 45 , lc };
+Point ( 106111 ) = { 76 , 31 , 45 , lc };
+Point ( 106110 ) = { 75 , 31 , 45 , lc };
+Point ( 106097 ) = { 75 , 30 , 45 , lc };
+Point ( 106096 ) = { 74 , 30 , 45 , lc };
+Point ( 106083 ) = { 74 , 29 , 45 , lc };
+Point ( 106082 ) = { 73 , 29 , 45 , lc };
+Point ( 106081 ) = { 72 , 29 , 45 , lc };
+Point ( 106066 ) = { 72 , 28 , 45 , lc };
+Point ( 106065 ) = { 71 , 28 , 45 , lc };
+Point ( 106064 ) = { 70 , 28 , 45 , lc };
+Point ( 106063 ) = { 69 , 28 , 45 , lc };
+Point ( 106062 ) = { 68 , 28 , 45 , lc };
+Point ( 106061 ) = { 67 , 28 , 45 , lc };
+Point ( 106060 ) = { 66 , 28 , 45 , lc };
+Point ( 106039 ) = { 66 , 27 , 45 , lc };
+Point ( 106038 ) = { 65 , 27 , 45 , lc };
+Point ( 106037 ) = { 64 , 27 , 45 , lc };
+Point ( 106036 ) = { 63 , 27 , 45 , lc };
+Point ( 106035 ) = { 62 , 27 , 45 , lc };
+Point ( 106034 ) = { 61 , 27 , 45 , lc };
+Point ( 106033 ) = { 60 , 27 , 45 , lc };
+Point ( 106007 ) = { 60 , 26 , 45 , lc };
+Point ( 106006 ) = { 59 , 26 , 45 , lc };
+Point ( 106005 ) = { 58 , 26 , 45 , lc };
+Point ( 106004 ) = { 57 , 26 , 45 , lc };
+Point ( 105976 ) = { 57 , 25 , 45 , lc };
+Point ( 105975 ) = { 56 , 25 , 45 , lc };
+Point ( 105947 ) = { 56 , 24 , 45 , lc };
+Point ( 105946 ) = { 55 , 24 , 45 , lc };
+Point ( 105917 ) = { 55 , 23 , 45 , lc };
+Point ( 105916 ) = { 54 , 23 , 45 , lc };
+Point ( 105915 ) = { 53 , 23 , 45 , lc };
+Point ( 105886 ) = { 53 , 22 , 45 , lc };
+Point ( 105885 ) = { 52 , 22 , 45 , lc };
+Point ( 105856 ) = { 52 , 21 , 45 , lc };
+Point ( 105855 ) = { 51 , 21 , 45 , lc };
+Point ( 105854 ) = { 50 , 21 , 45 , lc };
+Point ( 105824 ) = { 50 , 20 , 45 , lc };
+Point ( 105823 ) = { 49 , 20 , 45 , lc };
+Point ( 105822 ) = { 48 , 20 , 45 , lc };
+Point ( 105821 ) = { 47 , 20 , 45 , lc };
+Point ( 105789 ) = { 47 , 19 , 45 , lc };
+Point ( 105788 ) = { 46 , 19 , 45 , lc };
+Point ( 105787 ) = { 45 , 19 , 45 , lc };
+Point ( 105786 ) = { 44 , 19 , 45 , lc };
+Point ( 105752 ) = { 44 , 18 , 45 , lc };
+Point ( 105751 ) = { 43 , 18 , 45 , lc };
+Point ( 105750 ) = { 42 , 18 , 45 , lc };
+Point ( 105749 ) = { 41 , 18 , 45 , lc };
+Point ( 105748 ) = { 40 , 18 , 45 , lc };
+Point ( 105712 ) = { 40 , 17 , 45 , lc };
+Point ( 105711 ) = { 39 , 17 , 45 , lc };
+Point ( 105710 ) = { 38 , 17 , 45 , lc };
+Point ( 105709 ) = { 37 , 17 , 45 , lc };
+Point ( 105708 ) = { 36 , 17 , 45 , lc };
+Point ( 105707 ) = { 35 , 17 , 45 , lc };
+Point ( 105706 ) = { 34 , 17 , 45 , lc };
+Point ( 105705 ) = { 33 , 17 , 45 , lc };
+Point ( 105704 ) = { 32 , 17 , 45 , lc };
+Point ( 105703 ) = { 31 , 17 , 45 , lc };
+Point ( 105702 ) = { 30 , 17 , 45 , lc };
+Point ( 105658 ) = { 30 , 16 , 45 , lc };
+Point ( 105657 ) = { 29 , 16 , 45 , lc };
+Point ( 105656 ) = { 28 , 16 , 45 , lc };
+Point ( 105655 ) = { 27 , 16 , 45 , lc };
+Point ( 105654 ) = { 26 , 16 , 45 , lc };
+Point ( 105653 ) = { 25 , 16 , 45 , lc };
+Point ( 105652 ) = { 24 , 16 , 45 , lc };
+Point ( 105651 ) = { 23 , 16 , 45 , lc };
+Point ( 105650 ) = { 22 , 16 , 45 , lc };
+Point ( 105599 ) = { 22 , 15 , 45 , lc };
+Point ( 105598 ) = { 21 , 15 , 45 , lc };
+//Point ( 105597 ) = { 20 , 15 , 45 , lc };
+Spline ( 16 ) = { 106182 , 106170 , 106159 , 106148 , 106137 , 106136 , 106124 , 106123 , 106111 , 106110 , 106097 , 106096 , 106083 , 106082 , 106081 , 106066 , 106065 , 106064 , 106063 , 106062 , 106061 , 106060 , 106039 , 106038 , 106037 , 106036 , 106035 , 106034 , 106033 , 106007 , 106006 , 106005 , 106004 , 105976 , 105975 , 105947 , 105946 , 105917 , 105916 , 105915 , 105886 , 105885 , 105856 , 105855 , 105854 , 105824 , 105823 , 105822 , 105821 , 105789 , 105788 , 105787 , 105786 , 105752 , 105751 , 105750 , 105749 , 105748 , 105712 , 105711 , 105710 , 105709 , 105708 , 105707 , 105706 , 105705 , 105704 , 105703 , 105702 , 105658 , 105657 , 105656 , 105655 , 105654 , 105653 , 105652 , 105651 , 105650 , 105599 , 105598 , 105597 };
+
+//Point ( 107467 ) = { 20 , 77 , 45 , lc };
+Point ( 107468 ) = { 21 , 77 , 45 , lc };
+Point ( 107469 ) = { 22 , 77 , 45 , lc };
+Point ( 107470 ) = { 23 , 77 , 45 , lc };
+Point ( 107471 ) = { 24 , 77 , 45 , lc };
+Point ( 107472 ) = { 25 , 77 , 45 , lc };
+Point ( 107473 ) = { 26 , 77 , 45 , lc };
+Point ( 107474 ) = { 27 , 77 , 45 , lc };
+Point ( 107475 ) = { 28 , 77 , 45 , lc };
+Point ( 107476 ) = { 29 , 77 , 45 , lc };
+Point ( 107477 ) = { 30 , 77 , 45 , lc };
+Point ( 107478 ) = { 31 , 77 , 45 , lc };
+Point ( 107479 ) = { 32 , 77 , 45 , lc };
+Point ( 107480 ) = { 33 , 77 , 45 , lc };
+Point ( 107481 ) = { 34 , 77 , 45 , lc };
+Point ( 107482 ) = { 35 , 77 , 45 , lc };
+Point ( 107483 ) = { 36 , 77 , 45 , lc };
+Point ( 107484 ) = { 37 , 77 , 45 , lc };
+Point ( 107485 ) = { 38 , 77 , 45 , lc };
+Point ( 107486 ) = { 39 , 77 , 45 , lc };
+Point ( 107487 ) = { 40 , 77 , 45 , lc };
+Point ( 107488 ) = { 41 , 77 , 45 , lc };
+Point ( 107489 ) = { 42 , 77 , 45 , lc };
+Point ( 107490 ) = { 43 , 77 , 45 , lc };
+Point ( 107447 ) = { 44 , 76 , 45 , lc };
+Point ( 107448 ) = { 45 , 76 , 45 , lc };
+Point ( 107427 ) = { 46 , 75 , 45 , lc };
+Point ( 107428 ) = { 47 , 75 , 45 , lc };
+Point ( 107411 ) = { 48 , 74 , 45 , lc };
+Point ( 107398 ) = { 49 , 73 , 45 , lc };
+Point ( 107399 ) = { 50 , 73 , 45 , lc };
+Point ( 107386 ) = { 50 , 72 , 45 , lc };
+Point ( 107377 ) = { 51 , 71 , 45 , lc };
+Point ( 107367 ) = { 52 , 70 , 45 , lc };
+Point ( 107358 ) = { 53 , 69 , 45 , lc };
+Point ( 107349 ) = { 53 , 68 , 45 , lc };
+Point ( 107339 ) = { 53 , 67 , 45 , lc };
+Point ( 107326 ) = { 53 , 66 , 45 , lc };
+Spline ( 17 ) = { 107467 , 107468 , 107469 , 107470 , 107471 , 107472 , 107473 , 107474 , 107475 , 107476 , 107477 , 107478 , 107479 , 107480 , 107481 , 107482 , 107483 , 107484 , 107485 , 107486 , 107487 , 107488 , 107489 , 107490 , 107447 , 107448 , 107427 , 107428 , 107411 , 107398 , 107399 , 107386 , 107377 , 107367 , 107358 , 107349 , 107339 , 107326 };
+
+//Point ( 107326 ) = { 53 , 66 , 45 , lc };
+Point ( 107312 ) = { 53 , 65 , 45 , lc };
+Point ( 107311 ) = { 52 , 65 , 45 , lc };
+Point ( 107310 ) = { 51 , 65 , 45 , lc };
+Point ( 107309 ) = { 50 , 65 , 45 , lc };
+Point ( 107308 ) = { 49 , 65 , 45 , lc };
+Point ( 107307 ) = { 48 , 65 , 45 , lc };
+Point ( 107306 ) = { 47 , 65 , 45 , lc };
+Point ( 107305 ) = { 46 , 65 , 45 , lc };
+Point ( 107304 ) = { 45 , 65 , 45 , lc };
+Point ( 107280 ) = { 45 , 64 , 45 , lc };
+Point ( 107279 ) = { 44 , 64 , 45 , lc };
+Point ( 107278 ) = { 43 , 64 , 45 , lc };
+Point ( 107250 ) = { 43 , 63 , 45 , lc };
+Point ( 107249 ) = { 42 , 63 , 45 , lc };
+Point ( 107248 ) = { 41 , 63 , 45 , lc };
+Point ( 107217 ) = { 41 , 62 , 45 , lc };
+Point ( 107216 ) = { 40 , 62 , 45 , lc };
+Point ( 107215 ) = { 39 , 62 , 45 , lc };
+Point ( 107181 ) = { 39 , 61 , 45 , lc };
+Point ( 107180 ) = { 38 , 61 , 45 , lc };
+Point ( 107143 ) = { 38 , 60 , 45 , lc };
+Point ( 107142 ) = { 37 , 60 , 45 , lc };
+Point ( 107141 ) = { 36 , 60 , 45 , lc };
+Point ( 107100 ) = { 36 , 59 , 45 , lc };
+Point ( 107099 ) = { 35 , 59 , 45 , lc };
+Point ( 107098 ) = { 34 , 59 , 45 , lc };
+Point ( 107054 ) = { 34 , 58 , 45 , lc };
+Point ( 107053 ) = { 33 , 58 , 45 , lc };
+Point ( 107052 ) = { 32 , 58 , 45 , lc };
+Point ( 107005 ) = { 32 , 57 , 45 , lc };
+Point ( 107004 ) = { 31 , 57 , 45 , lc };
+Point ( 106955 ) = { 31 , 56 , 45 , lc };
+Point ( 106954 ) = { 30 , 56 , 45 , lc };
+Point ( 106953 ) = { 29 , 56 , 45 , lc };
+Point ( 106901 ) = { 29 , 55 , 45 , lc };
+Point ( 106900 ) = { 28 , 55 , 45 , lc };
+Point ( 106899 ) = { 27 , 55 , 45 , lc };
+Point ( 106844 ) = { 27 , 54 , 45 , lc };
+Point ( 106843 ) = { 26 , 54 , 45 , lc };
+Point ( 106842 ) = { 25 , 54 , 45 , lc };
+Point ( 106784 ) = { 25 , 53 , 45 , lc };
+Point ( 106783 ) = { 24 , 53 , 45 , lc };
+Point ( 106723 ) = { 24 , 52 , 45 , lc };
+Point ( 106722 ) = { 23 , 52 , 45 , lc };
+Point ( 106721 ) = { 22 , 52 , 45 , lc };
+Point ( 106658 ) = { 22 , 51 , 45 , lc };
+Point ( 106657 ) = { 21 , 51 , 45 , lc };
+//Point ( 106656 ) = { 20 , 51 , 45 , lc };
+Spline ( 18 ) = { 107326 , 107312 , 107311 , 107310 , 107309 , 107308 , 107307 , 107306 , 107305 , 107304 , 107280 , 107279 , 107278 , 107250 , 107249 , 107248 , 107217 , 107216 , 107215 , 107181 , 107180 , 107143 , 107142 , 107141 , 107100 , 107099 , 107098 , 107054 , 107053 , 107052 , 107005 , 107004 , 106955 , 106954 , 106953 , 106901 , 106900 , 106899 , 106844 , 106843 , 106842 , 106784 , 106783 , 106723 , 106722 , 106721 , 106658 , 106657 , 106656 };
+
+//Point ( 465 ) = { 20 , 37 , 4 , lc };
+Point ( 1020 ) = { 21 , 37 , 5 , lc };
+Point ( 1021 ) = { 22 , 37 , 5 , lc };
+Point ( 1022 ) = { 23 , 37 , 5 , lc };
+Point ( 1023 ) = { 24 , 37 , 5 , lc };
+Point ( 1024 ) = { 25 , 37 , 5 , lc };
+Point ( 1025 ) = { 26 , 37 , 5 , lc };
+Point ( 1026 ) = { 27 , 37 , 5 , lc };
+Point ( 1027 ) = { 28 , 37 , 5 , lc };
+Point ( 1028 ) = { 29 , 37 , 5 , lc };
+Point ( 1029 ) = { 30 , 37 , 5 , lc };
+Point ( 466 ) = { 30 , 37 , 4 , lc };
+Point ( 467 ) = { 31 , 37 , 4 , lc };
+Point ( 468 ) = { 32 , 37 , 4 , lc };
+Point ( 1032 ) = { 33 , 37 , 5 , lc };
+Point ( 1033 ) = { 34 , 37 , 5 , lc };
+Point ( 1034 ) = { 35 , 37 , 5 , lc };
+Point ( 1035 ) = { 36 , 37 , 5 , lc };
+Point ( 1810 ) = { 37 , 37 , 6 , lc };
+Point ( 1811 ) = { 38 , 37 , 6 , lc };
+Point ( 2782 ) = { 39 , 37 , 7 , lc };
+Point ( 2783 ) = { 40 , 37 , 7 , lc };
+Point ( 2784 ) = { 41 , 37 , 7 , lc };
+Point ( 2785 ) = { 42 , 37 , 7 , lc };
+Point ( 3980 ) = { 43 , 37 , 8 , lc };
+Point ( 3981 ) = { 44 , 37 , 8 , lc };
+Point ( 3982 ) = { 45 , 37 , 8 , lc };
+Point ( 3983 ) = { 46 , 37 , 8 , lc };
+Point ( 5384 ) = { 47 , 37 , 9 , lc };
+Point ( 5385 ) = { 48 , 37 , 9 , lc };
+Point ( 5386 ) = { 49 , 37 , 9 , lc };
+Point ( 6998 ) = { 50 , 37 , 10 , lc };
+Point ( 6999 ) = { 51 , 37 , 10 , lc };
+Point ( 7000 ) = { 52 , 37 , 10 , lc };
+Point ( 8819 ) = { 53 , 37 , 11 , lc };
+Point ( 8820 ) = { 54 , 37 , 11 , lc };
+Point ( 10842 ) = { 55 , 37 , 12 , lc };
+Point ( 10843 ) = { 56 , 37 , 12 , lc };
+Point ( 12952 ) = { 57 , 37 , 13 , lc };
+Point ( 12953 ) = { 58 , 37 , 13 , lc };
+Point ( 15201 ) = { 59 , 37 , 14 , lc };
+Point ( 15202 ) = { 60 , 37 , 14 , lc };
+Point ( 17533 ) = { 61 , 37 , 15 , lc };
+Point ( 17534 ) = { 62 , 37 , 15 , lc };
+Point ( 20014 ) = { 63 , 37 , 16 , lc };
+Point ( 22635 ) = { 64 , 37 , 17 , lc };
+Point ( 22636 ) = { 65 , 37 , 17 , lc };
+Point ( 25383 ) = { 66 , 37 , 18 , lc };
+Point ( 25384 ) = { 67 , 37 , 18 , lc };
+Point ( 28241 ) = { 68 , 37 , 19 , lc };
+Point ( 31219 ) = { 69 , 37 , 20 , lc };
+Point ( 31220 ) = { 70 , 37 , 20 , lc };
+Point ( 34283 ) = { 71 , 37 , 21 , lc };
+Point ( 37442 ) = { 72 , 37 , 22 , lc };
+Point ( 37443 ) = { 73 , 37 , 22 , lc };
+Point ( 40693 ) = { 74 , 37 , 23 , lc };
+Point ( 44035 ) = { 75 , 37 , 24 , lc };
+Point ( 44036 ) = { 76 , 37 , 24 , lc };
+Point ( 47432 ) = { 76 , 37 , 25 , lc };
+Point ( 50834 ) = { 77 , 37 , 26 , lc };
+Point ( 50835 ) = { 78 , 37 , 26 , lc };
+Point ( 54247 ) = { 79 , 37 , 27 , lc };
+Point ( 57620 ) = { 80 , 37 , 28 , lc };
+Point ( 60926 ) = { 81 , 37 , 29 , lc };
+Point ( 64184 ) = { 81 , 37 , 30 , lc };
+Point ( 67369 ) = { 82 , 37 , 31 , lc };
+Point ( 67370 ) = { 83 , 37 , 31 , lc };
+Point ( 70455 ) = { 83 , 37 , 32 , lc };
+Point ( 73428 ) = { 84 , 37 , 33 , lc };
+Point ( 76336 ) = { 85 , 37 , 34 , lc };
+Point ( 79181 ) = { 86 , 37 , 35 , lc };
+Point ( 81983 ) = { 86 , 37 , 36 , lc };
+Point ( 84752 ) = { 86 , 37 , 37 , lc };
+Point ( 87494 ) = { 87 , 37 , 38 , lc };
+Point ( 90200 ) = { 87 , 37 , 39 , lc };
+Point ( 92881 ) = { 88 , 37 , 40 , lc };
+Point ( 95540 ) = { 88 , 37 , 41 , lc };
+Point ( 98188 ) = { 88 , 37 , 42 , lc };
+Point ( 100842 ) = { 88 , 37 , 43 , lc };
+Point ( 103511 ) = { 88 , 37 , 44 , lc };
+//Point ( 106193 ) = { 89 , 37 , 45 , lc };
+Spline ( 19 ) = { 465 , 1020 , 1021 , 1022 , 1023 , 1024 , 1025 , 1026 , 1027 , 1028 , 1029 , 466 , 467 , 468 , 1032 , 1033 , 1034 , 1035 , 1810 , 1811 , 2782 , 2783 , 2784 , 2785 , 3980 , 3981 , 3982 , 3983 , 5384 , 5385 , 5386 , 6998 , 6999 , 7000 , 8819 , 8820 , 10842 , 10843 , 12952 , 12953 , 15201 , 15202 , 17533 , 17534 , 20014 , 22635 , 22636 , 25383 , 25384 , 28241 , 31219 , 31220 , 34283 , 37442 , 37443 , 40693 , 44035 , 44036 , 47432 , 50834 , 50835 , 54247 , 57620 , 60926 , 64184 , 67369 , 67370 , 70455 , 73428 , 76336 , 79181 , 81983 , 84752 , 87494 , 90200 , 92881 , 95540 , 98188 , 100842 , 103511 , 106193 };
+
+//Point ( 106193 ) = { 89 , 37 , 45 , lc };
+Point ( 108904 ) = { 89 , 37 , 46 , lc };
+Point ( 111658 ) = { 89 , 37 , 47 , lc };
+Point ( 114470 ) = { 88 , 37 , 48 , lc };
+Point ( 117323 ) = { 88 , 37 , 49 , lc };
+Point ( 120224 ) = { 88 , 37 , 50 , lc };
+Point ( 123154 ) = { 88 , 37 , 51 , lc };
+Point ( 126113 ) = { 87 , 37 , 52 , lc };
+Point ( 129087 ) = { 87 , 37 , 53 , lc };
+Point ( 132083 ) = { 87 , 37 , 54 , lc };
+Point ( 135071 ) = { 86 , 37 , 55 , lc };
+Point ( 138090 ) = { 86 , 37 , 56 , lc };
+Point ( 141139 ) = { 85 , 37 , 57 , lc };
+Point ( 144224 ) = { 84 , 37 , 58 , lc };
+Point ( 147359 ) = { 84 , 37 , 59 , lc };
+Point ( 150560 ) = { 83 , 37 , 60 , lc };
+Point ( 153773 ) = { 82 , 37 , 61 , lc };
+Point ( 156995 ) = { 81 , 37 , 62 , lc };
+Point ( 160207 ) = { 80 , 37 , 63 , lc };
+Point ( 163333 ) = { 79 , 37 , 64 , lc };
+Point ( 166355 ) = { 78 , 37 , 65 , lc };
+Point ( 166354 ) = { 77 , 37 , 65 , lc };
+Point ( 169270 ) = { 76 , 37 , 66 , lc };
+Point ( 172079 ) = { 75 , 37 , 67 , lc };
+Point ( 172078 ) = { 74 , 37 , 67 , lc };
+Point ( 174760 ) = { 73 , 37 , 68 , lc };
+Point ( 174759 ) = { 72 , 37 , 68 , lc };
+Point ( 177323 ) = { 71 , 37 , 69 , lc };
+Point ( 177322 ) = { 70 , 37 , 69 , lc };
+Point ( 179742 ) = { 69 , 37 , 70 , lc };
+Point ( 179741 ) = { 68 , 37 , 70 , lc };
+Point ( 182048 ) = { 67 , 37 , 71 , lc };
+Point ( 182047 ) = { 66 , 37 , 71 , lc };
+Point ( 182046 ) = { 65 , 37 , 71 , lc };
+Point ( 184209 ) = { 64 , 37 , 72 , lc };
+Point ( 184208 ) = { 63 , 37 , 72 , lc };
+Point ( 186261 ) = { 62 , 37 , 73 , lc };
+Point ( 186260 ) = { 61 , 37 , 73 , lc };
+Point ( 186259 ) = { 60 , 37 , 73 , lc };
+Point ( 186258 ) = { 59 , 37 , 73 , lc };
+Point ( 188088 ) = { 58 , 37 , 74 , lc };
+Point ( 188087 ) = { 57 , 37 , 74 , lc };
+Point ( 188086 ) = { 56 , 37 , 74 , lc };
+Point ( 189683 ) = { 55 , 37 , 75 , lc };
+Point ( 189682 ) = { 54 , 37 , 75 , lc };
+Point ( 189681 ) = { 53 , 37 , 75 , lc };
+Point ( 189680 ) = { 52 , 37 , 75 , lc };
+Point ( 191015 ) = { 51 , 37 , 76 , lc };
+Point ( 191014 ) = { 50 , 37 , 76 , lc };
+Point ( 191013 ) = { 49 , 37 , 76 , lc };
+Point ( 191012 ) = { 48 , 37 , 76 , lc };
+Point ( 192078 ) = { 47 , 37 , 77 , lc };
+Point ( 192077 ) = { 46 , 37 , 77 , lc };
+Point ( 192076 ) = { 45 , 37 , 77 , lc };
+Point ( 192075 ) = { 44 , 37 , 77 , lc };
+Point ( 192074 ) = { 43 , 37 , 77 , lc };
+Point ( 192867 ) = { 42 , 37 , 78 , lc };
+Point ( 192866 ) = { 41 , 37 , 78 , lc };
+Point ( 192865 ) = { 40 , 37 , 78 , lc };
+Point ( 192864 ) = { 39 , 37 , 78 , lc };
+Point ( 192863 ) = { 38 , 37 , 78 , lc };
+Point ( 192862 ) = { 37 , 37 , 78 , lc };
+Point ( 192861 ) = { 36 , 37 , 78 , lc };
+Point ( 192860 ) = { 35 , 37 , 78 , lc };
+Point ( 192859 ) = { 34 , 37 , 78 , lc };
+Point ( 192858 ) = { 33 , 37 , 78 , lc };
+Point ( 192857 ) = { 32 , 37 , 78 , lc };
+Point ( 192856 ) = { 31 , 37 , 78 , lc };
+Point ( 192855 ) = { 30 , 37 , 78 , lc };
+Point ( 192854 ) = { 29 , 37 , 78 , lc };
+Point ( 192853 ) = { 28 , 37 , 78 , lc };
+Point ( 192852 ) = { 27 , 37 , 78 , lc };
+Point ( 192851 ) = { 26 , 37 , 78 , lc };
+Point ( 192850 ) = { 25 , 37 , 78 , lc };
+Point ( 192849 ) = { 24 , 37 , 78 , lc };
+Point ( 192848 ) = { 23 , 37 , 78 , lc };
+Point ( 192847 ) = { 22 , 37 , 78 , lc };
+Point ( 192846 ) = { 21 , 37 , 78 , lc };
+//Point ( 192845 ) = { 20 , 37 , 78 , lc };
+Spline ( 20 ) = { 106193 , 108904 , 111658 , 114470 , 117323 , 120224 , 123154 , 126113 , 129087 , 132083 , 135071 , 138090 , 141139 , 144224 , 147359 , 150560 , 153773 , 156995 , 160207 , 163333 , 166355 , 166354 , 169270 , 172079 , 172078 , 174760 , 174759 , 177323 , 177322 , 179742 , 179741 , 182048 , 182047 , 182046 , 184209 , 184208 , 186261 , 186260 , 186259 , 186258 , 188088 , 188087 , 188086 , 189683 , 189682 , 189681 , 189680 , 191015 , 191014 , 191013 , 191012 , 192078 , 192077 , 192076 , 192075 , 192074 , 192867 , 192866 , 192865 , 192864 , 192863 , 192862 , 192861 , 192860 , 192859 , 192858 , 192857 , 192856 , 192855 , 192854 , 192853 , 192852 , 192851 , 192850 , 192849 , 192848 , 192847 , 192846 , 192845 };
+
+//Point ( 70431 ) = { 20 , 37 , 32 , lc };
+Point ( 70432 ) = { 21 , 37 , 32 , lc };
+Point ( 70433 ) = { 22 , 37 , 32 , lc };
+Point ( 67343 ) = { 22 , 37 , 31 , lc };
+Point ( 67344 ) = { 23 , 37 , 31 , lc };
+Point ( 67345 ) = { 24 , 37 , 31 , lc };
+Point ( 67346 ) = { 25 , 37 , 31 , lc };
+Point ( 67347 ) = { 26 , 37 , 31 , lc };
+Point ( 64160 ) = { 26 , 37 , 30 , lc };
+Point ( 64161 ) = { 27 , 37 , 30 , lc };
+Point ( 64162 ) = { 28 , 37 , 30 , lc };
+Point ( 60900 ) = { 28 , 37 , 29 , lc };
+Point ( 60901 ) = { 29 , 37 , 29 , lc };
+Point ( 60902 ) = { 30 , 37 , 29 , lc };
+Point ( 57593 ) = { 30 , 37 , 28 , lc };
+Point ( 57594 ) = { 31 , 37 , 28 , lc };
+Point ( 57595 ) = { 32 , 37 , 28 , lc };
+Point ( 57596 ) = { 33 , 37 , 28 , lc };
+Point ( 54214 ) = { 33 , 37 , 27 , lc };
+Point ( 54215 ) = { 34 , 37 , 27 , lc };
+Point ( 54216 ) = { 35 , 37 , 27 , lc };
+Point ( 50796 ) = { 35 , 37 , 26 , lc };
+Point ( 50797 ) = { 36 , 37 , 26 , lc };
+Point ( 50798 ) = { 37 , 37 , 26 , lc };
+Point ( 47393 ) = { 37 , 37 , 25 , lc };
+Point ( 47394 ) = { 38 , 37 , 25 , lc };
+Point ( 47395 ) = { 39 , 37 , 25 , lc };
+Point ( 47396 ) = { 40 , 37 , 25 , lc };
+Point ( 47397 ) = { 41 , 37 , 25 , lc };
+Point ( 47398 ) = { 42 , 37 , 25 , lc };
+Point ( 50800 ) = { 43 , 37 , 26 , lc };
+Point ( 50801 ) = { 44 , 37 , 26 , lc };
+Point ( 50802 ) = { 45 , 37 , 26 , lc };
+Point ( 54218 ) = { 46 , 37 , 27 , lc };
+Point ( 54219 ) = { 47 , 37 , 27 , lc };
+Point ( 54220 ) = { 48 , 37 , 27 , lc };
+Point ( 54221 ) = { 49 , 37 , 27 , lc };
+Point ( 50806 ) = { 49 , 37 , 26 , lc };
+Point ( 50807 ) = { 50 , 37 , 26 , lc };
+Point ( 50808 ) = { 51 , 37 , 26 , lc };
+Point ( 50809 ) = { 52 , 37 , 26 , lc };
+Point ( 50810 ) = { 53 , 37 , 26 , lc };
+Point ( 50811 ) = { 54 , 37 , 26 , lc };
+Point ( 54223 ) = { 55 , 37 , 27 , lc };
+Point ( 54224 ) = { 56 , 37 , 27 , lc };
+Point ( 54225 ) = { 57 , 37 , 27 , lc };
+Point ( 57598 ) = { 58 , 37 , 28 , lc };
+Point ( 60904 ) = { 59 , 37 , 29 , lc };
+Point ( 60905 ) = { 60 , 37 , 29 , lc };
+Point ( 64164 ) = { 61 , 37 , 30 , lc };
+Point ( 67349 ) = { 62 , 37 , 31 , lc };
+Point ( 70435 ) = { 63 , 37 , 32 , lc };
+Point ( 70436 ) = { 64 , 37 , 32 , lc };
+Point ( 70437 ) = { 65 , 37 , 32 , lc };
+Point ( 73410 ) = { 66 , 37 , 33 , lc };
+Point ( 73411 ) = { 67 , 37 , 33 , lc };
+Point ( 76319 ) = { 68 , 37 , 34 , lc };
+Point ( 76320 ) = { 69 , 37 , 34 , lc };
+Point ( 79165 ) = { 70 , 37 , 35 , lc };
+Point ( 79166 ) = { 71 , 37 , 35 , lc };
+Point ( 81969 ) = { 72 , 37 , 36 , lc };
+Point ( 84739 ) = { 73 , 37 , 37 , lc };
+Point ( 84740 ) = { 74 , 37 , 37 , lc };
+Point ( 87482 ) = { 75 , 37 , 38 , lc };
+Point ( 90189 ) = { 76 , 37 , 39 , lc };
+Point ( 92870 ) = { 77 , 37 , 40 , lc };
+Point ( 95529 ) = { 77 , 37 , 41 , lc };
+Point ( 98178 ) = { 78 , 37 , 42 , lc };
+Point ( 100832 ) = { 78 , 37 , 43 , lc };
+Point ( 103501 ) = { 78 , 37 , 44 , lc };
+//Point ( 106182 ) = { 78 , 37 , 45 , lc };
+Spline ( 21 ) = { 70431 , 70432 , 70433 , 67343 , 67344 , 67345 , 67346 , 67347 , 64160 , 64161 , 64162 , 60900 , 60901 , 60902 , 57593 , 57594 , 57595 , 57596 , 54214 , 54215 , 54216 , 50796 , 50797 , 50798 , 47393 , 47394 , 47395 , 47396 , 47397 , 47398 , 50800 , 50801 , 50802 , 54218 , 54219 , 54220 , 54221 , 50806 , 50807 , 50808 , 50809 , 50810 , 50811 , 54223 , 54224 , 54225 , 57598 , 60904 , 60905 , 64164 , 67349 , 70435 , 70436 , 70437 , 73410 , 73411 , 76319 , 76320 , 79165 , 79166 , 81969 , 84739 , 84740 , 87482 , 90189 , 92870 , 95529 , 98178 , 100832 , 103501 , 106182 };
+
+//Point ( 106182 ) = { 78 , 37 , 45 , lc };
+Point ( 108893 ) = { 78 , 37 , 46 , lc };
+Point ( 111647 ) = { 78 , 37 , 47 , lc };
+
+Point ( 114460 ) = { 78 , 37 , 48 , lc };
+Point ( 117313 ) = { 78 , 37 , 49 , lc };
+Point ( 120214 ) = { 78 , 37 , 50 , lc };
+Point ( 123143 ) = { 77 , 37 , 51 , lc };
+Point ( 126103 ) = { 77 , 37 , 52 , lc };
+Point ( 129076 ) = { 76 , 37 , 53 , lc };
+Point ( 132071 ) = { 75 , 37 , 54 , lc };
+Point ( 135059 ) = { 74 , 37 , 55 , lc };
+Point ( 135058 ) = { 73 , 37 , 55 , lc };
+Point ( 138076 ) = { 72 , 37 , 56 , lc };
+Point ( 138075 ) = { 71 , 37 , 56 , lc };
+Point ( 141124 ) = { 70 , 37 , 57 , lc };
+Point ( 141123 ) = { 69 , 37 , 57 , lc };
+Point ( 141122 ) = { 68 , 37 , 57 , lc };
+Point ( 144207 ) = { 67 , 37 , 58 , lc };
+Point ( 144206 ) = { 66 , 37 , 58 , lc };
+Point ( 144205 ) = { 65 , 37 , 58 , lc };
+Point ( 144204 ) = { 64 , 37 , 58 , lc };
+Point ( 144203 ) = { 63 , 37 , 58 , lc };
+Point ( 144202 ) = { 62 , 37 , 58 , lc };
+Point ( 144201 ) = { 61 , 37 , 58 , lc };
+Point ( 144200 ) = { 60 , 37 , 58 , lc };
+Point ( 144199 ) = { 59 , 37 , 58 , lc };
+Point ( 144198 ) = { 58 , 37 , 58 , lc };
+Point ( 144197 ) = { 57 , 37 , 58 , lc };
+Point ( 144196 ) = { 56 , 37 , 58 , lc };
+Point ( 144195 ) = { 55 , 37 , 58 , lc };
+Point ( 147329 ) = { 54 , 37 , 59 , lc };
+Point ( 147328 ) = { 53 , 37 , 59 , lc };
+Point ( 147327 ) = { 52 , 37 , 59 , lc };
+Point ( 147326 ) = { 51 , 37 , 59 , lc };
+Point ( 147325 ) = { 50 , 37 , 59 , lc };
+Point ( 147324 ) = { 49 , 37 , 59 , lc };
+Point ( 147323 ) = { 48 , 37 , 59 , lc };
+Point ( 147322 ) = { 47 , 37 , 59 , lc };
+Point ( 147321 ) = { 46 , 37 , 59 , lc };
+Point ( 150522 ) = { 45 , 37 , 60 , lc };
+Point ( 150521 ) = { 44 , 37 , 60 , lc };
+Point ( 150520 ) = { 43 , 37 , 60 , lc };
+Point ( 150519 ) = { 42 , 37 , 60 , lc };
+Point ( 150518 ) = { 41 , 37 , 60 , lc };
+Point ( 150517 ) = { 40 , 37 , 60 , lc };
+Point ( 150516 ) = { 39 , 37 , 60 , lc };
+Point ( 150515 ) = { 38 , 37 , 60 , lc };
+Point ( 150514 ) = { 37 , 37 , 60 , lc };
+Point ( 150513 ) = { 36 , 37 , 60 , lc };
+Point ( 150512 ) = { 35 , 37 , 60 , lc };
+Point ( 150511 ) = { 34 , 37 , 60 , lc };
+Point ( 150510 ) = { 33 , 37 , 60 , lc };
+Point ( 150509 ) = { 32 , 37 , 60 , lc };
+Point ( 150508 ) = { 31 , 37 , 60 , lc };
+Point ( 150507 ) = { 30 , 37 , 60 , lc };
+Point ( 150506 ) = { 29 , 37 , 60 , lc };
+Point ( 150505 ) = { 28 , 37 , 60 , lc };
+Point ( 150504 ) = { 27 , 37 , 60 , lc };
+Point ( 150503 ) = { 26 , 37 , 60 , lc };
+Point ( 150502 ) = { 25 , 37 , 60 , lc };
+Point ( 150501 ) = { 24 , 37 , 60 , lc };
+Point ( 150500 ) = { 23 , 37 , 60 , lc };
+Point ( 150499 ) = { 22 , 37 , 60 , lc };
+Point ( 150498 ) = { 21 , 37 , 60 , lc };
+//Point ( 150497 ) = { 20 , 37 , 60 , lc };
+Spline ( 22 ) = { 106182 , 108893 , 111647 , 114460 , 117313 , 120214 , 123143 , 126103 , 129076 , 132071 , 135059 , 135058 , 138076 , 138075 , 141124 , 141123 , 141122 , 144207 , 144206 , 144205 , 144204 , 144203 , 144202 , 144201 , 144200 , 144199 , 144198 , 144197 , 144196 , 144195 , 147329 , 147328 , 147327 , 147326 , 147325 , 147324 , 147323 , 147322 , 147321 , 150522 , 150521 , 150520 , 150519 , 150518 , 150517 , 150516 , 150515 , 150514 , 150513 , 150512 , 150511 , 150510 , 150509 , 150508 , 150507 , 150506 , 150505 , 150504 , 150503 , 150502 , 150501 , 150500 , 150499 , 150498 , 150497 };
+
+//Point ( 23846 ) = { 20 , 66 , 17 , lc };
+Point ( 23847 ) = { 21 , 66 , 17 , lc };
+Point ( 26616 ) = { 22 , 66 , 18 , lc };
+Point ( 26617 ) = { 23 , 66 , 18 , lc };
+Point ( 26618 ) = { 24 , 66 , 18 , lc };
+Point ( 26619 ) = { 25 , 66 , 18 , lc };
+Point ( 26620 ) = { 26 , 66 , 18 , lc };
+Point ( 26621 ) = { 27 , 66 , 18 , lc };
+Point ( 26622 ) = { 28 , 66 , 18 , lc };
+Point ( 26623 ) = { 29 , 66 , 18 , lc };
+Point ( 26624 ) = { 30 , 66 , 18 , lc };
+Point ( 29502 ) = { 31 , 66 , 19 , lc };
+Point ( 29503 ) = { 32 , 66 , 19 , lc };
+Point ( 29504 ) = { 33 , 66 , 19 , lc };
+Point ( 32512 ) = { 34 , 66 , 20 , lc };
+Point ( 32513 ) = { 35 , 66 , 20 , lc };
+Point ( 32514 ) = { 36 , 66 , 20 , lc };
+Point ( 32515 ) = { 37 , 66 , 20 , lc };
+Point ( 35607 ) = { 38 , 66 , 21 , lc };
+Point ( 38803 ) = { 39 , 66 , 22 , lc };
+Point ( 38804 ) = { 40 , 66 , 22 , lc };
+Point ( 42083 ) = { 40 , 66 , 23 , lc };
+Point ( 45453 ) = { 41 , 66 , 24 , lc };
+Point ( 48867 ) = { 41 , 66 , 25 , lc };
+Point ( 52292 ) = { 41 , 66 , 26 , lc };
+Point ( 55706 ) = { 42 , 66 , 27 , lc };
+Point ( 55707 ) = { 43 , 66 , 27 , lc };
+Point ( 59060 ) = { 43 , 66 , 28 , lc };
+Point ( 62355 ) = { 43 , 66 , 29 , lc };
+Point ( 62354 ) = { 42 , 66 , 29 , lc };
+Point ( 62353 ) = { 41 , 66 , 29 , lc };
+Point ( 65588 ) = { 40 , 66 , 30 , lc };
+Point ( 68730 ) = { 40 , 66 , 31 , lc };
+Point ( 71764 ) = { 40 , 66 , 32 , lc };
+Point ( 74706 ) = { 40 , 66 , 33 , lc };
+Point ( 77579 ) = { 41 , 66 , 34 , lc };
+Point ( 80400 ) = { 41 , 66 , 35 , lc };
+Point ( 83191 ) = { 42 , 66 , 36 , lc };
+Point ( 85937 ) = { 42 , 66 , 37 , lc };
+Point ( 88668 ) = { 42 , 66 , 38 , lc };
+Point ( 91347 ) = { 43 , 66 , 39 , lc };
+Point ( 94001 ) = { 44 , 66 , 40 , lc };
+Point ( 96652 ) = { 45 , 66 , 41 , lc };
+Point ( 99295 ) = { 46 , 66 , 42 , lc };
+Point ( 101959 ) = { 47 , 66 , 43 , lc };
+Point ( 101960 ) = { 48 , 66 , 43 , lc };
+Point ( 101961 ) = { 49 , 66 , 43 , lc };
+Point ( 101962 ) = { 50 , 66 , 43 , lc };
+Point ( 101963 ) = { 51 , 66 , 43 , lc };
+Point ( 101964 ) = { 52 , 66 , 43 , lc };
+Point ( 104634 ) = { 53 , 66 , 44 , lc };
+//Point ( 107326 ) = { 53 , 66 , 45 , lc };
+Spline ( 23 ) = { 23846 , 23847 , 26616 , 26617 , 26618 , 26619 , 26620 , 26621 , 26622 , 26623 , 26624 , 29502 , 29503 , 29504 , 32512 , 32513 , 32514 , 32515 , 35607 , 38803 , 38804 , 42083 , 45453 , 48867 , 52292 , 55706 , 55707 , 59060 , 62355 , 62354 , 62353 , 65588 , 68730 , 71764 , 74706 , 77579 , 80400 , 83191 , 85937 , 88668 , 91347 , 94001 , 96652 , 99295 , 101959 , 101960 , 101961 , 101962 , 101963 , 101964 , 104634 , 107326 };
+
+//Point ( 107326 ) = { 53 , 66 , 45 , lc };
+Point ( 110045 ) = { 53 , 66 , 46 , lc };
+Point ( 112808 ) = { 53 , 66 , 47 , lc };
+Point ( 115637 ) = { 53 , 66 , 48 , lc };
+Point ( 115638 ) = { 54 , 66 , 48 , lc };
+Point ( 115639 ) = { 55 , 66 , 48 , lc };
+Point ( 115640 ) = { 56 , 66 , 48 , lc };
+Point ( 118500 ) = { 56 , 66 , 49 , lc };
+Point ( 121410 ) = { 56 , 66 , 50 , lc };
+Point ( 124338 ) = { 56 , 66 , 51 , lc };
+Point ( 127292 ) = { 56 , 66 , 52 , lc };
+Point ( 130270 ) = { 56 , 66 , 53 , lc };
+Point ( 133263 ) = { 56 , 66 , 54 , lc };
+Point ( 136270 ) = { 56 , 66 , 55 , lc };
+Point ( 139313 ) = { 56 , 66 , 56 , lc };
+Point ( 142403 ) = { 56 , 66 , 57 , lc };
+Point ( 145529 ) = { 55 , 66 , 58 , lc };
+Point ( 148721 ) = { 55 , 66 , 59 , lc };
+Point ( 151926 ) = { 55 , 66 , 60 , lc };
+Point ( 155119 ) = { 54 , 66 , 61 , lc };
+Point ( 158325 ) = { 53 , 66 , 62 , lc };
+Point ( 158324 ) = { 52 , 66 , 62 , lc };
+Point ( 161520 ) = { 51 , 66 , 63 , lc };
+Point ( 164631 ) = { 50 , 66 , 64 , lc };
+Point ( 167639 ) = { 49 , 66 , 65 , lc };
+Point ( 167638 ) = { 48 , 66 , 65 , lc };
+Point ( 170555 ) = { 47 , 66 , 66 , lc };
+Point ( 170554 ) = { 46 , 66 , 66 , lc };
+Point ( 173374 ) = { 45 , 66 , 67 , lc };
+Point ( 173373 ) = { 44 , 66 , 67 , lc };
+Point ( 173372 ) = { 43 , 66 , 67 , lc };
+Point ( 173371 ) = { 42 , 66 , 67 , lc };
+Point ( 173370 ) = { 41 , 66 , 67 , lc };
+Point ( 173369 ) = { 40 , 66 , 67 , lc };
+Point ( 173368 ) = { 39 , 66 , 67 , lc };
+Point ( 173367 ) = { 38 , 66 , 67 , lc };
+Point ( 173366 ) = { 37 , 66 , 67 , lc };
+Point ( 173365 ) = { 36 , 66 , 67 , lc };
+Point ( 173364 ) = { 35 , 66 , 67 , lc };
+Point ( 173363 ) = { 34 , 66 , 67 , lc };
+Point ( 170551 ) = { 33 , 66 , 66 , lc };
+Point ( 170550 ) = { 32 , 66 , 66 , lc };
+Point ( 170549 ) = { 31 , 66 , 66 , lc };
+Point ( 170548 ) = { 30 , 66 , 66 , lc };
+Point ( 170547 ) = { 29 , 66 , 66 , lc };
+Point ( 170546 ) = { 28 , 66 , 66 , lc };
+Point ( 167635 ) = { 27 , 66 , 65 , lc };
+Point ( 167634 ) = { 26 , 66 , 65 , lc };
+Point ( 167633 ) = { 25 , 66 , 65 , lc };
+Point ( 167632 ) = { 24 , 66 , 65 , lc };
+Point ( 164628 ) = { 23 , 66 , 64 , lc };
+Point ( 164627 ) = { 22 , 66 , 64 , lc };
+Point ( 164626 ) = { 21 , 66 , 64 , lc };
+//Point ( 161517 ) = { 20 , 66 , 63 , lc };
+Spline ( 24 ) = { 107326 , 110045 , 112808 , 115637 , 115638 , 115639 , 115640 , 118500 , 121410 , 124338 , 127292 , 130270 , 133263 , 136270 , 139313 , 142403 , 145529 , 148721 , 151926 , 155119 , 158325 , 158324 , 161520 , 164631 , 167639 , 167638 , 170555 , 170554 , 173374 , 173373 , 173372 , 173371 , 173370 , 173369 , 173368 , 173367 , 173366 , 173365 , 173364 , 173363 , 170551 , 170550 , 170549 , 170548 , 170547 , 170546 , 167635 , 167634 , 167633 , 167632 , 164628 , 164627 , 164626 , 161517 };
+
+
+Line Loop(62) = {9,-24,18};
+Ruled Surface(63) = {62};
+Line Loop(64) = {10,17,24};
+Ruled Surface(65) = {64};
+Line Loop(66) = {11,23,-17};
+Ruled Surface(67) = {66};
+Line Loop(68) = {18,-12,23};
+Ruled Surface(69) = {68};
+Line Loop(70) = {22,-5,-16};
+Ruled Surface(71) = {70};
+Line Loop(72) = {16,-8,21};
+Ruled Surface(73) = {72};
+Line Loop(74) = {21,-15,7};
+Ruled Surface(75) = {74};
+Line Loop(76) = {22,6,15};
+Ruled Surface(77) = {76};
+Line Loop(78) = {13,1,-20};
+Ruled Surface(79) = {78};
+Line Loop(80) = {19,13,-4};
+Ruled Surface(81) = {80};
+Line Loop(82) = {20,2,14};
+Ruled Surface(83) = {82};
+Line Loop(84) = {14,-19,-3};
+Ruled Surface(85) = {84};
+
+Line(86) = {106656,106315};
+Line(87) = {107467,107733};
+Line(88) = {105597,105192};
+Line Loop(89) = {88,-13,-14,-87,17,18,86,15,16};
+Plane Surface(90) = {89};
+Line Loop(91) = {87,3,4,-88,-8,-7,-86,-12,-11};
+Plane Surface(92) = {91};
+Line Loop(93) = {2,-87,-10,-9,86,-6,-5,88,1};
+Plane Surface(94) = {93};
+Surface Loop(95) = {94,83,79,65,63,77,71,90};
+Volume(96) = {95};
+Surface Loop(97) = {90,92,85,81,73,75,69,67};
+Volume(98) = {97};
+Physical Volume (99) = {96,98};
+
diff --git a/benchmarks/bugs/bad_parametrization_triangle.geo b/benchmarks/bugs/bad_parametrization_triangle.geo
new file mode 100644
index 0000000000000000000000000000000000000000..3979757353565717240b56d0bfb88ed948b63738
--- /dev/null
+++ b/benchmarks/bugs/bad_parametrization_triangle.geo
@@ -0,0 +1,17 @@
+theta = Pi/16;
+Point(1) = {0,0,0,0.1};
+Point(2) = {1,0,0,0.1};
+Point(3) = {0,1,0,0.1};
+Circle(1) = {2,1,3};
+Rotate {{0,1,0}, {0,0,0}, theta} { Duplicata { Line{1}; } }
+Rotate {{0,1,0}, {0,0,0}, -theta} { Duplicata { Line{1}; } }
+Circle(4) = {5,1,2};
+Circle(5) = {2,1,4};
+
+// good parametrization
+Line Loop(6) = {-1,-4,3};
+Ruled Surface(7) = {6};
+
+// bad parametrization
+Line Loop(8) = {1,-2,-5};
+Ruled Surface(9) = {8};
diff --git a/benchmarks/bugs/ctverce_crash_on_windows.geo b/benchmarks/bugs/ctverce_crash_on_windows.geo
new file mode 100644
index 0000000000000000000000000000000000000000..ca4159332d9cf3553e84030e75a344798971202e
--- /dev/null
+++ b/benchmarks/bugs/ctverce_crash_on_windows.geo
@@ -0,0 +1,109 @@
+// Obdelnikovy vzorek, ctvercove kontakty 
+// jednoduchy model
+
+m=0.1;
+
+delka=150;
+sirka=20;
+
+sirkak=2;
+
+rohx1=1;
+rohy1=1;
+
+rohx2=delka-sirkak-1;
+rohy2=1;
+
+rohx3=delka-sirkak-1;
+rohy3=sirka-sirkak-1;
+
+rohx4=1;
+rohy4=sirka-sirkak-1;
+
+
+// Vzorek
+Point(1)= {0,0,0,m};
+Point(2)= {delka,0,0,m};
+Point(3)= {delka,sirka,0,m};
+Point(4)= {0,sirka,0,m};
+
+Line(1)= {1,2};
+Line(2)= {2,3};
+Line(3)= {3,4};
+Line(4)= {4,1};
+
+Line Loop(1)={1,2,3,4};
+
+//////////////////////////////////
+// Kontakt 1
+
+Point(5)= {rohx1,rohy1,0,m};
+Point(6)= {rohx1+sirkak,rohy1,0,m};
+Point(7)= {rohx1+sirkak,rohy1+sirkak,0,m};
+Point(8)= {rohx1,rohy1+sirkak,0,m};
+
+Line(5)= {5,6};
+Line(6)= {6,7};
+Line(7)= {7,8};
+Line(8)= {8,5};
+
+Line Loop(2)={5,6,7,8};
+Plane Surface(2)={2};
+
+////////////////////////////////////
+//// Kontakt 2
+
+Point(9)= {rohx2,rohy2,0,m};
+Point(10)= {rohx2+sirkak,rohy2,0,m};
+Point(11)= {rohx2+sirkak,rohy2+sirkak,0,m};
+Point(12)= {rohx2,rohy2+sirkak,0,m};
+
+Line(9)= {9,10};
+Line(10)= {10,11};
+Line(11)= {11,12};
+Line(12)= {12,9};
+
+Line Loop(3)={9,10,11,12};
+Plane Surface(3)={3};
+
+////////////////////////////////////
+// Kontakt 3
+
+Point(13)= {rohx3,rohy3,0,m};
+Point(14)= {rohx3+sirkak,rohy3,0,m};
+Point(15)= {rohx3+sirkak,rohy3+sirkak,0,m};
+Point(16)= {rohx3,rohy3+sirkak,0,m};
+
+Line(13)= {13,14};
+Line(14)= {14,15};
+Line(15)= {15,16};
+Line(16)= {16,13};
+
+Line Loop(4)={13,14,15,16};
+Plane Surface(4)={4};
+
+////////////////////////////////////
+//// Kontakt 4
+
+Point(17)= {rohx4,rohy4,0,m};
+Point(18)= {rohx4+sirkak,rohy4,0,m};
+Point(19)= {rohx4+sirkak,rohy4+sirkak,0,m};
+Point(20)= {rohx4,rohy4+sirkak,0,m};
+
+Line(17)= {17,18};
+Line(18)= {18,19};
+Line(19)= {19,20};
+Line(20)= {20,17};
+
+Line Loop(5)={17,18,19,20};
+Plane Surface(5)={5};
+Plane Surface(1)={1,2,3,4,5};
+Coherence;
+
+Physical Surface (1001) = {2};
+Physical Surface (1002) = {3};
+Physical Surface (1003) = {4};
+Physical Surface (1004) = {5};
+
+Physical Surface (1000) = {1};
+
diff --git a/benchmarks/bugs/geo_unrolled_opti_plante_windows.geo b/benchmarks/bugs/geo_unrolled_opti_plante_windows.geo
new file mode 100644
index 0000000000000000000000000000000000000000..1066768a2ee37c13d801e383009668337c37dda8
--- /dev/null
+++ b/benchmarks/bugs/geo_unrolled_opti_plante_windows.geo
@@ -0,0 +1,133 @@
+Point (1) = {0, 0, 0, 50};
+Point (2) = {1250, 0, 0, 50};
+Point (3) = {1250, 2000, 0, 50};
+Point (4) = {0, 2000, 0, 50};
+Point (5) = {0, 0, 500, 100};
+Point (6) = {1250, 0, 500, 100};
+Point (7) = {1250, 2000, 500, 100};
+Point (8) = {0, 2000, 500, 100};
+Point (9) = {500, 505, 0, 5};
+Point (10) = {570, 505, 0, 5};
+Point (11) = {570, 520, 0, 5};
+Point (12) = {500, 520, 0, 5};
+Point (13) = {500, 535, 0, 5};
+Point (14) = {570, 535, 0, 5};
+Point (15) = {570, 555, 0, 5};
+Point (16) = {500, 555, 0, 5};
+Point (17) = {500, 575, 0, 15};
+Point (18) = {570, 575, 0, 15};
+Point (19) = {570, 710, 0, 15};
+Point (20) = {500, 710, 0, 15};
+Point (21) = {500, 505, 5, 5};
+Point (22) = {570, 505, 5, 5};
+Point (26) = {570, 520, 5, 5};
+Point (30) = {500, 520, 5, 5};
+Point (31) = {500, 535, 5, 5};
+Point (32) = {570, 535, 5, 5};
+Point (36) = {570, 555, 5, 5};
+Point (40) = {500, 555, 5, 5};
+Point (41) = {500, 575, 15, 15};
+Point (42) = {570, 575, 15, 15};
+Point (46) = {570, 710, 15, 15};
+Point (50) = {500, 710, 15, 15};
+Line (1) = {1, 2};
+Line (2) = {2, 3};
+Line (3) = {3, 4};
+Line (4) = {4, 1};
+Line (5) = {5, 6};
+Line (6) = {6, 7};
+Line (7) = {7, 8};
+Line (8) = {8, 5};
+Line (9) = {1, 5};
+Line (10) = {2, 6};
+Line (11) = {3, 7};
+Line (12) = {4, 8};
+Line (13) = {9, 10};
+Line (14) = {10, 11};
+Line (15) = {11, 12};
+Line (16) = {12, 9};
+Line (17) = {13, 14};
+Line (18) = {14, 15};
+Line (19) = {15, 16};
+Line (20) = {16, 13};
+Line (21) = {17, 18};
+Line (22) = {18, 19};
+Line (23) = {19, 20};
+Line (24) = {20, 17};
+Line (26) = {21, 22};
+Line (27) = {22, 26};
+Line (28) = {26, 30};
+Line (29) = {30, 21};
+Line (31) = {9, 21};
+Line (32) = {10, 22};
+Line (36) = {11, 26};
+Line (40) = {12, 30};
+Line (48) = {31, 32};
+Line (49) = {32, 36};
+Line (50) = {36, 40};
+Line (51) = {40, 31};
+Line (53) = {13, 31};
+Line (54) = {14, 32};
+Line (58) = {15, 36};
+Line (62) = {16, 40};
+Line (70) = {41, 42};
+Line (71) = {42, 46};
+Line (72) = {46, 50};
+Line (73) = {50, 41};
+Line (75) = {17, 41};
+Line (76) = {18, 42};
+Line (80) = {19, 46};
+Line (84) = {20, 50};
+Line Loop (2) = {1, 2, 3, 4, -16, -15, -14, -13, -20, -19, -18, -17, -24, -23, -22, -21};
+Plane Surface (2) = {2};
+Line Loop (4) = {1, 10, -5, -9};
+Plane Surface (4) = {4};
+Line Loop (6) = {2, 11, -6, -10};
+Plane Surface (6) = {6};
+Line Loop (8) = {3, 12, -7, -11};
+Plane Surface (8) = {8};
+Line Loop (10) = {4, 9, -8, -12};
+Plane Surface (10) = {10};
+Line Loop (12) = {5, 6, 7, 8};
+Plane Surface (12) = {12};
+Line Loop (33) = {13, 32, -26, -31};
+Ruled Surface (33) = {33};
+Line Loop (37) = {14, 36, -27, -32};
+Ruled Surface (37) = {37};
+Line Loop (41) = {15, 40, -28, -36};
+Ruled Surface (41) = {41};
+Line Loop (45) = {16, 31, -29, -40};
+Ruled Surface (45) = {45};
+Line Loop (46) = {26, 27, 28, 29};
+Plane Surface (46) = {46};
+Line Loop (55) = {17, 54, -48, -53};
+Ruled Surface (55) = {55};
+Line Loop (59) = {18, 58, -49, -54};
+Ruled Surface (59) = {59};
+Line Loop (63) = {19, 62, -50, -58};
+Ruled Surface (63) = {63};
+Line Loop (67) = {20, 53, -51, -62};
+Ruled Surface (67) = {67};
+Line Loop (68) = {48, 49, 50, 51};
+Plane Surface (68) = {68};
+Line Loop (77) = {21, 76, -70, -75};
+Ruled Surface (77) = {77};
+Line Loop (81) = {22, 80, -71, -76};
+Ruled Surface (81) = {81};
+Line Loop (85) = {23, 84, -72, -80};
+Ruled Surface (85) = {85};
+Line Loop (89) = {24, 75, -73, -84};
+Ruled Surface (89) = {89};
+Line Loop (90) = {70, 71, 72, 73};
+Plane Surface (90) = {90};
+Surface Loop (2) = {4, 2, 6, 8, 10, 12, 46, 33, 37, 41, 45, 68, 55, 59, 63, 67, 90, 77, 81, 85, 89};
+Volume (2) = {2};
+bat2 = 1;
+Physical Surface (bat2) = {4};
+Physical Surface (2) = {6};
+Physical Surface (3) = {8};
+Physical Surface (4) = {10};
+Physical Surface (5) = {12};
+Physical Surface (6) = {2, 33, 37, 41, 45, 46, 55, 59, 63, 67, 68, 77, 81, 85, 89, 90};
+bat2 = 1;
+Physical Volume (bat2) = {2};
diff --git a/benchmarks/extrude/cylinder_wiki.geo b/benchmarks/extrude/cylinder_wiki.geo
new file mode 100644
index 0000000000000000000000000000000000000000..e9f7c52c7049655a359081b9e6318140740b1cac
--- /dev/null
+++ b/benchmarks/extrude/cylinder_wiki.geo
@@ -0,0 +1,211 @@
+lc = 0.02;
+
+r = 0.1;
+d = 2*r;
+
+h = 2*d;
+assym = 0.1*d;
+
+depth = 0.5;
+
+l1 = 2*d;
+l2 = 20*d;
+
+n = 1;
+nl1 = n*8;
+nl2 = n*88;
+nc = n*8;
+
+nz = 16;
+//nz = 1;
+
+Point(1) = {0,0,0,lc};
+Point(2) = {0,r,0,lc};
+Point(3) = {r,0,0,lc};
+Point(4) = {-r,0,0,lc};
+Point(5) = {-l1,0,0,lc};
+Point(6) = {l2,0,0,lc};
+Point(7) = {-l1,h,0,lc};
+Point(8) = {l2,h,0,lc};
+Point(9) = {2*r,0.0,0,lc};
+Point(10) = {-2*r,0.0,0,lc};
+Point(11) = {0.0,0.2,0,lc};
+Point(12) = {0.0,h,0,lc};
+Point(13) = {r*Sin(Pi/4),r*Sin(Pi/4),0,lc};
+Point(14) = {-r*Sin(Pi/4),r*Sin(Pi/4),0,lc};
+Point(15) = {2*r*Sin(Pi/4),2*r*Sin(Pi/4),0,lc};
+Point(16) = {-2*r*Sin(Pi/4),2*r*Sin(Pi/4),0,lc};
+Point(17) = {l2,2*r*Sin(Pi/4),0,lc};
+Point(18) = {-l1,2*r*Sin(Pi/4),0,lc};
+Point(19) = {2*r*Sin(Pi/4),h,0,lc};
+Point(20) = {-2*r*Sin(Pi/4),h,0,lc};
+
+Circle(1) = {15,1,11};
+Circle(2) = {13,1,2};
+Circle(3) = {2,1,14};
+Circle(4) = {11,1,16};
+Circle(5) = {16,1,10};
+Circle(6) = {14,1,4};
+Circle(7) = {13,1,3};
+Circle(8) = {15,1,9};
+Line(9) = {9,3};
+Line(10) = {15,13};
+Line(11) = {11,2};
+Line(12) = {16,14};
+Line(13) = {10,4};
+Line(14) = {12,11};
+Line(15) = {19,15};
+Line(16) = {12,19};
+Line(17) = {19,8};
+Line(18) = {8,17};
+Line(19) = {17,15};
+Line(20) = {6,9};
+Line(21) = {6,17};
+Line(22) = {16,20};
+Line(23) = {20,12};
+Line(24) = {10,5};
+Line(25) = {5,18};
+Line(26) = {18,16};
+Line(27) = {7,18};
+Line(28) = {20,7};
+
+Line Loop(29) = {17,18,19,-15};
+Plane Surface(30) = {29};
+Line Loop(31) = {21,19,8,-20};
+Plane Surface(32) = {31};
+Line Loop(33) = {10,7,-9,-8};
+Plane Surface(34) = {33};
+Line Loop(35) = {1,11,-2,-10};
+Plane Surface(36) = {35};
+Line Loop(37) = {16,15,1,-14};
+Plane Surface(38) = {37};
+Line Loop(39) = {4,22,23,14};
+Plane Surface(40) = {39};
+Line Loop(41) = {11,3,-12,-4};
+Plane Surface(42) = {41};
+Line Loop(43) = {6,-13,-5,12};
+Plane Surface(44) = {43};
+Line Loop(45) = {26,5,24,25};
+Plane Surface(46) = {45};
+Line Loop(47) = {28,27,26,22};
+Plane Surface(48) = {47};
+
+Symmetry { 0.0,1.0,0.0,0.0 } {
+  Duplicata { Surface{32}; }
+}
+
+Symmetry { 0.0,1.0,0.0,0.0 } {
+  Duplicata { Surface{34}; }
+}
+
+Symmetry { 0.0,1.0,0.0,0.0 } {
+  Duplicata { Surface{36}; }
+}
+
+Symmetry { 0.0,1.0,0.0,0.0 } {
+  Duplicata { Surface{42}; }
+}
+
+Symmetry { 0.0,1.0,0.0,0.0 } {
+  Duplicata { Surface{44}; }
+}
+
+Symmetry { 0.0,1.0,0.0,0.0 } {
+  Duplicata { Surface{46}; }
+}
+
+Symmetry { 0.0,1.0,0.0,0.0 } {
+  Duplicata { Surface{48}; }
+}
+
+Symmetry { 0.0,1.0,0.0,0.0 } {
+  Duplicata { Surface{40}; }
+}
+
+Symmetry { 0.0,1.0,0.0,0.0 } {
+  Duplicata { Surface{38}; }
+}
+
+Symmetry { 0.0,1.0,0.0,0.0 } {
+  Duplicata { Surface{30}; }
+}
+
+Translate {0.0,assym,0.0} {
+  Point{7};
+}
+
+Translate {0.0,assym,0.0} {
+  Point{20};
+}
+
+Translate {0.0,assym,0.0} {
+  Point{12};
+}
+
+Translate {0.0,assym,0.0} {
+  Point{19};
+}
+
+Translate {0.0,assym,0.0} {
+  Point{8};
+}
+
+Transfinite Line {28,26,24,70,75} = nl1+1 Using Progression 1.0;
+
+Transfinite Line {17} = nl2+1 Using Progression 1.0/0.99;
+Transfinite Line {19} = nl2+1 Using Progression 0.99;
+Transfinite Line {20} = nl2+1 Using Progression 0.99;
+Transfinite Line {51} = nl2+1 Using Progression 0.99;
+Transfinite Line {88} = nl2+1 Using Progression 1.0/0.99;
+
+Transfinite Line {18,21,8,15,14,22,27,25,5,6,7,4,3,13,12,11,10,2,9,1,16,23} = nc+1 Using Progression 1.0;
+Transfinite Line {50,89,52,86,55,54,59,57,85,83,58,62,64,82,63,78,68,73,76,66} = nc+1 Using Progression 1.0;
+
+Transfinite Line {15,14,18,27} = nc+1 Using Progression 1.0;
+Transfinite Line {76,78,86,89} = nc+1 Using Progression 1.0;
+
+
+Transfinite Surface {30} = {17,8,19,15};
+Transfinite Surface {32} = {17,15,9,6};
+Transfinite Surface {34} = {15,13,3,9};
+Transfinite Surface {36} = {13,15,11,2};
+Transfinite Surface {38} = {11,15,19,12};
+Transfinite Surface {40} = {11,12,20,16};
+Transfinite Surface {42} = {2,11,16,14};
+Transfinite Surface {44} = {4,14,16,10};
+Transfinite Surface {46} = {10,16,18,5};
+Transfinite Surface {48} = {18,16,20,7};
+
+Transfinite Surface {49} = {6,22,26,9};
+Transfinite Surface {53} = {3,9,26,28};
+Transfinite Surface {56} = {28,26,31,35};
+Transfinite Surface {60} = {42,35,31,46};
+Transfinite Surface {65} = {10,4,42,46};
+Transfinite Surface {69} = {5,10,46,47};
+Transfinite Surface {74} = {47,46,48,49};
+Transfinite Surface {79} = {46,31,60,48};
+Transfinite Surface {84} = {31,26,62,60};
+Transfinite Surface {87} = {22,64,62,26};
+
+
+allsurf[] = {30,32,34,36,38,40,42,44,46,48,
+	     49,53,56,60,65,69,74,79,84,87};
+
+Recombine Surface{allsurf[]};
+
+Extrude {0,0,depth} {
+  Surface{allsurf[]}; Layers{nz}; Recombine;
+}
+
+// Walls
+Physical Surface(600) = {98,186,216,296,516,494,480,450,146,344,370,388,406,252,234,172};
+
+// Inlet
+Physical Surface(601) = {300,286,440,454};
+
+// Outlet
+Physical Surface(602) = {102,120,318,520};
+
+//Physical Volume(603) = {9000};
+
+
diff --git a/benchmarks/extrude/t1_boundary_layer_connection.geo b/benchmarks/extrude/t1_boundary_layer_connection.geo
new file mode 100644
index 0000000000000000000000000000000000000000..41a3643f92e50b74fb9a51b0b503b14dcd02028c
--- /dev/null
+++ b/benchmarks/extrude/t1_boundary_layer_connection.geo
@@ -0,0 +1,24 @@
+lc = 0.01;
+Point(1) = {0, 0, 0, lc};
+Point(2) = {.1, 0,  0, lc} ;
+Point(3) = {.1, .3, 0, lc} ;
+Point(4) = {0,  .3, 0, lc} ;
+
+Line(1) = {1,2} ;
+Line(2) = {3,2} ;
+Line(3) = {3,4} ;
+Line(4) = {4,1} ;
+
+Line Loop(5) = {4,1,-2,3} ;
+Plane Surface(6) = {5} ;
+
+Extrude { Surface{6}; Layers{5, 0.01}; Recombine; }
+
+Point(100) = {0,  0, 0.15, lc} ;
+Point(101) = {.1, 0, 0.15, lc} ;
+
+Line(100) = {8, 100};
+Line(101) = {12, 101};
+Line(102) = {100, 101};
+Line Loop(100) = {9,101,-102,-100};
+Plane Surface(100) = 100;
diff --git a/benchmarks/extrude/vertex_search_problem.geo b/benchmarks/extrude/vertex_search_problem.geo
new file mode 100644
index 0000000000000000000000000000000000000000..2c38601a0183a49db7a61bc47ad3d4ff3883faec
--- /dev/null
+++ b/benchmarks/extrude/vertex_search_problem.geo
@@ -0,0 +1,50 @@
+mm = 1e-3 ;
+a = 20e-6 ; // grand rayon de l'élipse (en µT)
+b = 10e-6 ; // petit rayon de l'élipse (en µT)
+Phase = 0 ; // déphasage (je pense que je ne m'en servirai pas)
+r_tete = 90*mm ;
+ep_peau = 2*mm;
+ep_os = 2*mm ;
+r_g    = 70 *mm;
+d_g    = 15*mm ; //déplacement du centre du cerveau par rapport au centre de la tête
+centre_x_oeil = 73.1 *mm ;
+centre_y_oeil = 30.1 *mm ;// centre_y_oeil * sin(23) ;
+cote_casque = 390*mm ;
+bord_casque = 6*mm ;
+diam_spire	= 310*mm ;
+Largeur_ind 	= 35*mm ;
+Hauteur_ind	= 40*mm ;
+s = 5;
+lc_ind12 	= (Largeur_ind/5)*s/3 ;  
+
+//Geometry.OldNewReg = 1;
+//Geometry.AutoCoherence = 1;
+//Mesh.CharacteristicLengthFactor = 1. ;
+
+pIdev_int1 = newp; Point(pIdev_int1) = {cote_casque/2+bord_casque,diam_spire/2,0.,lc_ind12};
+pIdev_int2 = newp; Point(pIdev_int2) = {cote_casque/2+bord_casque,diam_spire/2+Largeur_ind,0.,lc_ind12};
+pIdev_ext1 = newp; Point(pIdev_ext1) = {cote_casque/2+bord_casque+Hauteur_ind,diam_spire/2,0.,lc_ind12};
+pIdev_ext2 = newp; Point(pIdev_ext2) = {cote_casque/2+bord_casque+Hauteur_ind,diam_spire/2+Largeur_ind,0.,lc_ind12};
+
+lIdev_int1 = newl ; Line (lIdev_int1) = {pIdev_int2, pIdev_int1};
+lIdev_cotint1 = newl ; Line (lIdev_cotint1) = {pIdev_int1, pIdev_ext1};
+lIdev_ext1 = newl ; Line (lIdev_ext1) = {pIdev_ext1, pIdev_ext2};
+lIdev_cotext1 = newl ; Line (lIdev_cotext1) = {pIdev_ext2, pIdev_int2};
+
+llIdev1 = newreg ; Line Loop (llIdev1) = {lIdev_int1,lIdev_cotint1,lIdev_ext1,lIdev_cotext1};
+psIdev1 = newreg ; Plane Surface(psIdev1) = {llIdev1};
+
+
+TRANS = 1; 
+ns = 4 ;
+If(TRANS)
+Transfinite Line {lIdev_int1,lIdev_cotint1,lIdev_ext1, lIdev_cotext1}  = ns ;
+Transfinite Surface {psIdev1} = {pIdev_int2,pIdev_int1,pIdev_ext1,pIdev_ext2};
+EndIf
+
+Recombine Surface{newreg-1} ;  
+
+vol[]=Extrude Surface { newreg-1, {1,0,0} , {0,0,0} , Pi/4 }
+{ Layers { 2, 1 } ; Recombine; };;
+vIdev1[0] = vol[1];
+
diff --git a/benchmarks/step/bad_step_intersects.step.gz b/benchmarks/step/bad_step_intersects.step.gz
new file mode 100644
index 0000000000000000000000000000000000000000..f69b482e7f563edf49d0b3a0bd3094d957c3851a
Binary files /dev/null and b/benchmarks/step/bad_step_intersects.step.gz differ
diff --git a/benchmarks/step/submarine.stp.gz b/benchmarks/step/submarine.stp.gz
new file mode 100644
index 0000000000000000000000000000000000000000..940251dcaf41823b02e5ff90a3dfc64798493411
Binary files /dev/null and b/benchmarks/step/submarine.stp.gz differ
diff --git a/benchmarks/stl/geo2.stl.gz b/benchmarks/stl/geo2.stl.gz
new file mode 100644
index 0000000000000000000000000000000000000000..14703a09f8418d56e25bc0d1c0b8576378da20fb
Binary files /dev/null and b/benchmarks/stl/geo2.stl.gz differ