]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Add build to AreasBuilder and replace compute by build
authorEl Hadi Moussi <moussi@phimeca.com>
Thu, 8 Aug 2024 15:51:47 +0000 (17:51 +0200)
committerEl Hadi Moussi <moussi@phimeca.com>
Thu, 8 Aug 2024 15:51:47 +0000 (17:51 +0200)
src/ShapeRecogn/AreasBuilder.cxx
src/ShapeRecogn/AreasBuilder.hxx
src/ShapeRecogn/NodesBuilder.cxx
src/ShapeRecogn/NodesBuilder.hxx
src/ShapeRecogn/ShapeRecognMesh.cxx
test_compute_torus.py [new file with mode: 0644]

index 42c6a3faa271620b7084c39c212f72d48bc89b05..947a54ed0dbcc40f8c637dedd2d070c01de2cb8d 100644 (file)
@@ -12,6 +12,13 @@ AreasBuilder::AreasBuilder(const Nodes *nodes) : nodes(nodes), areas(new Areas(n
     threshold = std::max<size_t>(THRESHOLD_MIN_NB_NODES, nbNodes / THRESHOLD_MAX_NB_AREAS);
 }
 
+void AreasBuilder::build()
+{
+    explore();
+    expand();
+    rebuild();
+}
+
 void AreasBuilder::explore()
 {
     exploreAreas();
index 470a6baa2bc76b11a423fd98e61e59110bcbc5c7..9742af648fe1f5aa476f694b2ed35a1f18c270fb 100644 (file)
@@ -30,13 +30,14 @@ namespace MEDCoupling
     public:
         AreasBuilder(const Nodes *nodes);
 
-        void explore();
-        void expand();
-        void rebuild();
+        void build();
 
         Areas *getAreas() const;
 
     private:
+        void explore();
+        void expand();
+        void rebuild();
         void exploreAreas();
         void expandAreas();
         void expandAreasByType(PrimitiveType primitive);
index 1d261f27a2012ea5f0022fcf7fec6c23e76df49e..95183cbaed7bf70d98e00f5e1cf6635fbe5f3a74 100644 (file)
@@ -11,7 +11,7 @@ NodesBuilder::NodesBuilder(
 {
 }
 
-Nodes *NodesBuilder::compute()
+Nodes *NodesBuilder::build()
 {
     DataArrayInt64 *neighbors;
     DataArrayInt64 *neighborsIdx;
index dde6312bdd1213643266bdaf34d707e8ab3dd1f2..bfe1376859675cfbd06182522807ad76d0cbc1b9 100644 (file)
@@ -35,7 +35,7 @@ namespace MEDCoupling
     public:
         NodesBuilder(const MEDCouplingUMesh *);
 
-        Nodes *compute();
+        Nodes *build();
 
     private:
         void computeNormals();
index b70ee95395af320cebf63e0dc4b717a77c15ee70..08c9a5618974b83dd45aeded11ec989ca2e742af 100644 (file)
@@ -26,11 +26,9 @@ void ShapeRecognMesh::recognize()
 {
     mesh->incrRef();
     NodesBuilder nodesBuilder(mesh);
-    nodes = nodesBuilder.compute();
+    nodes = nodesBuilder.build();
     AreasBuilder areasBuilder(nodes);
-    areasBuilder.explore();
-    areasBuilder.expand();
-    areasBuilder.rebuild();
+    areasBuilder.build();
     areas = areasBuilder.getAreas();
 }
 
diff --git a/test_compute_torus.py b/test_compute_torus.py
new file mode 100644 (file)
index 0000000..9953c6d
--- /dev/null
@@ -0,0 +1,2033 @@
+import numpy as np
+import scipy as sp
+import scipy.linalg
+
+
+def compute_PCA(X, n_components=1):
+    X_meaned = X - np.mean(X, axis=0)
+    cov_mat = np.cov(X_meaned, rowvar=False)
+    eigen_values, eigen_vectors = np.linalg.eigh(cov_mat)
+    # sort the eigenvalues in descending order
+    sorted_index = np.argsort(eigen_values)[::-1]
+    sorted_eigenvalue = eigen_values[sorted_index]
+    # similarly sort the eigenvectors
+    sorted_eigenvectors = eigen_vectors[:, sorted_index]
+    eigenvector_subset = sorted_eigenvectors[:, 0:n_components]
+    return eigenvector_subset.T
+
+
+def fitPlane3D(points):
+    pca = compute_PCA(points, n_components=3)
+    normal = pca[2]
+    affine_point = np.mean(points @ normal)
+    return normal, affine_point
+
+
+def fitCircle2D(points, pp, bb):
+    A = np.ones((points.shape[0], 3))
+    B = np.zeros((points.shape[0]))
+    A[:, 0] = points[:, 0]
+    A[:, 1] = points[:, 1]
+    B = points[:, 0] ** 2 + points[:, 1] ** 2
+    print(np.abs(B - bb).max())
+    fit, residual, rnk, s = np.linalg.lstsq(A, B, rcond=None)
+    print(fit, residual, rnk, s)
+    a, b, c = fit
+    xc = a / 2
+    yc = b / 2
+    r = np.sqrt(4 * c + a**2 + b**2) / 2
+    return np.array([xc, yc]), r
+
+
+def gram_schmidt(v1, v2):
+    u1 = v1 / np.linalg.norm(v1)  # Normalisation de v1
+    u2 = v2 - np.dot(u1, v2) * u1  # Projection de v2 sur u1
+    u2 = u2 / np.linalg.norm(u2)  # Normalisation de u2
+    return u1, u2
+
+
+def get_normal_plane_vectors(v):
+    # Normalisation du vecteur v
+    v_normalized = v / np.linalg.norm(v)
+    # Construction d'une matrice à partir du vecteur normalisé
+    v_matrix = np.array([v_normalized])
+    # Calcul de l'espace nul de la matrice
+    null_space_matrix = sp.linalg.null_space(v_matrix)
+    # Sélection de deux vecteurs indépendants de l'espace nul
+    u1 = null_space_matrix[:, 0]
+    u2 = null_space_matrix[:, 1]
+    v1, v2 = gram_schmidt(u1, u2)
+    if np.cross(v1, v2) @ v < 0:  # les vecteurs doivent former une base directe
+        v1 = -v1
+    return v1, v2
+
+
+def compute_parameters_torus(k1, k2, coords, normals, mm, pp, bb):
+    var_1 = np.var(k1)
+    var_2 = np.var(k2)
+    if var_1 > var_2:
+        minor_curv = np.mean(k2)
+    else:
+        minor_curv = np.mean(k1)
+    minor_radius = 1 / minor_curv
+    major_radius_points = coords - normals * minor_radius
+    P_mean = np.mean(major_radius_points, axis=0)
+    major_radius_points = major_radius_points - P_mean
+    print(np.abs(major_radius_points - mm).max())
+    normal, affine_point = fitPlane3D(major_radius_points)
+    u, v = get_normal_plane_vectors(normal)
+    p_matrix = np.array([u, v]).T
+    p_major_radius_points = major_radius_points @ p_matrix
+    print(np.abs(p_major_radius_points - pp).max())
+    centre_2D, major_radius = fitCircle2D(p_major_radius_points, pp, bb)
+    centre = centre_2D[0] * u + centre_2D[1] * v + P_mean
+    parameters = {}
+    parameters.update(
+        {
+            "minor_radius": minor_radius,
+            "major_radius": major_radius,
+            "centre": centre,
+        }
+    )
+    print(parameters)
+
+
+def main():
+    compute_parameters_torus(
+        np.array(K1),
+        np.array(K2),
+        np.array(COORDS),
+        np.array(NORMALS),
+        np.array(MM),
+        np.array(PP),
+        np.array(BB),
+    )
+
+
+BB = [
+    1.29988,
+    1.32834,
+    1.31073,
+    1.30217,
+    1.3004,
+    1.32802,
+    1.40886,
+    1.38819,
+    1.15329,
+    1.33224,
+    1.29239,
+    1.23342,
+    1.30238,
+    1.36314,
+    1.32608,
+    1.25758,
+    1.16688,
+    1.13991,
+    1.23348,
+    1.18219,
+    1.2203,
+    1.25984,
+    1.31467,
+    1.29754,
+    1.32701,
+    1.37341,
+    1.3835,
+    1.39346,
+    1.36699,
+    1.38513,
+    1.39164,
+    1.37848,
+    1.33759,
+    1.40887,
+    1.34163,
+    1.33346,
+    1.38385,
+    1.22564,
+    1.23029,
+    1.30197,
+    1.28674,
+    1.368,
+    1.3454,
+    1.34928,
+    1.30838,
+    1.27381,
+    1.24746,
+    1.22588,
+    1.21466,
+    1.18031,
+    1.08016,
+    1.18529,
+    1.23115,
+    1.2101,
+    1.22234,
+    1.21161,
+    1.18967,
+    1.20307,
+    1.23042,
+    1.24136,
+    1.25018,
+    1.22214,
+    1.268,
+    1.33643,
+    1.29568,
+    1.28693,
+    1.25032,
+    1.01616,
+    1.28119,
+    1.24947,
+    1.21533,
+    1.24026,
+    1.20846,
+    1.26105,
+    1.24038,
+    1.27136,
+    1.29468,
+    1.28342,
+    1.28925,
+    1.29826,
+    1.28555,
+    1.29329,
+    1.22736,
+    1.2337,
+    1.30764,
+    1.32819,
+    1.37281,
+    1.40958,
+    1.42911,
+    1.42011,
+    1.41975,
+    1.38649,
+    1.33099,
+    1.28097,
+    1.24976,
+    1.2287,
+    1.22615,
+    1.21312,
+    1.15805,
+    1.10605,
+    1.21257,
+    1.28317,
+    1.2835,
+    1.26095,
+    1.19331,
+    1.27272,
+    1.27796,
+    1.27132,
+    1.34219,
+    1.37059,
+    1.40964,
+    1.44505,
+    1.43081,
+    1.40872,
+    1.36834,
+    1.30892,
+    1.2686,
+    1.26305,
+    1.30879,
+    1.27939,
+    1.28073,
+    1.31929,
+    1.2598,
+    1.22048,
+    1.21601,
+    1.1966,
+    1.20778,
+    1.1939,
+    1.21448,
+    1.23422,
+    1.26638,
+    1.23913,
+    1.17684,
+    1.23806,
+    1.24665,
+    1.24903,
+    1.09784,
+    1.22823,
+    1.22897,
+    1.2352,
+    1.25402,
+    1.21612,
+    1.17462,
+    1.10981,
+    1.21096,
+    1.2808,
+    1.31638,
+    1.37202,
+    1.37594,
+    1.39594,
+    1.45298,
+    1.38753,
+    1.36049,
+    1.36021,
+    1.33335,
+    1.33825,
+    1.40989,
+    1.43406,
+    1.37539,
+    1.40051,
+    1.42711,
+    1.41021,
+    1.38393,
+    1.40263,
+    1.43309,
+    1.36506,
+    1.39896,
+    1.3855,
+    1.35028,
+    1.37377,
+    1.34695,
+    1.35958,
+    1.2953,
+    1.31097,
+    1.35788,
+    1.31656,
+    1.37928,
+    1.28303,
+    1.29909,
+    1.26879,
+    1.2514,
+    1.25047,
+    1.22388,
+    1.23911,
+    1.2314,
+    1.22712,
+    1.23376,
+    1.21774,
+    1.18743,
+    1.19656,
+    1.22343,
+    1.24818,
+    1.23516,
+    1.23684,
+    1.24645,
+    1.27108,
+    1.30362,
+    1.34807,
+    1.28548,
+    1.39272,
+    1.41669,
+    1.37402,
+    1.24369,
+    1.33271,
+    1.38335,
+    1.28888,
+    1.38451,
+    1.37468,
+    1.3168,
+    1.20807,
+    1.29194,
+    1.3191,
+    1.32651,
+    1.31312,
+    1.35904,
+    1.3144,
+    1.36248,
+    1.43151,
+    1.44124,
+    1.36247,
+    1.36509,
+    1.39602,
+    1.37578,
+    1.36368,
+    1.32171,
+    1.29417,
+    1.26564,
+    1.28197,
+    1.26516,
+    1.22019,
+    1.2104,
+    1.18011,
+    1.13635,
+    1.18086,
+    1.20877,
+    1.20591,
+    1.21808,
+    1.21509,
+    1.26505,
+    1.30837,
+    1.35343,
+    1.3891,
+    1.40041,
+    1.31966,
+    1.1857,
+    1.21441,
+    1.35452,
+    1.31039,
+    1.30165,
+    1.34868,
+    1.3405,
+    1.30601,
+    1.42104,
+    1.41801,
+    1.46154,
+    1.38631,
+    1.14847,
+    1.37646,
+    1.30515,
+    1.32861,
+    1.37463,
+    1.3204,
+    1.25174,
+    1.25007,
+    1.25577,
+    1.23818,
+    1.29151,
+    1.28852,
+    1.28247,
+    1.33274,
+    1.25059,
+    1.27221,
+]
+
+
+MM = [
+    [1.05218, 0.439126, 0.0275596],
+    [1.04785, 0.479983, 0.0294504],
+    [1.12058, 0.234585, -0.00338201],
+    [1.14104, 0.0127689, -0.0230176],
+    [1.10571, -0.278786, -0.0472263],
+    [1.07081, -0.425854, -0.0136113],
+    [0.973353, -0.679294, -0.00261489],
+    [0.640175, -0.98912, -0.00373311],
+    [0.422407, -0.987409, 0.0715977],
+    [-0.11622, -1.14838, 0.0373057],
+    [-0.550639, -0.994583, 0.0282317],
+    [-0.895716, -0.656575, 0.040941],
+    [-1.05574, -0.433309, 0.0359594],
+    [-1.01146, -0.583157, 0.0247077],
+    [-1.15094, 0.0372052, 0.0163754],
+    [-1.01934, 0.467392, 0.0344462],
+    [-0.83607, 0.683944, 0.0474789],
+    [-0.388598, 0.994402, 0.0386861],
+    [-0.376419, 1.04489, -0.00144792],
+    [-0.543529, 0.941692, -0.00744857],
+    [-0.842668, 0.714298, -0.00428732],
+    [-1.05887, 0.372359, -0.00547966],
+    [-1.13206, 0.181956, -0.0015887],
+    [-1.13864, -0.0321948, -0.00396496],
+    [-1.12858, -0.230919, -0.0113774],
+    [-1.00934, -0.595529, -0.00810085],
+    [-0.718267, -0.931445, -0.0117962],
+    [-0.385443, -1.11574, -0.0123723],
+    [-0.0539776, -1.16793, -0.0202157],
+    [0.105231, -1.17218, -0.0408898],
+    [0.410452, -1.10595, -0.0270756],
+    [0.606503, -1.00526, -0.0440616],
+    [0.785018, -0.849263, -0.0435556],
+    [0.78877, -0.886978, 0.00841919],
+    [0.871132, -0.763444, 0.0422807],
+    [0.95679, -0.646559, 0.0131272],
+    [0.866666, -0.795453, 0.00141778],
+    [0.847868, -0.711831, -0.0310192],
+    [0.479959, -0.999919, -0.0550382],
+    [-0.00704338, -1.14099, -0.0486256],
+    [-0.545948, -0.994314, -0.0562787],
+    [-0.729652, -0.914116, -0.0411991],
+    [-1.09297, -0.388389, -0.0242567],
+    [-1.14937, -0.168063, -0.0071695],
+    [-1.09596, 0.327538, -0.00916765],
+    [-0.825938, 0.769174, 0.00684957],
+    [-0.413614, 1.03749, 0.000622491],
+    [-0.312815, 1.06207, 0.0267459],
+    [0.268776, 1.06883, 0.0292164],
+    [0.392152, 1.01317, 0.0337524],
+    [0.415459, 0.952647, 0.0341705],
+    [0.220656, 1.06612, -0.00531312],
+    [0.477553, 1.00155, -0.00656638],
+    [0.704037, 0.845239, -0.0170485],
+    [0.669049, 0.880179, -0.0321375],
+    [0.421781, 1.01673, -0.0435539],
+    [0.130592, 1.0829, -0.0535263],
+    [-0.158514, 1.08535, -0.0333546],
+    [-0.383671, 1.0408, -0.0291968],
+    [-0.592747, 0.943422, -0.0185954],
+    [-0.782805, 0.798408, -0.030715],
+    [-0.933645, 0.592057, -0.0458696],
+    [-1.08669, 0.295286, -0.0471632],
+    [-1.14381, 0.167624, 0.0202696],
+    [-1.12565, 0.169003, 0.0224448],
+    [-1.1224, 0.164695, 0.00799367],
+    [-1.11346, 0.102613, -0.00635569],
+    [-0.87524, 0.500256, -0.0801847],
+    [-0.825179, 0.774767, 0.00149167],
+    [-0.57715, 0.95727, 0.00146035],
+    [-0.245189, 1.07481, 0.00174283],
+    [0.0715746, 1.11136, 0.00141126],
+    [0.475719, 0.991036, 0.00349609],
+    [0.54847, 0.979916, -0.00175501],
+    [0.759303, 0.814767, 0.0126634],
+    [0.905798, 0.671487, 0.00192825],
+    [1.03956, 0.462593, 0.000498079],
+    [1.10652, 0.243004, 0.00831135],
+    [1.13246, 0.0825571, 0.0249298],
+    [1.11721, -0.223999, 0.041278],
+    [1.1327, -0.0507068, 0.0136722],
+    [1.12516, -0.165256, 0.00246041],
+    [1.10166, 0.11705, -0.0100355],
+    [1.10996, 0.0405934, -0.029513],
+    [1.14152, -0.0674168, -0.0127305],
+    [1.0266, -0.523655, -0.0313335],
+    [0.701, -0.938803, -0.0317084],
+    [0.184108, -1.17288, -0.0215941],
+    [-0.00457635, -1.19544, 0.000479688],
+    [-0.586835, -1.03718, 0.0017773],
+    [0.40389, -1.12099, -0.00529045],
+    [0.894697, -0.765514, -0.000273007],
+    [1.14658, -0.127762, -0.00997137],
+    [1.01077, 0.509221, 0.00198446],
+    [0.589978, 0.94957, 0.0050153],
+    [0.0948726, 1.10441, -0.0152223],
+    [-0.459667, 1.00742, -0.0251474],
+    [0.0601388, 1.09978, -0.0186445],
+    [-0.0396568, 1.07542, -0.031587],
+    [0.552557, 0.894844, -0.0605588],
+    [0.639852, 0.896196, -0.0377235],
+    [1.06158, 0.395243, 0.00743376],
+    [1.12049, -0.167594, 0.0453045],
+    [1.11863, -0.0983217, 0.0254323],
+    [1.09233, 0.0119581, 0.0153559],
+    [1.03052, 0.459064, -0.0028931],
+    [1.04139, 0.439849, -0.000810073],
+    [1.04791, 0.41619, 0.00694441],
+    [1.12727, -0.267333, 0.00192907],
+    [0.870498, -0.782861, 0.0210384],
+    [0.430566, -1.10647, 0.0145657],
+    [-0.138371, -1.1941, -0.0235351],
+    [-0.120929, -1.19003, -0.00798896],
+    [0.589052, -1.0304, -0.00669611],
+    [1.00562, -0.597545, -0.00804835],
+    [1.14292, -0.0511787, -0.0212672],
+    [1.01783, 0.482296, -0.00862175],
+    [1.0124, 0.487948, -0.00419105],
+    [1.10109, 0.310459, -0.00117018],
+    [1.11781, 0.172919, 0.00343219],
+    [1.03052, 0.467714, 0.000731203],
+    [1.05078, 0.463836, -0.00942715],
+    [0.927494, 0.632111, 0.0114052],
+    [0.622723, 0.912519, 0.0428227],
+    [0.368572, 1.0393, 0.0268776],
+    [0.131449, 1.08594, 0.0507237],
+    [-0.116833, 1.09274, 0.0315559],
+    [-0.362512, 1.03073, 0.0528684],
+    [-0.598413, 0.925375, 0.0335415],
+    [-0.806751, 0.763742, 0.0389321],
+    [-0.975683, 0.560694, 0.0234728],
+    [0.711067, 0.856453, 0.00522918],
+    [0.698304, 0.830188, -0.0108496],
+    [0.843059, 0.726166, 0.00228899],
+    [0.27213, 1.08286, 0.000884279],
+    [0.0116246, 1.11754, -0.0001197],
+    [0.149865, 1.03701, -0.0203214],
+    [-0.20027, 1.09001, 0.00676326],
+    [-0.472005, 1.00308, 0.00833057],
+    [-0.703639, 0.860276, 0.00983825],
+    [-0.923985, 0.632659, 0.010136],
+    [-0.892113, 0.648345, -0.0490424],
+    [-0.52618, 0.947538, -0.0408892],
+    [-0.454733, 0.950303, -0.0271215],
+    [-1.09885, -0.0595824, -0.0416295],
+    [-1.09124, -0.300023, -0.0094494],
+    [-1.05459, -0.45189, 0.0055773],
+    [-0.934393, -0.706345, 0.00420015],
+    [-0.741821, -0.908647, 0.00347728],
+    [-0.442203, -1.09563, 0.00305888],
+    [-0.440351, -1.12208, -0.00519117],
+    [-0.533432, -1.05023, 0.0312364],
+    [-0.744989, -0.897486, 0.052304],
+    [-0.920372, -0.716316, 0.0324806],
+    [-1.04354, -0.494303, 0.0497827],
+    [-1.12861, -0.253905, 0.0229736],
+    [-0.919225, -0.751607, 0.00334249],
+    [-0.566044, -1.0553, 0.0277849],
+    [-0.306417, -1.13205, 0.0542941],
+    [-0.0585354, -1.182, 0.0251293],
+    [0.148655, -1.18533, 0.00308894],
+    [0.465147, -1.09264, 0.00454079],
+    [0.359912, -1.12002, 0.0296904],
+    [0.152287, -1.17452, 0.0348313],
+    [-0.181576, -1.18327, 0.00186421],
+    [-0.0541688, -1.1671, 0.00387793],
+    [-0.643362, -0.992493, 0.00806684],
+    [-0.847912, -0.816419, 0.00882942],
+    [-1.11133, -0.339428, 0.00792329],
+    [-1.00369, -0.60528, 0.00759492],
+    [-0.942388, -0.677389, -0.00297831],
+    [-1.06965, 0.464152, -0.000192445],
+    [-1.12914, -0.142646, 0.00580705],
+    [-1.06569, 0.418651, 0.00105227],
+    [-1.1625, -0.0804709, -0.000631652],
+    [-1.14585, -0.0593998, 0.0415459],
+    [-1.12885, -0.323918, 0.0451808],
+    [-1.06294, 0.39131, 0.0352204],
+    [-0.959726, 0.614781, 0.0314496],
+    [-0.61342, 0.944757, -0.0299485],
+    [-0.169997, 1.10566, 0.00355667],
+    [0.32253, 1.07073, -0.00887087],
+    [0.913211, 0.624429, -0.0192011],
+    [0.87408, 0.689269, -0.005635],
+    [0.532473, 0.973591, -0.0122005],
+    [-0.0261654, 1.10745, -0.00841875],
+    [0.283174, 1.07405, -0.00787649],
+    [0.601846, 0.924947, -0.00342465],
+    [0.804858, 0.734601, 0.00810469],
+    [0.764176, 0.782688, 0.0232811],
+    [0.739081, 0.822915, 0.0294241],
+    [0.647241, 0.910635, 0.00801974],
+    [0.0883295, 1.10786, 0.00786736],
+    [0.110928, 1.10659, -0.00992521],
+    [-0.416901, 1.03569, -0.00469693],
+    [-0.862549, 0.726024, -0.00955877],
+    [-1.11829, 0.230413, -0.0187427],
+    [-1.11354, -0.328809, -0.00972923],
+    [-1.1251, 0.140273, -0.0251003],
+    [-0.943174, -0.709331, -0.00817972],
+    [-0.420061, -1.11366, -0.0152201],
+    [-0.920783, -0.725388, -0.0141649],
+    [-0.939932, -0.600206, -0.0438578],
+    [-0.676287, -0.935598, -0.0114071],
+    [-0.205092, -1.15812, -0.0349525],
+    [-0.249685, -1.10748, -0.0225875],
+    [0.192646, -1.16077, -0.00506834],
+    [0.347275, -1.11984, -0.0300476],
+    [0.785808, -0.836197, -0.0397711],
+    [1.06014, -0.29003, -0.0244352],
+    [1.05564, -0.421318, -0.0273065],
+    [0.566133, -0.999296, -0.00123209],
+    [1.03292, -0.509499, 0.00146023],
+    [1.08524, -0.367956, 0.0121496],
+    [0.745566, -0.896211, 0.0125375],
+    [1.03269, -0.498022, 0.0367236],
+    [0.62839, -0.983713, 0.0418252],
+    [0.388048, -1.13178, 0.00136055],
+    [-0.0838223, -1.1976, 0.0223413],
+    [-0.235249, -1.14327, -0.0568873],
+    [-0.523497, -1.04452, -0.0405955],
+    [-0.731259, -0.928049, -0.0261927],
+    [-0.898888, -0.753517, -0.0216193],
+    [-1.02167, -0.565592, -0.0302049],
+    [-1.09747, -0.342502, -0.0338987],
+    [-1.13713, -0.0342639, -0.044474],
+    [-1.11749, 0.129951, -0.0207752],
+    [-1.0542, 0.413089, -0.0118812],
+    [-0.949427, 0.603131, -0.00901071],
+    [-0.728439, 0.830424, -0.0178884],
+    [-0.376355, 1.03382, -0.0158901],
+    [-0.185556, 1.07037, -0.00673055],
+    [-0.0167591, 1.06586, 0.0141746],
+    [0.0649723, 1.08472, 0.020756],
+    [-0.10378, 1.09452, 0.020413],
+    [-0.958172, 0.536464, 0.0132886],
+    [-0.695205, 0.857183, 0.00493529],
+    [-0.632829, 0.902528, 0.0346061],
+    [-0.859796, 0.725096, 0.0215632],
+    [-1.08265, 0.36913, -0.0124187],
+    [-1.1505, -0.172514, 0.00764873],
+    [-1.00758, -0.61146, -0.00649626],
+    [-0.648222, -0.990064, 0.0280519],
+    [-1.1469, -0.0651792, 0.019027],
+    [-1.07448, 0.176358, 0.0575768],
+    [-1.07887, -0.224545, 0.030339],
+    [-0.49942, -1.05124, -0.00348874],
+    [-0.822162, -0.796517, -0.0015281],
+    [-0.588317, -0.977526, 0.0722284],
+    [-0.151336, -1.15143, 0.00951813],
+    [0.289497, -1.12106, 0.0572888],
+    [0.887579, -0.719928, 0.0404027],
+    [0.167225, -1.18028, -0.00357762],
+    [0.308302, -1.1502, -0.00619874],
+    [0.608155, -1.04485, 0.0093066],
+    [0.811851, -0.852759, -0.0067984],
+    [0.922127, -0.546105, 0.0416729],
+    [0.942621, -0.698508, -0.00723234],
+    [1.11182, -0.262685, -0.00466607],
+    [0.988786, -0.592296, -0.0476753],
+    [1.07192, -0.474911, -0.0414343],
+    [1.14342, -0.113887, -0.00839148],
+    [1.11189, 0.124208, -0.00877517],
+    [1.01336, 0.472395, -0.00982482],
+    [1.03047, 0.440326, -0.0192992],
+    [0.887946, 0.670606, -0.0355341],
+    [1.11176, 0.23553, -0.0284195],
+    [1.04657, 0.439579, 0.00903524],
+    [1.10006, 0.269067, 0.0446301],
+    [1.15412, 0.0272585, -0.00227254],
+    [0.85886, 0.716212, 0.0312187],
+    [0.754509, 0.838413, 0.0623482],
+]
+
+PP = [
+    [0.439714, -1.05192],
+    [0.480569, -1.04756],
+    [0.235193, -1.12045],
+    [0.0133779, -1.14105],
+    [-0.27821, -1.10589],
+    [-0.425278, -1.07105],
+    [-0.678765, -0.973724],
+    [-0.988773, -0.640715],
+    [-0.98714, -0.422896],
+    [-1.14842, 0.115621],
+    [-0.994867, 0.550117],
+    [-0.65704, 0.895386],
+    [-0.433864, 1.05553],
+    [-0.583694, 1.01116],
+    [0.0365872, 1.15097],
+    [0.466855, 1.01962],
+    [0.683514, 0.836474],
+    [0.994211, 0.389165],
+    [1.04468, 0.376987],
+    [0.941392, 0.544037],
+    [0.713837, 0.843054],
+    [0.371779, 1.05907],
+    [0.181338, 1.13216],
+    [-0.0328171, 1.13862],
+    [-0.23154, 1.12845],
+    [-0.596083, 1.00901],
+    [-0.931842, 0.717751],
+    [-1.11596, 0.384827],
+    [-1.16797, 0.0533282],
+    [-1.17214, -0.105896],
+    [-1.10574, -0.411073],
+    [-1.00495, -0.60708],
+    [-0.848859, -0.785509],
+    [-0.886543, -0.789247],
+    [-0.762946, -0.871519],
+    [-0.646031, -0.957133],
+    [-0.79498, -0.867098],
+    [-0.711386, -0.848276],
+    [-0.999687, -0.48054],
+    [-1.14102, 0.00638941],
+    [-0.994642, 0.545369],
+    [-0.914535, 0.729126],
+    [-0.388998, 1.09274],
+    [-0.168693, 1.14927],
+    [0.326936, 1.09613],
+    [0.768727, 0.826361],
+    [1.03726, 0.414179],
+    [1.06191, 0.313411],
+    [1.06899, -0.268175],
+    [1.0134, -0.391577],
+    [0.952891, -0.414917],
+    [1.06623, -0.220079],
+    [1.0018, -0.477012],
+    [0.845613, -0.703589],
+    [0.880525, -0.668591],
+    [1.01693, -0.421257],
+    [1.08294, -0.130039],
+    [1.08525, 0.159082],
+    [1.04058, 0.384218],
+    [0.943089, 0.593248],
+    [0.797965, 0.783218],
+    [0.591523, 0.933936],
+    [0.294668, 1.08682],
+    [0.167012, 1.14391],
+    [0.168402, 1.12575],
+    [0.164088, 1.1225],
+    [0.102003, 1.11351],
+    [0.499736, 0.875458],
+    [0.774318, 0.825602],
+    [0.956956, 0.577671],
+    [1.07467, 0.245775],
+    [1.1114, -0.0709687],
+    [0.991296, -0.475177],
+    [0.980214, -0.547938],
+    [0.815187, -0.758851],
+    [0.671981, -0.905431],
+    [0.463159, -1.03931],
+    [0.243611, -1.10638],
+    [0.0831874, -1.1324],
+    [-0.223368, -1.1173],
+    [-0.0500824, -1.13272],
+    [-0.164642, -1.12525],
+    [0.117644, -1.1016],
+    [0.0411818, -1.10996],
+    [-0.066802, -1.14157],
+    [-0.523112, -1.02691],
+    [-0.938438, -0.701533],
+    [-1.17279, -0.184761],
+    [-1.19545, 0.00392601],
+    [-1.0375, 0.586271],
+    [-1.12077, -0.404503],
+    [-0.765026, -0.895114],
+    [-0.127143, -1.14666],
+    [0.509772, -1.01049],
+    [0.949894, -0.589457],
+    [1.10445, -0.0942818],
+    [1.00716, 0.460198],
+    [1.09981, -0.0595528],
+    [1.07538, 0.0402207],
+    [0.895112, -0.55211],
+    [0.896524, -0.639389],
+    [0.395826, -1.06136],
+    [-0.166959, -1.12055],
+    [-0.0976986, -1.11866],
+    [0.0125614, -1.09232],
+    [0.459624, -1.03028],
+    [0.440416, -1.04115],
+    [0.416764, -1.04768],
+    [-0.266718, -1.12741],
+    [-0.782375, -0.87091],
+    [-1.10623, -0.431158],
+    [-1.19419, 0.137705],
+    [-1.1901, 0.120276],
+    [-1.03008, -0.589618],
+    [-0.597001, -1.00595],
+    [-0.0505677, -1.14296],
+    [0.482846, -1.01758],
+    [0.488497, -1.01214],
+    [0.311058, -1.10092],
+    [0.17353, -1.11771],
+    [0.468275, -1.03027],
+    [0.464403, -1.05053],
+    [0.632623, -0.927141],
+    [0.912881, -0.622198],
+    [1.03952, -0.367988],
+    [1.08604, -0.130824],
+    [1.0927, 0.117449],
+    [1.03056, 0.363108],
+    [0.925068, 0.598939],
+    [0.763323, 0.807193],
+    [0.560175, 0.976004],
+    [0.856843, -0.710597],
+    [0.830562, -0.69786],
+    [0.726626, -0.842662],
+    [1.08301, -0.27154],
+    [1.11755, -0.0110164],
+    [1.03708, -0.149314],
+    [1.0899, 0.200868],
+    [1.00283, 0.472556],
+    [0.859898, 0.704114],
+    [0.632161, 0.924335],
+    [0.647832, 0.892432],
+    [0.947229, 0.526668],
+    [0.95004, 0.455232],
+    [-0.0602035, 1.09879],
+    [-0.300622, 1.09107],
+    [-0.452461, 1.05435],
+    [-0.706852, 0.934011],
+    [-0.909049, 0.741329],
+    [-1.09587, 0.441608],
+    [-1.12232, 0.439736],
+    [-1.05051, 0.532881],
+    [-0.897863, 0.744536],
+    [-0.716799, 0.920004],
+    [-0.494844, 1.0433],
+    [-0.254507, 1.12848],
+    [-0.752106, 0.918818],
+    [-1.05559, 0.565489],
+    [-1.13219, 0.305837],
+    [-1.18201, 0.057909],
+    [-1.18525, -0.149298],
+    [-1.09238, -0.465738],
+    [-1.11981, -0.360502],
+    [-1.17441, -0.152902],
+    [-1.18336, 0.180933],
+    [-1.16713, 0.0535362],
+    [-0.992839, 0.642827],
+    [-0.816875, 0.847474],
+    [-0.340029, 1.11115],
+    [-0.605822, 1.00337],
+    [-0.677904, 0.942017],
+    [0.463569, 1.0699],
+    [-0.143258, 1.12906],
+    [0.418071, 1.06592],
+    [-0.0811043, 1.16246],
+    [-0.0600013, 1.14585],
+    [-0.324508, 1.1287],
+    [0.390751, 1.06318],
+    [0.614275, 0.960082],
+    [0.944406, 0.613914],
+    [1.10557, 0.170601],
+    [1.0709, -0.321953],
+    [0.624916, -0.912883],
+    [0.689741, -0.873709],
+    [0.973874, -0.531951],
+    [1.10743, 0.0267624],
+    [1.0742, -0.282594],
+    [0.925273, -0.601345],
+    [0.735044, -0.804452],
+    [0.783117, -0.763734],
+    [0.823333, -0.738613],
+    [0.910991, -0.646739],
+    [1.10791, -0.0877212],
+    [1.10665, -0.110332],
+    [1.03546, 0.417462],
+    [0.725548, 0.862937],
+    [0.229794, 1.1184],
+    [-0.329421, 1.11335],
+    [0.139647, 1.12516],
+    [-0.709849, 0.942782],
+    [-1.11389, 0.419445],
+    [-0.725897, 0.920378],
+    [-0.600742, 0.939575],
+    [-0.935973, 0.67577],
+    [-1.15825, 0.204438],
+    [-1.10763, 0.249066],
+    [-1.16067, -0.193281],
+    [-1.11966, -0.347905],
+    [-0.83579, -0.78629],
+    [-0.289466, -1.06032],
+    [-0.420758, -1.05589],
+    [-0.998988, -0.566677],
+    [-0.508936, -1.03319],
+    [-0.367359, -1.08544],
+    [-0.895797, -0.746045],
+    [-0.497439, -1.03293],
+    [-0.983348, -0.628897],
+    [-1.13157, -0.388663],
+    [-1.19763, 0.0831856],
+    [-1.14343, 0.234588],
+    [-1.04483, 0.5229],
+    [-0.928462, 0.730736],
+    [-0.754019, 0.898463],
+    [-0.566164, 1.02134],
+    [-0.343118, 1.09726],
+    [-0.0349075, 1.13708],
+    [0.129331, 1.11755],
+    [0.412508, 1.05442],
+    [0.602609, 0.949749],
+    [0.830017, 0.728878],
+    [1.03361, 0.376907],
+    [1.07026, 0.186134],
+    [1.06586, 0.0173489],
+    [1.08477, -0.0643678],
+    [1.09448, 0.10439],
+    [0.53595, 0.958473],
+    [0.856807, 0.695675],
+    [0.902202, 0.633343],
+    [0.724639, 0.860205],
+    [0.368534, 1.08284],
+    [-0.173137, 1.15041],
+    [-0.612012, 1.00724],
+    [-0.990401, 0.647702],
+    [-0.0657935, 1.14688],
+    [0.175804, 1.07461],
+    [-0.225116, 1.07877],
+    [-1.05151, 0.498845],
+    [-0.796966, 0.821727],
+    [-0.977806, 0.587834],
+    [-1.1515, 0.150716],
+    [-1.12087, -0.290069],
+    [-0.719422, -0.887943],
+    [-1.18019, -0.16787],
+    [-1.15003, -0.308932],
+    [-1.04451, -0.608717],
+    [-0.85232, -0.812319],
+    [-0.54558, -0.922396],
+    [-0.697998, -0.943006],
+    [-0.262081, -1.11197],
+    [-0.591783, -0.98914],
+    [-0.47435, -1.07221],
+    [-0.113269, -1.14349],
+    [0.124809, -1.11183],
+    [0.472941, -1.01311],
+    [0.440876, -1.03024],
+    [0.67107, -0.887605],
+    [0.23612, -1.11165],
+    [0.440154, -1.04632],
+    [0.26969, -1.09988],
+    [0.0278858, -1.1541],
+    [0.716697, -0.858449],
+    [0.838857, -0.75401],
+]
+
+NORMALS = [
+    [0.885516, 0.46334, -0.0343024],
+    [0.812606, 0.377038, -0.444426],
+    [0.628902, 0.14572, -0.763707],
+    [0.85923, 0.0155783, -0.511352],
+    [0.874891, -0.192938, -0.444231],
+    [0.511721, -0.181182, -0.83983],
+    [0.0923581, -0.0422934, -0.994827],
+    [-0.0179906, -0.00993837, -0.999789],
+    [-0.192833, 0.424116, -0.884839],
+    [0.0583866, 0.665859, -0.743789],
+    [0.217511, 0.402577, -0.889169],
+    [0.399414, 0.27136, -0.87569],
+    [0.704609, 0.265156, -0.658194],
+    [0.817078, 0.44808, -0.362778],
+    [0.970204, -0.0758635, -0.230107],
+    [0.789843, -0.393999, -0.470014],
+    [0.504056, -0.447331, -0.738798],
+    [0.215612, -0.571117, -0.792046],
+    [0.0856984, -0.251419, -0.964077],
+    [-0.0662072, 0.110061, -0.991717],
+    [-0.0221537, 0.0328826, -0.999214],
+    [-0.0881874, 0.0272407, -0.995731],
+    [0.326071, -0.0600209, -0.943438],
+    [-0.0275799, -0.00382598, -0.999612],
+    [-0.435017, -0.0676354, -0.897879],
+    [-0.402722, -0.223929, -0.887508],
+    [-0.305379, -0.361803, -0.880819],
+    [-0.160996, -0.445276, -0.880801],
+    [-0.010807, -0.509743, -0.860259],
+    [0.0855906, -0.873831, -0.478638],
+    [0.272207, -0.796263, -0.540248],
+    [0.501136, -0.785129, -0.363916],
+    [0.59144, -0.582797, -0.557267],
+    [0.703184, -0.710914, -0.0115417],
+    [0.694596, -0.544701, 0.469933],
+    [0.417251, -0.272357, 0.86702],
+    [0.0516217, -0.0520169, 0.997311],
+    [-0.291716, 0.218914, 0.931117],
+    [-0.226126, 0.464038, 0.856467],
+    [-0.00339778, 0.632178, 0.774816],
+    [0.331808, 0.573052, 0.749343],
+    [0.577179, 0.685143, 0.444347],
+    [0.859894, 0.270931, 0.432641],
+    [0.967572, 0.108714, 0.228002],
+    [0.934989, -0.317314, 0.158451],
+    [0.710774, -0.701997, 0.0447301],
+    [0.356019, -0.933043, -0.0517811],
+    [0.256997, -0.919431, -0.297655],
+    [-0.218756, -0.909007, -0.354757],
+    [-0.269857, -0.724352, -0.634422],
+    [-0.158691, -0.360472, -0.919172],
+    [0.00858611, 0.0775903, -0.996948],
+    [0.133712, 0.306211, -0.942526],
+    [0.341642, 0.386306, -0.856766],
+    [0.531726, 0.686423, -0.496076],
+    [0.368051, 0.847296, -0.382921],
+    [0.0867203, 0.898884, -0.429519],
+    [-0.107633, 0.828438, -0.549642],
+    [-0.307088, 0.870656, -0.38426],
+    [-0.42712, 0.71235, -0.55689],
+    [-0.635271, 0.657478, -0.405158],
+    [-0.672777, 0.454282, -0.583951],
+    [-0.842933, 0.287157, -0.454978],
+    [-0.984554, 0.173194, -0.0256336],
+    [-0.79356, 0.15199, 0.589204],
+    [-0.342572, 0.0650046, 0.93724],
+    [0.183, 0.000494036, 0.983113],
+    [0.381035, -0.24338, 0.891952],
+    [0.0133362, -0.0535155, 0.998478],
+    [-0.0397298, 0.0698377, 0.996767],
+    [-0.0168322, 0.0516311, 0.998524],
+    [0.0160717, 0.206352, 0.978346],
+    [0.0443121, 0.130718, 0.990429],
+    [0.283722, 0.551341, 0.784554],
+    [0.485316, 0.557467, 0.673572],
+    [0.380974, 0.303056, 0.873508],
+    [0.276614, 0.133976, 0.951596],
+    [0.532039, 0.111579, 0.839336],
+    [0.846385, 0.042943, 0.530837],
+    [0.875762, -0.154386, 0.45739],
+    [0.527876, -0.0272772, 0.848883],
+    [0.0765559, -0.0164299, 0.99693],
+    [-0.244645, -0.0388266, 0.968835],
+    [-0.593173, -0.04156, 0.804002],
+    [-0.813442, 0.0167877, 0.581403],
+    [-0.789584, 0.368692, 0.490535],
+    [-0.565512, 0.718982, 0.404056],
+    [-0.151828, 0.931684, 0.330019],
+    [0.00498856, 0.994816, 0.101566],
+    [0.501824, 0.864842, 0.0148866],
+    [-0.356849, 0.933981, -0.018394],
+    [-0.780046, 0.624074, -0.0453854],
+    [-0.994909, 0.0778003, 0.0640639],
+    [-0.851363, -0.483031, 0.204604],
+    [-0.511458, -0.844253, 0.160149],
+    [-0.0830259, -0.953054, 0.291197],
+    [0.358212, -0.837785, 0.412069],
+    [-0.0462617, -0.839609, 0.541218],
+    [0.0275706, -0.625883, 0.77943],
+    [-0.339508, -0.543164, 0.767924],
+    [-0.508066, -0.740415, 0.440062],
+    [-0.911782, -0.347495, -0.218864],
+    [-0.880528, 0.0993146, -0.463473],
+    [-0.656706, 0.0415934, -0.752999],
+    [-0.272574, -0.0133991, -0.962042],
+    [-0.0860399, -0.0422484, -0.995396],
+    [-0.45604, -0.191933, -0.869016],
+    [-0.742809, -0.298616, -0.599219],
+    [-0.96584, 0.185131, -0.181326],
+    [-0.71678, 0.612849, -0.332628],
+    [-0.370476, 0.899217, -0.232714],
+    [0.109807, 0.954465, -0.27738],
+    [0.104434, 0.989095, -0.103849],
+    [-0.506596, 0.84713, 0.160407],
+    [-0.855104, 0.468046, 0.223003],
+    [-0.935691, 0.0119431, 0.352619],
+    [-0.707046, -0.377226, 0.598153],
+    [-0.421568, -0.24913, 0.871903],
+    [0.765474, 0.222438, 0.603797],
+    [0.162233, 0.0189544, 0.98657],
+    [-0.0860355, -0.052534, 0.994906],
+    [0.588427, 0.289606, 0.754905],
+    [0.630579, 0.460952, 0.624414],
+    [0.486853, 0.798161, 0.354843],
+    [0.289112, 0.82561, 0.484543],
+    [0.0958261, 0.91753, 0.385949],
+    [-0.105734, 0.862318, 0.495205],
+    [-0.300695, 0.847625, 0.437166],
+    [-0.440112, 0.706749, 0.553902],
+    [-0.620586, 0.636258, 0.45831],
+    [-0.702017, 0.470077, 0.534977],
+    [0.239125, 0.324827, 0.915045],
+    [-0.184953, -0.217195, 0.958446],
+    [0.0704163, 0.0660926, 0.995326],
+    [0.140547, 0.54811, 0.824513],
+    [0.0260011, 0.62869, 0.777221],
+    [-0.0352421, -0.262232, 0.964361],
+    [-0.113206, 0.519926, 0.846677],
+    [-0.194096, 0.466385, 0.863025],
+    [-0.319374, 0.367065, 0.87365],
+    [-0.378905, 0.305647, 0.873505],
+    [0.659914, -0.513446, 0.548531],
+    [0.34472, -0.641129, 0.685654],
+    [0.136933, -0.322664, 0.936556],
+    [0.541299, 0.00592814, 0.840809],
+    [0.235541, 0.059255, 0.970056],
+    [-0.163862, -0.0577168, 0.984793],
+    [-0.199639, -0.143077, 0.969367],
+    [-0.0846024, -0.116337, 0.9896],
+    [-0.0496912, -0.133955, 0.989741],
+    [-0.207312, -0.556528, 0.804548],
+    [-0.415753, -0.760936, 0.498123],
+    [-0.591451, -0.693154, 0.411974],
+    [-0.693631, -0.514222, 0.504432],
+    [-0.831854, -0.376771, 0.407509],
+    [-0.848325, -0.179743, 0.498033],
+    [-0.790557, -0.612363, -0.00550481],
+    [-0.455413, -0.889609, -0.0345703],
+    [-0.240499, -0.882431, 0.404322],
+    [-0.0467441, -0.846844, 0.529783],
+    [0.0734138, -0.562327, 0.82365],
+    [0.222977, -0.43269, 0.873534],
+    [0.29114, -0.786986, 0.543958],
+    [0.13231, -0.922442, 0.362761],
+    [-0.0821101, -0.520081, 0.850161],
+    [-0.00690736, -0.112095, 0.993673],
+    [-0.31097, -0.453916, 0.835019],
+    [-0.411827, -0.402994, 0.817309],
+    [-0.544164, -0.157068, 0.824145],
+    [-0.516026, -0.270197, 0.812841],
+    [0.138142, 0.0913723, 0.986189],
+    [-0.0338192, 0.0278306, 0.99904],
+    [-0.190354, -0.0116362, 0.981647],
+    [-0.544831, 0.223664, 0.808167],
+    [-0.621469, -0.00893507, 0.783388],
+    [-0.940934, -0.00109971, 0.338587],
+    [-0.971474, -0.230621, -0.0552564],
+    [-0.870184, 0.340428, 0.356215],
+    [-0.829667, 0.5569, -0.0389282],
+    [-0.527659, 0.848772, 0.0340828],
+    [-0.124535, 0.992198, -0.0057595],
+    [0.27592, 0.961138, 0.00901859],
+    [0.427064, 0.347247, -0.834886],
+    [0.0956659, 0.100227, -0.990355],
+    [0.306675, 0.597738, -0.740716],
+    [0.00150586, 0.506827, -0.862047],
+    [0.132575, 0.581816, -0.802443],
+    [-0.000798285, -0.004032, -0.999992],
+    [-0.211343, -0.203531, -0.955986],
+    [-0.450326, -0.482813, -0.751065],
+    [-0.582999, -0.682282, -0.44114],
+    [-0.562778, -0.820318, -0.101777],
+    [-0.0822599, -0.98632, -0.142851],
+    [-0.100051, -0.992696, 0.0674161],
+    [0.351896, -0.920614, 0.169232],
+    [0.716005, -0.640572, 0.277499],
+    [0.904039, -0.216508, 0.368561],
+    [0.744596, 0.192618, 0.639121],
+    [0.783746, -0.131261, 0.607052],
+    [0.800554, 0.571608, 0.179936],
+    [0.351684, 0.90006, 0.257313],
+    [0.641716, 0.482808, 0.5959],
+    [0.452979, 0.270784, 0.849403],
+    [0.191167, 0.231761, 0.953804],
+    [0.149303, 0.848158, 0.508269],
+    [0.0669129, 0.314346, 0.946947],
+    [-0.0446017, 0.287199, 0.956832],
+    [-0.25041, 0.778868, 0.57503],
+    [-0.523167, 0.52237, 0.673369],
+    [-0.326905, 0.0750979, 0.942069],
+    [-0.629152, 0.228803, 0.742843],
+    [-0.00967184, 0.0302848, 0.999495],
+    [0.0273618, -0.0164314, 0.999491],
+    [0.475493, -0.133392, 0.869548],
+    [0.325656, -0.385951, 0.863128],
+    [0.759628, -0.342118, 0.553101],
+    [0.491739, -0.735577, 0.465961],
+    [0.339217, -0.940703, -0.00314801],
+    [-0.0793488, -0.996451, -0.0280971],
+    [-0.195819, -0.855567, -0.479229],
+    [-0.370255, -0.728245, -0.576689],
+    [-0.579057, -0.699415, -0.418942],
+    [-0.625638, -0.507035, -0.592868],
+    [-0.813385, -0.402766, -0.419744],
+    [-0.781918, -0.205183, -0.588646],
+    [-0.873346, -0.00463673, -0.487078],
+    [-0.506555, 0.0673884, -0.85957],
+    [-0.511781, 0.201984, -0.835034],
+    [-0.320853, 0.234846, -0.917552],
+    [-0.342082, 0.408178, -0.846387],
+    [-0.186305, 0.514146, -0.837224],
+    [-0.0180518, 0.118465, -0.992794],
+    [0.0118987, -0.314247, -0.949267],
+    [-0.0346939, -0.647105, -0.761611],
+    [0.0751036, -0.837074, -0.541911],
+    [0.310345, -0.189601, -0.931524],
+    [0.211937, -0.27383, -0.938136],
+    [0.478618, -0.72206, -0.499553],
+    [0.735416, -0.64106, -0.219557],
+    [0.934456, -0.355643, -0.017608],
+    [0.992795, 0.117944, 0.0211562],
+    [0.867185, 0.4906, -0.0854499],
+    [0.547122, 0.79932, -0.248484],
+    [0.884395, 0.0200503, -0.466307],
+    [0.648469, -0.125092, -0.750892],
+    [0.418901, 0.064567, -0.905733],
+    [-0.0201053, -0.000633263, -0.999798],
+    [0.012708, 0.0228002, -0.999659],
+    [0.419447, 0.677553, -0.604141],
+    [0.0413512, 0.319048, -0.946836],
+    [-0.210542, 0.812233, -0.544012],
+    [-0.60822, 0.459243, -0.647429],
+    [0.00847839, 0.0270102, -0.999599],
+    [0.120563, -0.44395, -0.887904],
+    [0.29249, -0.487189, -0.822858],
+    [0.269586, -0.3103, -0.911613],
+    [-0.304243, 0.16738, -0.937774],
+    [0.484207, -0.316488, -0.815708],
+    [0.0596263, -0.0218626, -0.997981],
+    [0.776807, -0.457738, -0.43249],
+    [0.922431, -0.383201, 0.0477411],
+    [0.529844, -0.038054, -0.847241],
+    [0.190883, 0.0228035, -0.981348],
+    [0.307769, 0.12232, -0.943566],
+    [0.612584, 0.317564, -0.723806],
+    [0.685848, 0.571586, -0.450445],
+    [0.922146, 0.217187, -0.32012],
+    [0.814128, 0.425084, 0.395601],
+    [0.945288, 0.218336, 0.242405],
+    [0.999973, -0.00720299, 0.00117226],
+    [0.721406, 0.623411, 0.30155],
+    [0.633588, 0.769961, -0.075671],
+]
+
+COORDS = [
+    [9.48758, -2.85689, -9.02],
+    [9.42193, -2.88861, -9.363],
+    [9.34018, -3.32853, -9.66433],
+    [9.55434, -3.65979, -9.47175],
+    [9.53218, -4.12669, -9.43951],
+    [9.19187, -4.26388, -9.73857],
+    [8.74175, -4.40052, -9.85792],
+    [8.31578, -4.68314, -9.86321],
+    [7.95098, -4.31641, -9.69122],
+    [7.62361, -4.27409, -9.60689],
+    [7.32301, -4.3417, -9.73822],
+    [7.1309, -4.11403, -9.71418],
+    [7.22753, -3.89599, -9.53626],
+    [7.36639, -3.89201, -9.29908],
+    [7.35568, -3.71225, -9.19584],
+    [7.3356, -3.5496, -9.37952],
+    [7.27855, -3.3779, -9.59252],
+    [7.48345, -3.17153, -9.64609],
+    [7.38638, -2.8522, -9.83089],
+    [7.09153, -2.65141, -9.86014],
+    [6.82944, -2.94371, -9.86328],
+    [6.5577, -3.29039, -9.86155],
+    [6.83288, -3.55418, -9.81368],
+    [6.5289, -3.72107, -9.8633],
+    [6.19633, -3.97346, -9.78516],
+    [6.34273, -4.4695, -9.77316],
+    [6.71566, -4.92136, -9.77123],
+    [7.1699, -5.17585, -9.77179],
+    [7.62767, -5.28225, -9.76236],
+    [7.86794, -5.59268, -9.46211],
+    [8.3301, -5.46122, -9.50011],
+    [8.71866, -5.35117, -9.36881],
+    [8.97312, -5.02502, -9.5309],
+    [9.07084, -5.17047, -9.02],
+    [9.14598, -4.90717, -8.58125],
+    [8.99841, -4.56125, -8.27647],
+    [8.60081, -4.52485, -8.17861],
+    [8.29329, -4.2134, -8.26672],
+    [7.98053, -4.29535, -8.35351],
+    [7.68083, -4.29502, -8.41576],
+    [7.42382, -4.19807, -8.44484],
+    [7.44646, -4.02361, -8.68624],
+    [7.32089, -3.84621, -8.67914],
+    [7.35504, -3.7623, -8.83415],
+    [7.38105, -3.62496, -8.89463],
+    [7.46252, -3.50682, -8.97425],
+    [7.57651, -3.43281, -9.06164],
+    [7.59404, -3.39678, -9.24228],
+    [7.77555, -3.38125, -9.28783],
+    [7.85595, -3.28163, -9.51847],
+    [7.97274, -3.03615, -9.75751],
+    [7.91861, -2.55429, -9.8624],
+    [8.28073, -2.42661, -9.81789],
+    [8.68207, -2.51556, -9.75625],
+    [8.80693, -2.22824, -9.46802],
+    [8.42202, -1.9564, -9.38428],
+    [7.89425, -1.84685, -9.43344],
+    [7.44171, -1.90364, -9.51429],
+    [7.04882, -1.91268, -9.37105],
+    [6.7388, -2.14319, -9.50562],
+    [6.3737, -2.33435, -9.39014],
+    [6.19132, -2.71158, -9.55565],
+    [5.89519, -3.14889, -9.44849],
+    [5.71897, -3.37239, -9.02],
+    [5.89775, -3.38884, -8.50078],
+    [6.28025, -3.4663, -8.22255],
+    [6.73116, -3.58263, -8.19833],
+    [7.13592, -3.39007, -8.34882],
+    [6.87677, -2.9559, -8.17756],
+    [7.08017, -2.66966, -8.17903],
+    [7.43139, -2.56743, -8.17727],
+    [7.77582, -2.40076, -8.19457],
+    [8.20372, -2.5847, -8.18232],
+    [8.4778, -2.2421, -8.3607],
+    [8.85816, -2.40209, -8.43961],
+    [8.91691, -2.75932, -8.28221],
+    [8.96291, -3.1104, -8.21798],
+    [9.24466, -3.34882, -8.30457],
+    [9.53496, -3.56699, -8.54738],
+    [9.54441, -4.03949, -8.5928],
+    [9.26735, -3.7593, -8.29118],
+    [8.88027, -3.86473, -8.17789],
+    [8.58666, -3.60126, -8.21401],
+    [8.30187, -3.68002, -8.37211],
+    [8.1482, -3.73896, -8.54252],
+    [8.05334, -3.89926, -8.63754],
+    [7.91617, -4.01984, -8.71063],
+    [7.74716, -4.07505, -8.76278],
+    [7.69035, -4.04452, -8.93282],
+    [7.5259, -3.99555, -9.00442],
+    [7.79453, -4.02122, -9.03947],
+    [7.92946, -3.92636, -9.05715],
+    [8.00066, -3.74799, -8.97481],
+    [7.98556, -3.58264, -8.84467],
+    [7.8506, -3.44606, -8.87902],
+    [7.71579, -3.38272, -8.78906],
+    [7.5323, -3.38277, -8.69733],
+    [7.71197, -3.29194, -8.58222],
+    [7.67426, -3.13657, -8.39484],
+    [7.95778, -3.24758, -8.43349],
+    [7.90333, -3.41211, -8.68637],
+    [7.98556, -3.58264, -9.19533],
+    [8.07075, -3.76973, -9.36316],
+    [8.25711, -3.749, -9.62651],
+    [8.55385, -3.68497, -9.81238],
+    [8.6489, -3.26212, -9.85868],
+    [8.34862, -3.40721, -9.75032],
+    [8.11398, -3.52059, -9.51568],
+    [8.00578, -3.79731, -9.16927],
+    [7.95846, -3.95315, -9.2774],
+    [7.80975, -4.03594, -9.19985],
+    [7.6447, -4.07711, -9.27551],
+    [7.65763, -4.04392, -9.11403],
+    [7.85377, -4.00367, -8.89052],
+    [7.97726, -3.8896, -8.83923],
+    [8.04679, -3.72679, -8.74345],
+    [8.11398, -3.52059, -8.52432],
+    [8.34862, -3.40721, -8.28968],
+    [9.43555, -3.18814, -8.51212],
+    [8.94497, -3.4968, -8.18563],
+    [8.6489, -3.26212, -8.18132],
+    [9.23635, -2.97828, -8.39331],
+    [9.14851, -2.66591, -8.48221],
+    [8.72287, -2.10193, -8.67749],
+    [8.30243, -1.95207, -8.58436],
+    [7.90277, -1.82813, -8.64343],
+    [7.48498, -1.86776, -8.57072],
+    [7.07535, -1.94213, -8.59821],
+    [6.72221, -2.16595, -8.51937],
+    [6.3621, -2.38686, -8.59437],
+    [6.12469, -2.72966, -8.54536],
+    [8.60289, -2.55604, -8.24398],
+    [8.2335, -3.03812, -8.22356],
+    [8.59301, -2.90391, -8.17941],
+    [8.08106, -2.14186, -8.32446],
+    [7.72422, -2.03943, -8.36523],
+    [7.81096, -2.86917, -8.22806],
+    [7.39526, -2.15842, -8.29994],
+    [7.05551, -2.29038, -8.28463],
+    [6.71852, -2.5167, -8.27419],
+    [6.44811, -2.79597, -8.27401],
+    [7.35357, -3.46909, -8.60647],
+    [7.45444, -3.27727, -8.48301],
+    [7.35115, -3.0067, -8.25824],
+    [7.04709, -3.74026, -8.35327],
+    [6.79757, -3.93585, -8.2124],
+    [6.49834, -4.18609, -8.18498],
+    [6.58846, -4.51232, -8.19933],
+    [6.87777, -4.69214, -8.18304],
+    [7.20674, -4.89394, -8.18334],
+    [7.07605, -5.27575, -8.34733],
+    [6.80768, -5.3758, -8.56858],
+    [6.44837, -5.16605, -8.61996],
+    [6.18706, -4.83441, -8.56203],
+    [5.94765, -4.49681, -8.62624],
+    [5.84874, -4.09072, -8.57692],
+    [6.10669, -4.95223, -9.02],
+    [6.74171, -5.48907, -9.02],
+    [7.18207, -5.55978, -8.62441],
+    [7.59289, -5.5798, -8.54807],
+    [7.90113, -5.34388, -8.32298],
+    [8.34339, -5.14216, -8.27958],
+    [8.29548, -5.46749, -8.53158],
+    [7.95429, -5.6359, -8.67882],
+    [7.44011, -5.30628, -8.30191],
+    [7.63076, -4.94703, -8.17921],
+    [6.78586, -5.05987, -8.30844],
+    [6.4965, -4.84097, -8.32257],
+    [6.12179, -4.15717, -8.31773],
+    [6.25309, -4.51816, -8.32756],
+    [6.86452, -4.28621, -8.19236],
+    [6.59265, -3.1981, -8.17877],
+    [6.40152, -3.83809, -8.1874],
+    [6.16687, -3.07892, -8.33804],
+    [6.00561, -3.77364, -8.36056],
+    [5.75361, -3.74598, -8.69243],
+    [5.74493, -4.20352, -9.02],
+    [5.89602, -3.00807, -8.68394],
+    [6.0333, -2.60256, -9.02],
+    [6.63358, -2.02713, -9.02],
+    [7.41601, -1.74561, -9.02],
+    [8.2453, -1.80667, -9.02],
+    [8.96308, -2.76921, -9.74001],
+    [8.64526, -2.91211, -9.85718],
+    [8.4811, -2.2094, -9.65381],
+    [7.66583, -2.15199, -9.75206],
+    [8.0854, -2.12234, -9.7014],
+    [8.29191, -2.7641, -9.86307],
+    [8.31786, -3.12222, -9.81454],
+    [8.07621, -3.30899, -9.62703],
+    [7.93955, -3.4365, -9.36026],
+    [7.86471, -3.46487, -9.09628],
+    [7.70989, -3.40724, -9.13098],
+    [7.71752, -3.41387, -8.97195],
+    [7.56976, -3.42416, -8.8811],
+    [7.4303, -3.49832, -8.79491],
+    [7.33269, -3.63732, -8.72752],
+    [7.20336, -3.85249, -8.49098],
+    [7.22472, -3.65577, -8.53332],
+    [7.42078, -3.9143, -8.87558],
+    [7.56642, -4.04242, -8.81755],
+    [7.3096, -4.00503, -8.53176],
+    [7.13173, -4.05815, -8.34827],
+    [7.17521, -4.42636, -8.22803],
+    [7.6112, -4.13053, -8.62624],
+    [7.49732, -4.52879, -8.24497],
+    [7.84587, -4.60491, -8.21914],
+    [7.82743, -4.15051, -8.56519],
+    [8.03659, -4.08257, -8.49222],
+    [8.47597, -3.91254, -8.25092],
+    [8.21729, -3.91457, -8.42133],
+    [8.24873, -4.65949, -8.17943],
+    [8.74666, -4.20898, -8.17674],
+    [9.17584, -4.16579, -8.27532],
+    [8.71016, -4.90643, -8.28033],
+    [9.36222, -4.47138, -8.51686],
+    [8.73265, -5.28795, -8.58504],
+    [8.36404, -5.60852, -9.02],
+    [7.54018, -5.72121, -9.02],
+    [7.29081, -5.54842, -9.47861],
+    [6.85587, -5.34259, -9.54427],
+    [6.47252, -5.20188, -9.39721],
+    [6.26572, -4.86556, -9.5389],
+    [5.98505, -4.58995, -9.4019],
+    [5.93572, -4.20071, -9.54763],
+    [5.81917, -3.72382, -9.47279],
+    [6.14726, -3.49904, -9.76234],
+    [6.20615, -3.10271, -9.73281],
+    [6.47149, -2.88504, -9.79933],
+    [6.67462, -2.51198, -9.74836],
+    [7.15771, -2.21947, -9.73866],
+    [7.49, -2.51567, -9.86033],
+    [7.68398, -2.88407, -9.80282],
+    [7.72653, -3.14512, -9.63843],
+    [7.65011, -3.29507, -9.45402],
+    [6.99354, -3.30864, -9.78878],
+    [7.17375, -3.05875, -9.8027],
+    [7.4604, -3.39034, -9.4042],
+    [7.44938, -3.49966, -9.18179],
+    [7.39391, -3.6156, -9.04594],
+    [7.37512, -3.75899, -8.99327],
+    [7.4124, -3.88455, -9.09707],
+    [7.50261, -4.00354, -9.19962],
+    [7.28756, -3.73398, -9.39182],
+    [7.16158, -3.6145, -9.59259],
+    [6.96414, -3.85591, -9.75004],
+    [7.17441, -4.73743, -9.86297],
+    [6.87926, -4.463, -9.8609],
+    [7.45515, -4.0934, -9.45453],
+    [7.57417, -4.56878, -9.80543],
+    [7.80318, -4.12368, -9.41891],
+    [8.06683, -4.01939, -9.52276],
+    [7.86509, -4.84323, -9.8629],
+    [8.10042, -5.20919, -9.77159],
+    [8.54486, -5.14021, -9.70138],
+    [8.72929, -4.79936, -9.79213],
+    [8.35701, -4.09101, -9.76565],
+    [9.04054, -4.65031, -9.71191],
+    [8.8527, -3.96673, -9.86262],
+    [9.33277, -4.66289, -9.43009],
+    [9.53836, -4.48282, -9.02],
+    [9.27973, -3.83155, -9.73959],
+    [8.96315, -3.54227, -9.85275],
+    [8.96291, -3.1104, -9.82202],
+    [9.23635, -2.97828, -9.64669],
+    [9.15544, -2.53438, -9.43305],
+    [9.57796, -3.26749, -9.31634],
+    [9.42193, -2.88861, -8.677],
+    [9.58572, -3.23298, -8.77023],
+    [9.68577, -3.66446, -9.02],
+    [9.15625, -2.44519, -8.73391],
+    [8.97805, -2.19975, -9.02],
+]
+
+K1 = [
+    1.19742,
+    1.10354,
+    1.14907,
+    1.15043,
+    1.22354,
+    1.22235,
+    1.13188,
+    0.981901,
+    1.03604,
+    0.709188,
+    1.09286,
+    1.07003,
+    1.26782,
+    1.3122,
+    1.26756,
+    1.3689,
+    1.15674,
+    1.17528,
+    1.28998,
+    1.23027,
+    1.12868,
+    1.15578,
+    1.25699,
+    1.1553,
+    1.17413,
+    1.15094,
+    1.15178,
+    1.21847,
+    1.2516,
+    1.17151,
+    1.17063,
+    1.33213,
+    1.18518,
+    1.0682,
+    1.17914,
+    1.21917,
+    1.2068,
+    1.0939,
+    1.13594,
+    1.19896,
+    1.12807,
+    1.30628,
+    1.21965,
+    1.52805,
+    1.20057,
+    1.28683,
+    1.29944,
+    1.33911,
+    1.28139,
+    1.18256,
+    1.10645,
+    1.06408,
+    1.0965,
+    1.18692,
+    1.10563,
+    1.21843,
+    1.22667,
+    1.13631,
+    1.20817,
+    1.13895,
+    1.19749,
+    1.15447,
+    1.18275,
+    1.09933,
+    1.18072,
+    1.16824,
+    0.99584,
+    1.09059,
+    1.01944,
+    1.18948,
+    1.03335,
+    1.1381,
+    1.03862,
+    1.21733,
+    1.2433,
+    1.19621,
+    1.13219,
+    1.18533,
+    1.15925,
+    1.182,
+    1.21103,
+    1.10658,
+    1.0942,
+    1.17147,
+    1.42773,
+    1.30786,
+    1.29743,
+    1.31306,
+    1.23611,
+    1.3494,
+    1.26301,
+    1.28029,
+    1.32776,
+    1.1564,
+    1.28499,
+    1.14503,
+    1.21632,
+    1.147,
+    1.50722,
+    1.18236,
+    1.31852,
+    1.17454,
+    1.24319,
+    1.09401,
+    1.18864,
+    1.10312,
+    0.931669,
+    0.876142,
+    1.2934,
+    1.21907,
+    1.30991,
+    1.51383,
+    1.09556,
+    1.30842,
+    1.29534,
+    1.19195,
+    0.962355,
+    0.963581,
+    1.25778,
+    1.14618,
+    1.08882,
+    1.19339,
+    1.24819,
+    1.2945,
+    1.17345,
+    1.27354,
+    1.1939,
+    1.23823,
+    1.13651,
+    1.20865,
+    1.20307,
+    1.13204,
+    1.11798,
+    1.11248,
+    1.21338,
+    1.30081,
+    1.05123,
+    1.24533,
+    1.23076,
+    1.24697,
+    1.21668,
+    1.34948,
+    1.06382,
+    1.0813,
+    1.27874,
+    1.01942,
+    1.12397,
+    1.25103,
+    1.16397,
+    1.08262,
+    1.30112,
+    1.22445,
+    1.26206,
+    1.17346,
+    1.26302,
+    1.22153,
+    1.0977,
+    1.08502,
+    1.29874,
+    1.1887,
+    1.17321,
+    1.1826,
+    1.17089,
+    1.2635,
+    1.20194,
+    1.09826,
+    1.21022,
+    1.23322,
+    1.18322,
+    1.21803,
+    1.12576,
+    1.04465,
+    1.09941,
+    1.26061,
+    1.19788,
+    1.29197,
+    1.10013,
+    1.27175,
+    1.09435,
+    1.09918,
+    1.08359,
+    1.0781,
+    1.2261,
+    1.16435,
+    1.25847,
+    1.17829,
+    1.24583,
+    1.07368,
+    1.12846,
+    1.06213,
+    1.22504,
+    1.30253,
+    1.4652,
+    1.27216,
+    1.2538,
+    1.31984,
+    1.22178,
+    1.59261,
+    1.36179,
+    1.30396,
+    1.36935,
+    0.996679,
+    1.21832,
+    1.06071,
+    1.33719,
+    1.05711,
+    1.01937,
+    1.28109,
+    1.19835,
+    1.14849,
+    1.22351,
+    1.02332,
+    1.07756,
+    1.20856,
+    1.21726,
+    1.10843,
+    1.20263,
+    1.09455,
+    1.09018,
+    1.1698,
+    1.09742,
+    1.20776,
+    1.10128,
+    1.21941,
+    1.10173,
+    1.14295,
+    1.22707,
+    1.25119,
+    1.15338,
+    1.15773,
+    1.1574,
+    1.18209,
+    1.16355,
+    1.2526,
+    1.20632,
+    1.06499,
+    1.08241,
+    1.30988,
+    1.30657,
+    1.43131,
+    1.2878,
+    1.29887,
+    1.35942,
+    1.55406,
+    1.24562,
+    1.14184,
+    1.13441,
+    1.08653,
+    1.24455,
+    1.05094,
+    1.32982,
+    1.16057,
+    1.03679,
+    1.18101,
+    1.25019,
+    1.17951,
+    1.03869,
+    1.3036,
+    1.02111,
+    1.24628,
+    1.06374,
+    1.18218,
+    1.11238,
+    1.2232,
+    1.10736,
+    1.1374,
+    1.26377,
+    1.24702,
+    1.34437,
+    1.09683,
+    1.25885,
+    1.03085,
+]
+K2 = [
+    0.495172,
+    0.456066,
+    0.41051,
+    0.483741,
+    0.451438,
+    0.335015,
+    0.13779,
+    0.0845594,
+    -0.625154,
+    -0.718537,
+    -0.614467,
+    -0.637731,
+    -1.56218,
+    -2.5706,
+    -2.85071,
+    -2.20399,
+    -1.17888,
+    -1.02953,
+    -0.445578,
+    0.051206,
+    0.0952012,
+    0.114029,
+    -0.62022,
+    0.0170489,
+    0.307267,
+    0.338932,
+    0.345823,
+    0.330729,
+    0.308163,
+    0.441216,
+    0.502429,
+    0.416836,
+    0.479956,
+    0.485236,
+    0.440744,
+    0.334737,
+    -0.0410915,
+    -0.455159,
+    -0.752267,
+    -1.04928,
+    -1.06893,
+    -2.29096,
+    -2.26737,
+    -3.1572,
+    -3.08108,
+    -3.20892,
+    -3.27129,
+    -2.89255,
+    -2.53226,
+    -1.5429,
+    -0.436992,
+    0.108906,
+    0.372582,
+    0.322518,
+    0.474249,
+    0.456065,
+    0.457558,
+    0.482369,
+    0.45976,
+    0.491782,
+    0.436978,
+    0.442762,
+    0.432519,
+    0.478053,
+    0.453599,
+    0.223272,
+    -0.132486,
+    -0.689866,
+    0.0370908,
+    0.0362719,
+    0.10264,
+    0.163657,
+    0.154541,
+    0.372946,
+    0.432424,
+    0.319959,
+    0.250292,
+    0.368056,
+    0.481423,
+    0.406364,
+    0.292489,
+    0.0673104,
+    -0.29432,
+    -0.939232,
+    -1.927,
+    -2.18706,
+    -2.47478,
+    -2.65895,
+    -3.12768,
+    -3.2165,
+    -3.31111,
+    -3.16634,
+    -3.1795,
+    -2.78982,
+    -2.82076,
+    -2.61436,
+    -2.2993,
+    -1.76414,
+    -1.41035,
+    -1.06146,
+    -2.19168,
+    -2.71668,
+    -2.05913,
+    -0.924032,
+    -0.372202,
+    -0.0289572,
+    -0.472779,
+    -1.33054,
+    -2.76354,
+    -2.53466,
+    -2.94761,
+    -2.80399,
+    -3.08119,
+    -3.09044,
+    -2.86859,
+    -2.63001,
+    -1.46378,
+    -0.541119,
+    0.523248,
+    0.146024,
+    -0.0599811,
+    0.406023,
+    0.408329,
+    0.460156,
+    0.495234,
+    0.446228,
+    0.505498,
+    0.42382,
+    0.487574,
+    0.421683,
+    0.508657,
+    0.294492,
+    -0.255401,
+    0.144412,
+    0.34611,
+    0.370172,
+    -0.29446,
+    0.330497,
+    0.321012,
+    0.303055,
+    0.319245,
+    -1.94298,
+    -1.17325,
+    -0.470769,
+    -0.900235,
+    -0.145793,
+    0.156298,
+    0.109494,
+    0.10749,
+    0.1456,
+    0.340028,
+    0.495982,
+    0.438926,
+    0.499742,
+    0.444352,
+    0.518762,
+    0.494655,
+    0.479316,
+    0.443408,
+    0.500227,
+    0.394569,
+    0.330562,
+    0.48503,
+    0.451944,
+    0.327074,
+    0.12035,
+    0.351572,
+    0.359925,
+    0.363342,
+    0.361338,
+    -0.130087,
+    0.0808711,
+    0.204982,
+    0.366471,
+    0.412965,
+    0.457275,
+    0.482909,
+    0.458812,
+    0.485696,
+    0.494342,
+    0.477924,
+    0.4715,
+    0.312006,
+    0.135443,
+    0.392,
+    0.343122,
+    0.354555,
+    0.083377,
+    -0.373596,
+    -0.99949,
+    -2.46905,
+    -3.16248,
+    -3.25642,
+    -3.24827,
+    -3.01846,
+    -2.82295,
+    -2.46904,
+    -1.7479,
+    -1.72326,
+    -2.94808,
+    -2.84588,
+    -1.33981,
+    -0.83769,
+    -0.344284,
+    -2.09224,
+    -0.34194,
+    -0.169117,
+    -1.71205,
+    -1.37899,
+    -0.428884,
+    -1.12172,
+    0.0145813,
+    0.0721618,
+    0.314444,
+    0.301532,
+    0.475807,
+    0.452342,
+    0.49173,
+    0.481624,
+    0.437383,
+    0.488331,
+    0.419365,
+    0.50285,
+    0.417895,
+    0.472651,
+    0.448635,
+    0.294955,
+    0.347867,
+    0.331375,
+    0.349691,
+    0.370979,
+    0.0744396,
+    -0.476447,
+    -1.13098,
+    -1.83794,
+    -0.380967,
+    -0.380265,
+    -2.09781,
+    -2.89157,
+    -3.2824,
+    -3.26186,
+    -3.17371,
+    -2.93098,
+    -2.45546,
+    -1.26459,
+    -0.664481,
+    0.0233179,
+    -0.0243138,
+    -1.74989,
+    -0.359187,
+    -1.86717,
+    -1.40881,
+    0.0160553,
+    0.310217,
+    0.373326,
+    0.344446,
+    -0.388131,
+    0.349189,
+    0.100287,
+    0.429005,
+    0.464987,
+    0.349951,
+    0.130455,
+    0.246086,
+    0.425423,
+    0.423052,
+    0.475293,
+    0.513705,
+    0.534168,
+    0.49863,
+    0.471324,
+    0.499803,
+]
+
+if __name__ == "__main__":
+    main()