diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f350148..7ea68d8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,10 +38,6 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Run MySQL - run: | - docker-compose up -d mysql - - name: Run image uses: abatilo/actions-poetry@v2 with: diff --git a/cnceye/edge/__init__.py b/cnceye/edge/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/cnceye/edge/find.py b/cnceye/edge/find.py deleted file mode 100644 index d0c7706..0000000 --- a/cnceye/edge/find.py +++ /dev/null @@ -1,158 +0,0 @@ -import csv -import sqlite3 -import mysql.connector -from mysql.connector.errors import IntegrityError - - -def find_edge(filepath: str, minimal_diff: float = 5.0): - # read csv - with open(filepath, newline="") as csvfile: - reader = csv.reader(csvfile, delimiter=",") - data = list(reader) - - previous_distance = "" - - # x, y, z, distance - for row in data: - distance = row[3] - if check_if_edge_is_found(distance, previous_distance, minimal_diff): - return row - previous_distance = distance - - -def find_edges(process_id: int, mysql_config: dict, minimal_diff: float = 5.0): - cnx = mysql.connector.connect(**mysql_config, database="coord") - cursor = cnx.cursor() - query = "SELECT * FROM sensor WHERE process_id = %s" - cursor.execute(query, (process_id,)) - rows = cursor.fetchall() - previous_distance = "" - edges = [] - for row in rows: - # x, y, z, distance - distance = row[5] - if check_if_edge_is_found(distance, previous_distance, minimal_diff): - edges.append(row) - previous_distance = distance - - # remove the starting point - edges.pop(0) - - cursor.close() - cnx.close() - return edges - - -def find_edges_from_sqlite(database_path: str, minimal_diff: float = 5.0): - conn = sqlite3.connect(database_path) - cur = conn.cursor() - previous_distance = "" - edges = [] - for row in cur.execute("SELECT * FROM coord"): - # x, y, z, distance - distance = row[4] - if check_if_edge_is_found(distance, previous_distance, minimal_diff): - edges.append(row) - previous_distance = distance - - # remove the starting point - edges.pop(0) - return edges - - -def check_if_edge_is_found( - distance: str, prev_distance: str or float, minimal_diff: float = 5.0 -): - if distance == "" and prev_distance == "": - return False - if distance == "" or prev_distance == "": - return True - if abs(float(distance) - float(prev_distance)) > minimal_diff: - return True - return False - - -def find_lines(filepath: str, edge_count: int, minimal_diff: float = 5.0): - # read csv - with open(filepath, newline="") as csvfile: - reader = csv.reader(csvfile, delimiter=",") - data = list(reader) - - lines = [] - line = [] - previous_distance = "" - previous_row = None - - # x, y, z, distance - for row in data: - distance = row[3] - if check_if_edge_is_found(distance, previous_distance, minimal_diff): - if distance == "": - line.append(previous_row) - else: - line.append(row) - - if len(line) == edge_count: - lines.append(line) - line = [] - previous_distance = distance - previous_row = row - - return lines - - -def get_edge_data(model_id: int, mysql_config): - cnx = mysql.connector.connect(**mysql_config, database="coord") - cursor = cnx.cursor() - query = "SELECT id,x,y,z FROM edge WHERE model_id = %s" - cursor.execute(query, (model_id,)) - edges = cursor.fetchall() - cursor.close() - cnx.close() - return edges - - -def identify_close_edge(edges, measured_edges, distance_threshold=2.5): - update_list = [] - for id, x, y, z in edges: - min_distance = 999999.0 - data_with_min_distance = [] - for measured_edge in measured_edges: - rx = measured_edge[1] - ry = measured_edge[2] - distance = ((x - rx) ** 2 + (y - ry) ** 2) ** 0.5 - if distance < min_distance: - min_distance = distance - data_with_min_distance = (rx, ry, z, id) - - if min_distance <= distance_threshold: - update_list.append(data_with_min_distance) - - return update_list - - -def add_measured_edge_coord(edge_list: list, mysql_config: dict): - cnx = mysql.connector.connect(**mysql_config, database="coord") - cursor = cnx.cursor() - query = "UPDATE edge SET rx = %s, ry = %s, rz = %s WHERE id = %s" - try: - cursor.executemany(query, edge_list) - except IntegrityError: - print("Error: unable to import lines") - cnx.commit() - cursor.close() - cnx.close() - - -def process_edges( - model_id: int, process_id: int, mysql_config: dict, minimal_diff: float = 5.0 -) -> int: - """ - Identify the edges from the sensor data and add the coordinates to the database - """ - measured_edges = find_edges(process_id, mysql_config, minimal_diff) - edge_data = get_edge_data(model_id, mysql_config) - update_list = identify_close_edge(edge_data, measured_edges) - add_measured_edge_coord(update_list, mysql_config) - edge_count = len(edge_data) - return edge_count diff --git a/cnceye/shape.py b/cnceye/shape.py new file mode 100644 index 0000000..c8af46e --- /dev/null +++ b/cnceye/shape.py @@ -0,0 +1,160 @@ +import trimesh +import numpy as np +from trimesh.graph import face_adjacency + + +class Shape: + def __init__(self, stl_file_path: str): + self.mesh = trimesh.load(stl_file_path) + + def get_unique_z_values_of_visiable_vertices(self): + # Get the normals of the facets + facet_normals = self.mesh.face_normals + + # Find the indices of facets facing "up" (positive z-direction) + upward_facing_indices = np.where(facet_normals[:, 2] > 0)[0] + + # Get the unique vertices associated with upward-facing facets + visible_vertices = np.unique(self.mesh.faces[upward_facing_indices]) + + # Extract the coordinates of the visible vertices + visible_vertex_coordinates = self.mesh.vertices[visible_vertices] + + # get unique z values + unique_z = np.unique(visible_vertex_coordinates[:, 2]) + return unique_z + + def get_visible_facets(self): + # Get the normals of the facets + facet_normals = self.mesh.face_normals + + # Find the indices of facets facing "up" (positive z-direction) + upward_facing_indices = np.where(facet_normals[:, 2] > 0)[0] + + return upward_facing_indices + + def are_coplanar(self, facet_idx0, facet_idx1, tolerance=1e-6): + facet0 = self.mesh.vertices[self.mesh.faces[facet_idx0]] + facet1 = self.mesh.vertices[self.mesh.faces[facet_idx1]] + # Calculate the normal vector for each facet + normal0 = np.cross(facet0[1] - facet0[0], facet0[2] - facet0[0]) + normal1 = np.cross(facet1[1] - facet1[0], facet1[2] - facet1[0]) + + # Check if the normal vectors are parallel + if np.all( + np.isclose( + normal0 / np.linalg.norm(normal0), + normal1 / np.linalg.norm(normal1), + atol=tolerance, + ) + ): + # if np.allclose(normal0, normal1): + # Check if the facets are coplanar + if np.all(np.abs(np.dot(facet1[0] - facet0[0], normal0)) < 1e-6): + # The facets are coplanar + return True + else: + # The facets are parallel but not coplanar + return False + else: + # The facets are not coplanar + return False + + def group_by_coplanar_facets(self, facet_indices: np.ndarray): + """ + Group facets that are coplanar \n + Return a list of lists of coplanar facets + """ + coplanar_facets = [[facet_indices[0]]] + for facet_idx in facet_indices[1:]: + is_coplanar = False + for i, coplanar_facet in enumerate(coplanar_facets): + if self.are_coplanar(facet_idx, coplanar_facet[0]): + coplanar_facets[i].append(facet_idx) + is_coplanar = True + break + if not is_coplanar: + coplanar_facets.append([facet_idx]) + is_coplanar = False + + return coplanar_facets + + def get_lines_and_arcs(self, decimal_places: int = 3, arc_threshold: int = 1): + shapes = self.get_shapes() + lines = [] + arcs = [] + + previous_length = 0 + for coplanar_shapes in shapes: + line_group = [] + arc_group = [] + for i in range(len(coplanar_shapes)): + point0 = self.mesh.vertices[coplanar_shapes[i][0]] + point1 = self.mesh.vertices[coplanar_shapes[i][1]] + point = np.array([point0, point1]) + line_length = np.linalg.norm(point0 - point1) + if line_length > arc_threshold: + # line + line_group.append(point) + else: + # arc + # if close to previous length, add to previous arc + if np.isclose(line_length, previous_length, atol=1e-3): + arc_group[-1] = np.vstack((arc_group[-1], point1)) + else: + arc_group.append(point) + + previous_length = line_length + + # round to decimal places + line_group = round_shape_values(line_group, decimal_places) + arc_group = round_shape_values(arc_group, decimal_places) + + if line_group: + lines.append(line_group) + if arc_group: + arcs.append(arc_group) + + return lines, arcs + + def get_shapes(self): + """ + Extract lines and arcs from an STL file \n + If the line length is less than 1, it is considered an arc. \n + if the line length for an arc is close to the previous arc length, + it is considered part of the previous arc. \n + Note: This is not a robust algorithm. + """ + visible_facet_indices = self.get_visible_facets() + group_facets = self.group_by_coplanar_facets(visible_facet_indices) + adjacency = face_adjacency(self.mesh.faces) + + shapes = [] + for coplanar_facets in group_facets: + shapes_on_coplanar_facet = [] + for pair in adjacency: + pair0_in_group = pair[0] in coplanar_facets + pair1_in_group = pair[1] in coplanar_facets + if pair0_in_group != pair1_in_group: + common_edge_vertices = list( + set(self.mesh.faces[pair[0]]) & set(self.mesh.faces[pair[1]]) + ) + if pair0_in_group: + face_id = pair[1] + else: + face_id = pair[0] + common_edge_vertices.append(face_id) + shapes_on_coplanar_facet.append(common_edge_vertices) + + # order by face index + shapes_on_coplanar_facet.sort(key=lambda x: x[-1]) + shapes.append(shapes_on_coplanar_facet) + + return shapes + + +def round_shape_values(shapes: np.ndarray, decimal_places: int = 3): + for i in range(len(shapes)): + shapes[i] = np.round(shapes[i], decimals=decimal_places) + + return shapes diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 14e7492..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: "3.9" -services: - mysql: - image: mysql:latest - environment: - MYSQL_ROOT_PASSWORD: root - MYSQL_DATABASE: coord - ports: - - 3306:3306 - volumes: - - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql \ No newline at end of file diff --git a/mysql/init.sql b/mysql/init.sql deleted file mode 100644 index d199970..0000000 --- a/mysql/init.sql +++ /dev/null @@ -1,92 +0,0 @@ -USE coord; -CREATE TABLE IF NOT EXISTS `point` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `x` FLOAT NOT NULL, - `y` FLOAT NOT NULL, - `z` FLOAT NOT NULL, - `point_id` varchar(255) NOT NULL, - `rx` FLOAT, - `ry` FLOAT, - `rz` FLOAT, - `img_path` varchar(255), - `is_checked` TINYINT(1) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - UNIQUE KEY `point_id` (`point_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; - -CREATE TABLE IF NOT EXISTS `line` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `a` varchar(255) NOT NULL, - `b` varchar(255) NOT NULL, - `length` FLOAT NOT NULL, - `rlength` FLOAT, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; - -CREATE TABLE IF NOT EXISTS `arc` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `a` varchar(255) NOT NULL, - `b` varchar(255) NOT NULL, - `c` varchar(255) NOT NULL, - `d` varchar(255) NOT NULL, - `radius` FLOAT NOT NULL, - `cx` FLOAT NOT NULL, - `cy` FLOAT NOT NULL, - `cz` FLOAT NOT NULL, - `rradius` FLOAT, - `rcx` FLOAT, - `rcy` FLOAT, - `rcz` FLOAT, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; - -CREATE TABLE IF NOT EXISTS `edge` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `side_id` int(11) unsigned NOT NULL, - `x` FLOAT NOT NULL, - `y` FLOAT NOT NULL, - `z` FLOAT NOT NULL, - `rx` FLOAT, - `ry` FLOAT, - `rz` FLOAT, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; - -CREATE TABLE IF NOT EXISTS `side` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `x0` FLOAT NOT NULL, - `y0` FLOAT NOT NULL, - `z0` FLOAT NOT NULL, - `x1` FLOAT NOT NULL, - `y1` FLOAT NOT NULL, - `z1` FLOAT NOT NULL, - `pair_id` int(11) unsigned, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; - -CREATE TABLE IF NOT EXISTS `pair` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `type` varchar(255) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; - -CREATE TABLE IF NOT EXISTS `sensor` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `x` FLOAT NOT NULL, - `y` FLOAT NOT NULL, - `z` FLOAT NOT NULL, - `process_id` int(11) unsigned NOT NULL, - `distance` FLOAT NOT NULL, - `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; - - -CREATE TABLE IF NOT EXISTS `process` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `status` varchar(255) NOT NULL, - `error` varchar(255), - `start` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `end` TIMESTAMP, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1; \ No newline at end of file diff --git a/mysql/reset.sql b/mysql/reset.sql deleted file mode 100644 index 4414cae..0000000 --- a/mysql/reset.sql +++ /dev/null @@ -1,6 +0,0 @@ -TRUNCATE `point`; -TRUNCATE `line`; -TRUNCATE `arc`; -TRUNCATE `edge`; -TRUNCATE `side`; -TRUNCATE `sensor`; \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 48cfc62..32fb190 100644 --- a/poetry.lock +++ b/poetry.lock @@ -136,44 +136,50 @@ files = [ ] [[package]] -name = "mysql-connector-python" -version = "8.1.0" -description = "MySQL driver written in Python" +name = "numpy" +version = "1.26.2" +description = "Fundamental package for array computing in Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "mysql-connector-python-8.1.0.tar.gz", hash = "sha256:78a43eeb2b845986dc769ab611e3c480991c8037c94aee67ee6842d1f7e961a9"}, - {file = "mysql_connector_python-8.1.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:4f58e1d41b3ba04281099884421c3a63589204b2cf40e473c5dbebbc26971017"}, - {file = "mysql_connector_python-8.1.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:8062c11619bc48baf9ada3f85d85832aec5e57359eb11ed9e7d75ddcce81721a"}, - {file = "mysql_connector_python-8.1.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:5f1cdf9d3ed2f3c70a91c4b94d3ab3b2890c477a61b4085bb89d2275c50e1e3d"}, - {file = "mysql_connector_python-8.1.0-cp310-cp310-manylinux_2_17_x86_64.whl", hash = "sha256:556f83cfc3e1f3e3db0080bb19ca50650815551ef7e10518053fe2ba76d2e59e"}, - {file = "mysql_connector_python-8.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:dd0005e9b7e54c700745416ecf26435c69687d5234eef9ff11cf85a7d76945e2"}, - {file = "mysql_connector_python-8.1.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1d292d8ee08a3e0103f3e9aba81f292c12c244c1d5345168375bf6842b2b3e9b"}, - {file = "mysql_connector_python-8.1.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:64f4d7f7c60e2fe5a01d9e7915634d05a350bd866332ea4eab281b29db190e2b"}, - {file = "mysql_connector_python-8.1.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:7f1cbc06411115c318af775291386ed1494302e05b5c45da73f01593c0827bc1"}, - {file = "mysql_connector_python-8.1.0-cp311-cp311-manylinux_2_17_x86_64.whl", hash = "sha256:89151683654748f4de59cd4cf04102b6180976923f1db9921b87cff2c2da7b1d"}, - {file = "mysql_connector_python-8.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:f36a1a308d0d0d6202fea2e51741b5265f60206be331cfbb32f2f5bf62a20359"}, - {file = "mysql_connector_python-8.1.0-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:f8160777788c7e561f9d7f93eff45776031c83aa2f02a0d8c138d8f9c9bd088e"}, - {file = "mysql_connector_python-8.1.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:e3a2c2b398af1c5f0cbc1b1935f98bb5a7da4f178b2e73f0851872fbb37e66cc"}, - {file = "mysql_connector_python-8.1.0-cp38-cp38-manylinux_2_17_x86_64.whl", hash = "sha256:f2ac6d43fc5a01e574fcc2a6b732cc2374e6ce576ee039cc2051f18d2daafd6d"}, - {file = "mysql_connector_python-8.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22259479bdba53e0eb64325d5d97d7ecae35e729a8b39822c16729476ba2cd92"}, - {file = "mysql_connector_python-8.1.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:816b46c9dc250a0e59d11a902e187be190dae992a2b802512b888930db380487"}, - {file = "mysql_connector_python-8.1.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:90adf52cdb25a7adc18da0cc6c5454709598af0e87343e39ab2c11d7dc5aaf34"}, - {file = "mysql_connector_python-8.1.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:76432810ee58abda81e0a34666f86aba69a7ded58f164a1d19835dba70b1451b"}, - {file = "mysql_connector_python-8.1.0-cp39-cp39-manylinux_2_17_x86_64.whl", hash = "sha256:9cc256eaf55a7dd706ae514bebb863d3e426bd12686b88e284bdad6c37bf6dde"}, - {file = "mysql_connector_python-8.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:40e3b5d60dbc5446ccd1901eb3db4c9b1ad07a490f4e0fc96e7ac53a6fe9b7bc"}, - {file = "mysql_connector_python-8.1.0-py2.py3-none-any.whl", hash = "sha256:7abe27b88ae1354433713fc289ed663cc04f7b75ea818a2b18067c3a736b0975"}, + {file = "numpy-1.26.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3703fc9258a4a122d17043e57b35e5ef1c5a5837c3db8be396c82e04c1cf9b0f"}, + {file = "numpy-1.26.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cc392fdcbd21d4be6ae1bb4475a03ce3b025cd49a9be5345d76d7585aea69440"}, + {file = "numpy-1.26.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36340109af8da8805d8851ef1d74761b3b88e81a9bd80b290bbfed61bd2b4f75"}, + {file = "numpy-1.26.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcc008217145b3d77abd3e4d5ef586e3bdfba8fe17940769f8aa09b99e856c00"}, + {file = "numpy-1.26.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3ced40d4e9e18242f70dd02d739e44698df3dcb010d31f495ff00a31ef6014fe"}, + {file = "numpy-1.26.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b272d4cecc32c9e19911891446b72e986157e6a1809b7b56518b4f3755267523"}, + {file = "numpy-1.26.2-cp310-cp310-win32.whl", hash = "sha256:22f8fc02fdbc829e7a8c578dd8d2e15a9074b630d4da29cda483337e300e3ee9"}, + {file = "numpy-1.26.2-cp310-cp310-win_amd64.whl", hash = "sha256:26c9d33f8e8b846d5a65dd068c14e04018d05533b348d9eaeef6c1bd787f9919"}, + {file = "numpy-1.26.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b96e7b9c624ef3ae2ae0e04fa9b460f6b9f17ad8b4bec6d7756510f1f6c0c841"}, + {file = "numpy-1.26.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aa18428111fb9a591d7a9cc1b48150097ba6a7e8299fb56bdf574df650e7d1f1"}, + {file = "numpy-1.26.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06fa1ed84aa60ea6ef9f91ba57b5ed963c3729534e6e54055fc151fad0423f0a"}, + {file = "numpy-1.26.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96ca5482c3dbdd051bcd1fce8034603d6ebfc125a7bd59f55b40d8f5d246832b"}, + {file = "numpy-1.26.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:854ab91a2906ef29dc3925a064fcd365c7b4da743f84b123002f6139bcb3f8a7"}, + {file = "numpy-1.26.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f43740ab089277d403aa07567be138fc2a89d4d9892d113b76153e0e412409f8"}, + {file = "numpy-1.26.2-cp311-cp311-win32.whl", hash = "sha256:a2bbc29fcb1771cd7b7425f98b05307776a6baf43035d3b80c4b0f29e9545186"}, + {file = "numpy-1.26.2-cp311-cp311-win_amd64.whl", hash = "sha256:2b3fca8a5b00184828d12b073af4d0fc5fdd94b1632c2477526f6bd7842d700d"}, + {file = "numpy-1.26.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a4cd6ed4a339c21f1d1b0fdf13426cb3b284555c27ac2f156dfdaaa7e16bfab0"}, + {file = "numpy-1.26.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5d5244aabd6ed7f312268b9247be47343a654ebea52a60f002dc70c769048e75"}, + {file = "numpy-1.26.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a3cdb4d9c70e6b8c0814239ead47da00934666f668426fc6e94cce869e13fd7"}, + {file = "numpy-1.26.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa317b2325f7aa0a9471663e6093c210cb2ae9c0ad824732b307d2c51983d5b6"}, + {file = "numpy-1.26.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:174a8880739c16c925799c018f3f55b8130c1f7c8e75ab0a6fa9d41cab092fd6"}, + {file = "numpy-1.26.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f79b231bf5c16b1f39c7f4875e1ded36abee1591e98742b05d8a0fb55d8a3eec"}, + {file = "numpy-1.26.2-cp312-cp312-win32.whl", hash = "sha256:4a06263321dfd3598cacb252f51e521a8cb4b6df471bb12a7ee5cbab20ea9167"}, + {file = "numpy-1.26.2-cp312-cp312-win_amd64.whl", hash = "sha256:b04f5dc6b3efdaab541f7857351aac359e6ae3c126e2edb376929bd3b7f92d7e"}, + {file = "numpy-1.26.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4eb8df4bf8d3d90d091e0146f6c28492b0be84da3e409ebef54349f71ed271ef"}, + {file = "numpy-1.26.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1a13860fdcd95de7cf58bd6f8bc5a5ef81c0b0625eb2c9a783948847abbef2c2"}, + {file = "numpy-1.26.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64308ebc366a8ed63fd0bf426b6a9468060962f1a4339ab1074c228fa6ade8e3"}, + {file = "numpy-1.26.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baf8aab04a2c0e859da118f0b38617e5ee65d75b83795055fb66c0d5e9e9b818"}, + {file = "numpy-1.26.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d73a3abcac238250091b11caef9ad12413dab01669511779bc9b29261dd50210"}, + {file = "numpy-1.26.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b361d369fc7e5e1714cf827b731ca32bff8d411212fccd29ad98ad622449cc36"}, + {file = "numpy-1.26.2-cp39-cp39-win32.whl", hash = "sha256:bd3f0091e845164a20bd5a326860c840fe2af79fa12e0469a12768a3ec578d80"}, + {file = "numpy-1.26.2-cp39-cp39-win_amd64.whl", hash = "sha256:2beef57fb031dcc0dc8fa4fe297a742027b954949cabb52a2a376c144e5e6060"}, + {file = "numpy-1.26.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1cc3d5029a30fb5f06704ad6b23b35e11309491c999838c31f124fee32107c79"}, + {file = "numpy-1.26.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94cc3c222bb9fb5a12e334d0479b97bb2df446fbe622b470928f5284ffca3f8d"}, + {file = "numpy-1.26.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe6b44fb8fcdf7eda4ef4461b97b3f63c466b27ab151bec2366db8b197387841"}, + {file = "numpy-1.26.2.tar.gz", hash = "sha256:f65738447676ab5777f11e6bbbdb8ce11b785e105f690bc45966574816b6d3ea"}, ] -[package.dependencies] -protobuf = ">=4.21.1,<=4.21.12" - -[package.extras] -compression = ["lz4 (>=2.1.6,<=4.3.2)", "zstandard (>=0.12.0,<=0.19.0)"] -dns-srv = ["dnspython (>=1.16.0,<=2.3.0)"] -gssapi = ["gssapi (>=1.6.9,<=1.8.2)"] -opentelemetry = ["Deprecated (>=1.2.6)", "typing-extensions (>=3.7.4)", "zipp (>=0.5)"] - [[package]] name = "packaging" version = "23.1" @@ -226,29 +232,6 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] -[[package]] -name = "protobuf" -version = "4.21.12" -description = "" -optional = false -python-versions = ">=3.7" -files = [ - {file = "protobuf-4.21.12-cp310-abi3-win32.whl", hash = "sha256:b135410244ebe777db80298297a97fbb4c862c881b4403b71bac9d4107d61fd1"}, - {file = "protobuf-4.21.12-cp310-abi3-win_amd64.whl", hash = "sha256:89f9149e4a0169cddfc44c74f230d7743002e3aa0b9472d8c28f0388102fc4c2"}, - {file = "protobuf-4.21.12-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:299ea899484ee6f44604deb71f424234f654606b983cb496ea2a53e3c63ab791"}, - {file = "protobuf-4.21.12-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:d1736130bce8cf131ac7957fa26880ca19227d4ad68b4888b3be0dea1f95df97"}, - {file = "protobuf-4.21.12-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:78a28c9fa223998472886c77042e9b9afb6fe4242bd2a2a5aced88e3f4422aa7"}, - {file = "protobuf-4.21.12-cp37-cp37m-win32.whl", hash = "sha256:3d164928ff0727d97022957c2b849250ca0e64777ee31efd7d6de2e07c494717"}, - {file = "protobuf-4.21.12-cp37-cp37m-win_amd64.whl", hash = "sha256:f45460f9ee70a0ec1b6694c6e4e348ad2019275680bd68a1d9314b8c7e01e574"}, - {file = "protobuf-4.21.12-cp38-cp38-win32.whl", hash = "sha256:6ab80df09e3208f742c98443b6166bcb70d65f52cfeb67357d52032ea1ae9bec"}, - {file = "protobuf-4.21.12-cp38-cp38-win_amd64.whl", hash = "sha256:1f22ac0ca65bb70a876060d96d914dae09ac98d114294f77584b0d2644fa9c30"}, - {file = "protobuf-4.21.12-cp39-cp39-win32.whl", hash = "sha256:27f4d15021da6d2b706ddc3860fac0a5ddaba34ab679dc182b60a8bb4e1121cc"}, - {file = "protobuf-4.21.12-cp39-cp39-win_amd64.whl", hash = "sha256:237216c3326d46808a9f7c26fd1bd4b20015fb6867dc5d263a493ef9a539293b"}, - {file = "protobuf-4.21.12-py2.py3-none-any.whl", hash = "sha256:a53fd3f03e578553623272dc46ac2f189de23862e68565e83dde203d41b76fc5"}, - {file = "protobuf-4.21.12-py3-none-any.whl", hash = "sha256:b98d0148f84e3a3c569e19f52103ca1feacdac0d2df8d6533cf983d1fda28462"}, - {file = "protobuf-4.21.12.tar.gz", hash = "sha256:7cd532c4566d0e6feafecc1059d04c7915aec8e182d1cf7adee8b24ef1e2e6ab"}, -] - [[package]] name = "pytest" version = "7.4.2" @@ -287,6 +270,25 @@ pytest = ">=4.6" [package.extras] testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] +[[package]] +name = "rtree" +version = "1.1.0" +description = "R-Tree spatial index for Python GIS" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Rtree-1.1.0-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:5dc612959233cf07f31c8f1a4cf1587eea86dc2fc6d6938f35f28d312bbbbd3e"}, + {file = "Rtree-1.1.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:eac35fc095e36f5e5678f7777f296b6a076332c65cfbe00e5cd54b0518f6d71f"}, + {file = "Rtree-1.1.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:91d3e4b19efa77fc3c09fbbbed48c588bfa056c8b73b5bd084fb0d2d37654775"}, + {file = "Rtree-1.1.0-py3-none-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f1787187b7d74845484e2da029775928ac6af2d453d401e0082022c6552c49b1"}, + {file = "Rtree-1.1.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:96307058e0149b6124b5af1d48a145b3c1e0086db44de50b435f173e934fc510"}, + {file = "Rtree-1.1.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:22c670ed503de4f42789a7ca1554b219d5820133edaf2a28a051bad2ac90bbca"}, + {file = "Rtree-1.1.0-py3-none-musllinux_1_1_i686.whl", hash = "sha256:818dde0ef54166edfb438a3bbf97bcc2eb0b984ab9ec5e7d20779479e456bfad"}, + {file = "Rtree-1.1.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:696a5f3ecf8b622ab5827e107e762ecffa0555944433f2824dd7f46b4afc410b"}, + {file = "Rtree-1.1.0-py3-none-win_amd64.whl", hash = "sha256:d346ab57eabee139890a51bf7e02c17c5bcbff68db84e1571ed5247fe108b8e7"}, + {file = "Rtree-1.1.0.tar.gz", hash = "sha256:6f8ee504dde5d005b25b08aaf5be0b3404af3ad5fece6e1ddcde35908a798a95"}, +] + [[package]] name = "ruff" version = "0.0.280" @@ -313,7 +315,27 @@ files = [ {file = "ruff-0.0.280.tar.gz", hash = "sha256:581c43e4ac5e5a7117ad7da2120d960a4a99e68ec4021ec3cd47fe1cf78f8380"}, ] +[[package]] +name = "trimesh" +version = "4.0.5" +description = "Import, export, process, analyze and view triangular meshes." +optional = false +python-versions = ">=3.7" +files = [ + {file = "trimesh-4.0.5-py3-none-any.whl", hash = "sha256:d139a9108fc7d68a9cd3f5788528eadc20f25a10ae915922b4a2768e0b23d943"}, + {file = "trimesh-4.0.5.tar.gz", hash = "sha256:b9bfcfec03b70ab4d21f055df1ab73e8740dd0bc8fd5648273eef8fec76cddf9"}, +] + +[package.dependencies] +numpy = "*" + +[package.extras] +all = ["trimesh[easy,recommend,test]"] +easy = ["chardet", "colorlog", "embreex", "httpx", "jsonschema", "lxml", "mapbox-earcut", "networkx", "pillow", "pycollada", "rtree", "scipy", "setuptools", "shapely", "svg.path", "xxhash"] +recommend = ["glooey", "manifold3d", "meshio", "psutil", "pyglet (<2)", "python-fcl", "scikit-image", "sympy", "vhacdx", "xatlas"] +test = ["black", "coveralls", "ezdxf", "matplotlib", "mypy", "pyinstrument", "pymeshlab", "pytest", "pytest-cov", "ruff"] + [metadata] lock-version = "2.0" python-versions = ">=3.11,<3.13" -content-hash = "136a7c1fd589bc1d7a1555a1d13d732ee938de5ff24b2ae74a98dd519b18075a" +content-hash = "d7fa4333381913b4db438325584c855af2255316b72d2f5d3ce8b4af1d62a4cb" diff --git a/pyproject.toml b/pyproject.toml index 5c07c38..ccdd867 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,9 @@ keywords = ["cnc", "cmm", "milling", "gcode"] [tool.poetry.dependencies] python = ">=3.11,<3.13" -mysql-connector-python = "^8.1.0" +trimesh = "^4.0.5" +numpy = "^1.26.2" +rtree = "^1.1.0" [tool.poetry.group.dev.dependencies] diff --git a/scripts/b_measure.py b/scripts/b_measure.py new file mode 100644 index 0000000..17631dc --- /dev/null +++ b/scripts/b_measure.py @@ -0,0 +1,113 @@ +""" +Simulate the measurement of the 3D model by moving the sensor with G-code +""" +import bpy +from mathutils import Vector +import sqlite3 +import csv +import sys +import random + +test_file = "" + +# import stl file +bpy.ops.import_mesh.stl(filepath=f"{test_file}.STL") + +# Get the active object (the 3D model) +obj = bpy.data.objects[test_file] + +ray_direction = Vector((0, 0, -1)) + +# x, y, z, distance +data = [] +current_data = 100000 +threshold = 100 + +# Ensure the object has a mesh +assert obj.type == "MESH" + + +def distance_to_analog_output(distance: float): + distance = distance * 135 # distance to analog output + # add noise + distance = distance + (distance * 0.001 * (2 * random.random() - 1)) + return round(distance) + + +def load_gcode(filepath: str): + with open(filepath, newline="") as csvfile: + reader = csv.reader(csvfile, delimiter=" ") + gcode = list(reader) + gcode = gcode[3:-2] + return gcode + + +def move_start_point(_start_point, xyz, feedrate: float): + """ + Move the start point to the given direction + _start_point: Vector (x, y, z) (relative to obj.location) + xyz: tuple (x, y, z) in mm + feedrate: float (mm/min) + sensor response time is 10ms + """ + global current_data + one_step_distance = feedrate / 60 * 0.01 # m/step + destination = Vector(tuple([x for x in xyz])) + total_distance_to_move = (destination - _start_point).length + loop_count = int(total_distance_to_move // one_step_distance) + move_vector = (destination - _start_point) / loop_count + for _ in range(loop_count): + distance = 140 # 140 mm + # Calculate the intersection point with the face + (hit, intersection_point, *_) = obj.ray_cast(_start_point, ray_direction) + + if hit: + distance = start_point[2] - intersection_point[2] + + # m to mm and round to 3 decimal places + xyz = [_start_point.x, _start_point.y, _start_point.z] + xyz = [round(x, 3) for x in xyz] + + _sensor_data = distance_to_analog_output(distance) + if abs(_sensor_data - current_data) > threshold: + data.append([*xyz, _sensor_data]) + print(_sensor_data, current_data) + current_data = _sensor_data + _start_point = _start_point + move_vector + + return destination # _start_point not may not become exactly the destination + + +def row_to_xyz_feedrate(row): + x = float(row[1][1:]) + y = float(row[2][1:]) + feedrate = float(row[3][1:]) + return (x, y, feedrate) + + +# get filepath from arguments +argv = sys.argv +argv = argv[argv.index("--") + 1 :] +assert len(argv) == 1 +gcode = load_gcode(argv[0]) + +# Define the ray's starting point in object space +first_row = gcode[0] +(x, y, feedrate) = row_to_xyz_feedrate(first_row) +start_point = Vector((x, y, 106)) + + +# start_point = Vector(initial_coord) - obj.location +gcode = gcode[1:] + +for row in gcode: + (x, y, feedrate) = row_to_xyz_feedrate(row) + print(x, y, feedrate) + z = 106.0 # ignore z + start_point = move_start_point(start_point, (x, y, z), feedrate) + +conn = sqlite3.connect("listener.db") +cur = conn.cursor() +cur.executemany("INSERT INTO coord(x, y, z, distance) VALUES (?, ?, ?, ?)", data) +conn.commit() +conn.close() diff --git a/scripts/copy.py b/scripts/copy.py new file mode 100644 index 0000000..697a75e --- /dev/null +++ b/scripts/copy.py @@ -0,0 +1,31 @@ +from tests.config import MYSQL_CONFIG +import mysql.connector +import sqlite3 + +process_id = 1 + + +def copy_sqlite_db_to_mysql(): + db_path = "listener.db" + conn = sqlite3.connect(db_path) + cur = conn.cursor() + query = "SELECT x,y,z,distance FROM coord" + data = [] + for row in cur.execute(query): + row = (*row, process_id) + data.append(row) + cur.close() + conn.close() + + mysql_conn = mysql.connector.connect(**MYSQL_CONFIG, database="coord") + mysql_cur = mysql_conn.cursor() + mysql_cur.executemany( + "INSERT INTO sensor(x, y, z, distance, process_id) VALUES (%s,%s,%s, %s, %s)", + data, + ) + mysql_conn.commit() + mysql_cur.close() + mysql_conn.close() + + +copy_sqlite_db_to_mysql() diff --git a/scripts/update.py b/scripts/update.py new file mode 100644 index 0000000..780d93f --- /dev/null +++ b/scripts/update.py @@ -0,0 +1,10 @@ +from cnceye.edge import find +from tests.config import MYSQL_CONFIG + +process_id = 1 + +measured_edges = find.find_edges(process_id, MYSQL_CONFIG) +model_id = 1 +edge_data = find.get_edge_data(model_id, MYSQL_CONFIG) +update_list = find.identify_close_edge(edge_data, measured_edges) +find.add_measured_edge_coord(update_list, MYSQL_CONFIG) diff --git a/tests/config.py b/tests/config.py deleted file mode 100644 index 932b7ee..0000000 --- a/tests/config.py +++ /dev/null @@ -1,20 +0,0 @@ -import os - -# For github actions -CI_MYSQL_CONFIG = dict( - host="127.0.0.1", - port=3306, - user="root", - password="root", -) - - -MYSQL_CONFIG = dict( - host="192.168.122.76", - port=3306, - user="root", - password="root", -) - -if os.environ.get("CI"): - MYSQL_CONFIG = CI_MYSQL_CONFIG diff --git a/tests/fixtures/sensor/line.csv b/tests/fixtures/sensor/line.csv deleted file mode 100644 index a857cbd..0000000 --- a/tests/fixtures/sensor/line.csv +++ /dev/null @@ -1,795 +0,0 @@ -56.7,84.6,206.0, -56.65,84.6,206.0, -56.6,84.6,206.0, -56.55,84.6,206.0, -56.5,84.6,206.0, -56.45,84.6,206.0, -56.4,84.6,206.0, -56.35,84.6,206.0, -56.3,84.6,206.0, -56.25,84.6,206.0, -56.2,84.6,206.0, -56.15,84.6,206.0, -56.1,84.6,206.0, -56.05,84.6,206.0, -56.0,84.6,206.0, -55.95,84.6,206.0, -55.9,84.6,206.0, -55.85,84.6,206.0, -55.8,84.6,206.0, -55.75,84.6,206.0, -55.7,84.6,206.0, -55.65,84.6,206.0, -55.6,84.6,206.0, -55.55,84.6,206.0, -55.5,84.6,206.0, -55.45,84.6,206.0, -55.4,84.6,206.0, -55.35,84.6,206.0, -55.3,84.6,206.0, -55.25,84.6,206.0, -55.2,84.6,206.0, -55.15,84.6,206.0, -55.1,84.6,206.0, -55.05,84.6,206.0, -55.0,84.6,206.0, -54.95,84.6,206.0, -54.9,84.6,206.0, -54.85,84.6,206.0, -54.8,84.6,206.0, -54.75,84.6,206.0, -54.7,84.6,206.0, -54.65,84.6,206.0, -54.6,84.6,206.0, -54.55,84.6,206.0, -54.5,84.6,206.0, -54.45,84.6,206.0, -54.4,84.6,206.0, -54.35,84.6,206.0, -54.3,84.6,206.0, -54.25,84.6,206.0, -54.2,84.6,206.0, -54.15,84.6,206.0, -54.1,84.6,206.0, -54.05,84.6,206.0, -54.0,84.6,206.0, -53.95,84.6,206.0, -53.9,84.6,206.0, -53.85,84.6,206.0, -53.8,84.6,206.0, -53.75,84.6,206.0, -53.7,84.6,206.0, -53.65,84.6,206.0, -53.6,84.6,206.0, -53.55,84.6,206.0, -53.5,84.6,206.0, -53.45,84.6,206.0, -53.4,84.6,206.0, -53.35,84.6,206.0, -53.3,84.6,206.0, -53.25,84.6,206.0, -53.2,84.6,206.0, -53.15,84.6,206.0, -53.1,84.6,206.0, -53.05,84.6,206.0, -53.0,84.6,206.0, -52.95,84.6,206.0, -52.9,84.6,206.0, -52.85,84.6,206.0, -52.8,84.6,206.0, -52.75,84.6,206.0, -52.7,84.6,206.0, -52.65,84.6,206.0, -52.6,84.6,206.0, -52.55,84.6,206.0, -52.5,84.6,206.0, -52.45,84.6,206.0, -52.4,84.6,206.0, -52.35,84.6,206.0, -52.3,84.6,206.0, -52.25,84.6,206.0, -52.2,84.6,206.0, -52.15,84.6,206.0, -52.1,84.6,206.0, -52.05,84.6,206.0, -52.0,84.6,206.0, -51.95,84.6,206.0, -51.9,84.6,206.0, -51.85,84.6,206.0, -51.8,84.6,206.0, -51.75,84.6,206.0, -51.7,84.6,206.0, -51.65,84.6,206.0, -51.6,84.6,206.0, -51.55,84.6,206.0, -51.5,84.6,206.0, -51.45,84.6,206.0, -51.4,84.6,206.0, -51.35,84.6,206.0, -51.3,84.6,206.0, -51.25,84.6,206.0, -51.2,84.6,206.0, -51.15,84.6,206.0, -51.1,84.6,206.0, -51.05,84.6,206.0, -51.0,84.6,206.0, -50.95,84.6,206.0, -50.9,84.6,206.0, -50.85,84.6,206.0, -50.8,84.6,206.0, -50.75,84.6,206.0, -50.7,84.6,206.0, -50.65,84.6,206.0, -50.6,84.6,206.0, -50.55,84.6,206.0, -50.5,84.6,206.0, -50.45,84.6,206.0, -50.4,84.6,206.0, -50.35,84.6,206.0, -50.3,84.6,206.0, -50.25,84.6,206.0, -50.2,84.6,206.0, -50.15,84.6,206.0, -50.1,84.6,206.0, -50.05,84.6,206.0, -50.0,84.6,206.0,0.08799999952316284 -49.95,84.6,206.0,0.08799999952316284 -49.9,84.6,206.0,0.08799999952316284 -49.85,84.6,206.0,0.08799999207258224 -49.8,84.6,206.0,0.08799999952316284 -49.75,84.6,206.0,0.08799999952316284 -49.7,84.6,206.0,0.08799999952316284 -49.65,84.6,206.0,0.08799999952316284 -49.6,84.6,206.0,0.08799999207258224 -49.55,84.6,206.0,0.08799999952316284 -49.5,84.6,206.0,0.08799999952316284 -49.45,84.6,206.0,0.08800000697374344 -49.4,84.6,206.0,0.08799999952316284 -49.35,84.6,206.0,0.08800000697374344 -49.3,84.6,206.0,0.08799999952316284 -49.25,84.6,206.0,0.08799999952316284 -49.2,84.6,206.0,0.08799999207258224 -49.15,84.6,206.0,0.08799998462200165 -49.1,84.6,206.0,0.08799999207258224 -49.05,84.6,206.0,0.08800000697374344 -49.0,84.6,206.0,0.08799999952316284 -48.95,84.6,206.0,0.08799999952316284 -48.9,84.6,206.0,0.08799999952316284 -48.85,84.6,206.0,0.08799999952316284 -48.8,84.6,206.0,0.08799999952316284 -48.75,84.6,206.0,0.08799999207258224 -48.7,84.6,206.0,0.08799999207258224 -48.65,84.6,206.0,0.08799999207258224 -48.6,84.6,206.0,0.08799999207258224 -48.55,84.6,206.0,0.08800000697374344 -48.5,84.6,206.0,0.08799999207258224 -48.45,84.6,206.0,0.08799999207258224 -48.4,84.6,206.0,0.08800000697374344 -48.35,84.6,206.0,0.08800000697374344 -48.3,84.6,206.0,0.08799999952316284 -48.25,84.6,206.0,0.08799999952316284 -48.2,84.6,206.0,0.08799999952316284 -48.15,84.6,206.0,0.08799999952316284 -48.1,84.6,206.0,0.08799999952316284 -48.05,84.6,206.0,0.08799999952316284 -48.0,84.6,206.0,0.08799999207258224 -47.95,84.6,206.0,0.08799998462200165 -47.9,84.6,206.0,0.08799999207258224 -47.85,84.6,206.0,0.08799999952316284 -47.8,84.6,206.0,0.08799999207258224 -47.75,84.6,206.0,0.08799999952316284 -47.7,84.6,206.0,0.08800000697374344 -47.65,84.6,206.0,0.08799999952316284 -47.6,84.6,206.0,0.08799999207258224 -47.55,84.6,206.0,0.08800000697374344 -47.5,84.6,206.0,0.08799999952316284 -47.45,84.6,206.0,0.08799999952316284 -47.4,84.6,206.0,0.08799999952316284 -47.35,84.6,206.0,0.08799999952316284 -47.3,84.6,206.0,0.08799999952316284 -47.25,84.6,206.0,0.08799999952316284 -47.2,84.6,206.0,0.08799999952316284 -47.15,84.6,206.0,0.08799999952316284 -47.1,84.6,206.0,0.08799999952316284 -47.05,84.6,206.0,0.08799999952316284 -47.0,84.6,206.0,0.08799999952316284 -46.95,84.6,206.0,0.08799999952316284 -46.9,84.6,206.0,0.08799999952316284 -46.85,84.6,206.0,0.08800000697374344 -46.8,84.6,206.0,0.08799999952316284 -46.75,84.6,206.0,0.08800000697374344 -46.75,84.0,206.0,0.08800000697374344 -46.75,83.4,206.0,0.08799999952316284 -46.75,82.8,206.0,0.08799999952316284 -46.75,82.2,206.0,0.08800000697374344 -46.75,81.6,206.0,0.08799999207258224 -46.75,81.0,206.0,0.08799999207258224 -46.75,80.4,206.0,0.08799999207258224 -46.75,79.8,206.0,0.08799999207258224 -46.75,79.2,206.0,0.08799999207258224 -46.75,78.6,206.0,0.08799999952316284 -46.75,78.0,206.0,0.08799999952316284 -46.75,77.4,206.0,0.08799999207258224 -46.75,76.8,206.0,0.08799999207258224 -46.75,76.2,206.0,0.08799999207258224 -46.75,75.6,206.0,0.08799999952316284 -46.75,75.0,206.0,0.08799999952316284 -46.75,74.4,206.0,0.08799999207258224 -46.75,73.8,206.0,0.08799999952316284 -46.75,73.2,206.0,0.08799999952316284 -46.75,72.6,206.0,0.08799999952316284 -46.75,72.0,206.0,0.08799999207258224 -46.75,71.4,206.0,0.08799999207258224 -46.75,70.8,206.0,0.08799999952316284 -46.75,70.2,206.0,0.08799999952316284 -46.75,69.6,206.0,0.08799999952316284 -46.75,69.0,206.0,0.08799999207258224 -46.75,68.4,206.0,0.08799999207258224 -46.75,67.8,206.0,0.08799999952316284 -46.75,67.2,206.0,0.08799999952316284 -46.75,66.6,206.0,0.08799999952316284 -46.75,66.0,206.0,0.08799999952316284 -46.75,65.4,206.0,0.08799999207258224 -46.75,64.8,206.0,0.08799999207258224 -46.75,64.2,206.0,0.08799999952316284 -46.75,63.6,206.0,0.08799999207258224 -46.75,63.0,206.0,0.08799999952316284 -46.75,62.4,206.0,0.08799999207258224 -46.75,61.8,206.0,0.08799999952316284 -46.75,61.2,206.0,0.08799999952316284 -46.75,60.6,206.0,0.08799999207258224 -46.75,60.0,206.0,0.08799999207258224 -46.75,59.4,206.0,0.08799999952316284 -46.75,58.8,206.0,0.08799999952316284 -46.75,58.2,206.0,0.08799999952316284 -46.75,57.6,206.0,0.08799999207258224 -46.75,57.0,206.0,0.08799999952316284 -46.75,56.4,206.0,0.08799999952316284 -46.75,55.8,206.0,0.08799999952316284 -46.75,55.2,206.0,0.08799999207258224 -46.75,54.6,206.0,0.08799999207258224 -46.75,54.0,206.0,0.08799999952316284 -46.75,53.4,206.0,0.08799999952316284 -46.75,52.8,206.0,0.08799999952316284 -46.75,52.2,206.0,0.08799999207258224 -46.75,51.6,206.0,0.08799999952316284 -46.75,51.0,206.0,0.08799999207258224 -46.75,50.4,206.0,0.08799999952316284 -46.75,49.8,206.0,0.08799999952316284 -46.75,49.2,206.0,0.08799999952316284 -46.75,48.6,206.0,0.08799999952316284 -46.75,48.0,206.0,0.08799999952316284 -46.75,47.4,206.0,0.08799999952316284 -46.75,46.8,206.0,0.08799999207258224 -46.75,46.2,206.0,0.08799999207258224 -46.75,45.6,206.0,0.08799999952316284 -46.75,45.0,206.0,0.08799999952316284 -46.75,44.4,206.0,0.08799999952316284 -46.75,43.8,206.0,0.08799999207258224 -46.75,43.2,206.0,0.08799999952316284 -46.75,42.6,206.0,0.08799999952316284 -46.75,42.0,206.0,0.08799999207258224 -46.75,41.4,206.0,0.08799999207258224 -46.75,40.8,206.0,0.08799999952316284 -46.75,40.2,206.0,0.08799999952316284 -46.75,39.6,206.0,0.08799999952316284 -46.75,39.0,206.0,0.08799999952316284 -46.75,38.4,206.0,0.08799999952316284 -46.75,37.8,206.0,0.08799999952316284 -46.75,37.2,206.0,0.08799999952316284 -46.75,36.6,206.0,0.08799999952316284 -46.75,36.0,206.0,0.08799999952316284 -46.75,35.4,206.0,0.08799999952316284 -46.75,34.8,206.0,0.08799999207258224 -46.75,34.2,206.0,0.08799999952316284 -46.75,33.6,206.0,0.08799999952316284 -46.75,33.0,206.0,0.08799999952316284 -46.75,32.4,206.0,0.08799999952316284 -46.75,31.8,206.0,0.08799999952316284 -46.75,31.2,206.0,0.08799999952316284 -46.75,30.6,206.0,0.08799999952316284 -46.75,30.0,206.0,0.08799999207258224 -46.75,29.4,206.0,0.08799999952316284 -46.75,28.8,206.0,0.08799999952316284 -46.75,28.2,206.0,0.08799999952316284 -46.75,27.6,206.0,0.08799999952316284 -46.75,27.0,206.0,0.08799999207258224 -46.75,26.4,206.0,0.08799999952316284 -46.75,25.8,206.0,0.08799999952316284 -46.75,25.2,206.0,0.08799999207258224 -46.8,25.2,206.0,0.08799999952316284 -46.85,25.2,206.0,0.08799999207258224 -46.9,25.2,206.0,0.08799999207258224 -46.95,25.2,206.0,0.08799999207258224 -47.0,25.2,206.0,0.08799999952316284 -47.05,25.2,206.0,0.08799999952316284 -47.1,25.2,206.0,0.08800000697374344 -47.15,25.2,206.0,0.08799999207258224 -47.2,25.2,206.0,0.08799999952316284 -47.25,25.2,206.0,0.08799999952316284 -47.3,25.2,206.0,0.08799999952316284 -47.35,25.2,206.0,0.08799999952316284 -47.4,25.2,206.0,0.08799999952316284 -47.45,25.2,206.0,0.08799999952316284 -47.5,25.2,206.0,0.08799999952316284 -47.55,25.2,206.0,0.08799999952316284 -47.6,25.2,206.0,0.08799999952316284 -47.65,25.2,206.0,0.08799999952316284 -47.7,25.2,206.0,0.08799999207258224 -47.75,25.2,206.0,0.08799999952316284 -47.8,25.2,206.0,0.08799999207258224 -47.85,25.2,206.0,0.08799999207258224 -47.9,25.2,206.0,0.08799999952316284 -47.95,25.2,206.0,0.08799999952316284 -48.0,25.2,206.0,0.08799999952316284 -48.05,25.2,206.0,0.08799999952316284 -48.1,25.2,206.0,0.08799999952316284 -48.15,25.2,206.0,0.08799999952316284 -48.2,25.2,206.0,0.08799999952316284 -48.25,25.2,206.0,0.08799999207258224 -48.3,25.2,206.0,0.08799999952316284 -48.35,25.2,206.0,0.08799999952316284 -48.4,25.2,206.0,0.08799999952316284 -48.45,25.2,206.0,0.08799999952316284 -48.5,25.2,206.0,0.08800000697374344 -48.55,25.2,206.0,0.08799999207258224 -48.6,25.2,206.0,0.08799999207258224 -48.65,25.2,206.0,0.08799999207258224 -48.7,25.2,206.0,0.08799999207258224 -48.75,25.2,206.0,0.08799999207258224 -48.8,25.2,206.0,0.08799999207258224 -48.85,25.2,206.0,0.08799999952316284 -48.9,25.2,206.0,0.08800000697374344 -48.95,25.2,206.0,0.08799999952316284 -49.0,25.2,206.0,0.08799999207258224 -49.05,25.2,206.0,0.08799999207258224 -49.1,25.2,206.0,0.08799999952316284 -49.15,25.2,206.0,0.08799999952316284 -49.2,25.2,206.0,0.08799999952316284 -49.25,25.2,206.0,0.08799999952316284 -49.3,25.2,206.0,0.08799999952316284 -49.35,25.2,206.0,0.08800000697374344 -49.4,25.2,206.0,0.08799999952316284 -49.45,25.2,206.0,0.08799999952316284 -49.5,25.2,206.0,0.08799999207258224 -49.55,25.2,206.0,0.08799999207258224 -49.6,25.2,206.0,0.08799999207258224 -49.65,25.2,206.0,0.08799999207258224 -49.7,25.2,206.0,0.08799999207258224 -49.75,25.2,206.0,0.08799999952316284 -49.8,25.2,206.0,0.08799999207258224 -49.85,25.2,206.0,0.08799999207258224 -49.9,25.2,206.0,0.08799999952316284 -49.95,25.2,206.0,0.08799999952316284 -50.0,25.2,206.0,0.08799999207258224 -50.05,25.2,206.0, -50.1,25.2,206.0, -50.15,25.2,206.0, -50.2,25.2,206.0, -50.25,25.2,206.0, -50.3,25.2,206.0, -50.35,25.2,206.0, -50.4,25.2,206.0, -50.45,25.2,206.0, -50.5,25.2,206.0, -50.55,25.2,206.0, -50.6,25.2,206.0, -50.65,25.2,206.0, -50.7,25.2,206.0, -50.75,25.2,206.0, -50.8,25.2,206.0, -50.85,25.2,206.0, -50.9,25.2,206.0, -50.95,25.2,206.0, -51.0,25.2,206.0, -51.05,25.2,206.0, -51.1,25.2,206.0, -51.15,25.2,206.0, -51.2,25.2,206.0, -51.25,25.2,206.0, -51.3,25.2,206.0, -51.35,25.2,206.0, -51.4,25.2,206.0, -51.45,25.2,206.0, -51.5,25.2,206.0, -51.55,25.2,206.0, -51.6,25.2,206.0, -51.65,25.2,206.0, -51.7,25.2,206.0, -51.75,25.2,206.0, -51.8,25.2,206.0, -51.85,25.2,206.0, -51.9,25.2,206.0, -51.95,25.2,206.0, -52.0,25.2,206.0, -52.05,25.2,206.0, -52.1,25.2,206.0, -52.15,25.2,206.0, -52.2,25.2,206.0, -52.25,25.2,206.0, -52.3,25.2,206.0, -52.35,25.2,206.0, -52.4,25.2,206.0, -52.45,25.2,206.0, -52.5,25.2,206.0, -52.55,25.2,206.0, -52.6,25.2,206.0, -52.65,25.2,206.0, -52.7,25.2,206.0, -52.75,25.2,206.0, -52.8,25.2,206.0, -52.85,25.2,206.0, -52.9,25.2,206.0, -52.95,25.2,206.0, -53.0,25.2,206.0, -53.05,25.2,206.0, -53.1,25.2,206.0, -53.15,25.2,206.0, -53.2,25.2,206.0, -53.25,25.2,206.0, -53.3,25.2,206.0, -53.35,25.2,206.0, -53.4,25.2,206.0, -53.45,25.2,206.0, -53.5,25.2,206.0, -53.55,25.2,206.0, -53.6,25.2,206.0, -53.65,25.2,206.0, -53.7,25.2,206.0, -53.75,25.2,206.0, -53.8,25.2,206.0, -53.85,25.2,206.0, -53.9,25.2,206.0, -53.95,25.2,206.0, -54.0,25.2,206.0, -54.05,25.2,206.0, -54.1,25.2,206.0, -54.15,25.2,206.0, -54.2,25.2,206.0, -54.25,25.2,206.0, -54.3,25.2,206.0, -54.35,25.2,206.0, -54.4,25.2,206.0, -54.45,25.2,206.0, -54.5,25.2,206.0, -54.55,25.2,206.0, -54.6,25.2,206.0, -54.65,25.2,206.0, -54.7,25.2,206.0, -54.75,25.2,206.0, -54.8,25.2,206.0, -54.85,25.2,206.0, -54.9,25.2,206.0, -54.95,25.2,206.0, -55.0,25.2,206.0, -55.05,25.2,206.0, -55.1,25.2,206.0, -55.15,25.2,206.0, -55.2,25.2,206.0, -55.25,25.2,206.0, -55.3,25.2,206.0, -55.35,25.2,206.0, -55.4,25.2,206.0, -55.45,25.2,206.0, -55.5,25.2,206.0, -55.55,25.2,206.0, -55.6,25.2,206.0, -55.65,25.2,206.0, -55.7,25.2,206.0, -55.75,25.2,206.0, -55.8,25.2,206.0, -55.85,25.2,206.0, -55.9,25.2,206.0, -55.95,25.2,206.0, -56.0,25.2,206.0, -56.05,25.2,206.0, -56.1,25.2,206.0, -56.15,25.2,206.0, -56.2,25.2,206.0, -56.25,25.2,206.0, -56.3,25.2,206.0, -56.35,25.2,206.0, -56.4,25.2,206.0, -56.45,25.2,206.0, -56.5,25.2,206.0, -56.55,25.2,206.0, -56.6,25.2,206.0, -56.65,25.2,206.0, -56.7,25.2,206.0, -56.7,24.6,206.0, -56.7,24.0,206.0, -56.7,23.4,206.0, -56.7,22.8,206.0, -56.7,22.2,206.0, -56.7,21.6,206.0, -56.7,21.0,206.0, -56.7,20.4,206.0, -56.7,19.8,206.0, -56.7,19.2,206.0, -56.7,18.6,206.0, -56.7,18.0,206.0, -56.7,17.4,206.0, -56.7,16.8,206.0, -56.7,16.2,206.0, -56.7,15.6,206.0, -56.7,15.0,206.0, -56.7,14.4,206.0, -56.7,13.8,206.0, -56.7,13.2,206.0, -56.7,12.6,206.0, -56.7,12.0,206.0, -56.7,11.4,206.0, -56.7,10.8,206.0, -56.7,10.2,206.0, -56.7,9.6,206.0, -56.7,9.0,206.0, -56.7,8.4,206.0, -56.7,7.8,206.0, -56.7,7.2,206.0, -56.7,6.6,206.0, -56.7,6.0,206.0, -56.7,5.4,206.0, -56.7,4.8,206.0, -56.7,4.2,206.0, -56.7,3.6,206.0, -56.7,3.0,206.0, -56.7,2.4,206.0, -56.7,1.8,206.0, -56.7,1.2,206.0, -56.7,0.6,206.0, -56.7,0.0,206.0, -56.7,-0.6,206.0, -56.7,-1.2,206.0, -56.7,-1.8,206.0, -56.7,-2.4,206.0, -56.7,-3.0,206.0, -56.7,-3.6,206.0, -56.7,-4.2,206.0, -56.7,-4.8,206.0, -56.7,-5.4,206.0, -56.7,-6.0,206.0, -56.7,-6.6,206.0, -56.7,-7.2,206.0, -56.7,-7.8,206.0, -56.7,-8.4,206.0, -56.7,-9.0,206.0, -56.7,-9.6,206.0, -56.7,-10.2,206.0, -56.7,-10.8,206.0, -56.7,-11.4,206.0, -56.7,-12.0,206.0, -56.7,-12.6,206.0, -56.7,-13.2,206.0, -56.7,-13.8,206.0, -56.7,-14.4,206.0, -56.7,-15.0,206.0, -56.7,-15.6,206.0, -56.7,-16.2,206.0, -56.7,-16.8,206.0, -56.7,-17.4,206.0, -56.7,-18.0,206.0, -56.7,-18.6,206.0, -56.7,-19.2,206.0, -56.7,-19.8,206.0, -56.7,-20.4,206.0, -56.7,-21.0,206.0, -56.7,-21.6,206.0, -56.7,-22.2,206.0, -56.7,-22.8,206.0, -56.7,-23.4,206.0, -56.7,-24.0,206.0, -56.7,-24.6,206.0, -56.7,-25.2,206.0, -56.7,-25.8,206.0, -56.7,-26.4,206.0, -56.7,-27.0,206.0, -56.7,-27.6,206.0, -56.7,-28.2,206.0, -56.7,-28.8,206.0, -56.7,-29.4,206.0, -56.7,-30.0,206.0, -56.7,-30.6,206.0, -56.7,-31.2,206.0, -56.7,-31.8,206.0, -56.7,-32.4,206.0, -56.7,-33.0,206.0, -56.7,-33.6,206.0, -56.7,-34.2,206.0, -56.65,-34.2,206.0, -56.6,-34.2,206.0, -56.55,-34.2,206.0, -56.5,-34.2,206.0, -56.45,-34.2,206.0, -56.4,-34.2,206.0, -56.35,-34.2,206.0, -56.3,-34.2,206.0, -56.25,-34.2,206.0, -56.2,-34.2,206.0, -56.15,-34.2,206.0, -56.1,-34.2,206.0, -56.05,-34.2,206.0, -56.0,-34.2,206.0, -55.95,-34.2,206.0, -55.9,-34.2,206.0, -55.85,-34.2,206.0, -55.8,-34.2,206.0, -55.75,-34.2,206.0, -55.7,-34.2,206.0, -55.65,-34.2,206.0, -55.6,-34.2,206.0, -55.55,-34.2,206.0, -55.5,-34.2,206.0, -55.45,-34.2,206.0, -55.4,-34.2,206.0, -55.35,-34.2,206.0, -55.3,-34.2,206.0, -55.25,-34.2,206.0, -55.2,-34.2,206.0, -55.15,-34.2,206.0, -55.1,-34.2,206.0, -55.05,-34.2,206.0, -55.0,-34.2,206.0, -54.95,-34.2,206.0, -54.9,-34.2,206.0, -54.85,-34.2,206.0, -54.8,-34.2,206.0, -54.75,-34.2,206.0, -54.7,-34.2,206.0, -54.65,-34.2,206.0, -54.6,-34.2,206.0, -54.55,-34.2,206.0, -54.5,-34.2,206.0, -54.45,-34.2,206.0, -54.4,-34.2,206.0, -54.35,-34.2,206.0, -54.3,-34.2,206.0, -54.25,-34.2,206.0, -54.2,-34.2,206.0, -54.15,-34.2,206.0, -54.1,-34.2,206.0, -54.05,-34.2,206.0, -54.0,-34.2,206.0, -53.95,-34.2,206.0, -53.9,-34.2,206.0, -53.85,-34.2,206.0, -53.8,-34.2,206.0, -53.75,-34.2,206.0, -53.7,-34.2,206.0, -53.65,-34.2,206.0, -53.6,-34.2,206.0, -53.55,-34.2,206.0, -53.5,-34.2,206.0, -53.45,-34.2,206.0, -53.4,-34.2,206.0, -53.35,-34.2,206.0, -53.3,-34.2,206.0, -53.25,-34.2,206.0, -53.2,-34.2,206.0, -53.15,-34.2,206.0, -53.1,-34.2,206.0, -53.05,-34.2,206.0, -53.0,-34.2,206.0, -52.95,-34.2,206.0, -52.9,-34.2,206.0, -52.85,-34.2,206.0, -52.8,-34.2,206.0, -52.75,-34.2,206.0, -52.7,-34.2,206.0, -52.65,-34.2,206.0, -52.6,-34.2,206.0, -52.55,-34.2,206.0, -52.5,-34.2,206.0, -52.45,-34.2,206.0, -52.4,-34.2,206.0, -52.35,-34.2,206.0, -52.3,-34.2,206.0, -52.25,-34.2,206.0, -52.2,-34.2,206.0, -52.15,-34.2,206.0, -52.1,-34.2,206.0, -52.05,-34.2,206.0, -52.0,-34.2,206.0, -51.95,-34.2,206.0, -51.9,-34.2,206.0, -51.85,-34.2,206.0, -51.8,-34.2,206.0, -51.75,-34.2,206.0, -51.7,-34.2,206.0, -51.65,-34.2,206.0, -51.6,-34.2,206.0, -51.55,-34.2,206.0, -51.5,-34.2,206.0, -51.45,-34.2,206.0, -51.4,-34.2,206.0, -51.35,-34.2,206.0, -51.3,-34.2,206.0, -51.25,-34.2,206.0, -51.2,-34.2,206.0, -51.15,-34.2,206.0, -51.1,-34.2,206.0, -51.05,-34.2,206.0, -51.0,-34.2,206.0, -50.95,-34.2,206.0, -50.9,-34.2,206.0, -50.85,-34.2,206.0, -50.8,-34.2,206.0, -50.75,-34.2,206.0, -50.7,-34.2,206.0, -50.65,-34.2,206.0, -50.6,-34.2,206.0, -50.55,-34.2,206.0, -50.5,-34.2,206.0, -50.45,-34.2,206.0, -50.4,-34.2,206.0, -50.35,-34.2,206.0, -50.3,-34.2,206.0, -50.25,-34.2,206.0, -50.2,-34.2,206.0, -50.15,-34.2,206.0, -50.1,-34.2,206.0, -50.05,-34.2,206.0, -50.0,-34.2,206.0,0.08799999952316284 -49.95,-34.2,206.0,0.08799999207258224 -49.9,-34.2,206.0,0.08799999952316284 -49.85,-34.2,206.0,0.08799999952316284 -49.8,-34.2,206.0,0.08799999952316284 -49.75,-34.2,206.0,0.08799999952316284 -49.7,-34.2,206.0,0.08799999952316284 -49.65,-34.2,206.0,0.08799999952316284 -49.6,-34.2,206.0,0.08799999952316284 -49.55,-34.2,206.0,0.08799999952316284 -49.5,-34.2,206.0,0.08799999207258224 -49.45,-34.2,206.0,0.08799999207258224 -49.4,-34.2,206.0,0.08800000697374344 -49.35,-34.2,206.0,0.08800000697374344 -49.3,-34.2,206.0,0.08799999952316284 -49.25,-34.2,206.0,0.08799999207258224 -49.2,-34.2,206.0,0.08799999952316284 -49.15,-34.2,206.0,0.08800000697374344 -49.1,-34.2,206.0,0.08799999952316284 -49.05,-34.2,206.0,0.08799999207258224 -49.0,-34.2,206.0,0.08799998462200165 -48.95,-34.2,206.0,0.08800000697374344 -48.9,-34.2,206.0,0.08799999952316284 -48.85,-34.2,206.0,0.08799999952316284 -48.8,-34.2,206.0,0.08799999952316284 -48.75,-34.2,206.0,0.08799999207258224 -48.7,-34.2,206.0,0.08799999952316284 -48.65,-34.2,206.0,0.08799999207258224 -48.6,-34.2,206.0,0.08799999207258224 -48.55,-34.2,206.0,0.08800000697374344 -48.5,-34.2,206.0,0.08800000697374344 -48.45,-34.2,206.0,0.08799999952316284 -48.4,-34.2,206.0,0.08799999207258224 -48.35,-34.2,206.0,0.08799999952316284 -48.3,-34.2,206.0,0.08799999952316284 -48.25,-34.2,206.0,0.08799999952316284 -48.2,-34.2,206.0,0.08799999207258224 -48.15,-34.2,206.0,0.08799999207258224 -48.1,-34.2,206.0,0.08800000697374344 -48.05,-34.2,206.0,0.08799999207258224 -48.0,-34.2,206.0,0.08799999207258224 -47.95,-34.2,206.0,0.08799999952316284 -47.9,-34.2,206.0,0.08799999207258224 -47.85,-34.2,206.0,0.08799999952316284 -47.8,-34.2,206.0,0.08799999952316284 -47.75,-34.2,206.0,0.08799999207258224 -47.7,-34.2,206.0,0.08799999952316284 -47.65,-34.2,206.0,0.08799999207258224 -47.6,-34.2,206.0,0.08799999207258224 -47.55,-34.2,206.0,0.08799999952316284 -47.5,-34.2,206.0,0.08800000697374344 -47.45,-34.2,206.0,0.08799999952316284 -47.4,-34.2,206.0,0.08799999952316284 -47.35,-34.2,206.0,0.08799999207258224 -47.3,-34.2,206.0,0.08799999952316284 -47.25,-34.2,206.0,0.08799999952316284 -47.2,-34.2,206.0,0.08799999207258224 -47.15,-34.2,206.0,0.08799999952316284 -47.1,-34.2,206.0,0.08800000697374344 -47.05,-34.2,206.0,0.08799999952316284 -47.0,-34.2,206.0,0.08799999207258224 -46.95,-34.2,206.0,0.08799999952316284 -46.9,-34.2,206.0,0.08799999952316284 -46.85,-34.2,206.0,0.08799999952316284 -46.8,-34.2,206.0,0.08799999207258224 diff --git a/tests/fixtures/sensor/lines.csv b/tests/fixtures/sensor/lines.csv deleted file mode 100644 index 7933337..0000000 --- a/tests/fixtures/sensor/lines.csv +++ /dev/null @@ -1,3160 +0,0 @@ -56.7,84.6,206.0, -56.65,84.6,206.0, -56.6,84.6,206.0, -56.55,84.6,206.0, -56.5,84.6,206.0, -56.45,84.6,206.0, -56.4,84.6,206.0, -56.35,84.6,206.0, -56.3,84.6,206.0, -56.25,84.6,206.0, -56.2,84.6,206.0, -56.15,84.6,206.0, -56.1,84.6,206.0, -56.05,84.6,206.0, -56.0,84.6,206.0, -55.95,84.6,206.0, -55.9,84.6,206.0, -55.85,84.6,206.0, -55.8,84.6,206.0, -55.75,84.6,206.0, -55.7,84.6,206.0, -55.65,84.6,206.0, -55.6,84.6,206.0, -55.55,84.6,206.0, -55.5,84.6,206.0, -55.45,84.6,206.0, -55.4,84.6,206.0, -55.35,84.6,206.0, -55.3,84.6,206.0, -55.25,84.6,206.0, -55.2,84.6,206.0, -55.15,84.6,206.0, -55.1,84.6,206.0, -55.05,84.6,206.0, -55.0,84.6,206.0, -54.95,84.6,206.0, -54.9,84.6,206.0, -54.85,84.6,206.0, -54.8,84.6,206.0, -54.75,84.6,206.0, -54.7,84.6,206.0, -54.65,84.6,206.0, -54.6,84.6,206.0, -54.55,84.6,206.0, -54.5,84.6,206.0, -54.45,84.6,206.0, -54.4,84.6,206.0, -54.35,84.6,206.0, -54.3,84.6,206.0, -54.25,84.6,206.0, -54.2,84.6,206.0, -54.15,84.6,206.0, -54.1,84.6,206.0, -54.05,84.6,206.0, -54.0,84.6,206.0, -53.95,84.6,206.0, -53.9,84.6,206.0, -53.85,84.6,206.0, -53.8,84.6,206.0, -53.75,84.6,206.0, -53.7,84.6,206.0, -53.65,84.6,206.0, -53.6,84.6,206.0, -53.55,84.6,206.0, -53.5,84.6,206.0, -53.45,84.6,206.0, -53.4,84.6,206.0, -53.35,84.6,206.0, -53.3,84.6,206.0, -53.25,84.6,206.0, -53.2,84.6,206.0, -53.15,84.6,206.0, -53.1,84.6,206.0, -53.05,84.6,206.0, -53.0,84.6,206.0, -52.95,84.6,206.0, -52.9,84.6,206.0, -52.85,84.6,206.0, -52.8,84.6,206.0, -52.75,84.6,206.0, -52.7,84.6,206.0, -52.65,84.6,206.0, -52.6,84.6,206.0, -52.55,84.6,206.0, -52.5,84.6,206.0, -52.45,84.6,206.0, -52.4,84.6,206.0, -52.35,84.6,206.0, -52.3,84.6,206.0, -52.25,84.6,206.0, -52.2,84.6,206.0, -52.15,84.6,206.0, -52.1,84.6,206.0, -52.05,84.6,206.0, -52.0,84.6,206.0, -51.95,84.6,206.0, -51.9,84.6,206.0, -51.85,84.6,206.0, -51.8,84.6,206.0, -51.75,84.6,206.0, -51.7,84.6,206.0, -51.65,84.6,206.0, -51.6,84.6,206.0, -51.55,84.6,206.0, -51.5,84.6,206.0, -51.45,84.6,206.0, -51.4,84.6,206.0, -51.35,84.6,206.0, -51.3,84.6,206.0, -51.25,84.6,206.0, -51.2,84.6,206.0, -51.15,84.6,206.0, -51.1,84.6,206.0, -51.05,84.6,206.0, -51.0,84.6,206.0, -50.95,84.6,206.0, -50.9,84.6,206.0, -50.85,84.6,206.0, -50.8,84.6,206.0, -50.75,84.6,206.0, -50.7,84.6,206.0, -50.65,84.6,206.0, -50.6,84.6,206.0, -50.55,84.6,206.0, -50.5,84.6,206.0, -50.45,84.6,206.0, -50.4,84.6,206.0, -50.35,84.6,206.0, -50.3,84.6,206.0, -50.25,84.6,206.0, -50.2,84.6,206.0, -50.15,84.6,206.0, -50.1,84.6,206.0, -50.05,84.6,206.0, -50.0,84.6,206.0,0.08799999952316284 -49.95,84.6,206.0,0.08799999952316284 -49.9,84.6,206.0,0.08799999952316284 -49.85,84.6,206.0,0.08799999207258224 -49.8,84.6,206.0,0.08799999952316284 -49.75,84.6,206.0,0.08799999952316284 -49.7,84.6,206.0,0.08799999952316284 -49.65,84.6,206.0,0.08799999952316284 -49.6,84.6,206.0,0.08799999207258224 -49.55,84.6,206.0,0.08799999952316284 -49.5,84.6,206.0,0.08799999952316284 -49.45,84.6,206.0,0.08800000697374344 -49.4,84.6,206.0,0.08799999952316284 -49.35,84.6,206.0,0.08800000697374344 -49.3,84.6,206.0,0.08799999952316284 -49.25,84.6,206.0,0.08799999952316284 -49.2,84.6,206.0,0.08799999207258224 -49.15,84.6,206.0,0.08799998462200165 -49.1,84.6,206.0,0.08799999207258224 -49.05,84.6,206.0,0.08800000697374344 -49.0,84.6,206.0,0.08799999952316284 -48.95,84.6,206.0,0.08799999952316284 -48.9,84.6,206.0,0.08799999952316284 -48.85,84.6,206.0,0.08799999952316284 -48.8,84.6,206.0,0.08799999952316284 -48.75,84.6,206.0,0.08799999207258224 -48.7,84.6,206.0,0.08799999207258224 -48.65,84.6,206.0,0.08799999207258224 -48.6,84.6,206.0,0.08799999207258224 -48.55,84.6,206.0,0.08800000697374344 -48.5,84.6,206.0,0.08799999207258224 -48.45,84.6,206.0,0.08799999207258224 -48.4,84.6,206.0,0.08800000697374344 -48.35,84.6,206.0,0.08800000697374344 -48.3,84.6,206.0,0.08799999952316284 -48.25,84.6,206.0,0.08799999952316284 -48.2,84.6,206.0,0.08799999952316284 -48.15,84.6,206.0,0.08799999952316284 -48.1,84.6,206.0,0.08799999952316284 -48.05,84.6,206.0,0.08799999952316284 -48.0,84.6,206.0,0.08799999207258224 -47.95,84.6,206.0,0.08799998462200165 -47.9,84.6,206.0,0.08799999207258224 -47.85,84.6,206.0,0.08799999952316284 -47.8,84.6,206.0,0.08799999207258224 -47.75,84.6,206.0,0.08799999952316284 -47.7,84.6,206.0,0.08800000697374344 -47.65,84.6,206.0,0.08799999952316284 -47.6,84.6,206.0,0.08799999207258224 -47.55,84.6,206.0,0.08800000697374344 -47.5,84.6,206.0,0.08799999952316284 -47.45,84.6,206.0,0.08799999952316284 -47.4,84.6,206.0,0.08799999952316284 -47.35,84.6,206.0,0.08799999952316284 -47.3,84.6,206.0,0.08799999952316284 -47.25,84.6,206.0,0.08799999952316284 -47.2,84.6,206.0,0.08799999952316284 -47.15,84.6,206.0,0.08799999952316284 -47.1,84.6,206.0,0.08799999952316284 -47.05,84.6,206.0,0.08799999952316284 -47.0,84.6,206.0,0.08799999952316284 -46.95,84.6,206.0,0.08799999952316284 -46.9,84.6,206.0,0.08799999952316284 -46.85,84.6,206.0,0.08800000697374344 -46.8,84.6,206.0,0.08799999952316284 -46.75,84.6,206.0,0.08800000697374344 -46.75,84.0,206.0,0.08800000697374344 -46.75,83.4,206.0,0.08799999952316284 -46.75,82.8,206.0,0.08799999952316284 -46.75,82.2,206.0,0.08800000697374344 -46.75,81.6,206.0,0.08799999207258224 -46.75,81.0,206.0,0.08799999207258224 -46.75,80.4,206.0,0.08799999207258224 -46.75,79.8,206.0,0.08799999207258224 -46.75,79.2,206.0,0.08799999207258224 -46.75,78.6,206.0,0.08799999952316284 -46.75,78.0,206.0,0.08799999952316284 -46.75,77.4,206.0,0.08799999207258224 -46.75,76.8,206.0,0.08799999207258224 -46.75,76.2,206.0,0.08799999207258224 -46.75,75.6,206.0,0.08799999952316284 -46.75,75.0,206.0,0.08799999952316284 -46.75,74.4,206.0,0.08799999207258224 -46.75,73.8,206.0,0.08799999952316284 -46.75,73.2,206.0,0.08799999952316284 -46.75,72.6,206.0,0.08799999952316284 -46.75,72.0,206.0,0.08799999207258224 -46.75,71.4,206.0,0.08799999207258224 -46.75,70.8,206.0,0.08799999952316284 -46.75,70.2,206.0,0.08799999952316284 -46.75,69.6,206.0,0.08799999952316284 -46.75,69.0,206.0,0.08799999207258224 -46.75,68.4,206.0,0.08799999207258224 -46.75,67.8,206.0,0.08799999952316284 -46.75,67.2,206.0,0.08799999952316284 -46.75,66.6,206.0,0.08799999952316284 -46.75,66.0,206.0,0.08799999952316284 -46.75,65.4,206.0,0.08799999207258224 -46.75,64.8,206.0,0.08799999207258224 -46.75,64.2,206.0,0.08799999952316284 -46.75,63.6,206.0,0.08799999207258224 -46.75,63.0,206.0,0.08799999952316284 -46.75,62.4,206.0,0.08799999207258224 -46.75,61.8,206.0,0.08799999952316284 -46.75,61.2,206.0,0.08799999952316284 -46.75,60.6,206.0,0.08799999207258224 -46.75,60.0,206.0,0.08799999207258224 -46.75,59.4,206.0,0.08799999952316284 -46.75,58.8,206.0,0.08799999952316284 -46.75,58.2,206.0,0.08799999952316284 -46.75,57.6,206.0,0.08799999207258224 -46.75,57.0,206.0,0.08799999952316284 -46.75,56.4,206.0,0.08799999952316284 -46.75,55.8,206.0,0.08799999952316284 -46.75,55.2,206.0,0.08799999207258224 -46.75,54.6,206.0,0.08799999207258224 -46.75,54.0,206.0,0.08799999952316284 -46.75,53.4,206.0,0.08799999952316284 -46.75,52.8,206.0,0.08799999952316284 -46.75,52.2,206.0,0.08799999207258224 -46.75,51.6,206.0,0.08799999952316284 -46.75,51.0,206.0,0.08799999207258224 -46.75,50.4,206.0,0.08799999952316284 -46.75,49.8,206.0,0.08799999952316284 -46.75,49.2,206.0,0.08799999952316284 -46.75,48.6,206.0,0.08799999952316284 -46.75,48.0,206.0,0.08799999952316284 -46.75,47.4,206.0,0.08799999952316284 -46.75,46.8,206.0,0.08799999207258224 -46.75,46.2,206.0,0.08799999207258224 -46.75,45.6,206.0,0.08799999952316284 -46.75,45.0,206.0,0.08799999952316284 -46.75,44.4,206.0,0.08799999952316284 -46.75,43.8,206.0,0.08799999207258224 -46.75,43.2,206.0,0.08799999952316284 -46.75,42.6,206.0,0.08799999952316284 -46.75,42.0,206.0,0.08799999207258224 -46.75,41.4,206.0,0.08799999207258224 -46.75,40.8,206.0,0.08799999952316284 -46.75,40.2,206.0,0.08799999952316284 -46.75,39.6,206.0,0.08799999952316284 -46.75,39.0,206.0,0.08799999952316284 -46.75,38.4,206.0,0.08799999952316284 -46.75,37.8,206.0,0.08799999952316284 -46.75,37.2,206.0,0.08799999952316284 -46.75,36.6,206.0,0.08799999952316284 -46.75,36.0,206.0,0.08799999952316284 -46.75,35.4,206.0,0.08799999952316284 -46.75,34.8,206.0,0.08799999207258224 -46.75,34.2,206.0,0.08799999952316284 -46.75,33.6,206.0,0.08799999952316284 -46.75,33.0,206.0,0.08799999952316284 -46.75,32.4,206.0,0.08799999952316284 -46.75,31.8,206.0,0.08799999952316284 -46.75,31.2,206.0,0.08799999952316284 -46.75,30.6,206.0,0.08799999952316284 -46.75,30.0,206.0,0.08799999207258224 -46.75,29.4,206.0,0.08799999952316284 -46.75,28.8,206.0,0.08799999952316284 -46.75,28.2,206.0,0.08799999952316284 -46.75,27.6,206.0,0.08799999952316284 -46.75,27.0,206.0,0.08799999207258224 -46.75,26.4,206.0,0.08799999952316284 -46.75,25.8,206.0,0.08799999952316284 -46.75,25.2,206.0,0.08799999207258224 -46.75,24.6,206.0,0.08799999952316284 -46.75,24.0,206.0,0.08799999952316284 -46.75,23.4,206.0,0.08799999952316284 -46.75,22.8,206.0,0.08799999952316284 -46.8,22.8,206.0,0.08799999952316284 -46.85,22.8,206.0,0.08799999207258224 -46.9,22.8,206.0,0.08799999207258224 -46.95,22.8,206.0,0.08799999207258224 -47.0,22.8,206.0,0.08799999952316284 -47.05,22.8,206.0,0.08799999207258224 -47.1,22.8,206.0,0.08799999207258224 -47.15,22.8,206.0,0.08799999952316284 -47.2,22.8,206.0,0.08799999952316284 -47.25,22.8,206.0,0.08799999207258224 -47.3,22.8,206.0,0.08799999952316284 -47.35,22.8,206.0,0.08799999952316284 -47.4,22.8,206.0,0.08799999952316284 -47.45,22.8,206.0,0.08800000697374344 -47.5,22.8,206.0,0.08800000697374344 -47.55,22.8,206.0,0.08800000697374344 -47.6,22.8,206.0,0.08799999952316284 -47.65,22.8,206.0,0.08799999952316284 -47.7,22.8,206.0,0.08799999207258224 -47.75,22.8,206.0,0.08799999207258224 -47.8,22.8,206.0,0.08799999207258224 -47.85,22.8,206.0,0.08799999207258224 -47.9,22.8,206.0,0.08799999207258224 -47.95,22.8,206.0,0.08799999207258224 -48.0,22.8,206.0,0.08799999952316284 -48.05,22.8,206.0,0.08799999952316284 -48.1,22.8,206.0,0.08799999207258224 -48.15,22.8,206.0,0.08799999207258224 -48.2,22.8,206.0,0.08799999952316284 -48.25,22.8,206.0,0.08799999952316284 -48.3,22.8,206.0,0.08800000697374344 -48.35,22.8,206.0,0.08800000697374344 -48.4,22.8,206.0,0.08800000697374344 -48.45,22.8,206.0,0.08800000697374344 -48.5,22.8,206.0,0.08800000697374344 -48.55,22.8,206.0,0.08799999207258224 -48.6,22.8,206.0,0.08799999207258224 -48.65,22.8,206.0,0.08799999207258224 -48.7,22.8,206.0,0.08799999207258224 -48.75,22.8,206.0,0.08799999207258224 -48.8,22.8,206.0,0.08799999207258224 -48.85,22.8,206.0,0.08799999952316284 -48.9,22.8,206.0,0.08800000697374344 -48.95,22.8,206.0,0.08799999207258224 -49.0,22.8,206.0,0.08799999207258224 -49.05,22.8,206.0,0.08799999207258224 -49.1,22.8,206.0,0.08799999952316284 -49.15,22.8,206.0,0.08799999952316284 -49.2,22.8,206.0,0.08799999952316284 -49.25,22.8,206.0,0.08799999952316284 -49.3,22.8,206.0,0.08800000697374344 -49.35,22.8,206.0,0.08800000697374344 -49.4,22.8,206.0,0.08799999952316284 -49.45,22.8,206.0,0.08799999952316284 -49.5,22.8,206.0,0.08799999207258224 -49.55,22.8,206.0,0.08799999952316284 -49.6,22.8,206.0,0.08799999207258224 -49.65,22.8,206.0,0.08799999207258224 -49.7,22.8,206.0,0.08799999952316284 -49.75,22.8,206.0,0.08799999952316284 -49.8,22.8,206.0,0.08799999207258224 -49.85,22.8,206.0,0.08799999207258224 -49.9,22.8,206.0,0.08799999207258224 -49.95,22.8,206.0,0.08799999207258224 -50.0,22.8,206.0,0.08799999952316284 -50.05,22.8,206.0, -50.1,22.8,206.0, -50.15,22.8,206.0, -50.2,22.8,206.0, -50.25,22.8,206.0, -50.3,22.8,206.0, -50.35,22.8,206.0, -50.4,22.8,206.0, -50.45,22.8,206.0, -50.5,22.8,206.0, -50.55,22.8,206.0, -50.6,22.8,206.0, -50.65,22.8,206.0, -50.7,22.8,206.0, -50.75,22.8,206.0, -50.8,22.8,206.0, -50.85,22.8,206.0, -50.9,22.8,206.0, -50.95,22.8,206.0, -51.0,22.8,206.0, -51.05,22.8,206.0, -51.1,22.8,206.0, -51.15,22.8,206.0, -51.2,22.8,206.0, -51.25,22.8,206.0, -51.3,22.8,206.0, -51.35,22.8,206.0, -51.4,22.8,206.0, -51.45,22.8,206.0, -51.5,22.8,206.0, -51.55,22.8,206.0, -51.6,22.8,206.0, -51.65,22.8,206.0, -51.7,22.8,206.0, -51.75,22.8,206.0, -51.8,22.8,206.0, -51.85,22.8,206.0, -51.9,22.8,206.0, -51.95,22.8,206.0, -52.0,22.8,206.0, -52.05,22.8,206.0, -52.1,22.8,206.0, -52.15,22.8,206.0, -52.2,22.8,206.0, -52.25,22.8,206.0, -52.3,22.8,206.0, -52.35,22.8,206.0, -52.4,22.8,206.0, -52.45,22.8,206.0, -52.5,22.8,206.0, -52.55,22.8,206.0, -52.6,22.8,206.0, -52.65,22.8,206.0, -52.7,22.8,206.0, -52.75,22.8,206.0, -52.8,22.8,206.0, -52.85,22.8,206.0, -52.9,22.8,206.0, -52.95,22.8,206.0, -53.0,22.8,206.0, -53.05,22.8,206.0, -53.1,22.8,206.0, -53.15,22.8,206.0, -53.2,22.8,206.0, -53.25,22.8,206.0, -53.3,22.8,206.0, -53.35,22.8,206.0, -53.4,22.8,206.0, -53.45,22.8,206.0, -53.5,22.8,206.0, -53.55,22.8,206.0, -53.6,22.8,206.0, -53.65,22.8,206.0, -53.7,22.8,206.0, -53.75,22.8,206.0, -53.8,22.8,206.0, -53.85,22.8,206.0, -53.9,22.8,206.0, -53.95,22.8,206.0, -54.0,22.8,206.0, -54.05,22.8,206.0, -54.1,22.8,206.0, -54.15,22.8,206.0, -54.2,22.8,206.0, -54.25,22.8,206.0, -54.3,22.8,206.0, -54.35,22.8,206.0, -54.4,22.8,206.0, -54.45,22.8,206.0, -54.5,22.8,206.0, -54.55,22.8,206.0, -54.6,22.8,206.0, -54.65,22.8,206.0, -54.7,22.8,206.0, -54.75,22.8,206.0, -54.8,22.8,206.0, -54.85,22.8,206.0, -54.9,22.8,206.0, -54.95,22.8,206.0, -55.0,22.8,206.0, -55.05,22.8,206.0, -55.1,22.8,206.0, -55.15,22.8,206.0, -55.2,22.8,206.0, -55.25,22.8,206.0, -55.3,22.8,206.0, -55.35,22.8,206.0, -55.4,22.8,206.0, -55.45,22.8,206.0, -55.5,22.8,206.0, -55.55,22.8,206.0, -55.6,22.8,206.0, -55.65,22.8,206.0, -55.7,22.8,206.0, -55.75,22.8,206.0, -55.8,22.8,206.0, -55.85,22.8,206.0, -55.9,22.8,206.0, -55.95,22.8,206.0, -56.0,22.8,206.0, -56.05,22.8,206.0, -56.1,22.8,206.0, -56.15,22.8,206.0, -56.2,22.8,206.0, -56.25,22.8,206.0, -56.3,22.8,206.0, -56.35,22.8,206.0, -56.4,22.8,206.0, -56.45,22.8,206.0, -56.5,22.8,206.0, -56.55,22.8,206.0, -56.6,22.8,206.0, -56.65,22.8,206.0, -56.7,22.8,206.0, -56.7,22.2,206.0, -56.7,21.6,206.0, -56.7,21.0,206.0, -56.7,20.4,206.0, -56.7,19.8,206.0, -56.7,19.2,206.0, -56.7,18.6,206.0, -56.7,18.0,206.0, -56.7,17.4,206.0, -56.7,16.8,206.0, -56.7,16.2,206.0, -56.7,15.6,206.0, -56.7,15.0,206.0, -56.7,14.4,206.0, -56.7,13.8,206.0, -56.7,13.2,206.0, -56.7,12.6,206.0, -56.7,12.0,206.0, -56.7,11.4,206.0, -56.7,10.8,206.0, -56.7,10.2,206.0, -56.7,9.6,206.0, -56.7,9.0,206.0, -56.7,8.4,206.0, -56.7,7.8,206.0, -56.7,7.2,206.0, -56.7,6.6,206.0, -56.7,6.0,206.0, -56.7,5.4,206.0, -56.7,4.8,206.0, -56.7,4.2,206.0, -56.7,3.6,206.0, -56.7,3.0,206.0, -56.7,2.4,206.0, -56.7,1.8,206.0, -56.7,1.2,206.0, -56.7,0.6,206.0, -56.7,0.0,206.0, -56.7,-0.6,206.0, -56.7,-1.2,206.0, -56.7,-1.8,206.0, -56.7,-2.4,206.0, -56.7,-3.0,206.0, -56.7,-3.6,206.0, -56.7,-4.2,206.0, -56.7,-4.8,206.0, -56.7,-5.4,206.0, -56.7,-6.0,206.0, -56.7,-6.6,206.0, -56.7,-7.2,206.0, -56.7,-7.8,206.0, -56.7,-8.4,206.0, -56.7,-9.0,206.0, -56.7,-9.6,206.0, -56.7,-10.2,206.0, -56.7,-10.8,206.0, -56.7,-11.4,206.0, -56.7,-12.0,206.0, -56.7,-12.6,206.0, -56.7,-13.2,206.0, -56.7,-13.8,206.0, -56.7,-14.4,206.0, -56.7,-15.0,206.0, -56.7,-15.6,206.0, -56.7,-16.2,206.0, -56.7,-16.8,206.0, -56.7,-17.4,206.0, -56.7,-18.0,206.0, -56.7,-18.6,206.0, -56.7,-19.2,206.0, -56.7,-19.8,206.0, -56.7,-20.4,206.0, -56.7,-21.0,206.0, -56.7,-21.6,206.0, -56.7,-22.2,206.0, -56.7,-22.8,206.0, -56.7,-23.4,206.0, -56.7,-24.0,206.0, -56.7,-24.6,206.0, -56.7,-25.2,206.0, -56.7,-25.8,206.0, -56.7,-26.4,206.0, -56.7,-27.0,206.0, -56.7,-27.6,206.0, -56.7,-28.2,206.0, -56.7,-28.8,206.0, -56.7,-29.4,206.0, -56.7,-30.0,206.0, -56.7,-30.6,206.0, -56.7,-31.2,206.0, -56.7,-31.8,206.0, -56.7,-32.4,206.0, -56.7,-33.0,206.0, -56.7,-33.6,206.0, -56.7,-34.2,206.0, -56.7,-34.8,206.0, -56.7,-35.4,206.0, -56.7,-36.0,206.0, -56.7,-36.6,206.0, -56.7,-37.2,206.0, -56.7,-37.8,206.0, -56.7,-38.4,206.0, -56.7,-39.0,206.0, -56.65,-39.0,206.0, -56.6,-39.0,206.0, -56.55,-39.0,206.0, -56.5,-39.0,206.0, -56.45,-39.0,206.0, -56.4,-39.0,206.0, -56.35,-39.0,206.0, -56.3,-39.0,206.0, -56.25,-39.0,206.0, -56.2,-39.0,206.0, -56.15,-39.0,206.0, -56.1,-39.0,206.0, -56.05,-39.0,206.0, -56.0,-39.0,206.0, -55.95,-39.0,206.0, -55.9,-39.0,206.0, -55.85,-39.0,206.0, -55.8,-39.0,206.0, -55.75,-39.0,206.0, -55.7,-39.0,206.0, -55.65,-39.0,206.0, -55.6,-39.0,206.0, -55.55,-39.0,206.0, -55.5,-39.0,206.0, -55.45,-39.0,206.0, -55.4,-39.0,206.0, -55.35,-39.0,206.0, -55.3,-39.0,206.0, -55.25,-39.0,206.0, -55.2,-39.0,206.0, -55.15,-39.0,206.0, -55.1,-39.0,206.0, -55.05,-39.0,206.0, -55.0,-39.0,206.0, -54.95,-39.0,206.0, -54.9,-39.0,206.0, -54.85,-39.0,206.0, -54.8,-39.0,206.0, -54.75,-39.0,206.0, -54.7,-39.0,206.0, -54.65,-39.0,206.0, -54.6,-39.0,206.0, -54.55,-39.0,206.0, -54.5,-39.0,206.0, -54.45,-39.0,206.0, -54.4,-39.0,206.0, -54.35,-39.0,206.0, -54.3,-39.0,206.0, -54.25,-39.0,206.0, -54.2,-39.0,206.0, -54.15,-39.0,206.0, -54.1,-39.0,206.0, -54.05,-39.0,206.0, -54.0,-39.0,206.0, -53.95,-39.0,206.0, -53.9,-39.0,206.0, -53.85,-39.0,206.0, -53.8,-39.0,206.0, -53.75,-39.0,206.0, -53.7,-39.0,206.0, -53.65,-39.0,206.0, -53.6,-39.0,206.0, -53.55,-39.0,206.0, -53.5,-39.0,206.0, -53.45,-39.0,206.0, -53.4,-39.0,206.0, -53.35,-39.0,206.0, -53.3,-39.0,206.0, -53.25,-39.0,206.0, -53.2,-39.0,206.0, -53.15,-39.0,206.0, -53.1,-39.0,206.0, -53.05,-39.0,206.0, -53.0,-39.0,206.0, -52.95,-39.0,206.0, -52.9,-39.0,206.0, -52.85,-39.0,206.0, -52.8,-39.0,206.0, -52.75,-39.0,206.0, -52.7,-39.0,206.0, -52.65,-39.0,206.0, -52.6,-39.0,206.0, -52.55,-39.0,206.0, -52.5,-39.0,206.0, -52.45,-39.0,206.0, -52.4,-39.0,206.0, -52.35,-39.0,206.0, -52.3,-39.0,206.0, -52.25,-39.0,206.0, -52.2,-39.0,206.0, -52.15,-39.0,206.0, -52.1,-39.0,206.0, -52.05,-39.0,206.0, -52.0,-39.0,206.0, -51.95,-39.0,206.0, -51.9,-39.0,206.0, -51.85,-39.0,206.0, -51.8,-39.0,206.0, -51.75,-39.0,206.0, -51.7,-39.0,206.0, -51.65,-39.0,206.0, -51.6,-39.0,206.0, -51.55,-39.0,206.0, -51.5,-39.0,206.0, -51.45,-39.0,206.0, -51.4,-39.0,206.0, -51.35,-39.0,206.0, -51.3,-39.0,206.0, -51.25,-39.0,206.0, -51.2,-39.0,206.0, -51.15,-39.0,206.0, -51.1,-39.0,206.0, -51.05,-39.0,206.0, -51.0,-39.0,206.0, -50.95,-39.0,206.0, -50.9,-39.0,206.0, -50.85,-39.0,206.0, -50.8,-39.0,206.0, -50.75,-39.0,206.0, -50.7,-39.0,206.0, -50.65,-39.0,206.0, -50.6,-39.0,206.0, -50.55,-39.0,206.0, -50.5,-39.0,206.0, -50.45,-39.0,206.0, -50.4,-39.0,206.0, -50.35,-39.0,206.0, -50.3,-39.0,206.0, -50.25,-39.0,206.0, -50.2,-39.0,206.0, -50.15,-39.0,206.0, -50.1,-39.0,206.0, -50.05,-39.0,206.0, -50.0,-39.0,206.0,0.08799999207258224 -49.95,-39.0,206.0,0.08799999952316284 -49.9,-39.0,206.0,0.08800000697374344 -49.85,-39.0,206.0,0.08799999952316284 -49.8,-39.0,206.0,0.08799999207258224 -49.75,-39.0,206.0,0.08799999952316284 -49.7,-39.0,206.0,0.08799999952316284 -49.65,-39.0,206.0,0.08799999952316284 -49.6,-39.0,206.0,0.08799999207258224 -49.55,-39.0,206.0,0.08799999952316284 -49.5,-39.0,206.0,0.08799999207258224 -49.45,-39.0,206.0,0.08799999952316284 -49.4,-39.0,206.0,0.08799999952316284 -49.35,-39.0,206.0,0.08800000697374344 -49.3,-39.0,206.0,0.08799999952316284 -49.25,-39.0,206.0,0.08799999952316284 -49.2,-39.0,206.0,0.08799999207258224 -49.15,-39.0,206.0,0.08800000697374344 -49.1,-39.0,206.0,0.08799999952316284 -49.05,-39.0,206.0,0.08799999207258224 -49.0,-39.0,206.0,0.08799999207258224 -48.95,-39.0,206.0,0.08799999207258224 -48.9,-39.0,206.0,0.08800000697374344 -48.85,-39.0,206.0,0.08799999952316284 -48.8,-39.0,206.0,0.08799999952316284 -48.75,-39.0,206.0,0.08799999207258224 -48.7,-39.0,206.0,0.08799999952316284 -48.65,-39.0,206.0,0.08799999952316284 -48.6,-39.0,206.0,0.08799999952316284 -48.55,-39.0,206.0,0.08799999207258224 -48.5,-39.0,206.0,0.08799999952316284 -48.45,-39.0,206.0,0.08799999952316284 -48.4,-39.0,206.0,0.08799999207258224 -48.35,-39.0,206.0,0.08799999952316284 -48.3,-39.0,206.0,0.08799999952316284 -48.25,-39.0,206.0,0.08799999952316284 -48.2,-39.0,206.0,0.08799999952316284 -48.15,-39.0,206.0,0.08800000697374344 -48.1,-39.0,206.0,0.08799999952316284 -48.05,-39.0,206.0,0.08799999207258224 -48.0,-39.0,206.0,0.08799999952316284 -47.95,-39.0,206.0,0.08799999207258224 -47.9,-39.0,206.0,0.08799999952316284 -47.85,-39.0,206.0,0.08799999952316284 -47.8,-39.0,206.0,0.08799999952316284 -47.75,-39.0,206.0,0.08799999207258224 -47.7,-39.0,206.0,0.08799999952316284 -47.65,-39.0,206.0,0.08799999952316284 -47.6,-39.0,206.0,0.08799999952316284 -47.55,-39.0,206.0,0.08799999952316284 -47.5,-39.0,206.0,0.08799998462200165 -47.45,-39.0,206.0,0.08799999952316284 -47.4,-39.0,206.0,0.08799999207258224 -47.35,-39.0,206.0,0.08799999207258224 -47.3,-39.0,206.0,0.08799999952316284 -47.25,-39.0,206.0,0.08799999952316284 -47.2,-39.0,206.0,0.08799999952316284 -47.15,-39.0,206.0,0.08799999207258224 -47.1,-39.0,206.0,0.08800000697374344 -47.05,-39.0,206.0,0.08799999207258224 -47.0,-39.0,206.0,0.08799999207258224 -46.95,-39.0,206.0,0.08799999207258224 -46.9,-39.0,206.0,0.08799999207258224 -46.85,-39.0,206.0,0.08799999952316284 -46.8,-39.0,206.0,0.08799999207258224 -46.75,-39.0,206.0,0.08799999952316284 -46.75,-39.05,206.0,0.08799999207258224 -46.75,-39.1,206.0,0.08799999207258224 -46.75,-39.15,206.0,0.08799999952316284 -46.75,-39.2,206.0,0.08799998462200165 -46.75,-39.25,206.0,0.08799999952316284 -46.75,-39.3,206.0,0.08799999952316284 -46.75,-39.35,206.0,0.08799999207258224 -46.75,-39.4,206.0,0.08799999952316284 -46.75,-39.45,206.0,0.08799999952316284 -46.75,-39.5,206.0,0.08799999952316284 -46.75,-39.55,206.0,0.08799999952316284 -46.75,-39.6,206.0,0.08800000697374344 -46.75,-39.65,206.0,0.08799999207258224 -46.75,-39.7,206.0,0.08799999952316284 -46.75,-39.75,206.0,0.08799999207258224 -46.75,-39.8,206.0,0.08799999952316284 -46.75,-39.85,206.0,0.08799999952316284 -46.75,-39.9,206.0,0.08799999952316284 -46.75,-39.95,206.0,0.08799999207258224 -46.75,-40.0,206.0,0.08799999952316284 -46.75,-40.05,206.0,0.08800000697374344 -46.75,-40.1,206.0,0.08799999952316284 -46.75,-40.15,206.0,0.08800000697374344 -46.75,-40.2,206.0,0.08799999952316284 -46.75,-40.25,206.0,0.08799999952316284 -46.75,-40.3,206.0,0.08799999952316284 -46.75,-40.35,206.0,0.08799999952316284 -46.75,-40.4,206.0,0.08799999952316284 -46.75,-40.45,206.0,0.08799999207258224 -46.75,-40.5,206.0,0.08799999207258224 -46.75,-40.55,206.0,0.08799999952316284 -46.75,-40.6,206.0,0.08799999207258224 -46.75,-40.65,206.0,0.08799999952316284 -46.75,-40.7,206.0,0.08799999207258224 -46.75,-40.75,206.0,0.08799999952316284 -46.75,-40.8,206.0,0.08799999952316284 -46.75,-40.85,206.0,0.08799999952316284 -46.75,-40.9,206.0,0.08799999952316284 -46.75,-40.95,206.0,0.08799999952316284 -46.75,-41.0,206.0,0.08800000697374344 -46.75,-41.05,206.0,0.08799999207258224 -46.75,-41.1,206.0,0.08799999952316284 -46.75,-41.15,206.0,0.08799999207258224 -46.75,-41.2,206.0,0.08799999207258224 -46.75,-41.25,206.0,0.08799999952316284 -46.75,-41.3,206.0,0.08799999952316284 -46.75,-41.35,206.0,0.08799999207258224 -46.75,-41.4,206.0,0.08799999952316284 -46.75,-41.45,206.0,0.08799999952316284 -46.75,-41.5,206.0,0.08799999952316284 -46.75,-41.55,206.0,0.08799999952316284 -46.75,-41.6,206.0,0.08799999952316284 -46.75,-41.65,206.0,0.08799999952316284 -46.75,-41.7,206.0,0.08800000697374344 -46.75,-41.75,206.0,0.08799999952316284 -46.75,-41.8,206.0,0.08799999952316284 -46.75,-41.85,206.0,0.08799999952316284 -46.75,-41.9,206.0,0.08799999952316284 -46.75,-41.95,206.0,0.08799999952316284 -46.75,-42.0,206.0,0.08799999952316284 -46.75,-42.05,206.0,0.08799999207258224 -46.75,-42.1,206.0,0.08800000697374344 -46.75,-42.15,206.0,0.08799999952316284 -46.75,-42.2,206.0,0.08800000697374344 -46.75,-42.25,206.0,0.08799999952316284 -46.75,-42.3,206.0,0.08799999952316284 -46.75,-42.35,206.0,0.08799999207258224 -46.75,-42.4,206.0,0.08799999952316284 -46.75,-42.45,206.0,0.08799999952316284 -46.75,-42.5,206.0,0.08799999952316284 -46.75,-42.55,206.0,0.08799999952316284 -46.75,-42.6,206.0,0.08799999952316284 -46.75,-42.65,206.0,0.08799999952316284 -46.75,-42.7,206.0,0.08799999952316284 -46.75,-42.75,206.0,0.08800000697374344 -46.75,-42.8,206.0,0.08800000697374344 -46.75,-42.85,206.0,0.08799999952316284 -46.75,-42.9,206.0,0.08799999207258224 -46.75,-42.95,206.0,0.08799999952316284 -46.75,-43.0,206.0,0.08799999952316284 -46.75,-43.05,206.0,0.08799999952316284 -46.75,-43.1,206.0,0.08799999952316284 -46.75,-43.15,206.0,0.08799999952316284 -46.75,-43.2,206.0,0.08799999952316284 -46.75,-43.25,206.0,0.08799999952316284 -46.75,-43.3,206.0,0.08799999952316284 -46.75,-43.35,206.0,0.08799999952316284 -46.75,-43.4,206.0,0.08800000697374344 -46.75,-43.45,206.0,0.08800000697374344 -46.75,-43.5,206.0,0.08799999952316284 -46.75,-43.55,206.0,0.08799999952316284 -46.75,-43.6,206.0,0.08799999952316284 -46.75,-43.65,206.0,0.08799999952316284 -46.75,-43.7,206.0,0.08799999952316284 -46.75,-43.75,206.0,0.08799999952316284 -46.75,-43.8,206.0,0.08799999952316284 -46.75,-43.85,206.0,0.08799999952316284 -46.75,-43.9,206.0,0.08800000697374344 -46.75,-43.95,206.0,0.08799999952316284 -46.75,-44.0,206.0,0.08799999952316284 -46.75,-44.05,206.0,0.08800000697374344 -46.75,-44.1,206.0,0.08799999952316284 -46.75,-44.15,206.0,0.08799999952316284 -46.75,-44.2,206.0,0.08800000697374344 -46.75,-44.25,206.0,0.08800000697374344 -46.75,-44.3,206.0,0.08799999952316284 -46.75,-44.35,206.0,0.08799999207258224 -46.75,-44.4,206.0, -46.75,-44.45,206.0, -46.75,-44.5,206.0, -46.75,-44.55,206.0, -46.75,-44.6,206.0, -46.75,-44.65,206.0, -46.75,-44.7,206.0, -46.75,-44.75,206.0, -46.75,-44.8,206.0, -46.75,-44.85,206.0, -46.75,-44.9,206.0, -46.75,-44.95,206.0, -46.75,-45.0,206.0, -46.75,-45.05,206.0, -46.75,-45.1,206.0, -46.75,-45.15,206.0, -46.75,-45.2,206.0, -46.75,-45.25,206.0, -46.75,-45.3,206.0, -46.75,-45.35,206.0, -46.75,-45.4,206.0, -46.75,-45.45,206.0, -46.75,-45.5,206.0, -46.75,-45.55,206.0, -46.75,-45.6,206.0, -46.75,-45.65,206.0, -46.75,-45.7,206.0, -46.75,-45.75,206.0, -46.75,-45.8,206.0, -46.75,-45.85,206.0, -46.75,-45.9,206.0, -46.75,-45.95,206.0, -46.75,-46.0,206.0, -46.75,-46.05,206.0, -46.75,-46.1,206.0, -46.75,-46.15,206.0, -46.75,-46.2,206.0, -46.75,-46.25,206.0, -46.75,-46.3,206.0, -46.75,-46.35,206.0, -46.75,-46.4,206.0, -46.75,-46.45,206.0, -46.75,-46.5,206.0, -46.75,-46.55,206.0, -46.75,-46.6,206.0, -46.75,-46.65,206.0, -46.75,-46.7,206.0, -46.75,-46.75,206.0, -46.75,-46.8,206.0, -46.75,-46.85,206.0, -46.75,-46.9,206.0, -46.75,-46.95,206.0, -46.75,-47.0,206.0, -46.75,-47.05,206.0, -46.75,-47.1,206.0, -46.75,-47.15,206.0, -46.75,-47.2,206.0, -46.75,-47.25,206.0, -46.75,-47.3,206.0, -46.75,-47.35,206.0, -46.75,-47.4,206.0, -46.75,-47.45,206.0, -46.75,-47.5,206.0, -46.75,-47.55,206.0, -46.75,-47.6,206.0, -46.75,-47.65,206.0, -46.75,-47.7,206.0, -46.75,-47.75,206.0, -46.75,-47.8,206.0, -46.75,-47.85,206.0, -46.75,-47.9,206.0, -46.75,-47.95,206.0, -46.75,-48.0,206.0, -46.75,-48.05,206.0, -46.75,-48.1,206.0, -46.75,-48.15,206.0, -46.75,-48.2,206.0, -46.75,-48.25,206.0, -46.75,-48.3,206.0, -46.75,-48.35,206.0, -46.75,-48.4,206.0, -46.75,-48.45,206.0, -46.75,-48.5,206.0, -46.75,-48.55,206.0, -46.75,-48.6,206.0, -46.75,-48.65,206.0, -46.75,-48.7,206.0, -46.75,-48.75,206.0, -46.75,-48.8,206.0, -46.75,-48.85,206.0, -46.75,-48.9,206.0, -46.75,-48.95,206.0, -46.15,-48.95,206.0, -45.55,-48.95,206.0, -44.95,-48.95,206.0, -44.35,-48.95,206.0, -43.75,-48.95,206.0, -43.15,-48.95,206.0, -42.55,-48.95,206.0, -41.95,-48.95,206.0, -41.35,-48.95,206.0, -40.75,-48.95,206.0, -40.15,-48.95,206.0, -39.55,-48.95,206.0, -38.95,-48.95,206.0, -38.35,-48.95,206.0, -37.75,-48.95,206.0, -37.15,-48.95,206.0, -36.55,-48.95,206.0, -35.95,-48.95,206.0, -35.35,-48.95,206.0, -34.75,-48.95,206.0, -34.15,-48.95,206.0, -33.55,-48.95,206.0, -32.95,-48.95,206.0, -32.35,-48.95,206.0, -31.75,-48.95,206.0, -31.15,-48.95,206.0, -30.55,-48.95,206.0, -29.95,-48.95,206.0, -29.35,-48.95,206.0, -28.75,-48.95,206.0, -28.15,-48.95,206.0, -27.55,-48.95,206.0, -26.95,-48.95,206.0, -26.35,-48.95,206.0, -25.75,-48.95,206.0, -25.15,-48.95,206.0, -24.55,-48.95,206.0, -23.95,-48.95,206.0, -23.35,-48.95,206.0, -22.75,-48.95,206.0, -22.15,-48.95,206.0, -21.55,-48.95,206.0, -20.95,-48.95,206.0, -20.35,-48.95,206.0, -19.75,-48.95,206.0, -19.15,-48.95,206.0, -18.55,-48.95,206.0, -17.95,-48.95,206.0, -17.35,-48.95,206.0, -16.75,-48.95,206.0, -16.15,-48.95,206.0, -15.55,-48.95,206.0, -14.95,-48.95,206.0, -14.35,-48.95,206.0, -13.75,-48.95,206.0, -13.15,-48.95,206.0, -12.55,-48.95,206.0, -11.95,-48.95,206.0, -11.35,-48.95,206.0, -10.75,-48.95,206.0, -10.15,-48.95,206.0, -9.55,-48.95,206.0, -8.95,-48.95,206.0, -8.35,-48.95,206.0, -7.75,-48.95,206.0, -7.15,-48.95,206.0, -6.55,-48.95,206.0, -5.95,-48.95,206.0, -5.35,-48.95,206.0, -4.75,-48.95,206.0, -4.15,-48.95,206.0, -3.55,-48.95,206.0, -2.95,-48.95,206.0, -2.35,-48.95,206.0, -1.75,-48.95,206.0, -1.15,-48.95,206.0, -0.55,-48.95,206.0, --0.05,-48.95,206.0, --0.65,-48.95,206.0, --1.25,-48.95,206.0, --1.25,-48.9,206.0, --1.25,-48.85,206.0, --1.25,-48.8,206.0, --1.25,-48.75,206.0, --1.25,-48.7,206.0, --1.25,-48.65,206.0, --1.25,-48.6,206.0, --1.25,-48.55,206.0, --1.25,-48.5,206.0, --1.25,-48.45,206.0, --1.25,-48.4,206.0, --1.25,-48.35,206.0, --1.25,-48.3,206.0, --1.25,-48.25,206.0, --1.25,-48.2,206.0, --1.25,-48.15,206.0, --1.25,-48.1,206.0, --1.25,-48.05,206.0, --1.25,-48.0,206.0, --1.25,-47.95,206.0, --1.25,-47.9,206.0, --1.25,-47.85,206.0, --1.25,-47.8,206.0, --1.25,-47.75,206.0, --1.25,-47.7,206.0, --1.25,-47.65,206.0, --1.25,-47.6,206.0, --1.25,-47.55,206.0, --1.25,-47.5,206.0, --1.25,-47.45,206.0, --1.25,-47.4,206.0, --1.25,-47.35,206.0, --1.25,-47.3,206.0, --1.25,-47.25,206.0, --1.25,-47.2,206.0, --1.25,-47.15,206.0, --1.25,-47.1,206.0, --1.25,-47.05,206.0, --1.25,-47.0,206.0, --1.25,-46.95,206.0, --1.25,-46.9,206.0, --1.25,-46.85,206.0, --1.25,-46.8,206.0, --1.25,-46.75,206.0, --1.25,-46.7,206.0, --1.25,-46.65,206.0, --1.25,-46.6,206.0, --1.25,-46.55,206.0, --1.25,-46.5,206.0, --1.25,-46.45,206.0, --1.25,-46.4,206.0, --1.25,-46.35,206.0, --1.25,-46.3,206.0, --1.25,-46.25,206.0, --1.25,-46.2,206.0, --1.25,-46.15,206.0, --1.25,-46.1,206.0, --1.25,-46.05,206.0, --1.25,-46.0,206.0, --1.25,-45.95,206.0, --1.25,-45.9,206.0, --1.25,-45.85,206.0, --1.25,-45.8,206.0, --1.25,-45.75,206.0, --1.25,-45.7,206.0, --1.25,-45.65,206.0, --1.25,-45.6,206.0, --1.25,-45.55,206.0, --1.25,-45.5,206.0, --1.25,-45.45,206.0, --1.25,-45.4,206.0, --1.25,-45.35,206.0, --1.25,-45.3,206.0, --1.25,-45.25,206.0, --1.25,-45.2,206.0, --1.25,-45.15,206.0, --1.25,-45.1,206.0, --1.25,-45.05,206.0, --1.25,-45.0,206.0, --1.25,-44.95,206.0, --1.25,-44.9,206.0, --1.25,-44.85,206.0, --1.25,-44.8,206.0, --1.25,-44.75,206.0, --1.25,-44.7,206.0, --1.25,-44.65,206.0, --1.25,-44.6,206.0, --1.25,-44.55,206.0, --1.25,-44.5,206.0, --1.25,-44.45,206.0, --1.25,-44.4,206.0, --1.25,-44.35,206.0,0.08800000697374344 --1.25,-44.3,206.0,0.08799999952316284 --1.25,-44.25,206.0,0.08800000697374344 --1.25,-44.2,206.0,0.08799999952316284 --1.25,-44.15,206.0,0.08799999952316284 --1.25,-44.1,206.0,0.08800000697374344 --1.25,-44.05,206.0,0.08800000697374344 --1.25,-44.0,206.0,0.08799999952316284 --1.25,-43.95,206.0,0.08799999952316284 --1.25,-43.9,206.0,0.08800000697374344 --1.25,-43.85,206.0,0.08800000697374344 --1.25,-43.8,206.0,0.08799999207258224 --1.25,-43.75,206.0,0.08800000697374344 --1.25,-43.7,206.0,0.08800000697374344 --1.25,-43.65,206.0,0.08800000697374344 --1.25,-43.6,206.0,0.08799999207258224 --1.25,-43.55,206.0,0.08799999952316284 --1.25,-43.5,206.0,0.08799999952316284 --1.25,-43.45,206.0,0.08800000697374344 --1.25,-43.4,206.0,0.08800000697374344 --1.25,-43.35,206.0,0.08799999952316284 --1.25,-43.3,206.0,0.08799999952316284 --1.25,-43.25,206.0,0.08800000697374344 --1.25,-43.2,206.0,0.08799999952316284 --1.25,-43.15,206.0,0.08799999952316284 --1.25,-43.1,206.0,0.08800000697374344 --1.25,-43.05,206.0,0.08799999952316284 --1.25,-43.0,206.0,0.08799999207258224 --1.25,-42.95,206.0,0.08800000697374344 --1.25,-42.9,206.0,0.08800000697374344 --1.25,-42.85,206.0,0.08800000697374344 --1.25,-42.8,206.0,0.08799999952316284 --1.25,-42.75,206.0,0.08799999952316284 --1.25,-42.7,206.0,0.08799999952316284 --1.25,-42.65,206.0,0.08799999952316284 --1.25,-42.6,206.0,0.08799999207258224 --1.25,-42.55,206.0,0.08800000697374344 --1.25,-42.5,206.0,0.08800000697374344 --1.25,-42.45,206.0,0.08800000697374344 --1.25,-42.4,206.0,0.08799999952316284 --1.25,-42.35,206.0,0.08799999207258224 --1.25,-42.3,206.0,0.08800000697374344 --1.25,-42.25,206.0,0.08799999952316284 --1.25,-42.2,206.0,0.08799999207258224 --1.25,-42.15,206.0,0.08800000697374344 --1.25,-42.1,206.0,0.08800000697374344 --1.25,-42.05,206.0,0.08800000697374344 --1.25,-42.0,206.0,0.08799999952316284 --1.25,-41.95,206.0,0.08800000697374344 --1.25,-41.9,206.0,0.08799999952316284 --1.25,-41.85,206.0,0.08800000697374344 --1.25,-41.8,206.0,0.08799999207258224 --1.25,-41.75,206.0,0.08800000697374344 --1.25,-41.7,206.0,0.08799999952316284 --1.25,-41.65,206.0,0.08800000697374344 --1.25,-41.6,206.0,0.08800000697374344 --1.25,-41.55,206.0,0.08799999952316284 --1.25,-41.5,206.0,0.08800000697374344 --1.25,-41.45,206.0,0.08800000697374344 --1.25,-41.4,206.0,0.08799999207258224 --1.25,-41.35,206.0,0.08799999952316284 --1.25,-41.3,206.0,0.08799999952316284 --1.25,-41.25,206.0,0.08799999952316284 --1.25,-41.2,206.0,0.08799999952316284 --1.25,-41.15,206.0,0.08800000697374344 --1.25,-41.1,206.0,0.08799999952316284 --1.25,-41.05,206.0,0.08800000697374344 --1.25,-41.0,206.0,0.08799999952316284 --1.25,-40.95,206.0,0.08799999952316284 --1.25,-40.9,206.0,0.08799999952316284 --1.25,-40.85,206.0,0.08800000697374344 --1.25,-40.8,206.0,0.08799999207258224 --1.25,-40.75,206.0,0.08800000697374344 --1.25,-40.7,206.0,0.08800000697374344 --1.25,-40.65,206.0,0.08800000697374344 --1.25,-40.6,206.0,0.08799999952316284 --1.25,-40.55,206.0,0.08799999952316284 --1.25,-40.5,206.0,0.08800000697374344 --1.25,-40.45,206.0,0.08800000697374344 --1.25,-40.4,206.0,0.08799999952316284 --1.25,-40.35,206.0,0.08799999207258224 --1.25,-40.3,206.0,0.08800000697374344 --1.25,-40.25,206.0,0.08800000697374344 --1.25,-40.2,206.0,0.08799999952316284 --1.25,-40.15,206.0,0.08799999952316284 --1.25,-40.1,206.0,0.08800000697374344 --1.25,-40.05,206.0,0.08799999952316284 --1.25,-40.0,206.0,0.08800000697374344 --1.25,-39.95,206.0,0.08799999207258224 --1.25,-39.9,206.0,0.08800000697374344 --1.25,-39.85,206.0,0.08800000697374344 --1.25,-39.8,206.0,0.08799999952316284 --1.25,-39.75,206.0,0.08800000697374344 --1.25,-39.7,206.0,0.08799999952316284 --1.25,-39.65,206.0,0.08799999952316284 --1.25,-39.6,206.0,0.08800000697374344 --1.25,-39.55,206.0,0.08800000697374344 --1.25,-39.5,206.0,0.08799999207258224 --1.25,-39.45,206.0,0.08800000697374344 --1.25,-39.4,206.0,0.08799999952316284 --1.25,-39.35,206.0,0.08799999207258224 --1.25,-39.3,206.0,0.08799999952316284 --1.25,-39.25,206.0,0.08799999952316284 --1.25,-39.2,206.0,0.08799999207258224 --1.25,-39.15,206.0,0.08800000697374344 --1.25,-39.1,206.0,0.08800000697374344 --1.25,-39.05,206.0,0.08799999207258224 --1.25,-39.0,206.0,0.08799999952316284 --1.85,-39.0,206.0,0.08799999952316284 --2.45,-39.0,206.0,0.08799999207258224 --3.05,-39.0,206.0,0.08799999952316284 --3.65,-39.0,206.0,0.08800000697374344 --4.25,-39.0,206.0,0.08800000697374344 --4.85,-39.0,206.0,0.08800000697374344 --5.45,-39.0,206.0,0.08799999952316284 --6.05,-39.0,206.0,0.08799999952316284 --6.65,-39.0,206.0,0.08800000697374344 --7.25,-39.0,206.0,0.08799999207258224 --7.85,-39.0,206.0,0.08799999952316284 --8.45,-39.0,206.0,0.08799999207258224 --9.05,-39.0,206.0,0.08799999952316284 --9.65,-39.0,206.0,0.08800000697374344 --10.25,-39.0,206.0,0.08799999952316284 --10.85,-39.0,206.0,0.08799999952316284 --11.45,-39.0,206.0,0.08800000697374344 --12.05,-39.0,206.0,0.08799999207258224 --12.65,-39.0,206.0,0.08799999952316284 --13.25,-39.0,206.0,0.08800000697374344 --13.85,-39.0,206.0,0.08800000697374344 --14.45,-39.0,206.0,0.08799999952316284 --15.05,-39.0,206.0,0.08799999952316284 --15.65,-39.0,206.0,0.08799999952316284 --16.25,-39.0,206.0,0.08799999952316284 --16.85,-39.0,206.0,0.08799999207258224 --17.45,-39.0,206.0,0.08799999207258224 --18.05,-39.0,206.0,0.08799999207258224 --18.65,-39.0,206.0,0.08799999952316284 --19.25,-39.0,206.0,0.08799999952316284 --19.85,-39.0,206.0,0.08800000697374344 --20.45,-39.0,206.0,0.08800000697374344 --21.05,-39.0,206.0,0.08800000697374344 --21.65,-39.0,206.0,0.08799999952316284 --22.25,-39.0,206.0,0.08800000697374344 --22.85,-39.0,206.0,0.08800000697374344 --23.45,-39.0,206.0,0.08800000697374344 --24.05,-39.0,206.0,0.08799999207258224 --24.65,-39.0,206.0,0.08799999952316284 --25.25,-39.0,206.0,0.08800000697374344 --25.85,-39.0,206.0,0.08800000697374344 --26.45,-39.0,206.0,0.08800000697374344 --27.05,-39.0,206.0,0.08800000697374344 --27.65,-39.0,206.0,0.08800000697374344 --28.25,-39.0,206.0,0.08799999952316284 --28.85,-39.0,206.0,0.08799999952316284 --29.45,-39.0,206.0,0.08800000697374344 --30.05,-39.0,206.0,0.08800000697374344 --30.65,-39.0,206.0,0.08799999207258224 --31.25,-39.0,206.0,0.08799999952316284 --31.85,-39.0,206.0,0.08800000697374344 --32.45,-39.0,206.0,0.08800000697374344 --33.05,-39.0,206.0,0.08799999952316284 --33.65,-39.0,206.0,0.08800001442432404 --34.25,-39.0,206.0,0.08799999207258224 --34.85,-39.0,206.0,0.08799999952316284 --35.45,-39.0,206.0,0.08799999207258224 --36.05,-39.0,206.0,0.08799999952316284 --36.65,-39.0,206.0,0.08799999952316284 --37.25,-39.0,206.0,0.08800000697374344 --37.85,-39.0,206.0,0.08799999952316284 --38.45,-39.0,206.0,0.08799998462200165 --39.05,-39.0,206.0,0.08799999952316284 --39.65,-39.0,206.0,0.08800000697374344 --40.25,-39.0,206.0,0.08799999952316284 --40.85,-39.0,206.0,0.08799999952316284 --41.45,-39.0,206.0,0.08799999952316284 --42.05,-39.0,206.0,0.08799999952316284 --42.65,-39.0,206.0,0.08800000697374344 --43.25,-39.0,206.0,0.08799999952316284 --43.85,-39.0,206.0,0.08799999207258224 --44.45,-39.0,206.0,0.08799999952316284 --45.05,-39.0,206.0,0.08799999952316284 --45.65,-39.0,206.0,0.08799999207258224 --46.25,-39.0,206.0,0.08799999952316284 --46.85,-39.0,206.0,0.08799999952316284 --47.45,-39.0,206.0,0.08799999952316284 --48.05,-39.0,206.0,0.08799999952316284 --48.65,-39.0,206.0,0.08799999207258224 --49.25,-39.0,206.0,0.08799999952316284 --49.25,-39.05,206.0,0.08799999952316284 --49.25,-39.1,206.0,0.08799999952316284 --49.25,-39.15,206.0,0.08799999207258224 --49.25,-39.2,206.0,0.08799999207258224 --49.25,-39.25,206.0,0.08799999207258224 --49.25,-39.3,206.0,0.08799999952316284 --49.25,-39.35,206.0,0.08799999952316284 --49.25,-39.4,206.0,0.08799999207258224 --49.25,-39.45,206.0,0.08799999952316284 --49.25,-39.5,206.0,0.08799999207258224 --49.25,-39.55,206.0,0.08799999952316284 --49.25,-39.6,206.0,0.08799999952316284 --49.25,-39.65,206.0,0.08799999952316284 --49.25,-39.7,206.0,0.08799999207258224 --49.25,-39.75,206.0,0.08799999207258224 --49.25,-39.8,206.0,0.08799999207258224 --49.25,-39.85,206.0,0.08799999952316284 --49.25,-39.9,206.0,0.08799999952316284 --49.25,-39.95,206.0,0.08799999952316284 --49.25,-40.0,206.0,0.08799999952316284 --49.25,-40.05,206.0,0.08799999952316284 --49.25,-40.1,206.0,0.08799999952316284 --49.25,-40.15,206.0,0.08800000697374344 --49.25,-40.2,206.0,0.08800000697374344 --49.25,-40.25,206.0,0.08799999207258224 --49.25,-40.3,206.0,0.08799999952316284 --49.25,-40.35,206.0,0.08799999952316284 --49.25,-40.4,206.0,0.08799999952316284 --49.25,-40.45,206.0,0.08799999952316284 --49.25,-40.5,206.0,0.08799999207258224 --49.25,-40.55,206.0,0.08799999952316284 --49.25,-40.6,206.0,0.08799999952316284 --49.25,-40.65,206.0,0.08799999952316284 --49.25,-40.7,206.0,0.08799999952316284 --49.25,-40.75,206.0,0.08800000697374344 --49.25,-40.8,206.0,0.08799999207258224 --49.25,-40.85,206.0,0.08799999952316284 --49.25,-40.9,206.0,0.08799999207258224 --49.25,-40.95,206.0,0.08799999952316284 --49.25,-41.0,206.0,0.08799999952316284 --49.25,-41.05,206.0,0.08799999952316284 --49.25,-41.1,206.0,0.08799999207258224 --49.25,-41.15,206.0,0.08799999952316284 --49.25,-41.2,206.0,0.08799999207258224 --49.25,-41.25,206.0,0.08799999952316284 --49.25,-41.3,206.0,0.08799999952316284 --49.25,-41.35,206.0,0.08799999952316284 --49.25,-41.4,206.0,0.08799999952316284 --49.25,-41.45,206.0,0.08799999952316284 --49.25,-41.5,206.0,0.08799999952316284 --49.25,-41.55,206.0,0.08800000697374344 --49.25,-41.6,206.0,0.08799999952316284 --49.25,-41.65,206.0,0.08799999952316284 --49.25,-41.7,206.0,0.08799999952316284 --49.25,-41.75,206.0,0.08799999952316284 --49.25,-41.8,206.0,0.08799999952316284 --49.25,-41.85,206.0,0.08799999207258224 --49.25,-41.9,206.0,0.08799999952316284 --49.25,-41.95,206.0,0.08799999952316284 --49.25,-42.0,206.0,0.08799999207258224 --49.25,-42.05,206.0,0.08799999952316284 --49.25,-42.1,206.0,0.08799999207258224 --49.25,-42.15,206.0,0.08799999952316284 --49.25,-42.2,206.0,0.08799999207258224 --49.25,-42.25,206.0,0.08799999207258224 --49.25,-42.3,206.0,0.08800000697374344 --49.25,-42.35,206.0,0.08799999952316284 --49.25,-42.4,206.0,0.08799999952316284 --49.25,-42.45,206.0,0.08799999952316284 --49.25,-42.5,206.0,0.08799999952316284 --49.25,-42.55,206.0,0.08799999207258224 --49.25,-42.6,206.0,0.08799999207258224 --49.25,-42.65,206.0,0.08799999207258224 --49.25,-42.7,206.0,0.08799999952316284 --49.25,-42.75,206.0,0.08799999207258224 --49.25,-42.8,206.0,0.08799999952316284 --49.25,-42.85,206.0,0.08799999207258224 --49.25,-42.9,206.0,0.08799999207258224 --49.25,-42.95,206.0,0.08799999207258224 --49.25,-43.0,206.0,0.08799999207258224 --49.25,-43.05,206.0,0.08799999952316284 --49.25,-43.1,206.0,0.08799999952316284 --49.25,-43.15,206.0,0.08799999207258224 --49.25,-43.2,206.0,0.08799999952316284 --49.25,-43.25,206.0,0.08799999207258224 --49.25,-43.3,206.0,0.08799999952316284 --49.25,-43.35,206.0,0.08799999207258224 --49.25,-43.4,206.0,0.08799999952316284 --49.25,-43.45,206.0,0.08800000697374344 --49.25,-43.5,206.0,0.08799999952316284 --49.25,-43.55,206.0,0.08799999952316284 --49.25,-43.6,206.0,0.08799999952316284 --49.25,-43.65,206.0,0.08799999952316284 --49.25,-43.7,206.0,0.08800000697374344 --49.25,-43.75,206.0,0.08799999952316284 --49.25,-43.8,206.0,0.08800000697374344 --49.25,-43.85,206.0,0.08800000697374344 --49.25,-43.9,206.0,0.08799999952316284 --49.25,-43.95,206.0,0.08799999952316284 --49.25,-44.0,206.0,0.08799999952316284 --49.25,-44.05,206.0,0.08799999952316284 --49.25,-44.1,206.0,0.08799999952316284 --49.25,-44.15,206.0,0.08799999207258224 --49.25,-44.2,206.0,0.08800000697374344 --49.25,-44.25,206.0,0.08800000697374344 --49.25,-44.3,206.0,0.08799999952316284 --49.25,-44.35,206.0,0.08799999952316284 --49.25,-44.4,206.0, --49.25,-44.45,206.0, --49.25,-44.5,206.0, --49.25,-44.55,206.0, --49.25,-44.6,206.0, --49.25,-44.65,206.0, --49.25,-44.7,206.0, --49.25,-44.75,206.0, --49.25,-44.8,206.0, --49.25,-44.85,206.0, --49.25,-44.9,206.0, --49.25,-44.95,206.0, --49.25,-45.0,206.0, --49.25,-45.05,206.0, --49.25,-45.1,206.0, --49.25,-45.15,206.0, --49.25,-45.2,206.0, --49.25,-45.25,206.0, --49.25,-45.3,206.0, --49.25,-45.35,206.0, --49.25,-45.4,206.0, --49.25,-45.45,206.0, --49.25,-45.5,206.0, --49.25,-45.55,206.0, --49.25,-45.6,206.0, --49.25,-45.65,206.0, --49.25,-45.7,206.0, --49.25,-45.75,206.0, --49.25,-45.8,206.0, --49.25,-45.85,206.0, --49.25,-45.9,206.0, --49.25,-45.95,206.0, --49.25,-46.0,206.0, --49.25,-46.05,206.0, --49.25,-46.1,206.0, --49.25,-46.15,206.0, --49.25,-46.2,206.0, --49.25,-46.25,206.0, --49.25,-46.3,206.0, --49.25,-46.35,206.0, --49.25,-46.4,206.0, --49.25,-46.45,206.0, --49.25,-46.5,206.0, --49.25,-46.55,206.0, --49.25,-46.6,206.0, --49.25,-46.65,206.0, --49.25,-46.7,206.0, --49.25,-46.75,206.0, --49.25,-46.8,206.0, --49.25,-46.85,206.0, --49.25,-46.9,206.0, --49.25,-46.95,206.0, --49.25,-47.0,206.0, --49.25,-47.05,206.0, --49.25,-47.1,206.0, --49.25,-47.15,206.0, --49.25,-47.2,206.0, --49.25,-47.25,206.0, --49.25,-47.3,206.0, --49.25,-47.35,206.0, --49.25,-47.4,206.0, --49.25,-47.45,206.0, --49.25,-47.5,206.0, --49.25,-47.55,206.0, --49.25,-47.6,206.0, --49.25,-47.65,206.0, --49.25,-47.7,206.0, --49.25,-47.75,206.0, --49.25,-47.8,206.0, --49.25,-47.85,206.0, --49.25,-47.9,206.0, --49.25,-47.95,206.0, --49.25,-48.0,206.0, --49.25,-48.05,206.0, --49.25,-48.1,206.0, --49.25,-48.15,206.0, --49.25,-48.2,206.0, --49.25,-48.25,206.0, --49.25,-48.3,206.0, --49.25,-48.35,206.0, --49.25,-48.4,206.0, --49.25,-48.45,206.0, --49.25,-48.5,206.0, --49.25,-48.55,206.0, --49.25,-48.6,206.0, --49.25,-48.65,206.0, --49.25,-48.7,206.0, --49.25,-48.75,206.0, --49.25,-48.8,206.0, --49.25,-48.85,206.0, --49.25,-48.9,206.0, --49.25,-48.95,206.0, --49.75,-48.95,206.0, --50.25,-48.95,206.0, --50.75,-48.95,206.0, --51.25,-48.95,206.0, --51.75,-48.95,206.0, --52.25,-48.95,206.0, --52.75,-48.95,206.0, --53.25,-48.95,206.0, --53.75,-48.95,206.0, --54.25,-48.95,206.0, --54.75,-48.95,206.0, --55.25,-48.95,206.0, --55.75,-48.95,206.0, --56.25,-48.95,206.0, --56.75,-48.95,206.0, --57.25,-48.95,206.0, --57.75,-48.95,206.0, --58.25,-48.95,206.0, --58.75,-48.95,206.0, --59.25,-48.95,206.0, --59.25,-48.45,206.0, --59.25,-47.95,206.0, --59.25,-47.45,206.0, --59.25,-46.95,206.0, --59.25,-46.45,206.0, --59.25,-45.95,206.0, --59.25,-45.45,206.0, --59.25,-44.95,206.0, --59.25,-44.45,206.0, --59.25,-43.95,206.0, --59.25,-43.45,206.0, --59.25,-42.95,206.0, --59.25,-42.45,206.0, --59.25,-41.95,206.0, --59.25,-41.45,206.0, --59.25,-40.95,206.0, --59.25,-40.45,206.0, --59.25,-39.95,206.0, --59.25,-39.45,206.0, --59.25,-38.95,206.0, --59.2,-38.95,206.0, --59.15,-38.95,206.0, --59.1,-38.95,206.0, --59.05,-38.95,206.0, --59.0,-38.95,206.0, --58.95,-38.95,206.0, --58.9,-38.95,206.0, --58.85,-38.95,206.0, --58.8,-38.95,206.0, --58.75,-38.95,206.0, --58.7,-38.95,206.0, --58.65,-38.95,206.0, --58.6,-38.95,206.0, --58.55,-38.95,206.0, --58.5,-38.95,206.0, --58.45,-38.95,206.0, --58.4,-38.95,206.0, --58.35,-38.95,206.0, --58.3,-38.95,206.0, --58.25,-38.95,206.0, --58.2,-38.95,206.0, --58.15,-38.95,206.0, --58.1,-38.95,206.0, --58.05,-38.95,206.0, --58.0,-38.95,206.0, --57.95,-38.95,206.0, --57.9,-38.95,206.0, --57.85,-38.95,206.0, --57.8,-38.95,206.0, --57.75,-38.95,206.0, --57.7,-38.95,206.0, --57.65,-38.95,206.0, --57.6,-38.95,206.0, --57.55,-38.95,206.0, --57.5,-38.95,206.0, --57.45,-38.95,206.0, --57.4,-38.95,206.0, --57.35,-38.95,206.0, --57.3,-38.95,206.0, --57.25,-38.95,206.0, --57.2,-38.95,206.0, --57.15,-38.95,206.0, --57.1,-38.95,206.0, --57.05,-38.95,206.0, --57.0,-38.95,206.0, --56.95,-38.95,206.0, --56.9,-38.95,206.0, --56.85,-38.95,206.0, --56.8,-38.95,206.0, --56.75,-38.95,206.0, --56.7,-38.95,206.0, --56.65,-38.95,206.0, --56.6,-38.95,206.0, --56.55,-38.95,206.0, --56.5,-38.95,206.0, --56.45,-38.95,206.0, --56.4,-38.95,206.0, --56.35,-38.95,206.0, --56.3,-38.95,206.0, --56.25,-38.95,206.0, --56.2,-38.95,206.0, --56.15,-38.95,206.0, --56.1,-38.95,206.0, --56.05,-38.95,206.0, --56.0,-38.95,206.0, --55.95,-38.95,206.0, --55.9,-38.95,206.0, --55.85,-38.95,206.0, --55.8,-38.95,206.0, --55.75,-38.95,206.0, --55.7,-38.95,206.0, --55.65,-38.95,206.0, --55.6,-38.95,206.0, --55.55,-38.95,206.0, --55.5,-38.95,206.0, --55.45,-38.95,206.0, --55.4,-38.95,206.0, --55.35,-38.95,206.0, --55.3,-38.95,206.0, --55.25,-38.95,206.0, --55.2,-38.95,206.0, --55.15,-38.95,206.0, --55.1,-38.95,206.0, --55.05,-38.95,206.0, --55.0,-38.95,206.0, --54.95,-38.95,206.0, --54.9,-38.95,206.0, --54.85,-38.95,206.0, --54.8,-38.95,206.0, --54.75,-38.95,206.0, --54.7,-38.95,206.0, --54.65,-38.95,206.0, --54.6,-38.95,206.0, --54.55,-38.95,206.0, --54.5,-38.95,206.0, --54.45,-38.95,206.0, --54.4,-38.95,206.0, --54.35,-38.95,206.0, --54.3,-38.95,206.0, --54.25,-38.95,206.0, --54.2,-38.95,206.0, --54.15,-38.95,206.0, --54.1,-38.95,206.0, --54.05,-38.95,206.0, --54.0,-38.95,206.0, --53.95,-38.95,206.0, --53.9,-38.95,206.0, --53.85,-38.95,206.0, --53.8,-38.95,206.0, --53.75,-38.95,206.0, --53.7,-38.95,206.0, --53.65,-38.95,206.0, --53.6,-38.95,206.0, --53.55,-38.95,206.0, --53.5,-38.95,206.0, --53.45,-38.95,206.0, --53.4,-38.95,206.0, --53.35,-38.95,206.0, --53.3,-38.95,206.0, --53.25,-38.95,206.0, --53.2,-38.95,206.0, --53.15,-38.95,206.0, --53.1,-38.95,206.0, --53.05,-38.95,206.0, --53.0,-38.95,206.0, --52.95,-38.95,206.0, --52.9,-38.95,206.0, --52.85,-38.95,206.0, --52.8,-38.95,206.0, --52.75,-38.95,206.0, --52.7,-38.95,206.0, --52.65,-38.95,206.0, --52.6,-38.95,206.0, --52.55,-38.95,206.0, --52.5,-38.95,206.0, --52.45,-38.95,206.0, --52.4,-38.95,206.0, --52.35,-38.95,206.0, --52.3,-38.95,206.0, --52.25,-38.95,206.0, --52.2,-38.95,206.0, --52.15,-38.95,206.0, --52.1,-38.95,206.0, --52.05,-38.95,206.0, --52.0,-38.95,206.0, --51.95,-38.95,206.0, --51.9,-38.95,206.0, --51.85,-38.95,206.0, --51.8,-38.95,206.0, --51.75,-38.95,206.0, --51.7,-38.95,206.0, --51.65,-38.95,206.0, --51.6,-38.95,206.0, --51.55,-38.95,206.0, --51.5,-38.95,206.0, --51.45,-38.95,206.0, --51.4,-38.95,206.0, --51.35,-38.95,206.0, --51.3,-38.95,206.0, --51.25,-38.95,206.0, --51.2,-38.95,206.0, --51.15,-38.95,206.0, --51.1,-38.95,206.0, --51.05,-38.95,206.0, --51.0,-38.95,206.0, --50.95,-38.95,206.0, --50.9,-38.95,206.0, --50.85,-38.95,206.0, --50.8,-38.95,206.0, --50.75,-38.95,206.0, --50.7,-38.95,206.0, --50.65,-38.95,206.0, --50.6,-38.95,206.0, --50.55,-38.95,206.0, --50.5,-38.95,206.0, --50.45,-38.95,206.0, --50.4,-38.95,206.0, --50.35,-38.95,206.0, --50.3,-38.95,206.0, --50.25,-38.95,206.0, --50.2,-38.95,206.0, --50.15,-38.95,206.0, --50.1,-38.95,206.0, --50.05,-38.95,206.0, --50.0,-38.95,206.0, --49.95,-38.95,206.0,0.08799999952316284 --49.9,-38.95,206.0,0.08799999207258224 --49.85,-38.95,206.0,0.08800000697374344 --49.8,-38.95,206.0,0.08799999952316284 --49.75,-38.95,206.0,0.08799999952316284 --49.7,-38.95,206.0,0.08799999207258224 --49.65,-38.95,206.0,0.08799999952316284 --49.6,-38.95,206.0,0.08799999952316284 --49.55,-38.95,206.0,0.08799999207258224 --49.5,-38.95,206.0,0.08799999952316284 --49.45,-38.95,206.0,0.08799999207258224 --49.4,-38.95,206.0,0.08799999952316284 --49.35,-38.95,206.0,0.08799999952316284 --49.3,-38.95,206.0,0.08799999952316284 --49.3,-38.35,206.0,0.08799999952316284 --49.3,-37.75,206.0,0.08799999952316284 --49.3,-37.15,206.0,0.08799999207258224 --49.3,-36.55,206.0,0.08799999952316284 --49.3,-35.95,206.0,0.08799999952316284 --49.3,-35.35,206.0,0.08799999952316284 --49.3,-34.75,206.0,0.08799999952316284 --49.3,-34.15,206.0,0.08799999952316284 --49.3,-33.55,206.0,0.08799999952316284 --49.3,-32.95,206.0,0.08799999952316284 --49.3,-32.35,206.0,0.08799999207258224 --49.3,-31.75,206.0,0.08799999207258224 --49.3,-31.15,206.0,0.08799999952316284 --49.3,-30.55,206.0,0.08799999952316284 --49.3,-29.95,206.0,0.08799999207258224 --49.3,-29.35,206.0,0.08799999952316284 --49.3,-28.75,206.0,0.08799999952316284 --49.3,-28.15,206.0,0.08799999207258224 --49.3,-27.55,206.0,0.08799999952316284 --49.3,-26.95,206.0,0.08799999207258224 --49.3,-26.35,206.0,0.08799999952316284 --49.3,-25.75,206.0,0.08799999952316284 --49.3,-25.15,206.0,0.08799999952316284 --49.3,-24.55,206.0,0.08799999952316284 --49.3,-23.95,206.0,0.08799999207258224 --49.3,-23.35,206.0,0.08799999207258224 --49.3,-22.75,206.0,0.08799999952316284 --49.3,-22.15,206.0,0.08799999952316284 --49.3,-21.55,206.0,0.08800000697374344 --49.3,-20.95,206.0,0.08799999952316284 --49.3,-20.35,206.0,0.08799999207258224 --49.3,-19.75,206.0,0.08799999952316284 --49.3,-19.15,206.0,0.08799999952316284 --49.3,-18.55,206.0,0.08799999207258224 --49.3,-17.95,206.0,0.08799999207258224 --49.3,-17.35,206.0,0.08799999952316284 --49.3,-16.75,206.0,0.08799999952316284 --49.3,-16.15,206.0,0.08799999952316284 --49.3,-15.55,206.0,0.08799999952316284 --49.3,-14.95,206.0,0.08799999207258224 --49.3,-14.35,206.0,0.08799999952316284 --49.3,-13.75,206.0,0.08799999952316284 --49.3,-13.15,206.0,0.08799999207258224 --49.3,-12.55,206.0,0.08799999207258224 --49.3,-11.95,206.0,0.08799999952316284 --49.3,-11.35,206.0,0.08799999952316284 --49.3,-10.75,206.0,0.08799999207258224 --49.3,-10.15,206.0,0.08799999207258224 --49.3,-9.55,206.0,0.08799999207258224 --49.3,-8.95,206.0,0.08799999207258224 --49.3,-8.35,206.0,0.08799999952316284 --49.3,-7.75,206.0,0.08799999952316284 --49.3,-7.15,206.0,0.08799999952316284 --49.3,-6.55,206.0,0.08799999207258224 --49.3,-5.95,206.0,0.08800000697374344 --49.3,-5.35,206.0,0.08799999207258224 --49.3,-4.75,206.0,0.08799999207258224 --49.3,-4.15,206.0,0.08799999952316284 --49.3,-3.55,206.0,0.08799999207258224 --49.3,-2.95,206.0,0.08799999207258224 --49.3,-2.35,206.0,0.08799999952316284 --49.3,-1.75,206.0,0.08799999952316284 --49.3,-1.15,206.0,0.08799999207258224 --49.3,-0.55,206.0,0.08799999952316284 --49.3,0.05,206.0,0.08799999207258224 --49.3,0.65,206.0,0.08799999207258224 --49.3,1.25,206.0,0.08799999952316284 --49.3,1.85,206.0,0.08799999952316284 --49.3,2.45,206.0,0.08799999207258224 --49.3,3.05,206.0,0.08799999952316284 --49.3,3.65,206.0,0.08799999207258224 --49.3,4.25,206.0,0.08799999207258224 --49.3,4.85,206.0,0.08799999952316284 --49.3,5.45,206.0,0.08799999207258224 --49.3,6.05,206.0,0.08799999207258224 --49.3,6.65,206.0,0.08799999207258224 --49.3,7.25,206.0,0.08799999207258224 --49.3,7.85,206.0,0.08799999207258224 --49.3,8.45,206.0,0.08799999207258224 --49.3,9.05,206.0,0.08799999952316284 --49.3,9.65,206.0,0.08799999207258224 --49.3,10.25,206.0,0.08799999207258224 --49.3,10.85,206.0,0.08799999207258224 --49.3,11.45,206.0,0.08799999207258224 --49.3,12.05,206.0,0.08799999207258224 --49.3,12.65,206.0,0.08799999207258224 --49.3,13.25,206.0,0.08799999207258224 --49.3,13.85,206.0,0.08799999207258224 --49.3,14.45,206.0,0.08799999207258224 --49.3,15.05,206.0,0.08799999207258224 --49.3,15.65,206.0,0.08799999207258224 --49.3,16.25,206.0,0.08799999207258224 --49.3,16.85,206.0,0.08799999207258224 --49.3,17.45,206.0,0.08799999207258224 --49.3,18.05,206.0,0.08799999207258224 --49.3,18.65,206.0,0.08799999207258224 --49.3,19.25,206.0,0.08799999207258224 --49.3,19.85,206.0,0.08799999207258224 --49.3,20.45,206.0,0.08799999207258224 --49.3,21.05,206.0,0.08799999207258224 --49.3,21.65,206.0,0.08799999207258224 --49.3,22.25,206.0,0.08799999207258224 --49.3,22.85,206.0,0.08799999207258224 --49.35,22.85,206.0,0.08799999952316284 --49.4,22.85,206.0,0.08799999207258224 --49.45,22.85,206.0,0.08799999207258224 --49.5,22.85,206.0,0.08799999207258224 --49.55,22.85,206.0,0.08799999207258224 --49.6,22.85,206.0,0.08799999207258224 --49.65,22.85,206.0,0.08799999207258224 --49.7,22.85,206.0,0.08799999207258224 --49.75,22.85,206.0,0.08799999207258224 --49.8,22.85,206.0,0.08799999952316284 --49.85,22.85,206.0,0.08799999207258224 --49.9,22.85,206.0,0.08799999952316284 --49.95,22.85,206.0,0.08799999207258224 --50.0,22.85,206.0, --50.05,22.85,206.0, --50.1,22.85,206.0, --50.15,22.85,206.0, --50.2,22.85,206.0, --50.25,22.85,206.0, --50.3,22.85,206.0, --50.35,22.85,206.0, --50.4,22.85,206.0, --50.45,22.85,206.0, --50.5,22.85,206.0, --50.55,22.85,206.0, --50.6,22.85,206.0, --50.65,22.85,206.0, --50.7,22.85,206.0, --50.75,22.85,206.0, --50.8,22.85,206.0, --50.85,22.85,206.0, --50.9,22.85,206.0, --50.95,22.85,206.0, --51.0,22.85,206.0, --51.05,22.85,206.0, --51.1,22.85,206.0, --51.15,22.85,206.0, --51.2,22.85,206.0, --51.25,22.85,206.0, --51.3,22.85,206.0, --51.35,22.85,206.0, --51.4,22.85,206.0, --51.45,22.85,206.0, --51.5,22.85,206.0, --51.55,22.85,206.0, --51.6,22.85,206.0, --51.65,22.85,206.0, --51.7,22.85,206.0, --51.75,22.85,206.0, --51.8,22.85,206.0, --51.85,22.85,206.0, --51.9,22.85,206.0, --51.95,22.85,206.0, --52.0,22.85,206.0, --52.05,22.85,206.0, --52.1,22.85,206.0, --52.15,22.85,206.0, --52.2,22.85,206.0, --52.25,22.85,206.0, --52.3,22.85,206.0, --52.35,22.85,206.0, --52.4,22.85,206.0, --52.45,22.85,206.0, --52.5,22.85,206.0, --52.55,22.85,206.0, --52.6,22.85,206.0, --52.65,22.85,206.0, --52.7,22.85,206.0, --52.75,22.85,206.0, --52.8,22.85,206.0, --52.85,22.85,206.0, --52.9,22.85,206.0, --52.95,22.85,206.0, --53.0,22.85,206.0, --53.05,22.85,206.0, --53.1,22.85,206.0, --53.15,22.85,206.0, --53.2,22.85,206.0, --53.25,22.85,206.0, --53.3,22.85,206.0, --53.35,22.85,206.0, --53.4,22.85,206.0, --53.45,22.85,206.0, --53.5,22.85,206.0, --53.55,22.85,206.0, --53.6,22.85,206.0, --53.65,22.85,206.0, --53.7,22.85,206.0, --53.75,22.85,206.0, --53.8,22.85,206.0, --53.85,22.85,206.0, --53.9,22.85,206.0, --53.95,22.85,206.0, --54.0,22.85,206.0, --54.05,22.85,206.0, --54.1,22.85,206.0, --54.15,22.85,206.0, --54.2,22.85,206.0, --54.25,22.85,206.0, --54.3,22.85,206.0, --54.35,22.85,206.0, --54.4,22.85,206.0, --54.45,22.85,206.0, --54.5,22.85,206.0, --54.55,22.85,206.0, --54.6,22.85,206.0, --54.65,22.85,206.0, --54.7,22.85,206.0, --54.75,22.85,206.0, --54.8,22.85,206.0, --54.85,22.85,206.0, --54.9,22.85,206.0, --54.95,22.85,206.0, --55.0,22.85,206.0, --55.05,22.85,206.0, --55.1,22.85,206.0, --55.15,22.85,206.0, --55.2,22.85,206.0, --55.25,22.85,206.0, --55.3,22.85,206.0, --55.35,22.85,206.0, --55.4,22.85,206.0, --55.45,22.85,206.0, --55.5,22.85,206.0, --55.55,22.85,206.0, --55.6,22.85,206.0, --55.65,22.85,206.0, --55.7,22.85,206.0, --55.75,22.85,206.0, --55.8,22.85,206.0, --55.85,22.85,206.0, --55.9,22.85,206.0, --55.95,22.85,206.0, --56.0,22.85,206.0, --56.05,22.85,206.0, --56.1,22.85,206.0, --56.15,22.85,206.0, --56.2,22.85,206.0, --56.25,22.85,206.0, --56.3,22.85,206.0, --56.35,22.85,206.0, --56.4,22.85,206.0, --56.45,22.85,206.0, --56.5,22.85,206.0, --56.55,22.85,206.0, --56.6,22.85,206.0, --56.65,22.85,206.0, --56.7,22.85,206.0, --56.75,22.85,206.0, --56.8,22.85,206.0, --56.85,22.85,206.0, --56.9,22.85,206.0, --56.95,22.85,206.0, --57.0,22.85,206.0, --57.05,22.85,206.0, --57.1,22.85,206.0, --57.15,22.85,206.0, --57.2,22.85,206.0, --57.25,22.85,206.0, --57.3,22.85,206.0, --57.35,22.85,206.0, --57.4,22.85,206.0, --57.45,22.85,206.0, --57.5,22.85,206.0, --57.55,22.85,206.0, --57.6,22.85,206.0, --57.65,22.85,206.0, --57.7,22.85,206.0, --57.75,22.85,206.0, --57.8,22.85,206.0, --57.85,22.85,206.0, --57.9,22.85,206.0, --57.95,22.85,206.0, --58.0,22.85,206.0, --58.05,22.85,206.0, --58.1,22.85,206.0, --58.15,22.85,206.0, --58.2,22.85,206.0, --58.25,22.85,206.0, --58.3,22.85,206.0, --58.35,22.85,206.0, --58.4,22.85,206.0, --58.45,22.85,206.0, --58.5,22.85,206.0, --58.55,22.85,206.0, --58.6,22.85,206.0, --58.65,22.85,206.0, --58.7,22.85,206.0, --58.75,22.85,206.0, --58.8,22.85,206.0, --58.85,22.85,206.0, --58.9,22.85,206.0, --58.95,22.85,206.0, --59.0,22.85,206.0, --59.05,22.85,206.0, --59.1,22.85,206.0, --59.15,22.85,206.0, --59.2,22.85,206.0, --59.25,22.85,206.0, --59.25,23.45,206.0, --59.25,24.05,206.0, --59.25,24.65,206.0, --59.25,25.25,206.0, --59.25,25.85,206.0, --59.25,26.45,206.0, --59.25,27.05,206.0, --59.25,27.65,206.0, --59.25,28.25,206.0, --59.25,28.85,206.0, --59.25,29.45,206.0, --59.25,30.05,206.0, --59.25,30.65,206.0, --59.25,31.25,206.0, --59.25,31.85,206.0, --59.25,32.45,206.0, --59.25,33.05,206.0, --59.25,33.65,206.0, --59.25,34.25,206.0, --59.25,34.85,206.0, --59.25,35.45,206.0, --59.25,36.05,206.0, --59.25,36.65,206.0, --59.25,37.25,206.0, --59.25,37.85,206.0, --59.25,38.45,206.0, --59.25,39.05,206.0, --59.25,39.65,206.0, --59.25,40.25,206.0, --59.25,40.85,206.0, --59.25,41.45,206.0, --59.25,42.05,206.0, --59.25,42.65,206.0, --59.25,43.25,206.0, --59.25,43.85,206.0, --59.25,44.45,206.0, --59.25,45.05,206.0, --59.25,45.65,206.0, --59.25,46.25,206.0, --59.25,46.85,206.0, --59.25,47.45,206.0, --59.25,48.05,206.0, --59.25,48.65,206.0, --59.25,49.25,206.0, --59.25,49.85,206.0, --59.25,50.45,206.0, --59.25,51.05,206.0, --59.25,51.65,206.0, --59.25,52.25,206.0, --59.25,52.85,206.0, --59.25,53.45,206.0, --59.25,54.05,206.0, --59.25,54.65,206.0, --59.25,55.25,206.0, --59.25,55.85,206.0, --59.25,56.45,206.0, --59.25,57.05,206.0, --59.25,57.65,206.0, --59.25,58.25,206.0, --59.25,58.85,206.0, --59.25,59.45,206.0, --59.25,60.05,206.0, --59.25,60.65,206.0, --59.25,61.25,206.0, --59.25,61.85,206.0, --59.25,62.45,206.0, --59.25,63.05,206.0, --59.25,63.65,206.0, --59.25,64.25,206.0, --59.25,64.85,206.0, --59.25,65.45,206.0, --59.25,66.05,206.0, --59.25,66.65,206.0, --59.25,67.25,206.0, --59.25,67.85,206.0, --59.25,68.45,206.0, --59.25,69.05,206.0, --59.25,69.65,206.0, --59.25,70.25,206.0, --59.25,70.85,206.0, --59.25,71.45,206.0, --59.25,72.05,206.0, --59.25,72.65,206.0, --59.25,73.25,206.0, --59.25,73.85,206.0, --59.25,74.45,206.0, --59.25,75.05,206.0, --59.25,75.65,206.0, --59.25,76.25,206.0, --59.25,76.85,206.0, --59.25,77.45,206.0, --59.25,78.05,206.0, --59.25,78.65,206.0, --59.25,79.25,206.0, --59.25,79.85,206.0, --59.25,80.45,206.0, --59.25,81.05,206.0, --59.25,81.65,206.0, --59.25,82.25,206.0, --59.25,82.85,206.0, --59.25,83.45,206.0, --59.25,84.05,206.0, --59.25,84.65,206.0, --59.2,84.65,206.0, --59.15,84.65,206.0, --59.1,84.65,206.0, --59.05,84.65,206.0, --59.0,84.65,206.0, --58.95,84.65,206.0, --58.9,84.65,206.0, --58.85,84.65,206.0, --58.8,84.65,206.0, --58.75,84.65,206.0, --58.7,84.65,206.0, --58.65,84.65,206.0, --58.6,84.65,206.0, --58.55,84.65,206.0, --58.5,84.65,206.0, --58.45,84.65,206.0, --58.4,84.65,206.0, --58.35,84.65,206.0, --58.3,84.65,206.0, --58.25,84.65,206.0, --58.2,84.65,206.0, --58.15,84.65,206.0, --58.1,84.65,206.0, --58.05,84.65,206.0, --58.0,84.65,206.0, --57.95,84.65,206.0, --57.9,84.65,206.0, --57.85,84.65,206.0, --57.8,84.65,206.0, --57.75,84.65,206.0, --57.7,84.65,206.0, --57.65,84.65,206.0, --57.6,84.65,206.0, --57.55,84.65,206.0, --57.5,84.65,206.0, --57.45,84.65,206.0, --57.4,84.65,206.0, --57.35,84.65,206.0, --57.3,84.65,206.0, --57.25,84.65,206.0, --57.2,84.65,206.0, --57.15,84.65,206.0, --57.1,84.65,206.0, --57.05,84.65,206.0, --57.0,84.65,206.0, --56.95,84.65,206.0, --56.9,84.65,206.0, --56.85,84.65,206.0, --56.8,84.65,206.0, --56.75,84.65,206.0, --56.7,84.65,206.0, --56.65,84.65,206.0, --56.6,84.65,206.0, --56.55,84.65,206.0, --56.5,84.65,206.0, --56.45,84.65,206.0, --56.4,84.65,206.0, --56.35,84.65,206.0, --56.3,84.65,206.0, --56.25,84.65,206.0, --56.2,84.65,206.0, --56.15,84.65,206.0, --56.1,84.65,206.0, --56.05,84.65,206.0, --56.0,84.65,206.0, --55.95,84.65,206.0, --55.9,84.65,206.0, --55.85,84.65,206.0, --55.8,84.65,206.0, --55.75,84.65,206.0, --55.7,84.65,206.0, --55.65,84.65,206.0, --55.6,84.65,206.0, --55.55,84.65,206.0, --55.5,84.65,206.0, --55.45,84.65,206.0, --55.4,84.65,206.0, --55.35,84.65,206.0, --55.3,84.65,206.0, --55.25,84.65,206.0, --55.2,84.65,206.0, --55.15,84.65,206.0, --55.1,84.65,206.0, --55.05,84.65,206.0, --55.0,84.65,206.0, --54.95,84.65,206.0, --54.9,84.65,206.0, --54.85,84.65,206.0, --54.8,84.65,206.0, --54.75,84.65,206.0, --54.7,84.65,206.0, --54.65,84.65,206.0, --54.6,84.65,206.0, --54.55,84.65,206.0, --54.5,84.65,206.0, --54.45,84.65,206.0, --54.4,84.65,206.0, --54.35,84.65,206.0, --54.3,84.65,206.0, --54.25,84.65,206.0, --54.2,84.65,206.0, --54.15,84.65,206.0, --54.1,84.65,206.0, --54.05,84.65,206.0, --54.0,84.65,206.0, --53.95,84.65,206.0, --53.9,84.65,206.0, --53.85,84.65,206.0, --53.8,84.65,206.0, --53.75,84.65,206.0, --53.7,84.65,206.0, --53.65,84.65,206.0, --53.6,84.65,206.0, --53.55,84.65,206.0, --53.5,84.65,206.0, --53.45,84.65,206.0, --53.4,84.65,206.0, --53.35,84.65,206.0, --53.3,84.65,206.0, --53.25,84.65,206.0, --53.2,84.65,206.0, --53.15,84.65,206.0, --53.1,84.65,206.0, --53.05,84.65,206.0, --53.0,84.65,206.0, --52.95,84.65,206.0, --52.9,84.65,206.0, --52.85,84.65,206.0, --52.8,84.65,206.0, --52.75,84.65,206.0, --52.7,84.65,206.0, --52.65,84.65,206.0, --52.6,84.65,206.0, --52.55,84.65,206.0, --52.5,84.65,206.0, --52.45,84.65,206.0, --52.4,84.65,206.0, --52.35,84.65,206.0, --52.3,84.65,206.0, --52.25,84.65,206.0, --52.2,84.65,206.0, --52.15,84.65,206.0, --52.1,84.65,206.0, --52.05,84.65,206.0, --52.0,84.65,206.0, --51.95,84.65,206.0, --51.9,84.65,206.0, --51.85,84.65,206.0, --51.8,84.65,206.0, --51.75,84.65,206.0, --51.7,84.65,206.0, --51.65,84.65,206.0, --51.6,84.65,206.0, --51.55,84.65,206.0, --51.5,84.65,206.0, --51.45,84.65,206.0, --51.4,84.65,206.0, --51.35,84.65,206.0, --51.3,84.65,206.0, --51.25,84.65,206.0, --51.2,84.65,206.0, --51.15,84.65,206.0, --51.1,84.65,206.0, --51.05,84.65,206.0, --51.0,84.65,206.0, --50.95,84.65,206.0, --50.9,84.65,206.0, --50.85,84.65,206.0, --50.8,84.65,206.0, --50.75,84.65,206.0, --50.7,84.65,206.0, --50.65,84.65,206.0, --50.6,84.65,206.0, --50.55,84.65,206.0, --50.5,84.65,206.0, --50.45,84.65,206.0, --50.4,84.65,206.0, --50.35,84.65,206.0, --50.3,84.65,206.0, --50.25,84.65,206.0, --50.2,84.65,206.0, --50.15,84.65,206.0, --50.1,84.65,206.0, --50.05,84.65,206.0, --50.0,84.65,206.0, --49.95,84.65,206.0,0.08799999952316284 --49.9,84.65,206.0,0.08799999952316284 --49.85,84.65,206.0,0.08799999952316284 --49.8,84.65,206.0,0.08799999952316284 --49.75,84.65,206.0,0.08800000697374344 --49.7,84.65,206.0,0.08800000697374344 --49.65,84.65,206.0,0.08800000697374344 --49.6,84.65,206.0,0.08799999207258224 --49.55,84.65,206.0,0.08799999952316284 --49.5,84.65,206.0,0.08799999952316284 --49.45,84.65,206.0,0.08799999207258224 --49.4,84.65,206.0,0.08799999207258224 --49.35,84.65,206.0,0.08799999207258224 --49.3,84.65,206.0,0.08799999207258224 --49.3,84.7,206.0,0.08799999207258224 --49.3,84.75,206.0,0.08799999952316284 --49.3,84.8,206.0,0.08799999952316284 --49.3,84.85,206.0,0.08799999952316284 --49.3,84.9,206.0,0.08800001442432404 --49.3,84.95,206.0,0.08799999952316284 --49.3,85.0,206.0,0.08799999207258224 --49.3,85.05,206.0,0.08799999207258224 --49.3,85.1,206.0,0.08800000697374344 --49.3,85.15,206.0,0.08799999207258224 --49.3,85.2,206.0,0.08800000697374344 --49.3,85.25,206.0,0.08799999207258224 --49.3,85.3,206.0,0.08799999952316284 --49.3,85.35,206.0,0.08799999207258224 --49.3,85.4,206.0,0.08799999207258224 --49.3,85.45,206.0,0.08799999952316284 --49.3,85.5,206.0,0.08799999207258224 --49.3,85.55,206.0,0.08799999952316284 --49.3,85.6,206.0,0.08799999207258224 --49.3,85.65,206.0, --49.3,85.7,206.0, --49.3,85.75,206.0, --49.3,85.8,206.0, --49.3,85.85,206.0, --49.3,85.9,206.0, --49.3,85.95,206.0, --49.3,86.0,206.0, --49.3,86.05,206.0, --49.3,86.1,206.0, --49.3,86.15,206.0, --49.3,86.2,206.0, --49.3,86.25,206.0, --49.3,86.3,206.0, --49.3,86.35,206.0, --49.3,86.4,206.0, --49.3,86.45,206.0, --49.3,86.5,206.0, --49.3,86.55,206.0, --49.3,86.6,206.0, --49.3,86.65,206.0, --49.3,86.7,206.0, --49.3,86.75,206.0, --49.3,86.8,206.0, --49.3,86.85,206.0, --49.3,86.9,206.0, --49.3,86.95,206.0, --49.3,87.0,206.0, --49.3,87.05,206.0, --49.3,87.1,206.0, --49.3,87.15,206.0, --49.3,87.2,206.0, --49.3,87.25,206.0, --49.3,87.3,206.0, --49.3,87.35,206.0, --49.3,87.4,206.0, --49.3,87.45,206.0, --49.3,87.5,206.0, --49.3,87.55,206.0, --49.3,87.6,206.0, --49.3,87.65,206.0, --49.3,87.7,206.0, --49.3,87.75,206.0, --49.3,87.8,206.0, --49.3,87.85,206.0, --49.3,87.9,206.0, --49.3,87.95,206.0, --49.3,88.0,206.0, --49.3,88.05,206.0, --49.3,88.1,206.0, --49.3,88.15,206.0, --49.3,88.2,206.0, --49.3,88.25,206.0, --49.3,88.3,206.0, --49.3,88.35,206.0, --49.3,88.4,206.0, --49.3,88.45,206.0, --49.3,88.5,206.0, --49.3,88.55,206.0, --49.3,88.6,206.0, --49.3,88.65,206.0, --49.3,88.7,206.0, --49.3,88.75,206.0, --49.3,88.8,206.0, --49.3,88.85,206.0, --49.3,88.9,206.0, --49.3,88.95,206.0, --49.3,89.0,206.0, --49.3,89.05,206.0, --49.3,89.1,206.0, --49.3,89.15,206.0, --49.3,89.2,206.0, --49.3,89.25,206.0, --49.3,89.3,206.0, --49.3,89.35,206.0, --49.3,89.4,206.0, --49.3,89.45,206.0, --49.3,89.5,206.0, --49.3,89.55,206.0, --49.3,89.6,206.0, --49.3,89.65,206.0, --49.3,89.7,206.0, --49.3,89.75,206.0, --49.3,89.8,206.0, --49.3,89.85,206.0, --49.3,89.9,206.0, --49.3,89.95,206.0, --49.3,90.0,206.0, --49.3,90.05,206.0, --49.3,90.1,206.0, --49.3,90.15,206.0, --49.3,90.2,206.0, --49.3,90.25,206.0, --49.3,90.3,206.0, --49.3,90.35,206.0, --49.3,90.4,206.0, --49.3,90.45,206.0, --49.3,90.5,206.0, --49.3,90.55,206.0, --49.3,90.6,206.0, --49.3,90.65,206.0, --49.3,90.7,206.0, --49.3,90.75,206.0, --49.3,90.8,206.0, --49.3,90.85,206.0, --49.3,90.9,206.0, --49.3,90.95,206.0, --49.3,91.0,206.0, --49.3,91.05,206.0, --49.3,91.1,206.0, --49.3,91.15,206.0, --49.3,91.2,206.0, --49.3,91.25,206.0, --49.3,91.3,206.0, --49.3,91.35,206.0, --49.3,91.4,206.0, --49.3,91.45,206.0, --49.3,91.5,206.0, --49.3,91.55,206.0, --49.3,91.6,206.0, --49.3,91.65,206.0, --49.3,91.7,206.0, --49.3,91.75,206.0, --49.3,91.8,206.0, --49.3,91.85,206.0, --49.3,91.9,206.0, --49.3,91.95,206.0, --49.3,92.0,206.0, --49.3,92.05,206.0, --49.3,92.1,206.0, --49.3,92.15,206.0, --49.3,92.2,206.0, --49.3,92.25,206.0, --49.3,92.3,206.0, --49.3,92.35,206.0, --49.3,92.4,206.0, --49.3,92.45,206.0, --49.3,92.5,206.0, --49.3,92.55,206.0, --49.3,92.6,206.0, --49.3,92.65,206.0, --49.3,92.7,206.0, --49.3,92.75,206.0, --49.3,92.8,206.0, --49.3,92.85,206.0, --49.3,92.9,206.0, --49.3,92.95,206.0, --49.3,93.0,206.0, --49.3,93.05,206.0, --49.3,93.1,206.0, --49.3,93.15,206.0, --49.3,93.2,206.0, --49.3,93.25,206.0, --49.3,93.3,206.0, --49.3,93.35,206.0, --49.3,93.4,206.0, --49.3,93.45,206.0, --49.3,93.5,206.0, --49.3,93.55,206.0, --49.3,93.6,206.0, --49.3,93.65,206.0, --49.3,93.7,206.0, --49.3,93.75,206.0, --49.3,93.8,206.0, --49.3,93.85,206.0, --49.3,93.9,206.0, --49.3,93.95,206.0, --49.3,94.0,206.0, --49.3,94.05,206.0, --49.3,94.1,206.0, --49.3,94.15,206.0, --49.3,94.2,206.0, --49.3,94.25,206.0, --49.3,94.3,206.0, --49.3,94.35,206.0, --49.3,94.4,206.0, --49.3,94.45,206.0, --49.3,94.5,206.0, --49.3,94.55,206.0, --49.3,94.6,206.0, --48.7,94.6,206.0, --48.1,94.6,206.0, --47.5,94.6,206.0, --46.9,94.6,206.0, --46.3,94.6,206.0, --45.7,94.6,206.0, --45.1,94.6,206.0, --44.5,94.6,206.0, --43.9,94.6,206.0, --43.3,94.6,206.0, --42.7,94.6,206.0, --42.1,94.6,206.0, --41.5,94.6,206.0, --40.9,94.6,206.0, --40.3,94.6,206.0, --39.7,94.6,206.0, --39.1,94.6,206.0, --38.5,94.6,206.0, --37.9,94.6,206.0, --37.3,94.6,206.0, --36.7,94.6,206.0, --36.1,94.6,206.0, --35.5,94.6,206.0, --34.9,94.6,206.0, --34.3,94.6,206.0, --33.7,94.6,206.0, --33.1,94.6,206.0, --32.5,94.6,206.0, --31.9,94.6,206.0, --31.3,94.6,206.0, --30.7,94.6,206.0, --30.1,94.6,206.0, --29.5,94.6,206.0, --28.9,94.6,206.0, --28.3,94.6,206.0, --27.7,94.6,206.0, --27.1,94.6,206.0, --26.5,94.6,206.0, --25.9,94.6,206.0, --25.3,94.6,206.0, --24.7,94.6,206.0, --24.1,94.6,206.0, --23.5,94.6,206.0, --22.9,94.6,206.0, --22.3,94.6,206.0, --21.7,94.6,206.0, --21.1,94.6,206.0, --20.5,94.6,206.0, --19.9,94.6,206.0, --19.3,94.6,206.0, --18.7,94.6,206.0, --18.1,94.6,206.0, --17.5,94.6,206.0, --16.9,94.6,206.0, --16.3,94.6,206.0, --15.7,94.6,206.0, --15.1,94.6,206.0, --14.5,94.6,206.0, --13.9,94.6,206.0, --13.3,94.6,206.0, --12.7,94.6,206.0, --12.1,94.6,206.0, --11.5,94.6,206.0, --10.9,94.6,206.0, --10.3,94.6,206.0, --9.7,94.6,206.0, --9.1,94.6,206.0, --8.5,94.6,206.0, --7.9,94.6,206.0, --7.3,94.6,206.0, --6.7,94.6,206.0, --6.1,94.6,206.0, --5.5,94.6,206.0, --4.9,94.6,206.0, --4.3,94.6,206.0, --3.7,94.6,206.0, --3.1,94.6,206.0, --2.5,94.6,206.0, --1.9,94.6,206.0, --1.3,94.6,206.0, --1.3,94.55,206.0, --1.3,94.5,206.0, --1.3,94.45,206.0, --1.3,94.4,206.0, --1.3,94.35,206.0, --1.3,94.3,206.0, --1.3,94.25,206.0, --1.3,94.2,206.0, --1.3,94.15,206.0, --1.3,94.1,206.0, --1.3,94.05,206.0, --1.3,94.0,206.0, --1.3,93.95,206.0, --1.3,93.9,206.0, --1.3,93.85,206.0, --1.3,93.8,206.0, --1.3,93.75,206.0, --1.3,93.7,206.0, --1.3,93.65,206.0, --1.3,93.6,206.0, --1.3,93.55,206.0, --1.3,93.5,206.0, --1.3,93.45,206.0, --1.3,93.4,206.0, --1.3,93.35,206.0, --1.3,93.3,206.0, --1.3,93.25,206.0, --1.3,93.2,206.0, --1.3,93.15,206.0, --1.3,93.1,206.0, --1.3,93.05,206.0, --1.3,93.0,206.0, --1.3,92.95,206.0, --1.3,92.9,206.0, --1.3,92.85,206.0, --1.3,92.8,206.0, --1.3,92.75,206.0, --1.3,92.7,206.0, --1.3,92.65,206.0, --1.3,92.6,206.0, --1.3,92.55,206.0, --1.3,92.5,206.0, --1.3,92.45,206.0, --1.3,92.4,206.0, --1.3,92.35,206.0, --1.3,92.3,206.0, --1.3,92.25,206.0, --1.3,92.2,206.0, --1.3,92.15,206.0, --1.3,92.1,206.0, --1.3,92.05,206.0, --1.3,92.0,206.0, --1.3,91.95,206.0, --1.3,91.9,206.0, --1.3,91.85,206.0, --1.3,91.8,206.0, --1.3,91.75,206.0, --1.3,91.7,206.0, --1.3,91.65,206.0, --1.3,91.6,206.0, --1.3,91.55,206.0, --1.3,91.5,206.0, --1.3,91.45,206.0, --1.3,91.4,206.0, --1.3,91.35,206.0, --1.3,91.3,206.0, --1.3,91.25,206.0, --1.3,91.2,206.0, --1.3,91.15,206.0, --1.3,91.1,206.0, --1.3,91.05,206.0, --1.3,91.0,206.0, --1.3,90.95,206.0, --1.3,90.9,206.0, --1.3,90.85,206.0, --1.3,90.8,206.0, --1.3,90.75,206.0, --1.3,90.7,206.0, --1.3,90.65,206.0, --1.3,90.6,206.0, --1.3,90.55,206.0, --1.3,90.5,206.0, --1.3,90.45,206.0, --1.3,90.4,206.0, --1.3,90.35,206.0, --1.3,90.3,206.0, --1.3,90.25,206.0, --1.3,90.2,206.0, --1.3,90.15,206.0, --1.3,90.1,206.0, --1.3,90.05,206.0, --1.3,90.0,206.0, --1.3,89.95,206.0, --1.3,89.9,206.0, --1.3,89.85,206.0, --1.3,89.8,206.0, --1.3,89.75,206.0, --1.3,89.7,206.0, --1.3,89.65,206.0, --1.3,89.6,206.0, --1.3,89.55,206.0, --1.3,89.5,206.0, --1.3,89.45,206.0, --1.3,89.4,206.0, --1.3,89.35,206.0, --1.3,89.3,206.0, --1.3,89.25,206.0, --1.3,89.2,206.0, --1.3,89.15,206.0, --1.3,89.1,206.0, --1.3,89.05,206.0, --1.3,89.0,206.0, --1.3,88.95,206.0, --1.3,88.9,206.0, --1.3,88.85,206.0, --1.3,88.8,206.0, --1.3,88.75,206.0, --1.3,88.7,206.0, --1.3,88.65,206.0, --1.3,88.6,206.0, --1.3,88.55,206.0, --1.3,88.5,206.0, --1.3,88.45,206.0, --1.3,88.4,206.0, --1.3,88.35,206.0, --1.3,88.3,206.0, --1.3,88.25,206.0, --1.3,88.2,206.0, --1.3,88.15,206.0, --1.3,88.1,206.0, --1.3,88.05,206.0, --1.3,88.0,206.0, --1.3,87.95,206.0, --1.3,87.9,206.0, --1.3,87.85,206.0, --1.3,87.8,206.0, --1.3,87.75,206.0, --1.3,87.7,206.0, --1.3,87.65,206.0, --1.3,87.6,206.0, --1.3,87.55,206.0, --1.3,87.5,206.0, --1.3,87.45,206.0, --1.3,87.4,206.0, --1.3,87.35,206.0, --1.3,87.3,206.0, --1.3,87.25,206.0, --1.3,87.2,206.0, --1.3,87.15,206.0, --1.3,87.1,206.0, --1.3,87.05,206.0, --1.3,87.0,206.0, --1.3,86.95,206.0, --1.3,86.9,206.0, --1.3,86.85,206.0, --1.3,86.8,206.0, --1.3,86.75,206.0, --1.3,86.7,206.0, --1.3,86.65,206.0, --1.3,86.6,206.0, --1.3,86.55,206.0, --1.3,86.5,206.0, --1.3,86.45,206.0, --1.3,86.4,206.0, --1.3,86.35,206.0, --1.3,86.3,206.0, --1.3,86.25,206.0, --1.3,86.2,206.0, --1.3,86.15,206.0, --1.3,86.1,206.0, --1.3,86.05,206.0, --1.3,86.0,206.0, --1.3,85.95,206.0, --1.3,85.9,206.0, --1.3,85.85,206.0, --1.3,85.8,206.0, --1.3,85.75,206.0, --1.3,85.7,206.0, --1.3,85.65,206.0, --1.3,85.6,206.0,0.08799999952316284 --1.3,85.55,206.0,0.08799999952316284 --1.3,85.5,206.0,0.08799999952316284 --1.3,85.45,206.0,0.08799999207258224 --1.3,85.4,206.0,0.08799998462200165 --1.3,85.35,206.0,0.08799999207258224 --1.3,85.3,206.0,0.08799999952316284 --1.3,85.25,206.0,0.08799999952316284 --1.3,85.2,206.0,0.08799999952316284 --1.3,85.15,206.0,0.08799999207258224 --1.3,85.1,206.0,0.08799999207258224 --1.3,85.05,206.0,0.08800000697374344 --1.3,85.0,206.0,0.08799999952316284 --1.3,84.95,206.0,0.08799999952316284 --1.3,84.9,206.0,0.08799998462200165 --1.3,84.85,206.0,0.08799999207258224 --1.3,84.8,206.0,0.08799999952316284 --1.3,84.75,206.0,0.08799999952316284 --1.3,84.7,206.0,0.08799999952316284 --1.3,84.65,206.0,0.08799999207258224 --0.7,84.65,206.0,0.08799999207258224 --0.1,84.65,206.0,0.08799999207258224 -0.5,84.65,206.0,0.08799999207258224 -1.1,84.65,206.0,0.08799999207258224 -1.7,84.65,206.0,0.08799999207258224 -2.3,84.65,206.0,0.08799999207258224 -2.9,84.65,206.0,0.08799999207258224 -3.5,84.65,206.0,0.08799999207258224 -4.1,84.65,206.0,0.08799999207258224 -4.7,84.65,206.0,0.08799999207258224 -5.3,84.65,206.0,0.08799999207258224 -5.9,84.65,206.0,0.08799999207258224 -6.5,84.65,206.0,0.08799999207258224 -7.1,84.65,206.0,0.08799999207258224 -7.7,84.65,206.0,0.08799999207258224 -8.3,84.65,206.0,0.08799999207258224 -8.9,84.65,206.0,0.08799999207258224 -9.5,84.65,206.0,0.08799999952316284 -10.1,84.65,206.0,0.08799999952316284 -10.7,84.65,206.0,0.08799999952316284 -11.3,84.65,206.0,0.08799999207258224 -11.9,84.65,206.0,0.08799999207258224 -12.5,84.65,206.0,0.08799999207258224 -13.1,84.65,206.0,0.08799999207258224 -13.7,84.65,206.0,0.08799999207258224 -14.3,84.65,206.0,0.08799999207258224 -14.9,84.65,206.0,0.08799999207258224 -15.5,84.65,206.0,0.08799999207258224 -16.1,84.65,206.0,0.08799999207258224 -16.7,84.65,206.0,0.08799999952316284 -17.3,84.65,206.0,0.08799999952316284 -17.9,84.65,206.0,0.08799999207258224 -18.5,84.65,206.0,0.08799999207258224 -19.1,84.65,206.0,0.08799999952316284 -19.7,84.65,206.0,0.08799998462200165 -20.3,84.65,206.0,0.08799999207258224 -20.9,84.65,206.0,0.08799999952316284 -21.5,84.65,206.0,0.08799999207258224 -22.1,84.65,206.0,0.08799999952316284 -22.7,84.65,206.0,0.08799999207258224 -23.3,84.65,206.0,0.08799999207258224 -23.9,84.65,206.0,0.08799999952316284 -24.5,84.65,206.0,0.08799999207258224 -25.1,84.65,206.0,0.08799999207258224 -25.7,84.65,206.0,0.08799999207258224 -26.3,84.65,206.0,0.08799999952316284 -26.9,84.65,206.0,0.08799999207258224 -27.5,84.65,206.0,0.08799999207258224 -28.1,84.65,206.0,0.08799999207258224 -28.7,84.65,206.0,0.08799999207258224 -29.3,84.65,206.0,0.08799999952316284 -29.9,84.65,206.0,0.08799999207258224 -30.5,84.65,206.0,0.08799999207258224 -31.1,84.65,206.0,0.08799999952316284 -31.7,84.65,206.0,0.08799999207258224 -32.3,84.65,206.0,0.08800000697374344 -32.9,84.65,206.0,0.08799999207258224 -33.5,84.65,206.0,0.08799999207258224 -34.1,84.65,206.0,0.08799999207258224 -34.7,84.65,206.0,0.08799999952316284 -35.3,84.65,206.0,0.08799999952316284 -35.9,84.65,206.0,0.08799999952316284 -36.5,84.65,206.0,0.08799999207258224 -37.1,84.65,206.0,0.08799999952316284 -37.7,84.65,206.0,0.08799999952316284 -38.3,84.65,206.0,0.08799999207258224 -38.9,84.65,206.0,0.08799999952316284 -39.5,84.65,206.0,0.08799999207258224 -40.1,84.65,206.0,0.08799999207258224 -40.7,84.65,206.0,0.08799999207258224 -41.3,84.65,206.0,0.08799999952316284 -41.9,84.65,206.0,0.08799999952316284 -42.5,84.65,206.0,0.08799998462200165 -43.1,84.65,206.0,0.08799999207258224 -43.7,84.65,206.0,0.08799999207258224 -44.3,84.65,206.0,0.08799999952316284 -44.9,84.65,206.0,0.08799999952316284 -45.5,84.65,206.0,0.08799999952316284 -46.1,84.65,206.0,0.08799999207258224 -46.7,84.65,206.0,0.08799999207258224 -46.7,84.7,206.0,0.08799999952316284 -46.7,84.75,206.0,0.08799999952316284 -46.7,84.8,206.0,0.08799999952316284 -46.7,84.85,206.0,0.08799999207258224 -46.7,84.9,206.0,0.08799999207258224 -46.7,84.95,206.0,0.08800000697374344 -46.7,85.0,206.0,0.08799999952316284 -46.7,85.05,206.0,0.08800001442432404 -46.7,85.1,206.0,0.08799999207258224 -46.7,85.15,206.0,0.08799999952316284 -46.7,85.2,206.0,0.08799999952316284 -46.7,85.25,206.0,0.08799999952316284 -46.7,85.3,206.0,0.08800000697374344 -46.7,85.35,206.0,0.08800000697374344 -46.7,85.4,206.0,0.08799999952316284 -46.7,85.45,206.0,0.08799999952316284 -46.7,85.5,206.0,0.08799999207258224 -46.7,85.55,206.0,0.08799999952316284 -46.7,85.6,206.0,0.08799999952316284 -46.7,85.65,206.0, -46.7,85.7,206.0, -46.7,85.75,206.0, -46.7,85.8,206.0, -46.7,85.85,206.0, -46.7,85.9,206.0, -46.7,85.95,206.0, -46.7,86.0,206.0, -46.7,86.05,206.0, -46.7,86.1,206.0, -46.7,86.15,206.0, -46.7,86.2,206.0, -46.7,86.25,206.0, -46.7,86.3,206.0, -46.7,86.35,206.0, -46.7,86.4,206.0, -46.7,86.45,206.0, -46.7,86.5,206.0, -46.7,86.55,206.0, -46.7,86.6,206.0, -46.7,86.65,206.0, -46.7,86.7,206.0, -46.7,86.75,206.0, -46.7,86.8,206.0, -46.7,86.85,206.0, -46.7,86.9,206.0, -46.7,86.95,206.0, -46.7,87.0,206.0, -46.7,87.05,206.0, -46.7,87.1,206.0, -46.7,87.15,206.0, -46.7,87.2,206.0, -46.7,87.25,206.0, -46.7,87.3,206.0, -46.7,87.35,206.0, -46.7,87.4,206.0, -46.7,87.45,206.0, -46.7,87.5,206.0, -46.7,87.55,206.0, -46.7,87.6,206.0, -46.7,87.65,206.0, -46.7,87.7,206.0, -46.7,87.75,206.0, -46.7,87.8,206.0, -46.7,87.85,206.0, -46.7,87.9,206.0, -46.7,87.95,206.0, -46.7,88.0,206.0, -46.7,88.05,206.0, -46.7,88.1,206.0, -46.7,88.15,206.0, -46.7,88.2,206.0, -46.7,88.25,206.0, -46.7,88.3,206.0, -46.7,88.35,206.0, -46.7,88.4,206.0, -46.7,88.45,206.0, -46.7,88.5,206.0, -46.7,88.55,206.0, -46.7,88.6,206.0, -46.7,88.65,206.0, -46.7,88.7,206.0, -46.7,88.75,206.0, -46.7,88.8,206.0, -46.7,88.85,206.0, -46.7,88.9,206.0, -46.7,88.95,206.0, -46.7,89.0,206.0, -46.7,89.05,206.0, -46.7,89.1,206.0, -46.7,89.15,206.0, -46.7,89.2,206.0, -46.7,89.25,206.0, -46.7,89.3,206.0, -46.7,89.35,206.0, -46.7,89.4,206.0, -46.7,89.45,206.0, -46.7,89.5,206.0, -46.7,89.55,206.0, -46.7,89.6,206.0, -46.7,89.65,206.0, -46.7,89.7,206.0, -46.7,89.75,206.0, -46.7,89.8,206.0, -46.7,89.85,206.0, -46.7,89.9,206.0, -46.7,89.95,206.0, -46.7,90.0,206.0, -46.7,90.05,206.0, -46.7,90.1,206.0, -46.7,90.15,206.0, -46.7,90.2,206.0, -46.7,90.25,206.0, -46.7,90.3,206.0, -46.7,90.35,206.0, -46.7,90.4,206.0, -46.7,90.45,206.0, -46.7,90.5,206.0, -46.7,90.55,206.0, -46.7,90.6,206.0, -46.7,90.65,206.0, -46.7,90.7,206.0, -46.7,90.75,206.0, -46.7,90.8,206.0, -46.7,90.85,206.0, -46.7,90.9,206.0, -46.7,90.95,206.0, -46.7,91.0,206.0, -46.7,91.05,206.0, -46.7,91.1,206.0, -46.7,91.15,206.0, -46.7,91.2,206.0, -46.7,91.25,206.0, -46.7,91.3,206.0, -46.7,91.35,206.0, -46.7,91.4,206.0, -46.7,91.45,206.0, -46.7,91.5,206.0, -46.7,91.55,206.0, -46.7,91.6,206.0, -46.7,91.65,206.0, -46.7,91.7,206.0, -46.7,91.75,206.0, -46.7,91.8,206.0, -46.7,91.85,206.0, -46.7,91.9,206.0, -46.7,91.95,206.0, -46.7,92.0,206.0, -46.7,92.05,206.0, -46.7,92.1,206.0, -46.7,92.15,206.0, -46.7,92.2,206.0, -46.7,92.25,206.0, -46.7,92.3,206.0, -46.7,92.35,206.0, -46.7,92.4,206.0, -46.7,92.45,206.0, -46.7,92.5,206.0, -46.7,92.55,206.0, -46.7,92.6,206.0, -46.7,92.65,206.0, -46.7,92.7,206.0, -46.7,92.75,206.0, -46.7,92.8,206.0, -46.7,92.85,206.0, -46.7,92.9,206.0, -46.7,92.95,206.0, -46.7,93.0,206.0, -46.7,93.05,206.0, -46.7,93.1,206.0, -46.7,93.15,206.0, -46.7,93.2,206.0, -46.7,93.25,206.0, -46.7,93.3,206.0, -46.7,93.35,206.0, -46.7,93.4,206.0, -46.7,93.45,206.0, -46.7,93.5,206.0, -46.7,93.55,206.0, -46.7,93.6,206.0, -46.7,93.65,206.0, -46.7,93.7,206.0, -46.7,93.75,206.0, -46.7,93.8,206.0, -46.7,93.85,206.0, -46.7,93.9,206.0, -46.7,93.95,206.0, -46.7,94.0,206.0, -46.7,94.05,206.0, -46.7,94.1,206.0, -46.7,94.15,206.0, -46.7,94.2,206.0, -46.7,94.25,206.0, -46.7,94.3,206.0, -46.7,94.35,206.0, -46.7,94.4,206.0, -46.7,94.45,206.0, -46.7,94.5,206.0, -46.7,94.55,206.0, diff --git a/tests/fixtures/sensor/one_edge.csv b/tests/fixtures/sensor/one_edge.csv deleted file mode 100644 index e496d5e..0000000 --- a/tests/fixtures/sensor/one_edge.csv +++ /dev/null @@ -1,200 +0,0 @@ -56.7,31.6,206.0, -56.65,31.6,206.0, -56.6,31.6,206.0, -56.55,31.6,206.0, -56.5,31.6,206.0, -56.45,31.6,206.0, -56.4,31.6,206.0, -56.35,31.6,206.0, -56.3,31.6,206.0, -56.25,31.6,206.0, -56.2,31.6,206.0, -56.15,31.6,206.0, -56.1,31.6,206.0, -56.05,31.6,206.0, -56.0,31.6,206.0, -55.95,31.6,206.0, -55.9,31.6,206.0, -55.85,31.6,206.0, -55.8,31.6,206.0, -55.75,31.6,206.0, -55.7,31.6,206.0, -55.65,31.6,206.0, -55.6,31.6,206.0, -55.55,31.6,206.0, -55.5,31.6,206.0, -55.45,31.6,206.0, -55.4,31.6,206.0, -55.35,31.6,206.0, -55.3,31.6,206.0, -55.25,31.6,206.0, -55.2,31.6,206.0, -55.15,31.6,206.0, -55.1,31.6,206.0, -55.05,31.6,206.0, -55.0,31.6,206.0, -54.95,31.6,206.0, -54.9,31.6,206.0, -54.85,31.6,206.0, -54.8,31.6,206.0, -54.75,31.6,206.0, -54.7,31.6,206.0, -54.65,31.6,206.0, -54.6,31.6,206.0, -54.55,31.6,206.0, -54.5,31.6,206.0, -54.45,31.6,206.0, -54.4,31.6,206.0, -54.35,31.6,206.0, -54.3,31.6,206.0, -54.25,31.6,206.0, -54.2,31.6,206.0, -54.15,31.6,206.0, -54.1,31.6,206.0, -54.05,31.6,206.0, -54.0,31.6,206.0, -53.95,31.6,206.0, -53.9,31.6,206.0, -53.85,31.6,206.0, -53.8,31.6,206.0, -53.75,31.6,206.0, -53.7,31.6,206.0, -53.65,31.6,206.0, -53.6,31.6,206.0, -53.55,31.6,206.0, -53.5,31.6,206.0, -53.45,31.6,206.0, -53.4,31.6,206.0, -53.35,31.6,206.0, -53.3,31.6,206.0, -53.25,31.6,206.0, -53.2,31.6,206.0, -53.15,31.6,206.0, -53.1,31.6,206.0, -53.05,31.6,206.0, -53.0,31.6,206.0, -52.95,31.6,206.0, -52.9,31.6,206.0, -52.85,31.6,206.0, -52.8,31.6,206.0, -52.75,31.6,206.0, -52.7,31.6,206.0, -52.65,31.6,206.0, -52.6,31.6,206.0, -52.55,31.6,206.0, -52.5,31.6,206.0, -52.45,31.6,206.0, -52.4,31.6,206.0, -52.35,31.6,206.0, -52.3,31.6,206.0, -52.25,31.6,206.0, -52.2,31.6,206.0, -52.15,31.6,206.0, -52.1,31.6,206.0, -52.05,31.6,206.0, -52.0,31.6,206.0, -51.95,31.6,206.0, -51.9,31.6,206.0, -51.85,31.6,206.0, -51.8,31.6,206.0, -51.75,31.6,206.0, -51.7,31.6,206.0, -51.65,31.6,206.0, -51.6,31.6,206.0, -51.55,31.6,206.0, -51.5,31.6,206.0, -51.45,31.6,206.0, -51.4,31.6,206.0, -51.35,31.6,206.0, -51.3,31.6,206.0, -51.25,31.6,206.0, -51.2,31.6,206.0, -51.15,31.6,206.0, -51.1,31.6,206.0, -51.05,31.6,206.0, -51.0,31.6,206.0, -50.95,31.6,206.0, -50.9,31.6,206.0, -50.85,31.6,206.0, -50.8,31.6,206.0, -50.75,31.6,206.0, -50.7,31.6,206.0, -50.65,31.6,206.0, -50.6,31.6,206.0, -50.55,31.6,206.0, -50.5,31.6,206.0, -50.45,31.6,206.0, -50.4,31.6,206.0, -50.35,31.6,206.0, -50.3,31.6,206.0, -50.25,31.6,206.0, -50.2,31.6,206.0, -50.15,31.6,206.0, -50.1,31.6,206.0, -50.05,31.6,206.0, -50.0,31.6,206.0,0.08799999952316284 -49.95,31.6,206.0,0.08799999207258224 -49.9,31.6,206.0,0.08799999952316284 -49.85,31.6,206.0,0.08799999952316284 -49.8,31.6,206.0,0.08799999952316284 -49.75,31.6,206.0,0.08799999952316284 -49.7,31.6,206.0,0.08799999952316284 -49.65,31.6,206.0,0.08799999952316284 -49.6,31.6,206.0,0.08799999207258224 -49.55,31.6,206.0,0.08799999952316284 -49.5,31.6,206.0,0.08799999207258224 -49.45,31.6,206.0,0.08799999952316284 -49.4,31.6,206.0,0.08799999952316284 -49.35,31.6,206.0,0.08799999952316284 -49.3,31.6,206.0,0.08800000697374344 -49.25,31.6,206.0,0.08799999952316284 -49.2,31.6,206.0,0.08799999952316284 -49.15,31.6,206.0,0.08799999952316284 -49.1,31.6,206.0,0.08799999952316284 -49.05,31.6,206.0,0.08799998462200165 -49.0,31.6,206.0,0.08799999207258224 -48.95,31.6,206.0,0.08799999207258224 -48.9,31.6,206.0,0.08799999952316284 -48.85,31.6,206.0,0.08799999952316284 -48.8,31.6,206.0,0.08799999207258224 -48.75,31.6,206.0,0.08799999207258224 -48.7,31.6,206.0,0.08799999207258224 -48.65,31.6,206.0,0.08799999207258224 -48.6,31.6,206.0,0.08799999207258224 -48.55,31.6,206.0,0.08799999207258224 -48.5,31.6,206.0,0.08800000697374344 -48.45,31.6,206.0,0.08800000697374344 -48.4,31.6,206.0,0.08800000697374344 -48.35,31.6,206.0,0.08799999952316284 -48.3,31.6,206.0,0.08800000697374344 -48.25,31.6,206.0,0.08799999207258224 -48.2,31.6,206.0,0.08799999207258224 -48.15,31.6,206.0,0.08799999207258224 -48.1,31.6,206.0,0.08799999207258224 -48.05,31.6,206.0,0.08799999952316284 -48.0,31.6,206.0,0.08799999952316284 -47.95,31.6,206.0,0.08799999952316284 -47.9,31.6,206.0,0.08799999207258224 -47.85,31.6,206.0,0.08799999952316284 -47.8,31.6,206.0,0.08799999207258224 -47.75,31.6,206.0,0.08799999207258224 -47.7,31.6,206.0,0.08799999207258224 -47.65,31.6,206.0,0.08799999952316284 -47.6,31.6,206.0,0.08799999952316284 -47.55,31.6,206.0,0.08799999207258224 -47.5,31.6,206.0,0.08799999952316284 -47.45,31.6,206.0,0.08800000697374344 -47.4,31.6,206.0,0.08799999952316284 -47.35,31.6,206.0,0.08799999952316284 -47.3,31.6,206.0,0.08799999952316284 -47.25,31.6,206.0,0.08799999952316284 -47.2,31.6,206.0,0.08799999952316284 -47.15,31.6,206.0,0.08799999207258224 -47.1,31.6,206.0,0.08799999207258224 -47.05,31.6,206.0,0.08799999207258224 -47.0,31.6,206.0,0.08799999952316284 -46.95,31.6,206.0,0.08799999207258224 -46.9,31.6,206.0,0.08799999952316284 -46.85,31.6,206.0,0.08799999207258224 -46.8,31.6,206.0,0.08799999952316284 -46.75,31.6,206.0,0.08799999952316284 diff --git a/tests/fixtures/stl/demo.STL b/tests/fixtures/stl/demo.STL new file mode 100644 index 0000000..a73af04 Binary files /dev/null and b/tests/fixtures/stl/demo.STL differ diff --git a/tests/fixtures/stl/sample.stl b/tests/fixtures/stl/sample.stl new file mode 100644 index 0000000..b51c994 Binary files /dev/null and b/tests/fixtures/stl/sample.stl differ diff --git a/tests/fixtures/stl/step.STL b/tests/fixtures/stl/step.STL new file mode 100644 index 0000000..48ab619 Binary files /dev/null and b/tests/fixtures/stl/step.STL differ diff --git a/tests/fixtures/stl/test-Part.stl b/tests/fixtures/stl/test-Part.stl new file mode 100644 index 0000000..3f6a7cc Binary files /dev/null and b/tests/fixtures/stl/test-Part.stl differ diff --git a/tests/test_find.py b/tests/test_find.py deleted file mode 100644 index eb48fc5..0000000 --- a/tests/test_find.py +++ /dev/null @@ -1,118 +0,0 @@ -from tests.config import MYSQL_CONFIG -from cnceye.edge import find -import mysql.connector -import sqlite3 - -process_id = 100 - - -def copy_sqlite_db_to_mysql(): - db_path = "tests/fixtures/db/listener.db" - conn = sqlite3.connect(db_path) - cur = conn.cursor() - query = "SELECT x,y,z,distance FROM coord" - data = [] - for row in cur.execute(query): - row = (*row, process_id) - data.append(row) - cur.close() - conn.close() - - mysql_conn = mysql.connector.connect(**MYSQL_CONFIG, database="coord") - mysql_cur = mysql_conn.cursor() - mysql_cur.executemany( - "INSERT INTO sensor(x, y, z, distance, process_id) VALUES (%s,%s,%s, %s, %s)", - data, - ) - mysql_conn.commit() - mysql_cur.close() - mysql_conn.close() - - -def test_find_edges(): - copy_sqlite_db_to_mysql() - measured_edges = find.find_edges(process_id, MYSQL_CONFIG) - assert len(measured_edges) > 32 - - -def test_find_edge(): - filepath = "tests/fixtures/sensor/one_edge.csv" - edge_position = find.find_edge(filepath) - print(edge_position) - - -def test_find_edge_from_sqlite(): - db_path = "tests/fixtures/db/listener.db" - measured_edges = find.find_edges_from_sqlite(db_path, 100.0) - print(measured_edges) - assert len(measured_edges) > 32 - - -def test_add_measured_edge_coord(): - measured_edges = find.find_edges(process_id, MYSQL_CONFIG) - edge_data = [ - (1, -50.0, -21.667, 10.0), - (2, -50.0, 21.667, 10.0), - (3, -25.0, 34.667, 10.0), - (4, -25.0, 41.333, 10.0), - (5, -16.667, -65.0, 10.0), - (6, -16.667, 65.0, 10.0), - (7, -6.667, 23.0, 10.0), - (8, -6.667, 53.0, 10.0), - (9, 6.667, 23.0, 10.0), - (10, 6.667, 53.0, 10.0), - (11, 16.667, -65.0, 10.0), - (12, 16.667, 65.0, 10.0), - (13, 25.0, 34.667, 10.0), - (14, 25.0, 41.333, 10.0), - (15, 50.0, -21.667, 10.0), - (16, 50.0, 21.667, 10.0), - (17, -25.0, 28.0, 10.0), - (18, -24.289, 25.429, 10.0), - (19, -22.357, 23.59, 10.0), - (20, 20.0, 23.0, 10.0), - (21, 22.571, 23.711, 10.0), - (22, 24.41, 25.643, 10.0), - (23, 25.0, 48.0, 10.0), - (24, 24.289, 50.571, 10.0), - (25, 22.357, 52.41, 10.0), - (26, -20.0, 53.0, 10.0), - (27, -22.571, 52.289, 10.0), - (28, -24.41, 50.357, 10.0), - (29, 9.0, -29.997, 10.0), - (30, -4.5, -22.203, 10.0), - (31, -4.5, -37.791, 10.0), - ] - # edge_data = find.get_edge_data(1) - update_list = find.identify_close_edge(edge_data, measured_edges) - find.add_measured_edge_coord(update_list, MYSQL_CONFIG) - - -def test_check_if_edge_is_found(): - assert find.check_if_edge_is_found("", "") is False - assert find.check_if_edge_is_found("", 100.0) is True - assert find.check_if_edge_is_found(100.0, "") is True - assert find.check_if_edge_is_found(100.0, 99.9) is False - assert find.check_if_edge_is_found(100.0, 50.0) is True - assert find.check_if_edge_is_found(50.0, 100.0) is True - assert find.check_if_edge_is_found(99.9, 100.0) is False - assert find.check_if_edge_is_found(99.0, 100.0, 0.1) is True - - -def test_find_line(): - filepath = "tests/fixtures/sensor/line.csv" - lines = find.find_lines(filepath, 3) - assert len(lines) == 1 - line = lines[0] - expected_x = 50.0 - for row in line: - x = float(row[0]) - assert x == expected_x - - -def test_find_lines(): - filepath = "tests/fixtures/sensor/lines.csv" - lines = find.find_lines(filepath, 3) - assert len(lines) == 4 - for line in lines: - print(line) diff --git a/tests/test_script_utils.py b/tests/test_script_utils.py index 0b47072..d41e873 100644 --- a/tests/test_script_utils.py +++ b/tests/test_script_utils.py @@ -1,4 +1,5 @@ import random +import csv def distance_to_analog_output(distance: float): @@ -16,3 +17,24 @@ def test_distance_to_analog_output(): analog_output = distance_to_analog_output(distance_in_mm / 1000) assert analog_output > 0 assert analog_output < 19000 + + +def load_gcode(filepath: str): + with open(filepath, newline="") as csvfile: + reader = csv.reader(csvfile, delimiter=" ") + gcode = list(reader) + gcode = gcode[3:-2] + return gcode + + +def row_to_xyz_feedrate(row): + x = float(row[1][1:]) + y = float(row[2][1:]) + feedrate = float(row[3][1:]) + return (x, y, feedrate) + + +def test_load_gcode(): + gcode = load_gcode("tests/fixtures/gcode/edge.gcode") + for row in gcode: + (x, y, feedrate) = row_to_xyz_feedrate(row) diff --git a/tests/test_shape.py b/tests/test_shape.py new file mode 100644 index 0000000..60d08f4 --- /dev/null +++ b/tests/test_shape.py @@ -0,0 +1,62 @@ +from cnceye.shape import Shape + + +def test_are_facets_on_same_plane(): + shape = Shape("tests/fixtures/stl/step.STL") + assert shape.are_coplanar(7, 8) is True + assert shape.are_coplanar(7, 11) is False + assert shape.are_coplanar(11, 12) is True + + +def test_grounp_by_coplanar_facets(): + shape = Shape("tests/fixtures/stl/sample.stl") + visible_facet_indices = shape.get_visible_facets() + group_facets = shape.group_by_coplanar_facets(visible_facet_indices) + assert len(group_facets) == 1 + + +def test_grounp_by_coplanar_facets_with_step_slope(): + shape = Shape("tests/fixtures/stl/step.STL") + visible_facet_indices = shape.get_visible_facets() + group_facets = shape.group_by_coplanar_facets(visible_facet_indices) + assert len(group_facets) == 3 + + +def test_group_by_coplanar_facets(): + shape = Shape("tests/fixtures/stl/sample.stl") + visible_facets = shape.get_visible_facets() + facet_groups = shape.group_by_coplanar_facets(visible_facets) + assert len(facet_groups) == 1 + + +def test_group_by_coplanar_facets_with_step_slope(): + shape = Shape("tests/fixtures/stl/step.STL") + visible_facets = shape.get_visible_facets() + facet_groups = shape.group_by_coplanar_facets(visible_facets) + assert len(facet_groups) == 3 + assert len(facet_groups[0]) == 2 + assert len(facet_groups[1]) == 2 + assert len(facet_groups[2]) == 2 + + +def test_lines_and_arcs(): + shape = Shape("tests/fixtures/stl/sample.stl") + lines, arcs = shape.get_lines_and_arcs() + + assert len(lines) == 1 + assert len(arcs) == 1 + + assert len(lines[0]) == 8 + assert len(arcs[0]) == 5 + + +def test_get_lines_and_arcs_with_step_slope(): + shape = Shape("tests/fixtures/stl/step.STL") + lines, arcs = shape.get_lines_and_arcs() + + assert len(lines) == 3 + assert len(arcs) == 0 + + assert len(lines[0]) == 4 + assert len(lines[1]) == 4 + assert len(lines[2]) == 4