diff --git a/README.md b/README.md index 19f31305b170fb9e8ec903a93d306178925a031a..1692433b00f12f7a5e3a91091167447cb7dc5e98 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ -# DryVR++ +# Verse Core Library + +Verse is a library for creating, simulating, and verifying uni*verses* or scenarios with intelligent and interacting autonomous agents. + ## Installation The package requires python 3.8+. The package can be installed using pip @@ -15,29 +18,28 @@ or pip install -r requirements.txt ``` -## Examples -The package comes with several examples in the ```demo/``` folder -- Run examples as: +## Demos +The package comes with several examples in the ```demo/``` folder. Run these as: ``` -python3 demo1.py +python3 demo/vehicle/demo2.py ``` -Read the comments in ```ball_bounces.py``` to learn how to create new agents and scenarios. More detailed tutorials will be provided later. +Read the comments in ```demo/ball/ball_bounces.py``` to learn how to create new agents and scenarios. More detailed tutorials will be provided later. -## Package Structure +## Library structure -The source code of the package is contained in the src folder, which contains the following sub-directories. +The source code of the package is contained in the verse folder, which contains the following sub-directories. -- **scene_verifier**, which contains building blocks for creating and analyzing scenarios. +- **verse**, which contains building blocks for creating and analyzing scenarios. - - **scene_verifier/scenario** contains code for the scenario base class. A scenario is constructed by several **agents** with continuous dynamics and controller, a **map** and a **sensor** defining how different agents interact with each other. - - **scene_verifier/agents** contains code for the agent base class in the scenario. - - **scene_verifier/map** contains code for the lane map base class and corresponding utilities in the scenario. - - **scene_verifier/code_parser** contains code for converting the controller code to ASTs. - - **scene_verifier/automaton** contains code implementing components in hybrid-automaton - - **scene_verifier/analysis** contains the **Simulator** and **Verifier** and related utilities for doing analysis of the scenario - - **scene_verifier/dryvr** dryvr for computing reachable sets + - **verse/scenario** contains code for the scenario base class. A scenario is constructed by several **agents** with continuous dynamics and controller, a **map** and a **sensor** defining how different agents interact with each other. + - **verse/agents** contains code for the agent base class in the scenario. + - **verse/map** contains code for the lane map base class and corresponding utilities in the scenario. + - **verse/code_parser** contains code for converting the controller code to ASTs. + - **verse/automaton** contains code implementing components in hybrid-automaton + - **verse/analysis** contains the **Simulator** and **Verifier** and related utilities for doing analysis of the scenario + - **verse/dryvr** dryvr for computing reachable sets - **example** contains example map, sensor and agents that we provided diff --git a/demo/ball_bounces_dev.py b/demo/ball_bounces_dev.py index 69929b3af3f2fb32dffdd76e3b8cfde8c12702a8..992ba19b8ff0350698f57ea9d0109c64654c7d57 100644 --- a/demo/ball_bounces_dev.py +++ b/demo/ball_bounces_dev.py @@ -1,14 +1,5 @@ -from dryvr_plus_plus.example.example_agent.ball_agent import BallAgent -from dryvr_plus_plus.scene_verifier.sensor.base_sensor import BaseSensor -from dryvr_plus_plus.example.example_sensor.fake_sensor import FakeSensor4 -import plotly.graph_objects as go -from dryvr_plus_plus.plotter.plotter2D import * -from dryvr_plus_plus.example.example_map.simple_map2 import SimpleMap3 -from dryvr_plus_plus.scene_verifier.scenario.scenario import Scenario from enum import Enum, auto import copy -from typing import List - class BallTypeMode(Enum): TYPE1 = auto() @@ -30,8 +21,7 @@ class State: def __init__(self, x, y, vx, vy, ball_mode: BallMode, type: BallTypeMode): pass - -def controller(ego: State, others: List[State]): +def controller(ego:State, other: State): output = copy.deepcopy(ego) if ego.x < 0: output.vx = -ego.vx @@ -46,18 +36,15 @@ def controller(ego: State, others: List[State]): output.vy = -ego.vy output.y = 20 - def abs_diff(a, b): - if a < b: - r = b - a - else: - r = a - b - return r - - def dist(a, b): - return abs_diff(a.x, b.x) + abs_diff(a.y, b.y) - assert all(dist(ego, o) > 5 for o in others) + def close(a, b): + return a.x-b.x<5 and a.x-b.x>-5 and a.y-b.y<5 and a.y-b.y>-5 + assert not (close(ego, other) and ego.x < other.x), "collision" return output +from verse.agents.example_agent.ball_agent import BallAgent +from verse import Scenario +from verse.plotter.plotter2D import * +import plotly.graph_objects as go if __name__ == "__main__": ball_controller = './demo/ball_bounces_dev.py' @@ -81,6 +68,8 @@ if __name__ == "__main__": ] ) traces = bouncingBall.simulate(10, 0.01) + traces.dump('./output.json') + traces = AnalysisTree.load('./output.json') fig = go.Figure() fig = simulation_tree(traces, fig=fig) fig.show() diff --git a/demo/dryvr_demo/origin_agent.py b/demo/dryvr_demo/origin_agent.py new file mode 100644 index 0000000000000000000000000000000000000000..e3a595844cadbfc1673c4ff1327d419a68873570 --- /dev/null +++ b/demo/dryvr_demo/origin_agent.py @@ -0,0 +1,159 @@ +# Example agent. +from typing import Tuple, List + +import numpy as np +from scipy.integrate import ode + +from verse.agents import BaseAgent +from verse.map import LaneMap + + +class vanderpol_agent(BaseAgent): + def __init__(self, id, code=None, file_name=None): + # Calling the constructor of tha base class + super().__init__(id, code, file_name) + + @staticmethod + def dynamic(t, state): + x, y = state + x = float(x) + y = float(y) + x_dot = y + y_dot = (1-x**2)*y - x + return [x_dot, y_dot] + + def TC_simulate(self, mode: List[str], initialCondition, time_bound, time_step, lane_map: LaneMap = None) -> np.ndarray: + time_bound = float(time_bound) + number_points = int(np.ceil(time_bound/time_step)) + t = [round(i*time_step, 10) for i in range(0, number_points)] + # note: digit of time + init = initialCondition + trace = [[0]+init] + for i in range(len(t)): + r = ode(self.dynamic) + r.set_initial_value(init) + res: np.ndarray = r.integrate(r.t + time_step) + init = res.flatten().tolist() + trace.append([t[i] + time_step] + init) + return np.array(trace) + + +class thermo_agent(BaseAgent): + def __init__(self, id, code=None, file_name=None): + # Calling the constructor of tha base class + super().__init__(id, code, file_name) + + @staticmethod + def dynamic(t, state, rate): + temp, total_time, cycle_time = state + temp = float(temp) + total_time = float(total_time) + cycle_time = float(cycle_time) + temp_dot = temp*rate + total_time_dot = 1 + cycle_time_dot = 1 + return [temp_dot, total_time_dot, cycle_time_dot] + + def action_handler(self, mode): + if mode == 'ON': + rate = 0.1 + elif mode == 'OFF': + rate = -0.1 + else: + print(mode) + raise ValueError(f'Invalid mode: {mode}') + return rate + + def TC_simulate(self, mode: List[str], initialCondition, time_bound, time_step, lane_map: LaneMap = None) -> np.ndarray: + time_bound = float(time_bound) + number_points = int(np.ceil(time_bound/time_step)) + t = [round(i*time_step, 10) for i in range(0, number_points)] + + init = initialCondition + trace = [[0]+init] + for i in range(len(t)): + rate = self.action_handler(mode[0]) + r = ode(self.dynamic) + r.set_initial_value(init).set_f_params(rate) + res: np.ndarray = r.integrate(r.t + time_step) + init = res.flatten().tolist() + trace.append([t[i] + time_step] + init) + return np.array(trace) + + +class craft_agent(BaseAgent): + def __init__(self, id, code=None, file_name=None): + # Calling the constructor of tha base class + super().__init__(id, code, file_name) + + @staticmethod + def ProxA_dynamics(t, state): + xp, yp, xd, yd, total_time, cycle_time = state + xp_dot = xd + yp_dot = yd + xd_dot = -2.89995083970656*xd - 0.0576765518445905*xp + 0.00877200894463775*yd + 0.000200959896519766 * \ + yp - (1.43496e+18*xp + 6.050365344e+25)*pow(pow(yp, 2) + + pow(xp + 42164000, 2), -1.5) + 807.153595726846 + yd_dot = -0.00875351105536225*xd - 0.000174031357370456*xp - 2.90300269286856*yd - \ + 1.43496e+18*yp*pow(pow(yp, 2) + pow(xp + 42164000, + 2), -1.5) - 0.0664932019993982*yp + total_time_dot = 1 + cycle_time_dot = 1 + return [xp_dot, yp_dot, xd_dot, yd_dot, total_time_dot, cycle_time_dot] + + @staticmethod + def ProxB_dynamics(t, state): + xp, yp, xd, yd, total_time, cycle_time = state + xp_dot = xd + yp_dot = yd + xd_dot = -19.2299795908647*xd - 0.576076729033652*xp + 0.00876275931760007*yd + 0.000262486079431672 * \ + yp - (1.43496e+18*xp + 6.050365344e+25)*pow(pow(yp, 2) + + pow(xp + 42164000, 2), -1.5) + 807.153595726846 + yd_dot = -0.00876276068239993*xd - 0.000262486080737868*xp - 19.2299765959399*yd - \ + 1.43496e+18*yp*pow(pow(yp, 2) + pow(xp + 42164000, + 2), -1.5) - 0.575980743701182*yp + total_time_dot = 1 + cycle_time_dot = 1 + return [xp_dot, yp_dot, xd_dot, yd_dot, total_time_dot, cycle_time_dot] + + @staticmethod + def Passive_dynamics(t, state): + xp, yp, xd, yd, total_time, cycle_time = state + xp_dot = xd + yp_dot = yd + xd_dot = 0.0000575894721132000*xp+0.00876276*yd + yd_dot = -0.00876276*xd + total_time_dot = 1 + cycle_time_dot = 1 + return [xp_dot, yp_dot, xd_dot, yd_dot, total_time_dot, cycle_time_dot] + + def action_handler(self, mode): + if mode == 'ProxA': + return ode(self.ProxA_dynamics) + elif mode == 'ProxB': + return ode(self.ProxB_dynamics) + elif mode == 'Passive': + return ode(self.Passive_dynamics) + else: + raise ValueError + + def TC_simulate(self, mode: List[str], initialCondition, time_bound, time_step, lane_map: LaneMap = None) -> np.ndarray: + time_bound = float(time_bound) + number_points = int(np.ceil(time_bound/time_step)) + t = [round(i*time_step, 10) for i in range(0, number_points)] + + init = initialCondition + trace = [[0]+init] + for i in range(len(t)): + r = self.action_handler(mode[0]) + r.set_initial_value(init) + res: np.ndarray = r.integrate(r.t + time_step) + init = res.flatten().tolist() + trace.append([t[i] + time_step] + init) + return np.array(trace) + + +if __name__ == '__main__': + aball = vanderpol_agent('agent1') + trace = aball.TC_Simulate(['none'], [1.25, 2.25], 7, 0.05) + print(trace) diff --git a/demo/dryvr_demo/rendezvous_controller.py b/demo/dryvr_demo/rendezvous_controller.py index 0d1e310f79229d69582257eb8918ce685d86272e..733bf846986189b04a1d18e8dc9f862959165173 100644 --- a/demo/dryvr_demo/rendezvous_controller.py +++ b/demo/dryvr_demo/rendezvous_controller.py @@ -34,4 +34,9 @@ def controller(ego: State): if ego.cycle_time >= 120: output.craft_mode = CraftMode.Passive output.cycle_time = 0.0 + + assert (ego.craft_mode!=CraftMode.ProxB or\ + (ego.xp>=-105 and ego.yp>=0.57735*ego.xp and -ego.yp>=0.57735*ego.xp)), "Line-of-sight" + assert (ego.craft_mode!=CraftMode.Passive or\ + (ego.xp<=-0.2 or ego.xp>=0.2 or ego.yp<=-0.2 or ego.yp>=0.2)), "Collision avoidance" return output diff --git a/demo/dryvr_demo/rendezvous_demo.py b/demo/dryvr_demo/rendezvous_demo.py index eeec204c004a9ad28de75b8c693a34e7ba56f65b..8aecb3a0173772d59a0b62f8644fc09d4579c22b 100644 --- a/demo/dryvr_demo/rendezvous_demo.py +++ b/demo/dryvr_demo/rendezvous_demo.py @@ -1,36 +1,32 @@ -from dryvr_plus_plus.example.example_agent.origin_agent import craft_agent -from dryvr_plus_plus.scene_verifier.scenario.scenario import Scenario -from dryvr_plus_plus.example.example_map.simple_map2 import SimpleMap2, SimpleMap3, SimpleMap5, SimpleMap6 -from dryvr_plus_plus.plotter.plotter2D import * -from dryvr_plus_plus.example.example_sensor.craft_sensor import CraftSensor +from origin_agent import craft_agent +from verse import Scenario +from verse.plotter.plotter2D import * import plotly.graph_objects as go from enum import Enum, auto - class CraftMode(Enum): ProxA = auto() ProxB = auto() Passive = auto() - if __name__ == "__main__": input_code_name = './demo/dryvr_demo/rendezvous_controller.py' scenario = Scenario() car = craft_agent('test', file_name=input_code_name) scenario.add_agent(car) - scenario.set_sensor(CraftSensor()) # modify mode list input scenario.set_init( [ - [[-925, -425, 0, 0, 0, 0], [-875, -375, 0, 0, 0, 0]], + [[-925, -425, 0, 0, 0, 0], [-875, -375, 5, 5, 0, 0]], ], [ tuple([CraftMode.ProxA]), ] ) traces = scenario.verify(200, 1) + print(traces) fig = go.Figure() fig = reachtube_tree(traces, None, fig, 1, 2, 'lines', 'trace', print_dim_list=[1, 2]) diff --git a/demo/dryvr_demo/thermo_demo.py b/demo/dryvr_demo/thermo_demo.py index 0fff18a6997e979041df0ee8c066b0b1c4888bd2..e5ce9cbb7a795af4e6fb8d33377a968afb94c067 100644 --- a/demo/dryvr_demo/thermo_demo.py +++ b/demo/dryvr_demo/thermo_demo.py @@ -1,28 +1,20 @@ -from dryvr_plus_plus.example.example_agent.origin_agent import thermo_agent -from dryvr_plus_plus.scene_verifier.scenario.scenario import Scenario -from dryvr_plus_plus.example.example_map.simple_map2 import SimpleMap2, SimpleMap3, SimpleMap5, SimpleMap6 -from dryvr_plus_plus.plotter.plotter2D import * -from dryvr_plus_plus.example.example_sensor.fake_sensor import FakeSensor2 -from dryvr_plus_plus.example.example_sensor.thermo_sensor import ThermoSensor +from origin_agent import thermo_agent +from verse import Scenario +from verse.plotter.plotter2D import * import plotly.graph_objects as go from enum import Enum, auto - class ThermoMode(Enum): ON = auto() OFF = auto() - if __name__ == "__main__": - input_code_name = './demo/dryvr_demo/thermo_controller.py' + input_code_name = './thermo_controller.py' scenario = Scenario() car = thermo_agent('test', file_name=input_code_name) scenario.add_agent(car) - tmp_map = SimpleMap3() - scenario.set_map(tmp_map) - scenario.set_sensor(ThermoSensor()) # modify mode list input scenario.set_init( [ @@ -34,6 +26,6 @@ if __name__ == "__main__": ) traces = scenario.verify(3.5, 0.05) fig = go.Figure() - fig = reachtube_tree(traces, tmp_map, fig, 2, 1, + fig = reachtube_tree(traces, None, fig, 2, 1, 'lines', 'trace', print_dim_list=[2, 1]) fig.show() diff --git a/demo/dryvr_demo/thermo_demo2.py b/demo/dryvr_demo/thermo_demo2.py index c5f3cf5bbd144420e91bbdc2a3a8d21c94432cfa..08882868afd5efd7d9fad0eefa5bfa759bc8dea2 100644 --- a/demo/dryvr_demo/thermo_demo2.py +++ b/demo/dryvr_demo/thermo_demo2.py @@ -1,20 +1,16 @@ -from dryvr_plus_plus.example.example_agent.origin_agent import thermo_agent -from dryvr_plus_plus.scene_verifier.scenario.scenario import Scenario -from dryvr_plus_plus.example.example_map.simple_map2 import SimpleMap2, SimpleMap3, SimpleMap5, SimpleMap6 -from dryvr_plus_plus.plotter.plotter2D import * -from dryvr_plus_plus.example.example_sensor.fake_sensor import FakeSensor2 +from origin_agent import thermo_agent +from verse import Scenario +from verse.plotter.plotter2D import * import plotly.graph_objects as go from enum import Enum, auto - class ThermoMode(Enum): ON = auto() OFF = auto() - if __name__ == "__main__": - input_code_name = './demo/dryvr_demo/thermo_controller.py' + input_code_name = './thermo_controller.py' scenario = Scenario() car = thermo_agent('test', file_name=input_code_name) diff --git a/demo/dryvr_demo/vanderpol_controller.py b/demo/dryvr_demo/vanderpol_controller.py index f52bde1cc9573bd567b319d70c040a3e7573a5d9..5a6de9525f697868dfdb528ca662909e7cf45819 100644 --- a/demo/dryvr_demo/vanderpol_controller.py +++ b/demo/dryvr_demo/vanderpol_controller.py @@ -1,11 +1,9 @@ from enum import Enum, auto import copy - class AgentMode(Enum): Default = auto() - class State: x = 0.0 y = 0.0 @@ -14,8 +12,7 @@ class State: def __init__(self, x, y, agent_mode: AgentMode): pass - -def controller(ego: State, lane_map): +def controller(ego: State): output = copy.deepcopy(ego) return output diff --git a/demo/dryvr_demo/vanderpol_demo.py b/demo/dryvr_demo/vanderpol_demo.py index bf4c96d5503b9b1676af3f5195d40dbc05860fcc..947a138196ea82b69385aa69407a1b8fd49dd6f1 100644 --- a/demo/dryvr_demo/vanderpol_demo.py +++ b/demo/dryvr_demo/vanderpol_demo.py @@ -1,8 +1,6 @@ -from dryvr_plus_plus.example.example_agent.origin_agent import vanderpol_agent -from dryvr_plus_plus.scene_verifier.scenario.scenario import Scenario -from dryvr_plus_plus.example.example_map.simple_map2 import SimpleMap2, SimpleMap3, SimpleMap5, SimpleMap6 -from dryvr_plus_plus.plotter.plotter2D import * -from dryvr_plus_plus.example.example_sensor.fake_sensor import FakeSensor2 +from origin_agent import vanderpol_agent +from verse import Scenario +from verse.plotter.plotter2D import * import plotly.graph_objects as go from enum import Enum, auto @@ -13,7 +11,7 @@ class AgentMode(Enum): if __name__ == "__main__": - input_code_name = './demo/dryvr_demo/vanderpol_controller.py' + input_code_name = './vanderpol_controller.py' scenario = Scenario() car = vanderpol_agent('car1', file_name=input_code_name) diff --git a/demo/dryvr_demo/vanderpol_demo2.py b/demo/dryvr_demo/vanderpol_demo2.py index 1a53c83c9104bcc91fdd2ca51f1c1b68cd300c5b..b8e20da8cc7bf545d6127ec3aeb6ebb1885bea53 100644 --- a/demo/dryvr_demo/vanderpol_demo2.py +++ b/demo/dryvr_demo/vanderpol_demo2.py @@ -1,19 +1,15 @@ -from dryvr_plus_plus.example.example_agent.origin_agent import vanderpol_agent -from dryvr_plus_plus.scene_verifier.scenario.scenario import Scenario -from dryvr_plus_plus.example.example_map.simple_map2 import SimpleMap2, SimpleMap3, SimpleMap5, SimpleMap6 -from dryvr_plus_plus.plotter.plotter2D import * -from dryvr_plus_plus.example.example_sensor.fake_sensor import FakeSensor2 +from origin_agent import vanderpol_agent +from verse import Scenario +from verse.plotter.plotter2D import * import plotly.graph_objects as go from enum import Enum, auto - class AgentMode(Enum): Default = auto() - if __name__ == "__main__": - input_code_name = './demo/dryvr_demo/vanderpol_controller.py' + input_code_name = './vanderpol_controller.py' scenario = Scenario() car = vanderpol_agent('car1', file_name=input_code_name) diff --git a/demo/output.json b/demo/output.json new file mode 100644 index 0000000000000000000000000000000000000000..48103d17cdd10329832af2ac8bb43bc078c17d46 --- /dev/null +++ b/demo/output.json @@ -0,0 +1,1237 @@ +{ +"0": { + "node_name": "0-0", + "id": 0, + "start_line": 2, + "parent": null, + "child": { + "1-0": { + "name": "1-0", + "index": 1, + "start_line": 253 + }, + "1-1": { + "name": "1-1", + "index": 3, + "start_line": 745 + } + }, + "agent": { + "car1": "<class 'dryvr_plus_plus.example.example_agent.car_agent.CarAgent'>", + "car2": "<class 'dryvr_plus_plus.example.example_agent.car_agent.CarAgent'>" + }, + "init": { + "car1": "[[0, -0.2, 0, 1.0], [0.1, 0.2, 0, 1.0]]", + "car2": "[[10, 0, 0, 0.5], [10, 0, 0, 0.5]]" + }, + "mode": { + "car1": "[\"Normal\", \"Lane1\"]", + "car2": "[\"Normal\", \"Lane1\"]" + }, + "static": { + "car1": "[]", + "car2": "[]" + }, + "start_time": 0, + "trace": { + "car1": [ + "[0.0, 0.0, -0.2, -0.010259574072372706, 1.0]", + "[0.2, 0.2839735187071956, 0.2, 0.010259574072372706, 1.0]", + "[0.2, 0.21602648129280438, -0.18102260458410557, -0.018379536882066838, 1.0]", + "[0.4, 0.48455269515820604, 0.18102260458410557, 0.018379536882066838, 1.0]", + "[0.4, 0.4154473048417939, -0.16395414571913436, -0.024699297819101074, 1.0]", + "[0.6000000000000001, 0.6850216365043383, 0.16395414571913436, 0.024699297819101074, 1.0]", + "[0.6000000000000001, 0.6149783634956615, -0.14859251084056646, -0.029510363790061403, 1.0]", + "[0.8, 0.8854018778850428, 0.14859251084056646, 0.029510363790061403, 1.0]", + "[0.8, 0.8145981221149574, -0.13475743251635525, -0.033062429008290706, 1.0]", + "[1.0, 1.085710653625001, 0.13475743251635525, 0.033062429008290706, 1.0]", + "[1.0, 1.0142893463749996, -0.12228837220160758, -0.03556886105922083, 1.0]", + "[1.2, 1.285961769671804, 0.12228837220160758, 0.03556886105922083, 1.0]", + "[1.2, 1.2140382303281965, -0.11104238175892578, -0.03721157261510352, 1.0]", + "[1.4, 1.4861662981048829, 0.11104238175892578, 0.03721157261510352, 1.0]", + "[1.4, 1.4138337018951175, -0.10089216730157041, -0.03814531096224553, 1.0]", + "[1.5999999999999999, 1.686333129543391, 0.10089216730157041, 0.03814531096224553, 1.0]", + "[1.5999999999999999, 1.6136668704566088, -0.09172434834540978, -0.0385014122911356, 1.0]", + "[1.8, 1.8864694120614374, 0.09172434834540978, 0.0385014122911356, 1.0]", + "[1.8, 1.8135305879385628, -0.08343790046905726, -0.0385014122911356, 1.0]", + "[2.0, 2.0865808984810132, 0.08343790046905726, 0.0385014122911356, 1.0]", + "[2.0, 2.0134191015189873, -0.07594287825535542, -0.03839107338633297, 1.0]", + "[2.2, 2.286672234835655, 0.07594287825535542, 0.03839107338633297, 1.0]", + "[2.2, 2.2133277651643457, -0.06915887768112347, -0.03790819946979385, 1.0]", + "[2.4000000000000004, 2.4867471690718466, 0.06915887768112347, 0.03790819946979385, 1.0]", + "[2.4000000000000004, 2.4132528309281547, -0.06301415671862882, -0.037131856803825046, 1.0]", + "[2.6, 2.6868087314810754, 0.06301415671862882, 0.037131856803825046, 1.0]", + "[2.6, 2.6131912685189262, -0.0574447017121785, -0.03612840523157809, 1.0]", + "[2.8000000000000003, 2.8868593764749315, 0.0574447017121785, 0.03612840523157809, 1.0]", + "[2.8000000000000003, 2.8131406235250704, -0.052393306092211205, -0.03495334221459475, 1.0]", + "[3.0, 3.0869010949997424, 0.052393306092211205, 0.03495334221459475, 1.0]", + "[3.0, 3.01309890500026, -0.04780880949982366, -0.03365289066735905, 1.0]", + "[3.2, 3.286935504475645, 0.04780880949982366, 0.03365289066735905, 1.0]", + "[3.2, 3.2130644955243577, -0.04364542453176884, -0.03226536735671632, 1.0]", + "[3.4000000000000004, 3.4869639208390972, 0.04364542453176884, 0.03226536735671632, 1.0]", + "[3.4000000000000004, 3.413036079160906, -0.039862141062204426, -0.03082236101056486, 1.0]", + "[3.6, 3.686987416327405, 0.039862141062204426, 0.03082236101056486, 1.0]", + "[3.6, 3.6130125836725986, -0.03642219916040824, -0.02934974561681908, 1.0]", + "[3.8000000000000003, 3.887006865892288, 0.03642219916040824, 0.02934974561681908, 1.0]", + "[3.8000000000000003, 3.8129931341077157, -0.033292622609028315, -0.027868551124687637, 1.0]", + "[4.0, 4.087022984533915, 0.033292622609028315, 0.027868551124687637, 1.0]", + "[4.0, 4.01297701546609, -0.030443805927677717, -0.026395710870198392, 1.0]", + "[4.2, 4.287036357375695, 0.030443805927677717, 0.026395710870198392, 1.0]", + "[4.2, 4.212963642624309, -0.027849148620670866, -0.024944702508568343, 1.0]", + "[4.4, 4.487047463927276, 0.027849148620670866, 0.024944702508568343, 1.0]", + "[4.4, 4.412952536072726, -0.025484731098176706, -0.023526097014276017, 1.0]", + "[4.6000000000000005, 4.687056697688052, 0.025484731098176706, 0.023526097014276017, 1.0]", + "[4.6000000000000005, 4.612943302311948, -0.02332902737198453, -0.022148028371415565, 1.0]", + "[4.8, 4.887064382009678, 0.02332902737198453, 0.022148028371415565, 1.0]", + "[4.8, 4.8129356179903215, -0.02136265020649794, -0.02081659488928066, 1.0]", + "[5.0, 5.0870707829506845, 0.02136265020649794, 0.02081659488928066, 1.0]", + "[5.0, 5.012929217049313, -0.019568124918963856, -0.019536201610756577, 1.0]", + "[5.2, 5.2870761197090435, 0.019568124918963856, 0.019536201610756577, 1.0]", + "[5.2, 5.212923880290953, -0.017929688476769578, -0.01830985200649348, 1.0]", + "[5.4, 5.4870805731015535, 0.017929688476769578, 0.01830985200649348, 1.0]", + "[5.4, 5.4129194268984415, -0.01643311094010704, -0.017139396041462036, 1.0]", + "[5.6000000000000005, 5.68708429246583, 0.01643311094010704, 0.017139396041462036, 1.0]", + "[5.6000000000000005, 5.612915707534164, -0.015065536651213364, -0.01602574074067565, 1.0]", + "[5.8, 5.887087401286466, 0.015065536651213364, 0.01602574074067565, 1.0]", + "[5.8, 5.812912598713527, -0.013815342882090707, -0.014969028548555332, 1.0]", + "[6.0, 6.087090001787774, 0.013815342882090707, 0.014969028548555332, 1.0]", + "[6.0, 6.0129099982122165, -0.012672013925937637, -0.013968788054949855, 1.0]", + "[6.2, 6.287092178688207, 0.012672013925937637, 0.013968788054949855, 1.0]", + "[6.2, 6.2129078213117825, -0.011626028857858543, -0.013024061035660296, 1.0]", + "[6.4, 6.487094002273754, 0.011626028857858543, 0.013024061035660296, 1.0]", + "[6.4, 6.4129059977262335, -0.010668761401667547, -0.01213350921378219, 1.0]", + "[6.6000000000000005, 6.687095530917253, 0.010668761401667547, 0.01213350921378219, 1.0]", + "[6.6000000000000005, 6.612904469082734, -0.009792390525250315, -0.011295503679240622, 1.0]", + "[6.8, 6.887096813146276, 0.009792390525250315, 0.011295503679240622, 1.0]", + "[6.8, 6.812903186853709, -0.008989820550079962, -0.010508199497960826, 1.0]", + "[7.0, 7.08709788934273, 0.008989820550079962, 0.010508199497960826, 1.0]", + "[7.0, 7.0129021106572536, -0.008254609703833389, -0.009769597690849908, 1.0]", + "[7.2, 7.287098793141493, 0.008254609703833389, 0.009769597690849908, 1.0]", + "[7.2, 7.212901206858489, -0.007580906171032515, -0.00907759645891743, 1.0]", + "[7.4, 7.487099552582886, 0.007580906171032515, 0.00907759645891743, 1.0]", + "[7.4, 7.412900447417095, -0.006963390807364418, -0.008430033268136567, 1.0]", + "[7.6000000000000005, 7.687100191063399, 0.006963390807364418, 0.008430033268136567, 1.0]", + "[7.6000000000000005, 7.6128998089365805, -0.006397225780682882, -0.007824719180574776, 1.0]", + "[7.8, 7.887100728120978, 0.006397225780682882, 0.007824719180574776, 1.0]", + "[7.8, 7.812899271879, -0.005878008487302942, -0.007259466622152707, 1.0]", + "[8.0, 8.087101180084368, 0.005878008487302942, 0.007259466622152707, 1.0]", + "[8.0, 8.012898819915609, -0.005401730167509845, -0.006732111607997901, 1.0]", + "[8.2, 8.287101560610656, 0.005401730167509845, 0.006732111607997901, 1.0]", + "[8.2, 8.212898439389319, -0.0049647387104788665, -0.006240531300164933, 1.0]", + "[8.399999999999999, 8.487101881130767, 0.0049647387104788665, 0.006240531300164933, 1.0]", + "[8.399999999999999, 8.412898118869206, -0.004563705197150654, -0.005782657646387466, 1.0]", + "[8.6, 8.687102151219047, 0.004563705197150654, 0.005782657646387466, 1.0]", + "[8.6, 8.612897848780925, -0.004195593780999831, -0.005356487739813081, 1.0]", + "[8.799999999999999, 8.887102378900183, 0.004195593780999831, 0.005356487739813081, 1.0]", + "[8.799999999999999, 8.812897621099788, -0.003857634551923691, -0.004960091446008176, 1.0]", + "[9.0, 9.087102570904326, 0.003857634551923691, 0.004960091446008176, 1.0]", + "[9.0, 9.012897429095643, -0.0035472990684088414, -0.004591616762877546, 1.0]", + "[9.2, 9.287102732879397, 0.0035472990684088414, 0.004591616762877546, 1.0]", + "[9.2, 9.21289726712057, -0.003262278278359854, -0.004249293309760932, 1.0]", + "[9.399999999999999, 9.48710286956788, 0.003262278278359854, 0.004249293309760932, 1.0]", + "[9.399999999999999, 9.412897130432087, -0.00300046258006802, -0.003931434282320377, 1.0]", + "[9.6, 9.687102984954212, 0.00300046258006802, 0.003931434282320377, 1.0]", + "[9.6, 9.612897015045753, -0.002759923802261281, -0.0036364371585944077, 1.0]", + "[9.799999999999999, 9.887103082387712, 0.002759923802261281, 0.0036364371585944077, 1.0]", + "[9.799999999999999, 9.812896917612251, -0.002538898906447989, -0.003362783397621525, 1.0]", + "[10.0, 10.087103164685274, 0.002538898906447989, 0.003362783397621525, 1.0]", + "[10.0, 10.012896835314688, -0.002335775236232121, -0.0031090373343327514, 1.0]", + "[10.2, 10.287103234217131, 0.002335775236232121, 0.0031090373343327514, 1.0]", + "[10.2, 10.21289676578283, -0.00214907715727341, -0.00287384444212101, 1.0]", + "[10.399999999999999, 10.487103292978597, 0.00214907715727341, 0.00287384444212101, 1.0]" + ], + "car2": [ + "[0.0, 10.0, 0.0, 0.0, 0.5]", + "[0.2, 10.100000000000001, 0.0, 0.0, 0.5]", + "[0.2, 10.100000000000001, 0.0, 0.0, 0.5]", + "[0.4, 10.200000000000003, 0.0, 0.0, 0.5]", + "[0.4, 10.200000000000003, 0.0, 0.0, 0.5]", + "[0.6000000000000001, 10.300000000000004, 0.0, 0.0, 0.5]", + "[0.6000000000000001, 10.300000000000004, 0.0, 0.0, 0.5]", + "[0.8, 10.400000000000006, 0.0, 0.0, 0.5]", + "[0.8, 10.400000000000006, 0.0, 0.0, 0.5]", + "[1.0, 10.500000000000007, 0.0, 0.0, 0.5]", + "[1.0, 10.500000000000007, 0.0, 0.0, 0.5]", + "[1.2, 10.600000000000009, 0.0, 0.0, 0.5]", + "[1.2, 10.600000000000009, 0.0, 0.0, 0.5]", + "[1.4, 10.70000000000001, 0.0, 0.0, 0.5]", + "[1.4, 10.70000000000001, 0.0, 0.0, 0.5]", + "[1.5999999999999999, 10.800000000000011, 0.0, 0.0, 0.5]", + "[1.5999999999999999, 10.800000000000011, 0.0, 0.0, 0.5]", + "[1.8, 10.900000000000013, 0.0, 0.0, 0.5]", + "[1.8, 10.900000000000013, 0.0, 0.0, 0.5]", + "[2.0, 11.000000000000014, 0.0, 0.0, 0.5]", + "[2.0, 11.000000000000014, 0.0, 0.0, 0.5]", + "[2.2, 11.100000000000016, 0.0, 0.0, 0.5]", + "[2.2, 11.100000000000016, 0.0, 0.0, 0.5]", + "[2.4000000000000004, 11.200000000000017, 0.0, 0.0, 0.5]", + "[2.4000000000000004, 11.200000000000017, 0.0, 0.0, 0.5]", + "[2.6, 11.300000000000018, 0.0, 0.0, 0.5]", + "[2.6, 11.300000000000018, 0.0, 0.0, 0.5]", + "[2.8000000000000003, 11.40000000000002, 0.0, 0.0, 0.5]", + "[2.8000000000000003, 11.40000000000002, 0.0, 0.0, 0.5]", + "[3.0, 11.500000000000021, 0.0, 0.0, 0.5]", + "[3.0, 11.500000000000021, 0.0, 0.0, 0.5]", + "[3.2, 11.600000000000023, 0.0, 0.0, 0.5]", + "[3.2, 11.600000000000023, 0.0, 0.0, 0.5]", + "[3.4000000000000004, 11.700000000000024, 0.0, 0.0, 0.5]", + "[3.4000000000000004, 11.700000000000024, 0.0, 0.0, 0.5]", + "[3.6, 11.800000000000026, 0.0, 0.0, 0.5]", + "[3.6, 11.800000000000026, 0.0, 0.0, 0.5]", + "[3.8000000000000003, 11.900000000000027, 0.0, 0.0, 0.5]", + "[3.8000000000000003, 11.900000000000027, 0.0, 0.0, 0.5]", + "[4.0, 12.000000000000028, 0.0, 0.0, 0.5]", + "[4.0, 12.000000000000028, 0.0, 0.0, 0.5]", + "[4.2, 12.10000000000003, 0.0, 0.0, 0.5]", + "[4.2, 12.10000000000003, 0.0, 0.0, 0.5]", + "[4.4, 12.200000000000031, 0.0, 0.0, 0.5]", + "[4.4, 12.200000000000031, 0.0, 0.0, 0.5]", + "[4.6000000000000005, 12.300000000000033, 0.0, 0.0, 0.5]", + "[4.6000000000000005, 12.300000000000033, 0.0, 0.0, 0.5]", + "[4.8, 12.400000000000034, 0.0, 0.0, 0.5]", + "[4.8, 12.400000000000034, 0.0, 0.0, 0.5]", + "[5.0, 12.500000000000036, 0.0, 0.0, 0.5]", + "[5.0, 12.500000000000036, 0.0, 0.0, 0.5]", + "[5.2, 12.600000000000037, 0.0, 0.0, 0.5]", + "[5.2, 12.600000000000037, 0.0, 0.0, 0.5]", + "[5.4, 12.700000000000038, 0.0, 0.0, 0.5]", + "[5.4, 12.700000000000038, 0.0, 0.0, 0.5]", + "[5.6000000000000005, 12.80000000000004, 0.0, 0.0, 0.5]", + "[5.6000000000000005, 12.80000000000004, 0.0, 0.0, 0.5]", + "[5.8, 12.900000000000041, 0.0, 0.0, 0.5]", + "[5.8, 12.900000000000041, 0.0, 0.0, 0.5]", + "[6.0, 13.000000000000043, 0.0, 0.0, 0.5]", + "[6.0, 13.000000000000043, 0.0, 0.0, 0.5]", + "[6.2, 13.100000000000044, 0.0, 0.0, 0.5]", + "[6.2, 13.100000000000044, 0.0, 0.0, 0.5]", + "[6.4, 13.200000000000045, 0.0, 0.0, 0.5]", + "[6.4, 13.200000000000045, 0.0, 0.0, 0.5]", + "[6.6000000000000005, 13.300000000000047, 0.0, 0.0, 0.5]", + "[6.6000000000000005, 13.300000000000047, 0.0, 0.0, 0.5]", + "[6.8, 13.400000000000048, 0.0, 0.0, 0.5]", + "[6.8, 13.400000000000048, 0.0, 0.0, 0.5]", + "[7.0, 13.50000000000005, 0.0, 0.0, 0.5]", + "[7.0, 13.50000000000005, 0.0, 0.0, 0.5]", + "[7.2, 13.600000000000051, 0.0, 0.0, 0.5]", + "[7.2, 13.600000000000051, 0.0, 0.0, 0.5]", + "[7.4, 13.700000000000053, 0.0, 0.0, 0.5]", + "[7.4, 13.700000000000053, 0.0, 0.0, 0.5]", + "[7.6000000000000005, 13.800000000000054, 0.0, 0.0, 0.5]", + "[7.6000000000000005, 13.800000000000054, 0.0, 0.0, 0.5]", + "[7.8, 13.900000000000055, 0.0, 0.0, 0.5]", + "[7.8, 13.900000000000055, 0.0, 0.0, 0.5]", + "[8.0, 14.000000000000057, 0.0, 0.0, 0.5]", + "[8.0, 14.000000000000057, 0.0, 0.0, 0.5]", + "[8.2, 14.100000000000058, 0.0, 0.0, 0.5]", + "[8.2, 14.100000000000058, 0.0, 0.0, 0.5]", + "[8.399999999999999, 14.20000000000006, 0.0, 0.0, 0.5]", + "[8.399999999999999, 14.20000000000006, 0.0, 0.0, 0.5]", + "[8.6, 14.300000000000061, 0.0, 0.0, 0.5]", + "[8.6, 14.300000000000061, 0.0, 0.0, 0.5]", + "[8.799999999999999, 14.400000000000063, 0.0, 0.0, 0.5]", + "[8.799999999999999, 14.400000000000063, 0.0, 0.0, 0.5]", + "[9.0, 14.500000000000064, 0.0, 0.0, 0.5]", + "[9.0, 14.500000000000064, 0.0, 0.0, 0.5]", + "[9.2, 14.600000000000065, 0.0, 0.0, 0.5]", + "[9.2, 14.600000000000065, 0.0, 0.0, 0.5]", + "[9.399999999999999, 14.700000000000067, 0.0, 0.0, 0.5]", + "[9.399999999999999, 14.700000000000067, 0.0, 0.0, 0.5]", + "[9.6, 14.800000000000068, 0.0, 0.0, 0.5]", + "[9.6, 14.800000000000068, 0.0, 0.0, 0.5]", + "[9.799999999999999, 14.90000000000007, 0.0, 0.0, 0.5]", + "[9.799999999999999, 14.90000000000007, 0.0, 0.0, 0.5]", + "[10.0, 15.000000000000071, 0.0, 0.0, 0.5]", + "[10.0, 15.000000000000071, 0.0, 0.0, 0.5]", + "[10.2, 15.100000000000072, 0.0, 0.0, 0.5]", + "[10.2, 15.100000000000072, 0.0, 0.0, 0.5]", + "[10.399999999999999, 15.200000000000074, 0.0, 0.0, 0.5]" + ] + }, + "type": "reachtube", + "assert_hits": null +}, +"1": { + "node_name": "1-0", + "id": 1, + "start_line": 253, + "parent": { + "name": "0-0", + "index": 0, + "start_line": 2 + }, + "child": { + "2-0": { + "name": "2-0", + "index": 2, + "start_line": 398 + } + }, + "agent": { + "car1": "<class 'dryvr_plus_plus.example.example_agent.car_agent.CarAgent'>", + "car2": "<class 'dryvr_plus_plus.example.example_agent.car_agent.CarAgent'>" + }, + "init": { + "car1": "[[9.612897015045753, -0.002759923802261281, -0.0036364371585944077, 1.0], [10.487103292978597, 0.002759923802261281, 0.0036364371585944077, 1.0]]" + }, + "mode": { + "car1": "[\"SwitchRight\", \"Lane1\"]", + "car2": "[\"Normal\", \"Lane1\"]" + }, + "static": { + "car1": "[]", + "car2": "[]" + }, + "start_time": 9.6, + "trace": { + "car2": [ + "[9.6, 14.800000000000068, 0.0, 0.0, 0.5]", + "[9.799999999999999, 14.90000000000007, 0.0, 0.0, 0.5]", + "[9.799999999999999, 14.90000000000007, 0.0, 0.0, 0.5]", + "[10.0, 15.000000000000071, 0.0, 0.0, 0.5]", + "[10.0, 15.000000000000071, 0.0, 0.0, 0.5]", + "[10.2, 15.100000000000072, 0.0, 0.0, 0.5]", + "[10.2, 15.100000000000072, 0.0, 0.0, 0.5]", + "[10.399999999999999, 15.200000000000074, 0.0, 0.0, 0.5]", + "[10.399999999999999, 15.200000000000074, 0.0, 0.0, 0.5]", + "[10.6, 15.300000000000075, 0.0, 0.0, 0.5]", + "[10.6, 15.300000000000075, 0.0, 0.0, 0.5]", + "[10.799999999999999, 15.400000000000077, 0.0, 0.0, 0.5]", + "[10.799999999999999, 15.400000000000077, 0.0, 0.0, 0.5]", + "[11.0, 15.500000000000078, 0.0, 0.0, 0.5]", + "[11.0, 15.500000000000078, 0.0, 0.0, 0.5]", + "[11.2, 15.60000000000008, 0.0, 0.0, 0.5]", + "[11.2, 15.60000000000008, 0.0, 0.0, 0.5]", + "[11.399999999999999, 15.700000000000081, 0.0, 0.0, 0.5]", + "[11.399999999999999, 15.700000000000081, 0.0, 0.0, 0.5]", + "[11.6, 15.800000000000082, 0.0, 0.0, 0.5]", + "[11.6, 15.800000000000082, 0.0, 0.0, 0.5]", + "[11.799999999999999, 15.900000000000084, 0.0, 0.0, 0.5]", + "[11.799999999999999, 15.900000000000084, 0.0, 0.0, 0.5]", + "[12.0, 16.000000000000085, 0.0, 0.0, 0.5]", + "[12.0, 16.000000000000085, 0.0, 0.0, 0.5]", + "[12.2, 16.100000000000083, 0.0, 0.0, 0.5]", + "[12.2, 16.100000000000083, 0.0, 0.0, 0.5]", + "[12.399999999999999, 16.20000000000008, 0.0, 0.0, 0.5]", + "[12.399999999999999, 16.20000000000008, 0.0, 0.0, 0.5]", + "[12.6, 16.30000000000008, 0.0, 0.0, 0.5]", + "[12.6, 16.30000000000008, 0.0, 0.0, 0.5]", + "[12.799999999999999, 16.400000000000077, 0.0, 0.0, 0.5]", + "[12.799999999999999, 16.400000000000077, 0.0, 0.0, 0.5]", + "[13.0, 16.500000000000075, 0.0, 0.0, 0.5]", + "[13.0, 16.500000000000075, 0.0, 0.0, 0.5]", + "[13.2, 16.600000000000072, 0.0, 0.0, 0.5]", + "[13.2, 16.600000000000072, 0.0, 0.0, 0.5]", + "[13.399999999999999, 16.70000000000007, 0.0, 0.0, 0.5]", + "[13.399999999999999, 16.70000000000007, 0.0, 0.0, 0.5]", + "[13.6, 16.800000000000068, 0.0, 0.0, 0.5]", + "[13.6, 16.800000000000068, 0.0, 0.0, 0.5]", + "[13.799999999999999, 16.900000000000066, 0.0, 0.0, 0.5]", + "[13.799999999999999, 16.900000000000066, 0.0, 0.0, 0.5]", + "[14.0, 17.000000000000064, 0.0, 0.0, 0.5]", + "[14.0, 17.000000000000064, 0.0, 0.0, 0.5]", + "[14.2, 17.100000000000062, 0.0, 0.0, 0.5]", + "[14.2, 17.100000000000062, 0.0, 0.0, 0.5]", + "[14.399999999999999, 17.20000000000006, 0.0, 0.0, 0.5]", + "[14.399999999999999, 17.20000000000006, 0.0, 0.0, 0.5]", + "[14.6, 17.300000000000058, 0.0, 0.0, 0.5]", + "[14.6, 17.300000000000058, 0.0, 0.0, 0.5]", + "[14.799999999999999, 17.400000000000055, 0.0, 0.0, 0.5]" + ], + "car1": [ + "[9.6, 9.612897015045753, -0.1227683591695098, -0.06642305002646241, 1.0]", + "[9.799999999999999, 10.500914361925048, 0.002759923802261281, 0.0036364371585944077, 1.0]", + "[9.799999999999999, 9.91921247245411, -0.2529842013744023, -0.13189361689508883, 1.0]", + "[10.0, 10.652917101859678, -0.11694368690967218, -0.06451808371079044, 1.0]", + "[10.0, 10.070967313363944, -0.39284951845779126, -0.19736418376371526, 1.0]", + "[10.2, 10.796093744085699, -0.24687029606342867, -0.129988650579417, 1.0]", + "[10.2, 10.21387766588973, -0.5417650340948877, -0.2628347506323417, 1.0]", + "[10.4, 10.929830743317158, -0.38646321663751615, -0.19545921744804354, 1.0]", + "[10.4, 10.347331122751005, -0.6941879176429269, -0.3247901886469489, 1.0]", + "[10.6, 11.059040793200285, -0.5351243396277084, -0.26092978431666997, 1.0]", + "[10.6, 10.476769863053423, -0.8417841235038762, -0.37747031113531015, 1.0]", + "[10.799999999999999, 11.193741737438952, -0.6877408326034771, -0.3231969102284314, 1.0]", + "[10.799999999999999, 10.611699457873161, -0.9842217674075855, -0.4212708187874096, 1.0]", + "[11.0, 11.333889752910617, -0.8355455142000355, -0.376180046619231, 1.0]", + "[11.0, 10.752073870836563, -1.1211932147676529, -0.45672767754005494, 1.0]", + "[11.2, 11.479388229507837, -0.9782057713509626, -0.4202690269803592, 1.0]", + "[11.2, 10.897794323035601, -1.252422185050416, -0.4844624459995119, 1.0]", + "[11.4, 11.630090550291397, -1.1154129138369102, -0.4559958869959543, 1.0]", + "[11.4, 11.04871209697472, -1.3776715065256153, -0.5051407171117991, 1.0]", + "[11.6, 11.785803213483796, -1.246889244819132, -0.48397979024900145, 1.0]", + "[11.6, 11.204631704429357, -1.4967508377480592, -0.519442363167376, 1.0]", + "[11.8, 11.94628991044073, -1.372395803805224, -0.5048850762205886, 1.0]", + "[11.8, 11.365315029335019, -1.609523641731291, -0.5281720404116308, 1.0]", + "[12.0, 12.111276953850782, -1.4917401089671485, -0.5193911746317951, 1.0]", + "[12.0, 11.530486838352141, -1.7159116816317685, -0.5318825902233988, 1.0]", + "[12.2, 12.28046124546218, -1.6047831813671496, -0.5280412207722165, 1.0]", + "[12.2, 11.699842800128382, -1.8158992185846736, -0.5318825902233988, 1.0]", + "[12.4, 12.453515828756146, -1.7114441497885093, -0.5307201863557597, 1.0]", + "[12.4, 11.873055068886146, -1.9095326201485552, -0.531149982632057, 1.0]", + "[12.6, 12.63009992688179, -1.81170456717057, -0.5260194790341127, 1.0]", + "[12.6, 12.049782420073644, -1.9969194117239175, -0.5265679973069958, 1.0]", + "[12.8, 12.809868302235849, -1.9056081052751779, -0.5180452615145148, 1.0]", + "[12.8, 12.229679569184977, -2.078220248824009, -0.5186934451875431, 1.0]", + "[13.0, 12.992481047097275, -1.9932597593256445, -0.5073137723362948, 1.0]", + "[13.0, 12.412406914404166, -2.153642723576455, -0.5080438117251851, 1.0]", + "[13.2, 13.17761032528147, -2.074817933833667, -0.4943005215125981, 1.0]", + "[13.2, 12.597637230131507, -2.223432725826458, -0.49509594180403366, 1.0]", + "[13.4, 13.364946469082335, -2.1504883170853124, -0.47943968963992206, 1.0]", + "[13.4, 12.78506169530941, -2.2878652525882144, -0.4802854104068511, 1.0]", + "[13.6, 13.5542024075041, -2.220515284389165, -0.4631241719174124, 1.0]", + "[13.6, 12.97439424777421, -2.3472353510054673, -0.46400653835230554, 1.0]", + "[13.8, 13.74511646281592, -2.2851727183328574, -0.4457062126327256, 1.0]", + "[13.8, 13.165374311427827, -2.4018497017137332, -0.4466129991556024, 1.0]", + "[14.0, 13.937453616772531, -2.3447549354002315, -0.4274985751980731, 1.0]", + "[14.0, 13.357768000068967, -2.4520192058921584, -0.4284189632725113, 1.0]", + "[14.2, 14.131005500430874, -2.399568233889617, -0.4087761804291508, 1.0]", + "[14.2, 13.551368058342902, -2.4980527726567034, -0.40970071355553833, 1.0]", + "[14.399999999999999, 14.325589421043299, -2.4499234327536694, -0.38977813136728906, 1.0]", + "[14.399999999999999, 13.745992852866573, -2.540252356399027, -0.3906986510921005, 1.0]", + "[14.6, 14.52104672025238, -2.4961296054269635, -0.3707100340899553, 1.0]", + "[14.6, 13.941484706822203, -2.578909190032236, -0.3716196012801817, 1.0]", + "[14.8, 14.717240723724034, -2.5384890636659834, -0.3517465226284837, 1.0]" + ] + }, + "type": "reachtube", + "assert_hits": null +}, +"2": { + "node_name": "2-0", + "id": 2, + "start_line": 398, + "parent": { + "name": "1-0", + "index": 1, + "start_line": 253 + }, + "child": {}, + "agent": { + "car1": "<class 'dryvr_plus_plus.example.example_agent.car_agent.CarAgent'>", + "car2": "<class 'dryvr_plus_plus.example.example_agent.car_agent.CarAgent'>" + }, + "init": { + "car1": "[[13.745992852866573, -2.578909190032236, -0.3906986510921005, 1.0], [14.717240723724034, -2.4961296054269635, -0.3517465226284837, 1.0]]" + }, + "mode": { + "car1": "[\"Normal\", \"Lane2\"]", + "car2": "[\"Normal\", \"Lane1\"]" + }, + "static": { + "car1": "[]", + "car2": "[]" + }, + "start_time": 14.4, + "trace": { + "car2": [ + "[14.399999999999999, 17.20000000000006, 0.0, 0.0, 0.5]", + "[14.6, 17.300000000000058, 0.0, 0.0, 0.5]", + "[14.6, 17.300000000000058, 0.0, 0.0, 0.5]", + "[14.799999999999999, 17.400000000000055, 0.0, 0.0, 0.5]", + "[14.799999999999999, 17.400000000000055, 0.0, 0.0, 0.5]", + "[15.0, 17.500000000000053, 0.0, 0.0, 0.5]", + "[15.0, 17.500000000000053, 0.0, 0.0, 0.5]", + "[15.2, 17.60000000000005, 0.0, 0.0, 0.5]", + "[15.2, 17.60000000000005, 0.0, 0.0, 0.5]", + "[15.399999999999999, 17.70000000000005, 0.0, 0.0, 0.5]", + "[15.399999999999999, 17.70000000000005, 0.0, 0.0, 0.5]", + "[15.6, 17.800000000000047, 0.0, 0.0, 0.5]", + "[15.6, 17.800000000000047, 0.0, 0.0, 0.5]", + "[15.799999999999999, 17.900000000000045, 0.0, 0.0, 0.5]", + "[15.799999999999999, 17.900000000000045, 0.0, 0.0, 0.5]", + "[16.0, 18.000000000000043, 0.0, 0.0, 0.5]", + "[16.0, 18.000000000000043, 0.0, 0.0, 0.5]", + "[16.2, 18.10000000000004, 0.0, 0.0, 0.5]", + "[16.2, 18.10000000000004, 0.0, 0.0, 0.5]", + "[16.4, 18.20000000000004, 0.0, 0.0, 0.5]", + "[16.4, 18.20000000000004, 0.0, 0.0, 0.5]", + "[16.599999999999998, 18.300000000000036, 0.0, 0.0, 0.5]", + "[16.599999999999998, 18.300000000000036, 0.0, 0.0, 0.5]", + "[16.8, 18.400000000000034, 0.0, 0.0, 0.5]", + "[16.8, 18.400000000000034, 0.0, 0.0, 0.5]", + "[17.0, 18.500000000000032, 0.0, 0.0, 0.5]", + "[17.0, 18.500000000000032, 0.0, 0.0, 0.5]", + "[17.2, 18.60000000000003, 0.0, 0.0, 0.5]", + "[17.2, 18.60000000000003, 0.0, 0.0, 0.5]", + "[17.4, 18.700000000000028, 0.0, 0.0, 0.5]", + "[17.4, 18.700000000000028, 0.0, 0.0, 0.5]", + "[17.599999999999998, 18.800000000000026, 0.0, 0.0, 0.5]", + "[17.599999999999998, 18.800000000000026, 0.0, 0.0, 0.5]", + "[17.8, 18.900000000000023, 0.0, 0.0, 0.5]", + "[17.8, 18.900000000000023, 0.0, 0.0, 0.5]", + "[18.0, 19.00000000000002, 0.0, 0.0, 0.5]", + "[18.0, 19.00000000000002, 0.0, 0.0, 0.5]", + "[18.2, 19.10000000000002, 0.0, 0.0, 0.5]", + "[18.2, 19.10000000000002, 0.0, 0.0, 0.5]", + "[18.4, 19.200000000000017, 0.0, 0.0, 0.5]", + "[18.4, 19.200000000000017, 0.0, 0.0, 0.5]", + "[18.599999999999998, 19.300000000000015, 0.0, 0.0, 0.5]", + "[18.599999999999998, 19.300000000000015, 0.0, 0.0, 0.5]", + "[18.8, 19.400000000000013, 0.0, 0.0, 0.5]", + "[18.8, 19.400000000000013, 0.0, 0.0, 0.5]", + "[19.0, 19.50000000000001, 0.0, 0.0, 0.5]", + "[19.0, 19.50000000000001, 0.0, 0.0, 0.5]", + "[19.2, 19.60000000000001, 0.0, 0.0, 0.5]", + "[19.2, 19.60000000000001, 0.0, 0.0, 0.5]", + "[19.4, 19.700000000000006, 0.0, 0.0, 0.5]", + "[19.4, 19.700000000000006, 0.0, 0.0, 0.5]", + "[19.599999999999998, 19.800000000000004, 0.0, 0.0, 0.5]", + "[19.599999999999998, 19.800000000000004, 0.0, 0.0, 0.5]", + "[19.8, 19.900000000000002, 0.0, 0.0, 0.5]", + "[19.8, 19.900000000000002, 0.0, 0.0, 0.5]", + "[20.0, 20.0, 0.0, 0.0, 0.5]", + "[20.0, 20.0, 0.0, 0.0, 0.5]", + "[20.2, 20.099999999999998, 0.0, 0.0, 0.5]", + "[20.2, 20.099999999999998, 0.0, 0.0, 0.5]", + "[20.4, 20.199999999999996, 0.0, 0.0, 0.5]", + "[20.4, 20.199999999999996, 0.0, 0.0, 0.5]", + "[20.599999999999998, 20.299999999999994, 0.0, 0.0, 0.5]", + "[20.599999999999998, 20.299999999999994, 0.0, 0.0, 0.5]", + "[20.8, 20.39999999999999, 0.0, 0.0, 0.5]", + "[20.8, 20.39999999999999, 0.0, 0.0, 0.5]", + "[21.0, 20.49999999999999, 0.0, 0.0, 0.5]", + "[21.0, 20.49999999999999, 0.0, 0.0, 0.5]", + "[21.2, 20.599999999999987, 0.0, 0.0, 0.5]", + "[21.2, 20.599999999999987, 0.0, 0.0, 0.5]", + "[21.4, 20.699999999999985, 0.0, 0.0, 0.5]", + "[21.4, 20.699999999999985, 0.0, 0.0, 0.5]", + "[21.599999999999998, 20.799999999999983, 0.0, 0.0, 0.5]", + "[21.599999999999998, 20.799999999999983, 0.0, 0.0, 0.5]", + "[21.8, 20.89999999999998, 0.0, 0.0, 0.5]", + "[21.8, 20.89999999999998, 0.0, 0.0, 0.5]", + "[22.0, 20.99999999999998, 0.0, 0.0, 0.5]", + "[22.0, 20.99999999999998, 0.0, 0.0, 0.5]", + "[22.2, 21.099999999999977, 0.0, 0.0, 0.5]", + "[22.2, 21.099999999999977, 0.0, 0.0, 0.5]", + "[22.4, 21.199999999999974, 0.0, 0.0, 0.5]", + "[22.4, 21.199999999999974, 0.0, 0.0, 0.5]", + "[22.599999999999998, 21.299999999999972, 0.0, 0.0, 0.5]", + "[22.599999999999998, 21.299999999999972, 0.0, 0.0, 0.5]", + "[22.8, 21.39999999999997, 0.0, 0.0, 0.5]", + "[22.8, 21.39999999999997, 0.0, 0.0, 0.5]", + "[23.0, 21.499999999999968, 0.0, 0.0, 0.5]", + "[23.0, 21.499999999999968, 0.0, 0.0, 0.5]", + "[23.2, 21.599999999999966, 0.0, 0.0, 0.5]", + "[23.2, 21.599999999999966, 0.0, 0.0, 0.5]", + "[23.4, 21.699999999999964, 0.0, 0.0, 0.5]", + "[23.4, 21.699999999999964, 0.0, 0.0, 0.5]", + "[23.599999999999998, 21.79999999999996, 0.0, 0.0, 0.5]", + "[23.599999999999998, 21.79999999999996, 0.0, 0.0, 0.5]", + "[23.8, 21.89999999999996, 0.0, 0.0, 0.5]", + "[23.8, 21.89999999999996, 0.0, 0.0, 0.5]", + "[24.0, 21.999999999999957, 0.0, 0.0, 0.5]", + "[24.0, 21.999999999999957, 0.0, 0.0, 0.5]", + "[24.2, 22.099999999999955, 0.0, 0.0, 0.5]", + "[24.2, 22.099999999999955, 0.0, 0.0, 0.5]", + "[24.4, 22.199999999999953, 0.0, 0.0, 0.5]", + "[24.4, 22.199999999999953, 0.0, 0.0, 0.5]", + "[24.599999999999998, 22.29999999999995, 0.0, 0.0, 0.5]", + "[24.599999999999998, 22.29999999999995, 0.0, 0.0, 0.5]", + "[24.8, 22.39999999999995, 0.0, 0.0, 0.5]", + "[24.8, 22.39999999999995, 0.0, 0.0, 0.5]", + "[25.0, 22.499999999999947, 0.0, 0.0, 0.5]", + "[25.0, 22.499999999999947, 0.0, 0.0, 0.5]", + "[25.2, 22.599999999999945, 0.0, 0.0, 0.5]", + "[25.2, 22.599999999999945, 0.0, 0.0, 0.5]", + "[25.4, 22.699999999999942, 0.0, 0.0, 0.5]", + "[25.4, 22.699999999999942, 0.0, 0.0, 0.5]", + "[25.599999999999998, 22.79999999999994, 0.0, 0.0, 0.5]", + "[25.599999999999998, 22.79999999999994, 0.0, 0.0, 0.5]", + "[25.8, 22.899999999999938, 0.0, 0.0, 0.5]", + "[25.8, 22.899999999999938, 0.0, 0.0, 0.5]", + "[26.0, 22.999999999999936, 0.0, 0.0, 0.5]", + "[26.0, 22.999999999999936, 0.0, 0.0, 0.5]", + "[26.2, 23.099999999999934, 0.0, 0.0, 0.5]", + "[26.2, 23.099999999999934, 0.0, 0.0, 0.5]", + "[26.4, 23.199999999999932, 0.0, 0.0, 0.5]", + "[26.4, 23.199999999999932, 0.0, 0.0, 0.5]", + "[26.599999999999998, 23.29999999999993, 0.0, 0.0, 0.5]", + "[26.599999999999998, 23.29999999999993, 0.0, 0.0, 0.5]", + "[26.8, 23.399999999999928, 0.0, 0.0, 0.5]", + "[26.8, 23.399999999999928, 0.0, 0.0, 0.5]", + "[27.0, 23.499999999999925, 0.0, 0.0, 0.5]", + "[27.0, 23.499999999999925, 0.0, 0.0, 0.5]", + "[27.2, 23.599999999999923, 0.0, 0.0, 0.5]", + "[27.2, 23.599999999999923, 0.0, 0.0, 0.5]", + "[27.4, 23.69999999999992, 0.0, 0.0, 0.5]", + "[27.4, 23.69999999999992, 0.0, 0.0, 0.5]", + "[27.599999999999998, 23.79999999999992, 0.0, 0.0, 0.5]", + "[27.599999999999998, 23.79999999999992, 0.0, 0.0, 0.5]", + "[27.8, 23.899999999999917, 0.0, 0.0, 0.5]", + "[27.8, 23.899999999999917, 0.0, 0.0, 0.5]", + "[28.0, 23.999999999999915, 0.0, 0.0, 0.5]", + "[28.0, 23.999999999999915, 0.0, 0.0, 0.5]", + "[28.2, 24.099999999999913, 0.0, 0.0, 0.5]", + "[28.2, 24.099999999999913, 0.0, 0.0, 0.5]", + "[28.4, 24.19999999999991, 0.0, 0.0, 0.5]", + "[28.4, 24.19999999999991, 0.0, 0.0, 0.5]", + "[28.599999999999998, 24.29999999999991, 0.0, 0.0, 0.5]", + "[28.599999999999998, 24.29999999999991, 0.0, 0.0, 0.5]", + "[28.8, 24.399999999999906, 0.0, 0.0, 0.5]", + "[28.8, 24.399999999999906, 0.0, 0.0, 0.5]", + "[29.0, 24.499999999999904, 0.0, 0.0, 0.5]", + "[29.0, 24.499999999999904, 0.0, 0.0, 0.5]", + "[29.2, 24.599999999999902, 0.0, 0.0, 0.5]", + "[29.2, 24.599999999999902, 0.0, 0.0, 0.5]", + "[29.4, 24.6999999999999, 0.0, 0.0, 0.5]", + "[29.4, 24.6999999999999, 0.0, 0.0, 0.5]", + "[29.599999999999998, 24.799999999999898, 0.0, 0.0, 0.5]", + "[29.599999999999998, 24.799999999999898, 0.0, 0.0, 0.5]", + "[29.8, 24.899999999999896, 0.0, 0.0, 0.5]", + "[29.8, 24.899999999999896, 0.0, 0.0, 0.5]", + "[30.0, 24.999999999999893, 0.0, 0.0, 0.5]" + ], + "car1": [ + "[14.4, 13.745992852866573, -2.6140327359040416, -0.39069865109210045, 1.0]", + "[14.6, 14.75008586821931, -2.4961296054269635, -0.3498217637975507, 1.0]", + "[14.6, 14.105499670152179, -2.646207324602555, -0.35484662767975417, 1.0]", + "[14.8, 14.946288355097487, -2.538797141939331, -0.33329180191176644, 1.0]", + "[14.8, 14.302894847363802, -2.6756717424662515, -0.3340631038850739, 1.0]", + "[15.0, 15.143114721016042, -2.5778437900221176, -0.3140324775030409, 1.0]", + "[15.0, 14.50071185717353, -2.702649039857108, -0.3167193143204093, 1.0]", + "[15.200000000000001, 15.340463597622438, -2.6135586645446267, -0.2947982008039682, 1.0]", + "[15.200000000000001, 14.698882714521062, -2.7273465254289744, -0.30026127521615004, 1.0]", + "[15.4, 15.538249435243701, -2.646214272029984, -0.2763898872995872, 1.0]", + "[15.4, 14.897350106597434, -2.749956089535281, -0.28404705622570886, 1.0]", + "[15.6, 15.736400293654716, -2.6760656288041047, -0.2588250977653668, 1.0]", + "[15.6, 15.096065834785799, -2.770654762096537, -0.2681816073644886, 1.0]", + "[15.8, 15.934855847106459, -2.7033499876903027, -0.24211102856970884, 1.0]", + "[15.8, 15.294989452153487, -2.7896054254844778, -0.25274843589644885, 1.0]", + "[16.0, 16.133565607514353, -2.728287020692385, -0.22624608111541178, 1.0]", + "[16.0, 15.494087069249838, -2.806957622630597, -0.23781236509393666, 1.0]", + "[16.2, 16.332487397530635, -2.7510793306743784, -0.2112212996584522, 1.0]", + "[16.2, 15.693330313787518, -2.8228484163773353, -0.22342206363166062, 1.0]", + "[16.4, 16.53158602590196, -2.7719131926913163, -0.1970216715495245, 1.0]", + "[16.4, 15.892695450063414, -2.8374032645080534, -0.20961234330981648, 1.0]", + "[16.6, 16.73083215570873, -2.790959439351011, -0.1836272892004034, 1.0]", + "[16.6, 16.092162630670163, -2.850736885740585, -0.1964062287155997, 1.0]", + "[16.8, 16.930201344107623, -2.8083744285676757, -0.17101437720666188, 1.0]", + "[16.8, 16.291715263736172, -2.8629540994663754, -0.18381680673790737, 1.0]", + "[17.0, 17.12967323206866, -2.8243010465828893, -0.1591561909758481, 1.0]", + "[17.0, 16.491339479922786, -2.8741506277999003, -0.17184886705644636, 1.0]", + "[17.2, 17.329230863643932, -2.838869711927017, -0.1480237951749294, 1.0]", + "[17.2, 16.691023684805653, -2.8844138528789625, -0.16050034692773454, 1.0]", + "[17.4, 17.528860116002583, -2.8521993561294092, -0.1375867315023632, 1.0]", + "[17.4, 16.890758183836198, -2.8938235256042577, -0.14976359494867306, 1.0]", + "[17.6, 17.728549223460423, -2.864398364842028, -0.12781358587364178, 1.0]", + "[17.6, 17.09053486866701, -2.9024524243667678, -0.13962646914765803, 1.0]", + "[17.8, 17.92828838079383, -2.8755654690115766, -0.11867246522992979, 1.0]", + "[17.8, 17.29034695513952, -2.910366963984578, -0.13007328487559744, 1.0]", + "[18.0, 18.12806941311642, -2.8857905801845503, -0.11013139396105091, 1.0]", + "[18.0, 17.490188764623717, -2.91762775621962, -0.12108562767188831, 1.0]", + "[18.2, 18.327885501434167, -2.8951555672772233, -0.10215863947860836, 1.0]", + "[18.2, 17.690055541644952, -2.9242901239998886, -0.1126430456740926, 1.0]", + "[18.4, 18.527730954643598, -2.9037349744574676, -0.09472297586435192, 1.0]", + "[18.4, 17.88994330182646, -2.930404571935657, -0.10472363531857871, 1.0]", + "[18.6, 18.727601020187482, -2.9115966813867367, -0.08779389381703633, 1.0]", + "[18.6, 18.089848705123647, -2.936017215968548, -0.09730453312023009, 1.0]", + "[18.8, 18.92749172683707, -2.918802508135332, -0.08134176437662018, 1.0]", + "[18.8, 18.28976895013772, -2.941170175090256, -0.0903623252845862, 1.0]", + "[19.0, 19.12739975414328, -2.9254087677498455, -0.0753379631535572, 1.0]", + "[19.0, 18.489701685986706, -2.9459038896764946, -0.08387338584393186, 1.0]", + "[19.2, 19.327322213877686, -2.9314667698266086, -0.06975496105858615, 1.0]", + "[19.2, 18.68964483110559, -2.9502513780704773, -0.07781415295636042, 1.0]", + "[19.4, 19.527256894501296, -2.937025233487817, -0.06456628611243334, 1.0]", + "[19.4, 18.889596839513654, -2.954244801091813, -0.07216125165621365, 1.0]", + "[19.6, 19.72720184758581, -2.9421246569905573, -0.05974678472159981, 1.0]", + "[19.6, 19.08955631755685, -2.95791356532461, -0.06689189278854656, 1.0]", + "[19.8, 19.927155439902197, -2.9468039419970027, -0.05527251627860471, 1.0]", + "[19.8, 19.28952209327549, -2.961284567112831, -0.06198388739989379, 1.0]", + "[20.0, 20.12711630156787, -2.9510985792719806, -0.0511207571240579, 1.0]", + "[20.0, 19.48949318063647, -2.9643824142672943, -0.057415753083356134, 1.0]", + "[20.2, 20.327083282875705, -2.9550409593834073, -0.0472699914812235, 1.0]", + "[20.2, 19.689468749626897, -2.967229627527097, -0.05316679258994987, 1.0]", + "[20.4, 20.527055418326903, -2.9586606542598433, -0.04369989196153131, 1.0]", + "[20.4, 19.889448101233626, -2.9698468236473725, -0.049217149221346686, 1.0]", + "[20.6, 20.727031896644917, -2.9619846723092995, -0.04039129185522318, 1.0]", + "[20.6, 20.08943064649759, -2.9722528818225773, -0.04554784291161469, 1.0]", + "[20.8, 20.927012035757787, -2.9650376895861075, -0.0373261510837289, 1.0]", + "[20.8, 20.28941588896844, -2.9744650950014795, -0.04214079036550501, 1.0]", + "[21.0, 21.12699526191077, -2.9678422592810194, -0.03448751739545577, 1.0]", + "[21.0, 20.489403409998403, -2.976499307507718, -0.038978812143548834, 1.0]", + "[21.2, 21.32698109221442, -2.970419001607849, -0.03185948413036831, 1.0]", + "[21.2, 20.68939285640833, -2.978370040248244, -0.036045629164612014, 1.0]", + "[21.4, 21.526969120052932, -2.972786775970168, -0.02942714565700713, 1.0]", + "[21.4, 20.889383930136972, -2.980090604671309, -0.033325850729337095, 1.0]", + "[21.6, 21.726959002874754, -2.9749628371149646, -0.027176551394619882, 1.0]", + "[21.6, 21.089376379549467, -2.9816732065253557, -0.03080495584788265, 1.0]", + "[21.8, 21.926950451969677, -2.9769629768172994, -0.025094659169259494, 1.0]", + "[21.8, 21.289369992134805, -2.9831290403697275, -0.028469269377541864, 1.0]", + "[22.0, 22.126943223903076, -2.9788016524905947, -0.02316928851274335, 1.0]", + "[22.0, 21.489364588366733, -2.984468375696956, -0.026305934235479847, 1.0]", + "[22.2, 22.32693711333397, -2.9804921039811023, -0.021389074394259813, 1.0]", + "[22.2, 21.689360016539972, -2.9857006354437905, -0.02430288074459659, 1.0]", + "[22.4, 22.52693194698907, -2.9820464596812943, -0.01974342177344923, 1.0]", + "[22.4, 21.8893561484245, -2.9868344675934217, -0.022448793992413615, 1.0]", + "[22.6, 22.72692757860393, -2.983475832984909, -0.018222461278562464, 1.0]", + "[22.6, 22.089352875606284, -2.9878778105038895, -0.020733079930269762, 1.0]", + "[22.799999999999997, 22.926923884672913, -2.98479041000512, -0.01681700624166949, 1.0]", + "[22.799999999999997, 22.2893501064047, -2.9888379525367696, -0.019145830809748538, 1.0]", + "[23.0, 23.126920760876917, -2.9859995293860337, -0.015518511262966527, 1.0]", + "[23.0, 22.48934776327425, -2.9897215865053184, -0.017677790442239785, 1.0]", + "[23.2, 23.326918119078677, -2.98711175495545, -0.014319032426355198, 1.0]", + "[23.2, 22.68934578061379, -2.9905348594117527, -0.01632031967329448, 1.0]", + "[23.4, 23.52691588479435, -2.988134941892917, -0.013211189247194477, 1.0]", + "[23.4, 22.889344102918272, -2.9912834178987233, -0.015065362383685907, 1.0]", + "[23.6, 23.72691399506458, -2.989076297020559, -0.012188128399193877, 1.0]", + "[23.6, 23.089342683218955, -2.9919724497998113, -0.013905412261855635, 1.0]", + "[23.799999999999997, 23.926912396661102, -2.989942433764432, -0.011243489239732455, 1.0]", + "[23.799999999999997, 23.28934148176652, -2.992606722137659, -0.0128334805359436, 1.0]", + "[24.0, 24.12691104457512, -2.9907394222805177, -0.010371371130504813, 1.0]", + "[24.0, 23.4893404649188, -2.9931906158856356, -0.011843064806357502, 1.0]", + "[24.2, 24.326909900742816, -2.991472835191208, -0.009566302532494443, 1.0]", + "[24.2, 23.689339604200992, -2.9937281577795045, -0.010928119080501522, 1.0]", + "[24.4, 24.526908932970105, -2.992147789334893, -0.008823211840155934, 1.0]", + "[24.4, 23.889338875511402, -2.9942230494389444, -0.010083025078701001, 1.0]", + "[24.6, 24.726908114025253, -2.9927689838922995, -0.008137399908741905, 1.0]", + "[24.6, 24.08933825844989, -2.9946786940348256, -0.009302564853538486, 1.0]", + "[24.799999999999997, 24.926907420872688, -2.9933407352183377, -0.00750451422042452, 1.0]", + "[24.799999999999997, 24.289337735749918, -2.995098220716435, -0.008581894742886075, 1.0]", + "[25.0, 25.126906834025995, -2.993867008676755, -0.006920524628787727, 1.0]", + "[25.0, 24.48933729279817, -2.9954845069933276, -0.00791652065914267, 1.0]", + "[25.2, 25.326906337001187, -2.9943514477466167, -0.006381700617030627, 1.0]", + "[25.2, 24.68933691722795, -2.9958401992488803, -0.0073022747029211025, 1.0]", + "[25.4, 25.52690591574797, -2.9947974006442495, -0.0058845900024978755, 1.0]", + "[25.4, 24.889336598708933, -2.996167731546155, -0.006735293078124923, 1.0]", + "[25.6, 25.72690555860866, -2.9952079446812916, -0.0054259990186648534, 1.0]", + "[25.6, 25.089336328573207, -2.9964693428729023, -0.0062119952765442195, 1.0]", + "[25.799999999999997, 25.926905255807384, -2.9955859085594474, -0.005002973705248997, 1.0]", + "[25.799999999999997, 25.28933609946236, -2.99674709295917, -0.005729064493344515, 1.0]", + "[26.0, 26.126904999062578, -2.995933892782445, -0.004612782537436876, 1.0]", + "[26.0, 25.48933590513857, -2.99700287678889, -0.005283429229887576, 1.0]", + "[26.2, 26.326904781357502, -2.9962542883507757, -0.004252900226195882, 1.0]", + "[26.2, 25.689335740313485, -2.997238437916262, -0.004872246036731228, 1.0]", + "[26.4, 26.52690459674637, -2.996549293888792, -0.003920992623137216, 1.0]", + "[26.4, 25.889335600503287, -2.997455380687929, -0.004492883347307369, 1.0]", + "[26.6, 26.72690444019033, -2.9968209313399705, -0.0036149026652734393, 1.0]", + "[26.6, 26.08933548190599, -2.997655181463138, -0.004142906351413695, 1.0]", + "[26.799999999999997, 26.926904307418564, -2.9970710603540627, -0.0033326372971865447, 1.0]", + "[26.799999999999997, 26.28933538129758, -2.997839198915972, -0.00382006285707627, 1.0]", + "[27.0, 27.126904194811, -2.997301391478543, -0.0030723553105044665, 1.0]", + "[27.0, 26.489335295943942, -2.9980086834965176, -0.0035222700894136398, 1.0]", + "[27.2, 27.326904099298805, -2.9975134982568306, -0.0028323560431133565, 1.0]", + "[27.2, 26.68933522352638, -2.9981647861210905, -0.003247602375715915, 1.0]", + "[27.4, 27.52690401828028, -2.997708828326468, -0.0026110688831492593, 1.0]", + "[27.4, 26.88933516207838, -2.998308566155687, -0.0029942796669475565, 1.0]", + "[27.6, 27.72690394954966, -2.9978887136022894, -0.002407043525476997, 1.0]", + "[27.6, 27.08933510993206, -2.998440998751263, -0.002760656847188822, 1.0]", + "[27.799999999999997, 27.926903891236705, -2.9980543796220096, -0.002218940931033904, 1.0]", + "[27.799999999999997, 27.28933506567285, -2.99856298158449, -0.002545213784079153, 1.0]", + "[28.0, 28.12690384175566, -2.9982069541249277, -0.0020455249420672696, 1.0]", + "[28.0, 27.489335028100964, -2.9986753410530325, -0.0023465460750469033, 1.0]", + "[28.2, 28.326903799758334, -2.9983474749281793, -0.00188565450889879, 1.0]", + "[28.2, 27.68933499620308, -2.9987788379702436, -0.002163356445957175, 1.0]", + "[28.4, 28.526903764108653, -2.9984768971594384, -0.0017382764863940977, 1.0]", + "[28.4, 27.88933496912245, -2.998874172800403, -0.0019944467607315493, 1.0]", + "[28.6, 28.726903733846612, -2.9985960998998284, -0.0016024189607830102, 1.0]", + "[28.6, 28.089334946131466, -2.99896199047214, -0.0018387106024618817, 1.0]", + "[28.799999999999997, 28.9269037081576, -2.9987058922861394, -0.001477185069856802, 1.0]", + "[28.799999999999997, 28.289334926612558, -2.999042884804529, -0.0016951263885233857, 1.0]", + "[29.0, 29.126903686350403, -2.9988070191172835, -0.0013617472818565804, 1.0]", + "[29.0, 28.489334910041485, -2.9991174025774745, -0.0015627509841644662, 1.0]", + "[29.2, 29.326903667838398, -2.9989001660060377, -0.0012553421005556788, 1.0]", + "[29.2, 28.68933489597322, -2.9991860472753444, -0.0014407137809973143, 1.0]", + "[29.4, 29.5269036521237, -2.9989859641136345, -0.0011572651661263256, 1.0]", + "[29.4, 28.889334884029978, -2.9992492825304136, -0.0013282112087170703, 1.0]", + "[29.6, 29.726903638783725, -2.999064994501577, -0.0010668667233655117, 1.0]", + "[29.6, 29.08933487389102, -2.9993075352904985, -0.0012245016502280678, 1.0]", + "[29.799999999999997, 29.9269036274598, -2.9991377921321516, -0.0009835474307369817, 1.0]", + "[29.799999999999997, 29.28933486528402, -2.999361273165346, -0.0011289007321442696, 1.0]", + "[30.0, 30.126903617864386, -2.999204849546421, -0.0009067544854657157, 1.0]" + ] + }, + "type": "reachtube", + "assert_hits": null +}, +"3": { + "node_name": "1-1", + "id": 3, + "start_line": 745, + "parent": { + "name": "0-0", + "index": 0, + "start_line": 2 + }, + "child": { + "2-1": { + "name": "2-1", + "index": 4, + "start_line": 890 + } + }, + "agent": { + "car1": "<class 'dryvr_plus_plus.example.example_agent.car_agent.CarAgent'>", + "car2": "<class 'dryvr_plus_plus.example.example_agent.car_agent.CarAgent'>" + }, + "init": { + "car1": "[[9.612897015045753, -0.002759923802261281, -0.0036364371585944077, 1.0], [10.487103292978597, 0.002759923802261281, 0.0036364371585944077, 1.0]]" + }, + "mode": { + "car1": "[\"SwitchLeft\", \"Lane1\"]", + "car2": "[\"Normal\", \"Lane1\"]" + }, + "static": { + "car1": "[]", + "car2": "[]" + }, + "start_time": 9.6, + "trace": { + "car2": [ + "[9.6, 14.800000000000068, 0.0, 0.0, 0.5]", + "[9.799999999999999, 14.90000000000007, 0.0, 0.0, 0.5]", + "[9.799999999999999, 14.90000000000007, 0.0, 0.0, 0.5]", + "[10.0, 15.000000000000071, 0.0, 0.0, 0.5]", + "[10.0, 15.000000000000071, 0.0, 0.0, 0.5]", + "[10.2, 15.100000000000072, 0.0, 0.0, 0.5]", + "[10.2, 15.100000000000072, 0.0, 0.0, 0.5]", + "[10.399999999999999, 15.200000000000074, 0.0, 0.0, 0.5]", + "[10.399999999999999, 15.200000000000074, 0.0, 0.0, 0.5]", + "[10.6, 15.300000000000075, 0.0, 0.0, 0.5]", + "[10.6, 15.300000000000075, 0.0, 0.0, 0.5]", + "[10.799999999999999, 15.400000000000077, 0.0, 0.0, 0.5]", + "[10.799999999999999, 15.400000000000077, 0.0, 0.0, 0.5]", + "[11.0, 15.500000000000078, 0.0, 0.0, 0.5]", + "[11.0, 15.500000000000078, 0.0, 0.0, 0.5]", + "[11.2, 15.60000000000008, 0.0, 0.0, 0.5]", + "[11.2, 15.60000000000008, 0.0, 0.0, 0.5]", + "[11.399999999999999, 15.700000000000081, 0.0, 0.0, 0.5]", + "[11.399999999999999, 15.700000000000081, 0.0, 0.0, 0.5]", + "[11.6, 15.800000000000082, 0.0, 0.0, 0.5]", + "[11.6, 15.800000000000082, 0.0, 0.0, 0.5]", + "[11.799999999999999, 15.900000000000084, 0.0, 0.0, 0.5]", + "[11.799999999999999, 15.900000000000084, 0.0, 0.0, 0.5]", + "[12.0, 16.000000000000085, 0.0, 0.0, 0.5]", + "[12.0, 16.000000000000085, 0.0, 0.0, 0.5]", + "[12.2, 16.100000000000083, 0.0, 0.0, 0.5]", + "[12.2, 16.100000000000083, 0.0, 0.0, 0.5]", + "[12.399999999999999, 16.20000000000008, 0.0, 0.0, 0.5]", + "[12.399999999999999, 16.20000000000008, 0.0, 0.0, 0.5]", + "[12.6, 16.30000000000008, 0.0, 0.0, 0.5]", + "[12.6, 16.30000000000008, 0.0, 0.0, 0.5]", + "[12.799999999999999, 16.400000000000077, 0.0, 0.0, 0.5]", + "[12.799999999999999, 16.400000000000077, 0.0, 0.0, 0.5]", + "[13.0, 16.500000000000075, 0.0, 0.0, 0.5]", + "[13.0, 16.500000000000075, 0.0, 0.0, 0.5]", + "[13.2, 16.600000000000072, 0.0, 0.0, 0.5]", + "[13.2, 16.600000000000072, 0.0, 0.0, 0.5]", + "[13.399999999999999, 16.70000000000007, 0.0, 0.0, 0.5]", + "[13.399999999999999, 16.70000000000007, 0.0, 0.0, 0.5]", + "[13.6, 16.800000000000068, 0.0, 0.0, 0.5]", + "[13.6, 16.800000000000068, 0.0, 0.0, 0.5]", + "[13.799999999999999, 16.900000000000066, 0.0, 0.0, 0.5]", + "[13.799999999999999, 16.900000000000066, 0.0, 0.0, 0.5]", + "[14.0, 17.000000000000064, 0.0, 0.0, 0.5]", + "[14.0, 17.000000000000064, 0.0, 0.0, 0.5]", + "[14.2, 17.100000000000062, 0.0, 0.0, 0.5]", + "[14.2, 17.100000000000062, 0.0, 0.0, 0.5]", + "[14.399999999999999, 17.20000000000006, 0.0, 0.0, 0.5]", + "[14.399999999999999, 17.20000000000006, 0.0, 0.0, 0.5]", + "[14.6, 17.300000000000058, 0.0, 0.0, 0.5]", + "[14.6, 17.300000000000058, 0.0, 0.0, 0.5]", + "[14.799999999999999, 17.400000000000055, 0.0, 0.0, 0.5]" + ], + "car1": [ + "[9.6, 9.612897015045753, -0.002759923802261281, -0.0036364371585944077, 1.0]", + "[9.799999999999999, 10.500686043697344, 0.12276844509501514, 0.06642305002646239, 1.0]", + "[9.799999999999999, 9.919440790681813, 0.11694360098416684, 0.06451808371079047, 1.0]", + "[10.0, 10.652440993969813, 0.25298438099828474, 0.13189361689508894, 1.0]", + "[10.0, 10.071443421253809, 0.2468701164395462, 0.1299886505794169, 1.0]", + "[10.2, 10.795351449501783, 0.3928497986801708, 0.19736418376371556, 1.0]", + "[10.2, 10.214619960473645, 0.3864629364151366, 0.19545921744804323, 1.0]", + "[10.4, 10.92880500252378, 0.5417654214714174, 0.26283475063234196, 1.0]", + "[10.4, 10.348356863544382, 0.5351239522511788, 0.2609297843166697, 1.0]", + "[10.6, 11.058243676252598, 0.6941884782651726, 0.3247903870005394, 1.0]", + "[10.6, 10.47756698000111, 0.6877402719812313, 0.3231967118748409, 1.0]", + "[10.799999999999999, 11.193173223661258, 0.8417848560522757, 0.37747065206010766, 1.0]", + "[10.799999999999999, 10.612267971650855, 0.835544781651636, 0.3761797056944335, 1.0]", + "[11.0, 11.333547609183553, 0.9842226672636945, 0.421271255789943, 1.0]", + "[11.0, 10.752416014563627, 0.9782048714948537, 0.42026858997782574, 1.0]", + "[11.2, 11.479268054303402, 1.1211942736952913, 0.4567281727715699, 1.0]", + "[11.2, 10.897914498240036, 1.1154118549092717, 0.4559953917644393, 1.0]", + "[11.4, 11.630185841412686, 1.2524233909589075, 0.4844629690083614, 1.0]", + "[11.4, 11.048616805853431, 1.2468880389106405, 0.48397926724015194, 1.0]", + "[11.6, 11.786105481460162, 1.3776728435242334, 0.505141243513349, 1.0]", + "[11.6, 11.20432943645299, 1.372394466806606, 0.5048845498190387, 1.0]", + "[11.8, 11.946788856780993, 1.4967522864541354, 0.5194428735036918, 1.0]", + "[11.8, 11.364816082994755, 1.4917386602610723, 0.5193906642954793, 1.0]", + "[12.0, 12.11196073181964, 1.6095251800667132, 0.5281715615290595, 1.0]", + "[12.0, 11.529803060383284, 1.6047816430317274, 0.5280416996547878, 1.0]", + "[12.2, 12.281316773862212, 1.7159132861592912, 0.5318821547129902, 1.0]", + "[12.2, 11.698987271728349, 1.7114425452609867, 0.5307205696214388, 1.0]", + "[12.4, 12.454529132926506, 1.815900864497301, 0.5318821547129902, 1.0]", + "[12.4, 11.872041764715785, 1.8117029212579427, 0.5260198039562493, 1.0]", + "[12.6, 12.6312565802726, 1.909534282828635, 0.531149599366378, 1.0]", + "[12.6, 12.048625766682834, 1.905606442595098, 0.518045524519667, 1.0]", + "[12.8, 12.811153827774305, 1.9969210685508603, 0.5265676723848592, 1.0]", + "[12.8, 12.22839404364652, 1.9932581024987017, 0.5073139720893481, 1.0]", + "[13.0, 12.99388127049561, 2.078221879568055, 0.5186931821823909, 1.0]", + "[13.0, 12.41100669100583, 2.074816303089621, 0.49430065862322425, 1.0]", + "[13.2, 13.17911168025324, 2.153644310990904, 0.5080436119721318, 1.0]", + "[13.2, 12.596135875159739, 2.150486729670863, 0.4794397663426583, 1.0]", + "[13.4, 13.366536234042655, 2.223434255956667, 0.4950958046934075, 1.0]", + "[13.4, 12.78347193034909, 2.2205137542589557, 0.46312419173776936, 1.0]", + "[13.6, 13.555868868392144, 2.2878667148121785, 0.48028533370411486, 1.0]", + "[13.6, 12.972727786886166, 2.2851712561088933, 0.4457061800569712, 1.0]", + "[13.8, 13.746849006410878, 2.34723673784002, 0.4640065185319486, 1.0]", + "[13.8, 13.16364176783287, 2.344753548565679, 0.4274984953643885, 1.0]", + "[14.0, 13.939242761590297, 2.4018510084977525, 0.44661303173135675, 1.0]", + "[14.0, 13.355978855251202, 2.3995669271055977, 0.4087760588516343, 1.0]", + "[14.2, 14.132842878649164, 2.4520204303856215, 0.4284190431061959, 1.0]", + "[14.2, 13.549530680124612, 2.4499222082602063, 0.3897779737004562, 1.0]", + "[14.399999999999999, 14.327467724553067, 2.4980539146088794, 0.40970083513305483, 1.0]", + "[14.399999999999999, 13.744114549356805, 2.4961284634747876, 0.37070984593668566, 1.0]", + "[14.6, 14.522959623013024, 2.5402534171258497, 0.39069880875893337, 1.0]", + "[14.6, 13.93957180406156, 2.5384880029391605, 0.3517463093906601, 1.0]", + "[14.8, 14.719182790739696, 2.5789101720291217, 0.3716197894334513, 1.0]" + ] + }, + "type": "reachtube", + "assert_hits": null +}, +"4": { + "node_name": "2-1", + "id": 4, + "start_line": 890, + "parent": { + "name": "1-1", + "index": 3, + "start_line": 745 + }, + "child": {}, + "agent": { + "car1": "<class 'dryvr_plus_plus.example.example_agent.car_agent.CarAgent'>", + "car2": "<class 'dryvr_plus_plus.example.example_agent.car_agent.CarAgent'>" + }, + "init": { + "car1": "[[13.744114549356805, 2.4961284634747876, 0.3517463093906601, 1.0], [14.719182790739696, 2.5789101720291217, 0.39069880875893337, 1.0]]" + }, + "mode": { + "car1": "[\"Normal\", \"Lane0\"]", + "car2": "[\"Normal\", \"Lane1\"]" + }, + "static": { + "car1": "[]", + "car2": "[]" + }, + "start_time": 14.4, + "trace": { + "car2": [ + "[14.399999999999999, 17.20000000000006, 0.0, 0.0, 0.5]", + "[14.6, 17.300000000000058, 0.0, 0.0, 0.5]", + "[14.6, 17.300000000000058, 0.0, 0.0, 0.5]", + "[14.799999999999999, 17.400000000000055, 0.0, 0.0, 0.5]", + "[14.799999999999999, 17.400000000000055, 0.0, 0.0, 0.5]", + "[15.0, 17.500000000000053, 0.0, 0.0, 0.5]", + "[15.0, 17.500000000000053, 0.0, 0.0, 0.5]", + "[15.2, 17.60000000000005, 0.0, 0.0, 0.5]", + "[15.2, 17.60000000000005, 0.0, 0.0, 0.5]", + "[15.399999999999999, 17.70000000000005, 0.0, 0.0, 0.5]", + "[15.399999999999999, 17.70000000000005, 0.0, 0.0, 0.5]", + "[15.6, 17.800000000000047, 0.0, 0.0, 0.5]", + "[15.6, 17.800000000000047, 0.0, 0.0, 0.5]", + "[15.799999999999999, 17.900000000000045, 0.0, 0.0, 0.5]", + "[15.799999999999999, 17.900000000000045, 0.0, 0.0, 0.5]", + "[16.0, 18.000000000000043, 0.0, 0.0, 0.5]", + "[16.0, 18.000000000000043, 0.0, 0.0, 0.5]", + "[16.2, 18.10000000000004, 0.0, 0.0, 0.5]", + "[16.2, 18.10000000000004, 0.0, 0.0, 0.5]", + "[16.4, 18.20000000000004, 0.0, 0.0, 0.5]", + "[16.4, 18.20000000000004, 0.0, 0.0, 0.5]", + "[16.599999999999998, 18.300000000000036, 0.0, 0.0, 0.5]", + "[16.599999999999998, 18.300000000000036, 0.0, 0.0, 0.5]", + "[16.8, 18.400000000000034, 0.0, 0.0, 0.5]", + "[16.8, 18.400000000000034, 0.0, 0.0, 0.5]", + "[17.0, 18.500000000000032, 0.0, 0.0, 0.5]", + "[17.0, 18.500000000000032, 0.0, 0.0, 0.5]", + "[17.2, 18.60000000000003, 0.0, 0.0, 0.5]", + "[17.2, 18.60000000000003, 0.0, 0.0, 0.5]", + "[17.4, 18.700000000000028, 0.0, 0.0, 0.5]", + "[17.4, 18.700000000000028, 0.0, 0.0, 0.5]", + "[17.599999999999998, 18.800000000000026, 0.0, 0.0, 0.5]", + "[17.599999999999998, 18.800000000000026, 0.0, 0.0, 0.5]", + "[17.8, 18.900000000000023, 0.0, 0.0, 0.5]", + "[17.8, 18.900000000000023, 0.0, 0.0, 0.5]", + "[18.0, 19.00000000000002, 0.0, 0.0, 0.5]", + "[18.0, 19.00000000000002, 0.0, 0.0, 0.5]", + "[18.2, 19.10000000000002, 0.0, 0.0, 0.5]", + "[18.2, 19.10000000000002, 0.0, 0.0, 0.5]", + "[18.4, 19.200000000000017, 0.0, 0.0, 0.5]", + "[18.4, 19.200000000000017, 0.0, 0.0, 0.5]", + "[18.599999999999998, 19.300000000000015, 0.0, 0.0, 0.5]", + "[18.599999999999998, 19.300000000000015, 0.0, 0.0, 0.5]", + "[18.8, 19.400000000000013, 0.0, 0.0, 0.5]", + "[18.8, 19.400000000000013, 0.0, 0.0, 0.5]", + "[19.0, 19.50000000000001, 0.0, 0.0, 0.5]", + "[19.0, 19.50000000000001, 0.0, 0.0, 0.5]", + "[19.2, 19.60000000000001, 0.0, 0.0, 0.5]", + "[19.2, 19.60000000000001, 0.0, 0.0, 0.5]", + "[19.4, 19.700000000000006, 0.0, 0.0, 0.5]", + "[19.4, 19.700000000000006, 0.0, 0.0, 0.5]", + "[19.599999999999998, 19.800000000000004, 0.0, 0.0, 0.5]", + "[19.599999999999998, 19.800000000000004, 0.0, 0.0, 0.5]", + "[19.8, 19.900000000000002, 0.0, 0.0, 0.5]", + "[19.8, 19.900000000000002, 0.0, 0.0, 0.5]", + "[20.0, 20.0, 0.0, 0.0, 0.5]", + "[20.0, 20.0, 0.0, 0.0, 0.5]", + "[20.2, 20.099999999999998, 0.0, 0.0, 0.5]", + "[20.2, 20.099999999999998, 0.0, 0.0, 0.5]", + "[20.4, 20.199999999999996, 0.0, 0.0, 0.5]", + "[20.4, 20.199999999999996, 0.0, 0.0, 0.5]", + "[20.599999999999998, 20.299999999999994, 0.0, 0.0, 0.5]", + "[20.599999999999998, 20.299999999999994, 0.0, 0.0, 0.5]", + "[20.8, 20.39999999999999, 0.0, 0.0, 0.5]", + "[20.8, 20.39999999999999, 0.0, 0.0, 0.5]", + "[21.0, 20.49999999999999, 0.0, 0.0, 0.5]", + "[21.0, 20.49999999999999, 0.0, 0.0, 0.5]", + "[21.2, 20.599999999999987, 0.0, 0.0, 0.5]", + "[21.2, 20.599999999999987, 0.0, 0.0, 0.5]", + "[21.4, 20.699999999999985, 0.0, 0.0, 0.5]", + "[21.4, 20.699999999999985, 0.0, 0.0, 0.5]", + "[21.599999999999998, 20.799999999999983, 0.0, 0.0, 0.5]", + "[21.599999999999998, 20.799999999999983, 0.0, 0.0, 0.5]", + "[21.8, 20.89999999999998, 0.0, 0.0, 0.5]", + "[21.8, 20.89999999999998, 0.0, 0.0, 0.5]", + "[22.0, 20.99999999999998, 0.0, 0.0, 0.5]", + "[22.0, 20.99999999999998, 0.0, 0.0, 0.5]", + "[22.2, 21.099999999999977, 0.0, 0.0, 0.5]", + "[22.2, 21.099999999999977, 0.0, 0.0, 0.5]", + "[22.4, 21.199999999999974, 0.0, 0.0, 0.5]", + "[22.4, 21.199999999999974, 0.0, 0.0, 0.5]", + "[22.599999999999998, 21.299999999999972, 0.0, 0.0, 0.5]", + "[22.599999999999998, 21.299999999999972, 0.0, 0.0, 0.5]", + "[22.8, 21.39999999999997, 0.0, 0.0, 0.5]", + "[22.8, 21.39999999999997, 0.0, 0.0, 0.5]", + "[23.0, 21.499999999999968, 0.0, 0.0, 0.5]", + "[23.0, 21.499999999999968, 0.0, 0.0, 0.5]", + "[23.2, 21.599999999999966, 0.0, 0.0, 0.5]", + "[23.2, 21.599999999999966, 0.0, 0.0, 0.5]", + "[23.4, 21.699999999999964, 0.0, 0.0, 0.5]", + "[23.4, 21.699999999999964, 0.0, 0.0, 0.5]", + "[23.599999999999998, 21.79999999999996, 0.0, 0.0, 0.5]", + "[23.599999999999998, 21.79999999999996, 0.0, 0.0, 0.5]", + "[23.8, 21.89999999999996, 0.0, 0.0, 0.5]", + "[23.8, 21.89999999999996, 0.0, 0.0, 0.5]", + "[24.0, 21.999999999999957, 0.0, 0.0, 0.5]", + "[24.0, 21.999999999999957, 0.0, 0.0, 0.5]", + "[24.2, 22.099999999999955, 0.0, 0.0, 0.5]", + "[24.2, 22.099999999999955, 0.0, 0.0, 0.5]", + "[24.4, 22.199999999999953, 0.0, 0.0, 0.5]", + "[24.4, 22.199999999999953, 0.0, 0.0, 0.5]", + "[24.599999999999998, 22.29999999999995, 0.0, 0.0, 0.5]", + "[24.599999999999998, 22.29999999999995, 0.0, 0.0, 0.5]", + "[24.8, 22.39999999999995, 0.0, 0.0, 0.5]", + "[24.8, 22.39999999999995, 0.0, 0.0, 0.5]", + "[25.0, 22.499999999999947, 0.0, 0.0, 0.5]", + "[25.0, 22.499999999999947, 0.0, 0.0, 0.5]", + "[25.2, 22.599999999999945, 0.0, 0.0, 0.5]", + "[25.2, 22.599999999999945, 0.0, 0.0, 0.5]", + "[25.4, 22.699999999999942, 0.0, 0.0, 0.5]", + "[25.4, 22.699999999999942, 0.0, 0.0, 0.5]", + "[25.599999999999998, 22.79999999999994, 0.0, 0.0, 0.5]", + "[25.599999999999998, 22.79999999999994, 0.0, 0.0, 0.5]", + "[25.8, 22.899999999999938, 0.0, 0.0, 0.5]", + "[25.8, 22.899999999999938, 0.0, 0.0, 0.5]", + "[26.0, 22.999999999999936, 0.0, 0.0, 0.5]", + "[26.0, 22.999999999999936, 0.0, 0.0, 0.5]", + "[26.2, 23.099999999999934, 0.0, 0.0, 0.5]", + "[26.2, 23.099999999999934, 0.0, 0.0, 0.5]", + "[26.4, 23.199999999999932, 0.0, 0.0, 0.5]", + "[26.4, 23.199999999999932, 0.0, 0.0, 0.5]", + "[26.599999999999998, 23.29999999999993, 0.0, 0.0, 0.5]", + "[26.599999999999998, 23.29999999999993, 0.0, 0.0, 0.5]", + "[26.8, 23.399999999999928, 0.0, 0.0, 0.5]", + "[26.8, 23.399999999999928, 0.0, 0.0, 0.5]", + "[27.0, 23.499999999999925, 0.0, 0.0, 0.5]", + "[27.0, 23.499999999999925, 0.0, 0.0, 0.5]", + "[27.2, 23.599999999999923, 0.0, 0.0, 0.5]", + "[27.2, 23.599999999999923, 0.0, 0.0, 0.5]", + "[27.4, 23.69999999999992, 0.0, 0.0, 0.5]", + "[27.4, 23.69999999999992, 0.0, 0.0, 0.5]", + "[27.599999999999998, 23.79999999999992, 0.0, 0.0, 0.5]", + "[27.599999999999998, 23.79999999999992, 0.0, 0.0, 0.5]", + "[27.8, 23.899999999999917, 0.0, 0.0, 0.5]", + "[27.8, 23.899999999999917, 0.0, 0.0, 0.5]", + "[28.0, 23.999999999999915, 0.0, 0.0, 0.5]", + "[28.0, 23.999999999999915, 0.0, 0.0, 0.5]", + "[28.2, 24.099999999999913, 0.0, 0.0, 0.5]", + "[28.2, 24.099999999999913, 0.0, 0.0, 0.5]", + "[28.4, 24.19999999999991, 0.0, 0.0, 0.5]", + "[28.4, 24.19999999999991, 0.0, 0.0, 0.5]", + "[28.599999999999998, 24.29999999999991, 0.0, 0.0, 0.5]", + "[28.599999999999998, 24.29999999999991, 0.0, 0.0, 0.5]", + "[28.8, 24.399999999999906, 0.0, 0.0, 0.5]", + "[28.8, 24.399999999999906, 0.0, 0.0, 0.5]", + "[29.0, 24.499999999999904, 0.0, 0.0, 0.5]", + "[29.0, 24.499999999999904, 0.0, 0.0, 0.5]", + "[29.2, 24.599999999999902, 0.0, 0.0, 0.5]", + "[29.2, 24.599999999999902, 0.0, 0.0, 0.5]", + "[29.4, 24.6999999999999, 0.0, 0.0, 0.5]", + "[29.4, 24.6999999999999, 0.0, 0.0, 0.5]", + "[29.599999999999998, 24.799999999999898, 0.0, 0.0, 0.5]", + "[29.599999999999998, 24.799999999999898, 0.0, 0.0, 0.5]", + "[29.8, 24.899999999999896, 0.0, 0.0, 0.5]", + "[29.8, 24.899999999999896, 0.0, 0.0, 0.5]", + "[30.0, 24.999999999999893, 0.0, 0.0, 0.5]" + ], + "car1": [ + "[14.4, 13.744114549356805, 2.4961284634747876, 0.34981778617281034, 1.0]", + "[14.6, 14.752875238020378, 2.6140659679874085, 0.39069880875893337, 1.0]", + "[14.6, 14.1027740609058, 2.5387637648135017, 0.3332860625831092, 1.0]", + "[14.8, 14.950315392650483, 2.6462623379104744, 0.3548505637734657, 1.0]", + "[14.8, 14.298931567917341, 2.577788645226731, 0.31403839691987806, 1.0]", + "[15.0, 15.148170316450264, 2.6757406869214155, 0.3340688134666836, 1.0]", + "[15.0, 14.495720017818032, 2.6134896009029123, 0.2948032266354583, 1.0]", + "[15.200000000000001, 15.346372963804205, 2.702726110659364, 0.3167133749898144, 1.0]", + "[15.200000000000001, 14.69303710274023, 2.64613709318987, 0.2763932828463469, 1.0]", + "[15.4, 15.54486689416605, 2.7274274964096494, 0.3002562376222597, 1.0]", + "[15.4, 14.890796400688908, 2.6759845598801877, 0.25882641611267004, 1.0]", + "[15.6, 15.743604701777047, 2.7500379410903415, 0.2840436556220277, 1.0]", + "[15.6, 15.088925178531069, 2.703268047325742, 0.24211004797095778, 1.0]", + "[15.8, 15.942546647157142, 2.770735387867964, 0.2681802894267034, 1.0]", + "[15.8, 15.287362403023481, 2.728206314371787, 0.22624275046258327, 1.0]", + "[16.0, 16.141659447728255, 2.7896834020110277, 0.2527494213129289, 1.0]", + "[16.0, 15.486056979174329, 2.751001281066912, 0.21121569284257066, 1.0]", + "[16.2, 16.34091525219094, 2.8070320324133826, 0.23781570407214744, 1.0]", + "[16.2, 15.684966208619217, 2.7718387165788654, 0.19701394974498657, 1.0]", + "[16.4, 16.540290767506704, 2.822918712441255, 0.2234276815171715, 1.0]", + "[16.4, 15.884054457416376, 2.7908890830605593, 0.1836176702882559, 1.0]", + "[16.6, 16.739766519358085, 2.837469167564022, 0.2096200782838227, 1.0]", + "[16.6, 16.083292015536692, 2.8083084708030777, 0.17100311155346143, 1.0]", + "[16.8, 16.93932622833776, 2.850798306703081, 0.19641586235562516, 1.0]", + "[16.8, 16.282654127656375, 2.8242395759016423, 0.15914354276299986, 1.0]", + "[17.0, 17.138956285502516, 2.8630110815240273, 0.18382808822484298, 1.0]", + "[17.0, 16.48212017433662, 2.83881268466433, 0.1480100284680733, 1.0]", + "[17.2, 17.338645312595762, 2.8742033034539873, 0.17186153183283004, 1.0]", + "[17.2, 16.681672983450763, 2.852146639354745, 0.13757210027407438, 1.0]", + "[17.4, 17.53838379398948, 2.8844624123646576, 0.16051413061752048, 1.0]", + "[17.4, 16.88129825323835, 2.864349767933296, 0.12779832724409432, 1.0]", + "[17.6, 17.73816376909606, 2.8938681939154622, 0.14977824332505776, 1.0]", + "[17.6, 17.080984070247908, 2.8755207666261264, 0.11865679526191278, 1.0]", + "[17.8, 17.937978575582527, 2.9024934447455544, 0.13964174488416128, 1.0]", + "[17.8, 17.2807205074241, 2.885749528765914, 0.11011550542911772, 1.0]", + "[18.0, 18.137822635146254, 2.910404586239107, 0.13008897174386877, 1.0]", + "[18.0, 17.48049928954811, 2.895117916733759, 0.10214270111929333, 1.0]", + "[18.2, 18.337691274873745, 2.917662228625725, 0.12110153276633531, 1.0]", + "[18.2, 17.680313515060572, 2.9037004762576433, 0.09470713269927078, 1.0]", + "[18.4, 18.537580578301224, 2.924321687843951, 0.11265900015628011, 1.0]", + "[18.4, 17.880157424941572, 2.9115650940134485, 0.08777826821917177, 1.0]", + "[18.6, 18.73748726124037, 2.930433457988643, 0.1047394940894836, 1.0]", + "[18.6, 18.0800262107748, 2.9187736006093314, 0.08132645761982056, 1.0]", + "[18.8, 18.937408568236727, 2.9360436423585616, 0.09732017374995668, 1.0]", + "[18.8, 18.279915855384814, 2.925382321754916, 0.07532305724522348, 1.0]", + "[19.0, 19.137342186210464, 2.9411943461759535, 0.09037764645943412, 1.0]", + "[19.0, 18.479823000518483, 2.931442580834107, 0.06974052070565598, 1.0]", + "[19.2, 19.337285926266368, 2.9459284595939357, 0.08388830553076793, 1.0]", + "[19.2, 18.679744865275943, 2.9370006472079746, 0.06455223424353823, 1.0]", + "[19.4, 19.537238550425435, 2.950273824736654, 0.07782860643412223, 1.0]", + "[19.4, 18.879678930115155, 2.942102195367346, 0.05973318378593309, 1.0]", + "[19.6, 19.737198541222757, 2.954265310479381, 0.07217531599161289, 1.0]", + "[19.6, 19.079623370417632, 2.9467834189319073, 0.055259412971571595, 1.0]", + "[19.8, 19.937164744305495, 2.957932307742933, 0.06690550553538155, 1.0]", + "[19.8, 19.27957653534654, 2.9510798243416394, 0.051108184695665665, 1.0]", + "[20.0, 20.137136188172427, 2.9613016982245575, 0.06199700187185968, 1.0]", + "[20.0, 19.479537040486683, 2.955023816821861, 0.04725797181043115, 1.0]", + "[20.2, 20.33711205481485, 2.9643980761385174, 0.0574283360443551, 1.0]", + "[20.2, 19.67950372412609, 2.958644981907312, 0.04368843740108568, 1.0]", + "[20.4, 20.537091655144852, 2.967243949672806, 0.053178822178648014, 1.0]", + "[20.4, 19.87947561084024, 2.9619703405657827, 0.0403804068575788, 1.0]", + "[20.6, 20.737074408417158, 2.969859924046676, 0.04922861310542218, 1.0]", + "[20.6, 20.07945188113836, 2.965024580395319, 0.0373158336224683, 1.0]", + "[20.8, 20.93705982498535, 2.972264867887354, 0.04555873666107423, 1.0]", + "[20.8, 20.27943184614418, 2.9678302651609636, 0.03447776019876648, 1.0]", + "[21.0, 21.13704749184314, 2.9744760644887953, 0.04215111603062963, 1.0]", + "[21.0, 20.479414926461175, 2.9704080247377305, 0.031850275744042957, 1.0]", + "[21.2, 21.337037060493405, 2.976509349370976, 0.038988577020894345, 1.0]", + "[21.2, 20.679400634517624, 2.9727767273386196, 0.029418471354476554, 1.0]", + "[21.4, 21.537028236764495, 2.9783792354253937, 0.0360548447335804, 1.0]", + "[21.4, 20.879388559807918, 2.974953635731295, 0.027168393950976137, 1.0]", + "[21.6, 21.737020772255754, 2.9800990268106453, 0.03333453174179552, 1.0]", + "[21.6, 21.079378356546115, 2.97695454898519, 0.025086999515290236, 1.0]", + "[21.8, 21.937014457148017, 2.9816809226509178, 0.030813119553860173, 1.0]", + "[21.8, 21.27936973333002, 2.9787939311422575, 0.02316210628383695, 1.0]", + "[22.0, 22.137009114157493, 2.9831361114892667, 0.02847693487097248, 1.0]", + "[22.0, 21.479362444482426, 2.980485028068915, 0.021382348387761756, 1.0]", + "[22.2, 22.33700459344878, 2.984474857355969, 0.026313121905123027, 1.0]", + "[22.2, 21.679356282792373, 2.9820399736234036, 0.019737130326739443, 1.0]", + "[22.4, 22.537000768352303, 2.985706578229386, 0.024309611816546894, 1.0]", + "[22.4, 21.879351073426033, 2.9834698861610396, 0.01821658257883212, 1.0]", + "[22.6, 22.73699753175751, 2.986839917591865, 0.02245509015192333, 1.0]", + "[22.6, 22.07934666881541, 2.984784956298735, 0.016811518577143574, 1.0]", + "[22.799999999999997, 22.93699479307342, 2.9878828097156145, 0.020738963011900164, 1.0]", + "[22.799999999999997, 22.279342944365165, 2.9859945267690566, 0.0155133932241655, 1.0]", + "[23.0, 23.136992475666254, 2.988842539252504, 0.019151322546098873, 1.0]", + "[23.0, 22.479339794844428, 2.9871071651119, 0.014314263064928286, 1.0]", + "[23.2, 23.33699051469825, 2.9897257956467933, 0.017682912262656343, 1.0]", + "[23.2, 22.67933713135249, 2.9881307298779896, 0.013206748198892957, 1.0]", + "[23.4, 23.5369888553041, 2.9905387228402027, 0.016325092545023644, 1.0]", + "[23.4, 22.87933487876575, 2.9890724309519197, 0.012183995976687633, 1.0]", + "[23.6, 23.736987451051544, 2.991286964694205, 0.015069806688899711, 1.0]", + "[23.6, 23.079332973588347, 2.98993888454273, 0.011239646500198349, 1.0]", + "[23.799999999999997, 23.93698626264148, 2.991975706514072, 0.013909547704844715, 1.0]", + "[23.799999999999997, 23.27933136214175, 2.9907361633363507, 0.010367799922232792, 1.0]", + "[24.0, 24.136985256809854, 2.992609713023102, 0.01283732607554589, 1.0]", + "[24.0, 23.47932999903905, 2.991469842256014, 0.009562985524153418, 1.0]", + "[24.2, 24.336984405399622, 2.9931933631026784, 0.011846638609375881, 1.0]", + "[24.2, 23.67932884589864, 2.9921450402334617, 0.008820132535833382, 1.0]", + "[24.4, 24.5369836845763, 2.9937306815844043, 0.010931438492466267, 1.0]", + "[24.4, 23.879327870259225, 2.992766458354823, 0.008134542651411926, 1.0]", + "[24.6, 24.736983074164563, 2.994225368354013, 0.010086106608862073, 1.0]", + "[24.6, 24.079327044664197, 2.9933384147100943, 0.007501864186097102, 1.0]", + "[24.799999999999997, 24.936982557087212, 2.9946808250027273, 0.009305424171431969, 1.0]", + "[24.799999999999997, 24.279326345888684, 2.993864876243709, 0.006918067813246297, 1.0]", + "[25.0, 25.13698211889038, 2.9951001792401075, 0.008584546684220767, 1.0]", + "[25.0, 24.479325754286805, 2.9943494878754007, 0.0063794238167657995, 1.0]", + "[25.2, 25.336981747341763, 2.995486307262954, 0.0079189792390996, 1.0]", + "[25.2, 24.67932525324017, 2.994795599135124, 0.00588248079118645, 1.0]", + "[25.4, 25.53698143212123, 2.9958418542570433, 0.007304553135257474, 1.0]", + "[25.4, 24.879324828688276, 2.9952062885329065, 0.005424045720327638, 1.0]", + "[25.6, 25.736981164765222, 2.996169253192722, 0.0067374037987321285, 1.0]", + "[25.6, 25.079324468769077, 2.995584385863892, 0.005001165365010094, 1.0]", + "[25.799999999999997, 25.936980938006236, 2.996470742059983, 0.006213949970327077, 1.0]", + "[25.799999999999997, 25.279324163615804, 2.99593249263023, 0.0046111088906816205, 1.0]", + "[26.0, 26.136980745672773, 2.9967483796775616, 0.005730874123498178, 1.0]", + "[26.0, 25.479323904880538, 2.9962530007443338, 0.004251351666758841, 1.0]", + "[26.2, 26.33698058253246, 2.997004060196719, 0.005285104068774723, 1.0]", + "[26.2, 25.679323685490598, 2.9965481096637774, 0.003919560171041361, 1.0]", + "[26.4, 26.53698044414866, 2.997239526410538, 0.004873795697728087, 1.0]", + "[26.4, 25.879323499453, 2.996819842093668, 0.003613577934443708, 1.0]", + "[26.6, 26.736980326759262, 2.9974563819697018, 0.0044943168170974886, 1.0]", + "[26.6, 26.079323341688987, 2.9970700583801797, 0.00333141246347586, 1.0]", + "[26.799999999999997, 26.93698022717389, 2.9976561025968373, 0.004144232022305695, 1.0]", + "[26.799999999999997, 26.279323207894123, 2.9973004697078367, 0.003071223080300614, 1.0]", + "[27.0, 27.136980142686895, 2.9978400463834984, 0.0038212885590079796, 1.0]", + "[27.0, 26.47932309441987, 2.997512650202981, 0.00283130962273465, 1.0]", + "[27.2, 27.33698007100359, 2.9980094632465417, 0.0035234031213737674, 1.0]", + "[27.2, 26.679322998173365, 2.9977080480367406, 0.002610101949188338, 1.0]", + "[27.4, 27.53698001017778, 2.998165503614038, 0.003248649536375485, 1.0]", + "[27.4, 26.879322916532622, 2.997887995612525, 0.002406150196209186, 1.0]", + "[27.6, 27.736979958558734, 2.9983092264047846, 0.0029952472843420837, 1.0]", + "[27.6, 27.07932284727469, 2.9980537189155525, 0.002218115738973403, 1.0]", + "[27.799999999999997, 27.93697991474643, 2.9984416063600134, 0.0027615508073341975, 1.0]", + "[27.799999999999997, 27.27932278851481, 2.998206346095122, 0.0020447628077250534, 1.0]", + "[28.0, 28.136979877553365, 2.998563540780899, 0.002546039558438331, 1.0]", + "[28.0, 27.47932273865493, 2.9983469153441185, 0.0018849507157737899, 1.0]", + "[28.2, 28.336979845973126, 2.9986758557208852, 0.0023473087467936926, 1.0]", + "[28.2, 27.67932269633993, 2.998476382134673, 0.0017376266572093116, 1.0]", + "[28.4, 28.536979819161285, 2.998779311677695, 0.002164060735005491, 1.0]", + "[28.4, 27.87932266042144, 2.998595625863752, 0.0016018190349635015, 1.0]", + "[28.6, 28.73697979639823, 2.998874608826124, 0.001995097047518243, 1.0]", + "[28.6, 28.079322629931447, 2.9987054559578294, 0.0014766312822341318, 1.0]", + "[28.799999999999997, 28.93697977707261, 2.998962391829221, 0.0018393109504866807, 1.0]", + "[28.799999999999997, 28.27932260404914, 2.9988066174815744, 0.0013612361425752366, 1.0]", + "[29.0, 29.13697976066549, 2.999043254262377, 0.0016956805656610538, 1.0]", + "[29.0, 28.479322582077984, 2.998899796291618, 0.0012548703761480985, 1.0]", + "[29.2, 29.33697974673632, 2.9991177426818343, 0.0015632624827742515, 1.0]", + "[29.2, 28.67932256342688, 2.998985623773004, 0.001156829861719471, 1.0]", + "[29.4, 29.53697973491108, 2.9991863603666484, 0.0014411858368623528, 1.0]", + "[29.4, 28.879322547594178, 2.999064681192692, 0.0010664650659762335, 1.0]", + "[29.6, 29.73697972487223, 2.9992495707605853, 0.0013286468188515967, 1.0]", + "[29.6, 29.07932253415409, 2.999137503701605, 0.000983176853611386, 1.0]", + "[29.799999999999997, 29.93697971635017, 2.999307800638341, 0.0012249035895945792, 1.0]", + "[29.799999999999997, 29.279322522745222, 2.9992045840140418, 0.0009064126134161133, 1.0]", + "[30.0, 30.13697970911004, 2.999361461955754, 0.0011292715693261251, 1.0]" + ] + }, + "type": "reachtube", + "assert_hits": null +} +} \ No newline at end of file diff --git a/demo/quadrotor/output.json b/demo/quadrotor/output.json index 6e6b55dd80d2d2367a65fca5818a8778a30bc110..c03cb1f1a86a9582ac4de66e28aa544398ac8826 100644 --- a/demo/quadrotor/output.json +++ b/demo/quadrotor/output.json @@ -8,14 +8,14 @@ "1-0": { "name": "1-0", "index": 1, - "start_line": 346 + "start_line": 345 } }, "agent": { "test": "<class 'dryvr_plus_plus.example.example_agent.quadrotor_agent.QuadrotorAgent'>" }, "init": { - "test": "[2.9067832836301606, -0.09921741595708788, -0.027174949595953485, 0.02279669595037498, 0.02341088215692947, 0.01180897064283517, 0, 0.0]" + "test": "[2.991558736111579, -0.07835016954347276, -0.09073820491240625, 0.03775253424498685, 0.0923077274644122, 0.03812121609123423, 0, 0.0]" }, "mode": { "test": "[\"Follow_Waypoint\"]" @@ -26,318 +26,317 @@ "start_time": 0, "trace": { "test": [ - "[0.0, 2.9067832836301606, -0.09921741595708788, -0.027174949595953485, 0.02279669595037498, 0.02341088215692947, 0.01180897064283517, 0.0, 0.0]", - "[0.05, 2.909153494324061, -0.09681649595286031, -0.024084456402001464, 0.07201085260828849, 0.072625038814843, 0.11180897064283524, 0.0, 0.0]", - "[0.1, 2.913984410381809, -0.09195487058478463, -0.015993968224995242, 0.121225009266202, 0.12183919547275651, 0.21180897064283533, 0.0, 0.0]", - "[0.15000000000000002, 2.9212760277678367, -0.08463254388842968, -0.002903493264951096, 0.1704391659241154, 0.1710533521306699, 0.3118089706428352, 0.0, 0.0]", - "[0.2, 2.9310283423505807, -0.07484951999535866, 0.010186950451320878, 0.21965332258202894, 0.22026750878858345, 0.21180897064283505, 0.0, 0.0]", - "[0.25, 2.9432413706921623, -0.06506650676840911, 0.018277382126459782, 0.2688674792399424, 0.17105335213066997, 0.11180897064283496, 0.0, 0.0]", - "[0.3, 2.9579151133474277, -0.05774420785514404, 0.02636786068415023, 0.318081635897856, 0.12183919547275648, 0.211808970642835, 0.0, 0.0]", - "[0.35, 2.975049570055167, -0.05288262299435229, 0.034458266552961525, 0.36729579255576944, 0.072625038814843, 0.1118089706428349, 0.0, 0.0]", - "[0.39999999999999997, 2.9946447403787726, -0.048020990357792954, 0.04254876949905885, 0.41650994921368295, 0.12183919547275653, 0.21180897064283488, 0.0, 0.0]", - "[0.44999999999999996, 3.016700623586445, -0.043159416331142786, 0.05063915335359158, 0.4657241058715964, 0.07262503881484303, 0.1118089706428348, 0.0, 0.0]", - "[0.49999999999999994, 3.0387564391740542, -0.040758554096371205, 0.05372952916372574, 0.4165099492136829, 0.023410882156929526, 0.011808970642834732, 0.0, 0.0]", - "[0.5499999999999999, 3.0583515459319597, -0.038357619285746235, 0.056820052443324595, 0.36729579255576933, 0.07262503881484303, 0.11180897064283474, 0.0, 0.0]", - "[0.6, 3.07548594417184, -0.035956758732912035, 0.059910424835870224, 0.31808163589785593, 0.02341088215692951, 0.011808970642834666, 0.0, 0.0]", - "[0.65, 3.0901596342420192, -0.03355582290035244, 0.06300095019197452, 0.2688674792399424, 0.072625038814843, 0.11180897064283467, 0.0, 0.0]", - "[0.7000000000000001, 3.1023726165239154, -0.031154962639711646, 0.06609132199080192, 0.21965332258202896, 0.023410882156929477, 0.011808970642834603, 0.0, 0.0]", - "[0.7500000000000001, 3.1121248914261765, -0.031214809758704918, 0.06918184633525955, 0.17043916592411545, -0.02580327450098403, 0.11180897064283463, 0.0, 0.0]", - "[0.8000000000000002, 3.1218772417939906, -0.03127458141214588, 0.07227221733857012, 0.21965332258202894, 0.023410882156929474, 0.01180897064283458, 0.0, 0.0]", - "[0.8500000000000002, 3.131629515058743, -0.03133443016864855, 0.07036258673108224, 0.17043916592411545, -0.025803274500984026, -0.08819102935716548, 0.0, 0.0]", - "[0.9000000000000002, 3.1389210809089763, -0.03139420144772509, 0.06845311355273953, 0.12122500926620193, 0.023410882156929474, 0.011808970642834496, 0.0, 0.0]", - "[0.9500000000000003, 3.1462127233757258, -0.031454049343317726, 0.0715436394751971, 0.1704391659241154, -0.025803274500984033, 0.11180897064283449, 0.0, 0.0]", - "[1.0000000000000002, 3.153504288856331, -0.0315138202527668, 0.07463400896676405, 0.12122500926620192, 0.02341088215692947, 0.011808970642834413, 0.0, 0.0]", - "[1.0500000000000003, 3.1607959328981683, -0.03157366972344718, 0.07272437690811302, 0.17043916592411543, -0.025803274500984026, -0.08819102935716563, 0.0, 0.0]", - "[1.1000000000000003, 3.1680874980138705, -0.03163344026799272, 0.07081490522229004, 0.12122500926620192, 0.023410882156929484, 0.011808970642834371, 0.0, 0.0]", - "[1.1500000000000004, 3.1753791412366676, -0.03169328891963262, 0.073905432680987, 0.1704391659241154, -0.025803274500984026, 0.11180897064283438, 0.0, 0.0]", - "[1.2000000000000004, 3.182670705991885, -0.03175305910369359, 0.07699580069861198, 0.12122500926620189, 0.02341088215692948, 0.011808970642834316, 0.0, 0.0]", - "[1.2500000000000004, 3.187501562179311, -0.03181290927173056, 0.07508616722297716, 0.07201085260828839, -0.02580327450098402, -0.08819102935716573, 0.0, 0.0]", - "[1.3000000000000005, 3.192332498706779, -0.031872679099726, 0.07317669699313785, 0.12122500926620189, 0.023410882156929484, 0.011808970642834288, 0.0, 0.0]", - "[1.3500000000000005, 3.19716335567376, -0.03193252848820854, 0.0712670651015075, 0.07201085260828839, -0.025803274500984005, -0.08819102935716573, 0.0, 0.0]", - "[1.4000000000000006, 3.2019942913769106, -0.031992299140520854, 0.06935759319670935, 0.12122500926620189, 0.023410882156929498, 0.011808970642834274, 0.0, 0.0]", - "[1.4500000000000006, 3.2068251492150135, -0.032052147657881655, 0.07244812038255981, 0.07201085260828836, -0.025803274500983995, 0.1118089706428343, 0.0, 0.0]", - "[1.5000000000000007, 3.2116560852900826, -0.03211191793827546, 0.07553848859592695, 0.12122500926620187, 0.023410882156929498, 0.011808970642834246, 0.0, 0.0]", - "[1.5500000000000007, 3.216486941538174, -0.03217176804564715, 0.07362885524356005, 0.07201085260828838, -0.02580327450098401, -0.08819102935716581, 0.0, 0.0]", - "[1.6000000000000008, 3.221317877980454, -0.032231537958830096, 0.07171938484062522, 0.12122500926620186, 0.023410882156929495, 0.01180897064283419, 0.0, 0.0]", - "[1.6500000000000008, 3.226148735058058, -0.03229138723668939, 0.06980975317377416, 0.07201085260828836, -0.025803274500984002, -0.08819102935716586, 0.0, 0.0]", - "[1.7000000000000008, 3.2309796706242135, -0.032351158025997036, 0.06790028099061028, 0.12122500926620186, 0.023410882156929498, 0.011808970642834135, 0.0, 0.0]", - "[1.7500000000000009, 3.2358105286266228, -0.03241100637905196, 0.07099080784260176, 0.07201085260828836, -0.02580327450098401, 0.11180897064283413, 0.0, 0.0]", - "[1.800000000000001, 3.2406414645766244, -0.032470776784513926, 0.07408117631009932, 0.12122500926620192, 0.023410882156929495, 0.011808970642834073, 0.0, 0.0]", - "[1.850000000000001, 3.2454723209128415, -0.03253062680376091, 0.07217154313679616, 0.0720108526082884, -0.025803274500984005, -0.08819102935716598, 0.0, 0.0]", - "[1.900000000000001, 3.2503032572416837, -0.03259039683038224, 0.07026207250336183, 0.12122500926620187, 0.023410882156929498, 0.011808970642834024, 0.0, 0.0]", - "[1.950000000000001, 3.255134114458952, -0.030189459476494252, 0.07335260095070749, 0.07201085260828838, 0.07262503881484299, 0.11180897064283402, 0.0, 0.0]", - "[2.000000000000001, 3.259965049410052, -0.027788599856438157, 0.076442971447908, 0.1212250092662019, 0.023410882156929474, 0.011808970642833955, 0.0, 0.0]", - "[2.0500000000000007, 3.264795908890063, -0.02784844673189145, 0.07453334466259139, 0.0720108526082884, -0.025803274500984026, -0.0881910293571661, 0.0, 0.0]", - "[2.1000000000000005, 3.2696268422190427, -0.027908219758375888, 0.07262386793362818, 0.12122500926620192, 0.02341088215692947, 0.0118089706428339, 0.0, 0.0]", - "[2.1500000000000004, 3.274457702288296, -0.027968066044586355, 0.07071424234561509, 0.07201085260828838, -0.025803274500984033, -0.08819102935716616, 0.0, 0.0]", - "[2.2, 3.2792886349874646, -0.0280278397008814, 0.06880476433691728, 0.12122500926620186, 0.023410882156929467, 0.011808970642833844, 0.0, 0.0]", - "[2.25, 3.284119495729315, -0.02808768531449451, 0.07189528562253922, 0.07201085260828836, -0.025803274500984033, 0.11180897064283385, 0.0, 0.0]", - "[2.3, 3.2889504287573867, -0.028147458641886336, 0.07498566002721024, 0.12122500926620185, 0.02341088215692947, 0.011808970642833816, 0.0, 0.0]", - "[2.3499999999999996, 3.2937812881902766, -0.028207305564460147, 0.07307603314614777, 0.07201085260828835, -0.025803274500984026, -0.08819102935716623, 0.0, 0.0]", - "[2.3999999999999995, 3.2986122215433524, -0.028267078566848083, 0.07116655646614713, 0.12122500926620183, 0.023410882156929463, 0.011808970642833788, 0.0, 0.0]", - "[2.4499999999999993, 3.3034430816125755, -0.028326924853088138, 0.06925693087807387, 0.07201085260828834, -0.025803274500984033, -0.08819102935716625, 0.0, 0.0]", - "[2.499999999999999, 3.308274014286622, -0.02838669853450566, 0.06734745281832882, 0.12122500926620182, 0.023410882156929463, 0.011808970642833774, 0.0, 0.0]", - "[2.549999999999999, 3.3155656544200083, -0.028446544096734878, 0.070437973999542, 0.17043916592411534, -0.025803274500984037, 0.11180897064283377, 0.0, 0.0]", - "[2.5999999999999988, 3.322857222332802, -0.028506317438371495, 0.07352834843315754, 0.12122500926620183, 0.02341088215692947, 0.011808970642833705, 0.0, 0.0]", - "[2.6499999999999986, 3.3276880817453818, -0.028566164381255102, 0.07161872151082685, 0.07201085260828831, -0.025803274500984026, -0.08819102935716636, 0.0, 0.0]", - "[2.6999999999999984, 3.332519015094778, -0.028625937387322338, 0.06970924482335009, 0.12122500926620182, 0.023410882156929477, 0.011808970642833663, 0.0, 0.0]", - "[2.7499999999999982, 3.3373498751927304, -0.028685783644833936, 0.07279976741733235, 0.07201085260828834, -0.025803274500984026, 0.11180897064283367, 0.0, 0.0]", - "[2.799999999999998, 3.3421808088737572, -0.028745556319271035, 0.07589014049524138, 0.12122500926620183, 0.023410882156929474, 0.011808970642833597, 0.0, 0.0]", - "[2.849999999999998, 3.347011667644525, -0.028805403903966513, 0.07398051226879027, 0.07201085260828832, -0.025803274500984033, -0.08819102935716647, 0.0, 0.0]", - "[2.8999999999999977, 3.3518426016532703, -0.028865176250684445, 0.07207103692106884, 0.12122500926620182, 0.02341088215692947, 0.011808970642833524, 0.0, 0.0]", - "[2.9499999999999975, 3.356673461073188, -0.02892502318623025, 0.07016141001364805, 0.07201085260828832, -0.025803274500984033, -0.08819102935716654, 0.0, 0.0]", - "[2.9999999999999973, 3.361504394390292, -0.028984796224589, 0.06825193326055698, 0.12122500926620183, 0.023410882156929467, 0.011808970642833469, 0.0, 0.0]", - "[3.049999999999997, 3.366335254546563, -0.02904464242378246, 0.0713424557360405, 0.07201085260828832, -0.025803274500984026, 0.11180897064283349, 0.0, 0.0]", - "[3.099999999999997, 3.3711661882061215, -0.029104415119686852, 0.07443282885756969, 0.12122500926620183, 0.023410882156929477, 0.011808970642833445, 0.0, 0.0]", - "[3.149999999999997, 3.375997046964015, -0.029164262717257597, 0.07252320060495684, 0.07201085260828832, -0.025803274500984037, -0.0881910293571666, 0.0, 0.0]", - "[3.1999999999999966, 3.3808279809618123, -0.029224035074923133, 0.07061372523499061, 0.12122500926620182, 0.02341088215692948, 0.011808970642833427, 0.0, 0.0]", - "[3.2499999999999964, 3.3856588404175274, -0.02928388197467161, 0.07370424913395686, 0.07201085260828831, -0.025803274500984026, 0.11180897064283345, 0.0, 0.0]", - "[3.2999999999999963, 3.390489774749623, -0.02934365399803921, 0.07679462088893453, 0.12122500926620183, 0.02341088215692947, 0.011808970642833368, 0.0, 0.0]", - "[3.349999999999996, 3.3953206328603645, -0.029403502242762034, 0.07488499132135028, 0.07201085260828831, -0.025803274500984026, -0.08819102935716669, 0.0, 0.0]", - "[3.399999999999996, 3.4001515675228373, -0.02946327393575213, 0.07297551730196176, 0.12122500926620185, 0.023410882156929484, 0.011808970642833316, 0.0, 0.0]", - "[3.4499999999999957, 3.404982426295234, -0.029523121518818946, 0.07106588907881996, 0.07201085260828832, -0.02580327450098403, -0.08819102935716674, 0.0, 0.0]", - "[3.4999999999999956, 3.4098133602537746, -0.029582893915741936, 0.06915641362908509, 0.12122500926620186, 0.023410882156929474, 0.011808970642833275, 0.0, 0.0]", - "[3.5499999999999954, 3.4146442197745377, -0.02964274075044147, 0.07224693739587605, 0.07201085260828838, -0.025803274500984026, 0.11180897064283328, 0.0, 0.0]", - "[3.599999999999995, 3.4194751540781456, -0.02970251280229721, 0.07533730920873981, 0.12122500926620187, 0.023410882156929488, 0.011808970642833243, 0.0, 0.0]", - "[3.649999999999995, 3.4243060121832483, -0.02976236105265805, 0.07342767962969948, 0.07201085260828838, -0.025803274500984012, -0.08819102935716681, 0.0, 0.0]", - "[3.699999999999995, 3.4291369468277053, -0.02982213276366402, 0.07151820557370388, 0.12122500926620189, 0.023410882156929484, 0.011808970642833191, 0.0, 0.0]", - "[3.7499999999999947, 3.433967805642766, -0.029881980304066177, 0.0696085774372539, 0.07201085260828836, -0.02580327450098402, -0.08819102935716687, 0.0, 0.0]", - "[3.7999999999999945, 3.438798739532963, -0.029941752769331958, 0.06769910184865088, 0.12122500926620183, 0.023410882156929477, 0.011808970642833136, 0.0, 0.0]", - "[3.8499999999999943, 3.4436295991487924, -0.030001599508966127, 0.07078962542227513, 0.07201085260828832, -0.025803274500984023, 0.11180897064283313, 0.0, 0.0]", - "[3.899999999999994, 3.448460533395368, -0.030061371617853425, 0.07387999735102334, 0.1212250092662018, 0.023410882156929484, 0.011808970642833063, 0.0, 0.0]", - "[3.949999999999994, 3.4532913915219474, -0.03012121984673811, 0.07197036781562115, 0.0720108526082883, -0.02580327450098402, -0.088191029357167, 0.0, 0.0]", - "[3.999999999999994, 3.458122326120377, -0.03018099160377223, 0.0700608936660993, 0.12122500926620179, 0.023410882156929488, 0.011808970642833011, 0.0, 0.0]", - "[4.049999999999994, 3.465413968160351, -0.03024083907258982, 0.07315141872137734, 0.17043916592411532, -0.025803274500984005, 0.11180897064283302, 0.0, 0.0]", - "[4.099999999999993, 3.4727055341409194, -0.03030061048200266, 0.0762417892288384, 0.12122500926620178, 0.02341088215692949, 0.011808970642832959, 0.0, 0.0]", - "[4.149999999999993, 3.477536391595045, -0.03036045938334079, 0.07433215832705407, 0.07201085260828828, -0.025803274500984016, -0.0881910293571671, 0.0, 0.0]", - "[4.199999999999993, 3.4823673268845, -0.030420230449349925, 0.07242268558165052, 0.12122500926620176, 0.023410882156929495, 0.0118089706428329, 0.0, 0.0]", - "[4.249999999999993, 3.4871981850604175, -0.030480078628896578, 0.0705130561465, 0.07201085260828827, -0.025803274500984005, -0.08819102935716715, 0.0, 0.0]", - "[4.299999999999993, 3.4920291195840654, -0.030539850460712056, 0.06860358184502718, 0.12122500926620178, 0.0234108821569295, 0.011808970642832844, 0.0, 0.0]", - "[4.3499999999999925, 3.496859978571945, -0.030599697828295438, 0.07169410669460383, 0.07201085260828827, -0.025803274500984005, 0.11180897064283285, 0.0, 0.0]", - "[4.399999999999992, 3.50169091345445, -0.03065946930125452, 0.07478447733118677, 0.1212250092662018, 0.023410882156929498, 0.011808970642832803, 0.0, 0.0]", - "[4.449999999999992, 3.5065217709368373, -0.030719318174331253, 0.0728748464868278, 0.07201085260828832, -0.025803274500984005, -0.08819102935716726, 0.0, 0.0]", - "[4.499999999999992, 3.511352706173681, -0.030779089292951332, 0.07096537363452213, 0.12122500926620183, 0.023410882156929498, 0.011808970642832747, 0.0, 0.0]", - "[4.549999999999992, 3.5161835644275303, -0.030838937394565263, 0.07405589997560161, 0.07201085260828835, -0.025803274500984005, 0.11180897064283275, 0.0, 0.0]", - "[4.599999999999992, 3.521014500014488, -0.030898708163070887, 0.07714626918078046, 0.12122500926620186, 0.023410882156929505, 0.011808970642832692, 0.0, 0.0]", - "[4.6499999999999915, 3.525845356819376, -0.030958557713645793, 0.07523663695978874, 0.07201085260828838, -0.025803274500984, -0.08819102935716737, 0.0, 0.0]", - "[4.699999999999991, 3.5306762927522324, -0.031018328136253066, 0.07332716552173639, 0.12122500926620189, 0.023410882156929512, 0.011808970642832636, 0.0, 0.0]", - "[4.749999999999991, 3.535507150290451, -0.031078176953497863, 0.0714175347908243, 0.0720108526082884, -0.02580327450098399, -0.08819102935716742, 0.0, 0.0]", - "[4.799999999999991, 3.540338085446254, -0.03113794815315886, 0.06950806177384874, 0.1212250092662019, 0.023410882156929512, 0.01180897064283258, 0.0, 0.0]", - "[4.849999999999991, 3.5451689438073295, -0.031197796147546822, 0.07259858789705194, 0.07201085260828838, -0.02580327450098399, 0.11180897064283257, 0.0, 0.0]", - "[4.899999999999991, 3.549999879324407, -0.03125756698593332, 0.07568895724422424, 0.1212250092662019, 0.023410882156929498, 0.011808970642832511, 0.0, 0.0]", - "[4.94999999999999, 3.554830736164162, -0.031317416501641944, 0.07377932509407857, 0.07201085260828839, -0.025803274500984005, -0.08819102935716754, 0.0, 0.0]", - "[4.99999999999999, 3.559661672038005, -0.03137718698326208, 0.07186985353611586, 0.12122500926620189, 0.023410882156929498, 0.01180897064283247, 0.0, 0.0]", - "[5.04999999999999, 3.564492529660324, -0.03143703571640612, 0.06996022297609106, 0.07201085260828838, -0.025803274500984012, -0.08819102935716759, 0.0, 0.0]", - "[5.09999999999999, 3.56932346470597, -0.03149680702622425, 0.06805074973528329, 0.12122500926620189, 0.023410882156929484, 0.0118089706428324, 0.0, 0.0]", - "[5.14999999999999, 3.5741543232042345, -0.03155665488342337, 0.07114127557972762, 0.07201085260828836, -0.025803274500984016, 0.11180897064283242, 0.0, 0.0]", - "[5.1999999999999895, 3.578985258622823, -0.03161642582029901, 0.07423164512702349, 0.12122500926620192, 0.023410882156929498, 0.011808970642832345, 0.0, 0.0]", - "[5.249999999999989, 3.583816115524725, -0.03167627527386161, 0.07232201310315456, 0.07201085260828842, -0.025803274500984002, -0.0881910293571677, 0.0, 0.0]", - "[5.299999999999989, 3.5886470513114475, -0.031736045842603366, 0.07041254136816628, 0.1212250092662019, 0.023410882156929484, 0.011808970642832275, 0.0, 0.0]", - "[5.349999999999989, 3.595938694502707, -0.031795894462706115, 0.07350306876278165, 0.1704391659241154, -0.025803274500984026, 0.1118089706428323, 0.0, 0.0]", - "[5.399999999999989, 3.60323025927897, -0.03185566466781204, 0.07659343682316853, 0.12122500926620189, 0.023410882156929484, 0.011808970642832206, 0.0, 0.0]", - "[5.449999999999989, 3.6080611154775815, -0.03191551482466402, 0.07468380337026077, 0.07201085260828838, -0.025803274500984026, -0.08819102935716785, 0.0, 0.0]", - "[5.4999999999999885, 3.612892051987077, -0.03197528467063159, 0.07277433310390312, 0.12122500926620187, 0.023410882156929477, 0.011808970642832164, 0.0, 0.0]", - "[5.549999999999988, 3.6177229089790717, -0.0320351340341008, 0.07086470126309814, 0.07201085260828836, -0.025803274500984033, -0.0881910293571679, 0.0, 0.0]", - "[5.599999999999988, 3.622553844649908, -0.03209490471872827, 0.06895522929263755, 0.12122500926620186, 0.023410882156929453, 0.011808970642832081, 0.0, 0.0]", - "[5.649999999999988, 3.6273847025278894, -0.03215475319621054, 0.0720457563974573, 0.07201085260828834, -0.025803274500984047, 0.1118089706428321, 0.0, 0.0]", - "[5.699999999999988, 3.6322156385739346, -0.03221452350562952, 0.07513612466980155, 0.12122500926620183, 0.023410882156929443, 0.01180897064283203, 0.0, 0.0]", - "[5.749999999999988, 3.6370464948408365, -0.032274373594192184, 0.0732264913556533, 0.07201085260828832, -0.025803274500984064, -0.08819102935716801, 0.0, 0.0]", - "[5.799999999999987, 3.6418774312572992, -0.032334143533192486, 0.07131702090025917, 0.12122500926620186, 0.02341088215692944, 0.011808970642831984, 0.0, 0.0]", - "[5.849999999999987, 3.6467082883679836, -0.03239399277797215, 0.06940738930062369, 0.07201085260828835, -0.025803274500984054, -0.08819102935716806, 0.0, 0.0]", - "[5.899999999999987, 3.651539223893538, -0.03245376360788123, 0.06749791703496022, 0.12122500926620185, 0.023410882156929436, 0.011808970642831956, 0.0, 0.0]", - "[5.949999999999987, 3.656370081944329, -0.030052827087515624, 0.07058844378864196, 0.07201085260828834, 0.07262503881484295, 0.11180897064283196, 0.0, 0.0]", - "[5.999999999999987, 3.6612010161820487, -0.027651966754078917, 0.07367881573538586, 0.1212250092662018, 0.023410882156929456, 0.011808970642831897, 0.0, 0.0]", - "[6.0499999999999865, 3.666031876265671, -0.0277118130259193, 0.07176919017657174, 0.07201085260828831, -0.025803274500984054, -0.08819102935716816, 0.0, 0.0]", - "[6.099999999999986, 3.670862808967956, -0.027771586679098455, 0.06985971217420511, 0.12122500926620182, 0.02341088215692945, 0.01180897064283186, 0.0, 0.0]", - "[6.149999999999986, 3.675693669688413, -0.027831432314104818, 0.07295023350329669, 0.07201085260828831, -0.02580327450098406, 0.11180897064283186, 0.0, 0.0]", - "[6.199999999999986, 3.680524602712127, -0.02789120564585387, 0.07604060791682121, 0.12122500926620183, 0.023410882156929436, 0.011808970642831835, 0.0, 0.0]", - "[6.249999999999986, 3.6853554621732987, -0.027951052540145207, 0.07413098109322677, 0.07201085260828834, -0.025803274500984075, -0.08819102935716824, 0.0, 0.0]", - "[6.299999999999986, 3.69018639551476, -0.02801082555414654, 0.07222150438962834, 0.1212250092662018, 0.023410882156929422, 0.011808970642831762, 0.0, 0.0]", - "[6.349999999999985, 3.695017255578173, -0.02807067184619649, 0.07031187878974965, 0.07201085260828831, -0.025803274500984075, -0.08819102935716827, 0.0, 0.0]", - "[6.399999999999985, 3.699848188276237, -0.02813044550359629, 0.06840240077880691, 0.12122500926620178, 0.023410882156929422, 0.01180897064283172, 0.0, 0.0]", - "[6.449999999999985, 3.7046790490264447, -0.028190291108852787, 0.07149292204744864, 0.07201085260828828, -0.025803274500984092, 0.11180897064283174, 0.0, 0.0]", - "[6.499999999999985, 3.7095099820564013, -0.028250064434360324, 0.07458329644829079, 0.12122500926620178, 0.02341088215692942, 0.011808970642831696, 0.0, 0.0]", - "[6.549999999999985, 3.7143408414778802, -0.028309911368344993, 0.07267366954404206, 0.0720108526082883, -0.02580327450098409, -0.08819102935716835, 0.0, 0.0]", - "[6.5999999999999845, 3.719171774835743, -0.028369684365945405, 0.07076419287376927, 0.12122500926620179, 0.02341088215692941, 0.011808970642831665, 0.0, 0.0]", - "[6.649999999999984, 3.724002634907096, -0.02842953065005594, 0.07385471552179872, 0.07201085260828827, -0.025803274500984096, 0.11180897064283168, 0.0, 0.0]", - "[6.699999999999984, 3.728833568589142, -0.028489303323473308, 0.07694508859763562, 0.12122500926620178, 0.023410882156929408, 0.011808970642831623, 0.0, 0.0]", - "[6.749999999999984, 3.7336644273826955, -0.028549150885382985, 0.0750354604174837, 0.07201085260828827, -0.025803274500984102, -0.08819102935716844, 0.0, 0.0]", - "[6.799999999999984, 3.7384953613852256, -0.028608923238316354, 0.07312598505713283, 0.12122500926620179, 0.023410882156929397, 0.011808970642831582, 0.0, 0.0]", - "[6.849999999999984, 3.7433262207940574, -0.028668770184948587, 0.07121635812718505, 0.07201085260828828, -0.02580327450098411, -0.08819102935716847, 0.0, 0.0]", - "[6.8999999999999835, 3.748157154140311, -0.028728543194159066, 0.06930688143332132, 0.12122500926620176, 0.023410882156929397, 0.011808970642831526, 0.0, 0.0]", - "[6.949999999999983, 3.7554487949586464, -0.02878838944133797, 0.07239740400630805, 0.17043916592411526, -0.025803274500984102, 0.11180897064283153, 0.0, 0.0]", - "[6.999999999999983, 3.762740362204406, -0.02884816211594137, 0.07548777708455488, 0.12122500926620174, 0.0234108821569294, 0.011808970642831491, 0.0, 0.0]", - "[7.049999999999983, 3.7675712209658676, -0.028908009709943523, 0.07357814883919311, 0.07201085260828825, -0.025803274500984102, -0.08819102935716856, 0.0, 0.0]", - "[7.099999999999983, 3.7724021549773403, -0.02896778205393453, 0.07166867349701256, 0.12122500926620175, 0.023410882156929394, 0.011808970642831443, 0.0, 0.0]", - "[7.149999999999983, 3.777233014401396, -0.029027628985342894, 0.0697590465979987, 0.07201085260828823, -0.025803274500984116, -0.08819102935716862, 0.0, 0.0]", - "[7.199999999999982, 3.7820639477072033, -0.029087402034998537, 0.06784956982195299, 0.12122500926620168, 0.023410882156929387, 0.011808970642831387, 0.0, 0.0]", - "[7.249999999999982, 3.7868948078822298, -0.029147248215435476, 0.07094009225932435, 0.07201085260828818, -0.025803274500984116, 0.1118089706428314, 0.0, 0.0]", - "[7.299999999999982, 3.7917257415336234, -0.029207020919505045, 0.07403046539744451, 0.1212250092662017, 0.023410882156929387, 0.011808970642831346, 0.0, 0.0]", - "[7.349999999999982, 3.796556600289798, -0.029266868518794266, 0.07212083714133972, 0.07201085260828818, -0.025803274500984106, -0.08819102935716869, 0.0, 0.0]", - "[7.399999999999982, 3.801387534282475, -0.02932664088158029, 0.0702113617609689, 0.12122500926620171, 0.023410882156929387, 0.011808970642831318, 0.0, 0.0]", - "[7.4499999999999815, 3.8062183937504375, -0.029386487769081315, 0.07330188563504902, 0.0720108526082882, -0.025803274500984113, 0.11180897064283132, 0.0, 0.0]", - "[7.499999999999981, 3.811049328080376, -0.02944625979460704, 0.07639225739441176, 0.12122500926620167, 0.023410882156929394, 0.011808970642831266, 0.0, 0.0]", - "[7.549999999999981, 3.8158801861838594, -0.029506108046587643, 0.07448262781208007, 0.07201085260828818, -0.02580327450098411, -0.08819102935716877, 0.0, 0.0]", - "[7.599999999999981, 3.820711120847055, -0.029565879738855223, 0.07257315379415956, 0.12122500926620168, 0.023410882156929384, 0.011808970642831207, 0.0, 0.0]", - "[7.649999999999981, 3.8255419796255405, -0.02962572731583343, 0.07066352558338933, 0.07201085260828814, -0.02580327450098413, -0.08819102935716885, 0.0, 0.0]", - "[7.699999999999981, 3.830372913570895, -0.02968549972594185, 0.06875405010686243, 0.12122500926620164, 0.023410882156929373, 0.011808970642831165, 0.0, 0.0]", - "[7.7499999999999805, 3.835203773112232, -0.029745346540069002, 0.07184457383185151, 0.07201085260828814, -0.025803274500984127, 0.11180897064283118, 0.0, 0.0]", - "[7.79999999999998, 3.8400347074057675, -0.029805118601997273, 0.07493494566518186, 0.12122500926620167, 0.023410882156929363, 0.011808970642831127, 0.0, 0.0]", - "[7.84999999999998, 3.8448655655111295, -0.02986496685209919, 0.07302531608666755, 0.07201085260828817, -0.025803274500984137, -0.08819102935716894, 0.0, 0.0]", - "[7.89999999999998, 3.8496965001485433, -0.02992473857014958, 0.07111584201635805, 0.12122500926620168, 0.023410882156929366, 0.011808970642831082, 0.0, 0.0]", - "[7.94999999999998, 3.8545273589777134, -0.029984586096443052, 0.0692062139085759, 0.07201085260828818, -0.02580327450098413, -0.08819102935716898, 0.0, 0.0]", - "[7.99999999999998, 3.859358292846451, -0.030044358583169475, 0.06729673827636613, 0.1212250092662017, 0.023410882156929377, 0.011808970642831026, 0.0, 0.0]", - "[8.04999999999998, 3.864189152491384, -0.030104205293700167, 0.07038726179085388, 0.07201085260828821, -0.025803274500984123, 0.11180897064283102, 0.0, 0.0]", - "[8.09999999999998, 3.869020086719764, -0.030163977420783944, 0.07347763375657602, 0.1212250092662017, 0.023410882156929377, 0.011808970642830968, 0.0, 0.0]", - "[8.14999999999998, 3.87385094485433, -0.03022382564168283, 0.0715680042374004, 0.07201085260828821, -0.025803274500984123, -0.08819102935716909, 0.0, 0.0]", - "[8.199999999999982, 3.8786818794377393, -0.030283597413736863, 0.06965853005735895, 0.1212250092662017, 0.02341088215692938, 0.011808970642830915, 0.0, 0.0]", - "[8.249999999999982, 3.8859735214553797, -0.030343444860219924, 0.07274905506725456, 0.17043916592411518, -0.025803274500984123, 0.11180897064283093, 0.0, 0.0]", - "[8.299999999999983, 3.8932650874478756, -0.030403216281559464, 0.07583942559894981, 0.12122500926620164, 0.023410882156929373, 0.011808970642830856, 0.0, 0.0]", - "[8.349999999999984, 3.8980959449041857, -0.03046306518071309, 0.07392979470160414, 0.07201085260828816, -0.025803274500984116, -0.08819102935716919, 0.0, 0.0]", - "[8.399999999999984, 3.902926880184724, -0.03052283625563834, 0.07202032193808353, 0.12122500926620164, 0.023410882156929387, 0.011808970642830832, 0.0, 0.0]", - "[8.449999999999985, 3.9077577383765587, -0.030582684419267356, 0.07011069253527658, 0.07201085260828814, -0.02580327450098412, -0.08819102935716923, 0.0, 0.0]", - "[8.499999999999986, 3.912588672877009, -0.03064245627428029, 0.06820121818666795, 0.12122500926620164, 0.02341088215692938, 0.011808970642830777, 0.0, 0.0]", - "[8.549999999999986, 3.9174195318956477, -0.030702303611105475, 0.07129174297374581, 0.07201085260828811, -0.025803274500984123, 0.1118089706428308, 0.0, 0.0]", - "[8.599999999999987, 3.9222504667581943, -0.030762075104022242, 0.07438211365088138, 0.12122500926620162, 0.023410882156929384, 0.011808970642830735, 0.0, 0.0]", - "[8.649999999999988, 3.927081324250413, -0.030821923967267226, 0.07247248282649978, 0.07201085260828813, -0.02580327450098411, -0.0881910293571693, 0.0, 0.0]", - "[8.699999999999989, 3.9319122594704528, -0.03088169510269047, 0.07056300994005112, 0.12122500926620162, 0.023410882156929397, 0.011808970642830693, 0.0, 0.0]", - "[8.74999999999999, 3.9367431177483483, -0.030941543180258543, 0.07365353623227082, 0.07201085260828813, -0.025803274500984116, 0.11180897064283071, 0.0, 0.0]", - "[8.79999999999999, 3.9415740533215775, -0.031001313962493532, 0.07674390546534675, 0.12122500926620162, 0.02341088215692939, 0.011808970642830666, 0.0, 0.0]", - "[8.84999999999999, 3.946404910130525, -0.03106116350900982, 0.0748342732526018, 0.07201085260828813, -0.02580327450098411, -0.08819102935716937, 0.0, 0.0]", - "[8.899999999999991, 3.9512358460526458, -0.031120933942353175, 0.0729248017927343, 0.12122500926620162, 0.023410882156929397, 0.011808970642830638, 0.0, 0.0]", - "[8.949999999999992, 3.9560667036085397, -0.031180782741922985, 0.07101517109773657, 0.07201085260828813, -0.025803274500984102, -0.0881910293571694, 0.0, 0.0]", - "[8.999999999999993, 3.9608976387394588, -0.031240553966467136, 0.06910569803019996, 0.12122500926620167, 0.0234108821569294, 0.011808970642830638, 0.0, 0.0]", - "[9.049999999999994, 3.9657284971328974, -0.03130040192849237, 0.0721962240876441, 0.07201085260828818, -0.025803274500984102, 0.11180897064283066, 0.0, 0.0]", - "[9.099999999999994, 3.970559432628307, -0.031360172788546886, 0.07528659347884427, 0.12122500926620168, 0.023410882156929397, 0.01180897064283062, 0.0, 0.0]", - "[9.149999999999995, 3.9753902894796895, -0.03142002229262856, 0.07337696135232374, 0.07201085260828817, -0.025803274500984102, -0.08819102935716944, 0.0, 0.0]", - "[9.199999999999996, 3.9802212253349967, -0.03147979279278446, 0.07146748975669742, 0.12122500926620168, 0.023410882156929394, 0.011808970642830555, 0.0, 0.0]", - "[9.249999999999996, 3.985052082983023, -0.0315396415002214, 0.06955785924890773, 0.07201085260828818, -0.02580327450098411, -0.0881910293571695, 0.0, 0.0]", - "[9.299999999999997, 3.9898830179955214, -0.03159941284318723, 0.0676483859407459, 0.12122500926620167, 0.023410882156929394, 0.011808970642830499, 0.0, 0.0]", - "[9.349999999999998, 3.9947138765346444, -0.0316592606595279, 0.07073891170216837, 0.07201085260828816, -0.025803274500984102, 0.1118089706428305, 0.0, 0.0]", - "[9.399999999999999, 3.99954481192344, -0.031719031626195084, 0.07382928130999863, 0.12122500926620165, 0.023410882156929404, 0.011808970642830437, 0.0, 0.0]", - "[9.45, 4.004375668844723, -0.0317788810603743, 0.0719196493255154, 0.07201085260828816, -0.025803274500984102, -0.08819102935716962, 0.0, 0.0]", - "[9.5, 4.009206604604926, -0.031838651655636485, 0.07001017753663924, 0.12122500926620167, 0.02341088215692939, 0.01180897064283036, 0.0, 0.0]", - "[9.55, 4.014037462374207, -0.03189850024181942, 0.07310070486233163, 0.07201085260828818, -0.025803274500984123, 0.11180897064283038, 0.0, 0.0]", - "[9.600000000000001, 4.018868398501233, -0.03195827047025662, 0.07619107297012605, 0.12122500926620167, 0.02341088215692937, 0.011808970642830346, 0.0, 0.0]", - "[9.650000000000002, 4.023699254713221, -0.032018120613732166, 0.0742814395443983, 0.0720108526082882, -0.025803274500984134, -0.0881910293571697, 0.0, 0.0]", - "[9.700000000000003, 4.028530191202494, -0.03207789047992259, 0.07237196923694904, 0.12122500926620172, 0.023410882156929366, 0.011808970642830333, 0.0, 0.0]", - "[9.750000000000004, 4.033361048221811, -0.032137739816068524, 0.07046233745166311, 0.07201085260828823, -0.025803274500984144, -0.08819102935716973, 0.0, 0.0]", - "[9.800000000000004, 4.038191983857963, -0.032197510535380086, 0.0685528654107266, 0.12122500926620174, 0.023410882156929363, 0.011808970642830305, 0.0, 0.0]", - "[9.850000000000005, 4.0454836268642955, -0.03225735897055662, 0.07164339242958369, 0.17043916592411523, -0.025803274500984144, 0.11180897064283032, 0.0, 0.0]", - "[9.900000000000006, 4.052775191776228, -0.03231712931133228, 0.0747337607656426, 0.12122500926620171, 0.02341088215692936, 0.011808970642830263, 0.0, 0.0]", - "[9.950000000000006, 4.057606048064174, -0.03237697937884954, 0.07282412749425715, 0.07201085260828821, -0.025803274500984144, -0.08819102935716978, 0.0, 0.0]", - "[10.000000000000007, 4.062436984452525, -0.03243674934596178, 0.07091465698174126, 0.1212250092662017, 0.023410882156929352, 0.011808970642830222, 0.0, 0.0]", - "[10.050000000000008, 4.067267841598642, -0.03003581192092125, 0.07400518557366415, 0.07201085260828818, 0.07262503881484285, 0.11180897064283021, 0.0, 0.0]", - "[10.100000000000009, 4.072098776572972, -0.027634952324095026, 0.07709555602366287, 0.12122500926620168, 0.023410882156929345, 0.011808970642830183, 0.0, 0.0]", - "[10.15000000000001, 4.0769296360760565, -0.027694799176472662, 0.07518592928523433, 0.0720108526082882, -0.02580327450098415, -0.08819102935716985, 0.0, 0.0]", - "[10.20000000000001, 4.081760569391772, -0.027754572216218278, 0.07327645252932513, 0.1212250092662017, 0.02341088215692935, 0.011808970642830138, 0.0, 0.0]", - "[10.25000000000001, 4.086591429464017, -0.027814418499437076, 0.07136682694739072, 0.07201085260828818, -0.025803274500984155, -0.08819102935716991, 0.0, 0.0]", - "[10.300000000000011, 4.091422362170938, -0.02787419214797955, 0.06945734895444543, 0.12122500926620167, 0.023410882156929345, 0.011808970642830083, 0.0, 0.0]", - "[10.350000000000012, 4.096253222893806, -0.027934037780576435, 0.07254787027864097, 0.07201085260828816, -0.025803274500984158, 0.11180897064283009, 0.0, 0.0]", - "[10.400000000000013, 4.10108415592503, -0.027993811104815428, 0.07563824467690543, 0.12122500926620164, 0.023410882156929352, 0.011808970642830027, 0.0, 0.0]", - "[10.450000000000014, 4.105915015369475, -0.028053658015835096, 0.07372861781932002, 0.07201085260828811, -0.025803274500984148, -0.08819102935717, 0.0, 0.0]", - "[10.500000000000014, 4.110745948721238, -0.02811343101953615, 0.07181914113665104, 0.12122500926620162, 0.023410882156929352, 0.011808970642829986, 0.0, 0.0]", - "[10.550000000000015, 4.115576808781072, -0.02817327731516824, 0.06990951552949361, 0.07201085260828813, -0.025803274500984155, -0.08819102935717008, 0.0, 0.0]", - "[10.600000000000016, 4.120407741475697, -0.028233050976005897, 0.06800003751156529, 0.12122500926620162, 0.023410882156929356, 0.011808970642829958, 0.0, 0.0]", - "[10.650000000000016, 4.125238602236671, -0.02829289657049603, 0.0710905587583304, 0.07201085260828813, -0.025803274500984144, 0.11180897064282996, 0.0, 0.0]", - "[10.700000000000017, 4.1300695352662204, -0.02835266989640855, 0.07418093315999535, 0.12122500926620162, 0.023410882156929366, 0.01180897064282992, 0.0, 0.0]", - "[10.750000000000018, 4.1349003946784615, -0.02841251683963085, 0.07227130623697628, 0.07201085260828813, -0.025803274500984137, -0.08819102935717013, 0.0, 0.0]", - "[10.800000000000018, 4.1397313280388675, -0.028472289834690155, 0.07036182957186674, 0.12122500926620164, 0.023410882156929366, 0.011808970642829889, 0.0, 0.0]", - "[10.85000000000002, 4.14456218811467, -0.028532136114350414, 0.07345235221085347, 0.07201085260828814, -0.025803274500984137, 0.11180897064282988, 0.0, 0.0]", - "[10.90000000000002, 4.149393121802121, -0.028591908782362608, 0.0765427252757073, 0.12122500926620162, 0.023410882156929366, 0.011808970642829836, 0.0, 0.0]", - "[10.95000000000002, 4.154223980581097, -0.02865175635885133, 0.07463309706593158, 0.0720108526082881, -0.025803274500984144, -0.08819102935717023, 0.0, 0.0]", - "[11.000000000000021, 4.159054914591815, -0.028711528703596688, 0.07272362172221816, 0.1212250092662016, 0.023410882156929366, 0.011808970642829791, 0.0, 0.0]", - "[11.050000000000022, 4.16388577399913, -0.02877137565174449, 0.07081399478919079, 0.0720108526082881, -0.025803274500984144, -0.08819102935717027, 0.0, 0.0]", - "[11.100000000000023, 4.168716707339933, -0.028831148666404287, 0.06890451808425431, 0.12122500926620162, 0.02341088215692936, 0.011808970642829736, 0.0, 0.0]", - "[11.150000000000023, 4.17354756746093, -0.028890994900870597, 0.07199504063140982, 0.0720108526082881, -0.025803274500984137, 0.11180897064282973, 0.0, 0.0]", - "[11.200000000000024, 4.178378501139359, -0.028950767577905684, 0.07508541371459755, 0.12122500926620161, 0.023410882156929363, 0.011808970642829663, 0.0, 0.0]", - "[11.250000000000025, 4.183209359893668, -0.029010615179059396, 0.07317578545470414, 0.07201085260828811, -0.025803274500984137, -0.08819102935717038, 0.0, 0.0]", - "[11.300000000000026, 4.188040293905643, -0.029070387522549156, 0.07126631011354197, 0.12122500926620162, 0.023410882156929363, 0.011808970642829625, 0.0, 0.0]", - "[11.350000000000026, 4.195331935401772, -0.02913023444752284, 0.074356834063764, 0.17043916592411512, -0.025803274500984144, 0.11180897064282963, 0.0, 0.0]", - "[11.400000000000027, 4.202623501986685, -0.029190006461278856, 0.07744720579921137, 0.12122500926620162, 0.023410882156929352, 0.011808970642829583, 0.0, 0.0]", - "[11.450000000000028, 4.207454360102366, -0.029249854701060944, 0.07553757624166621, 0.07201085260828814, -0.02580327450098415, -0.08819102935717046, 0.0, 0.0]", - "[11.500000000000028, 4.212285294770014, -0.029309626388875982, 0.07362810223279292, 0.12122500926620164, 0.02341088215692936, 0.011808970642829528, 0.0, 0.0]", - "[11.55000000000003, 4.217116153526683, -0.02936947398767021, 0.07171847397769383, 0.07201085260828814, -0.025803274500984144, -0.08819102935717052, 0.0, 0.0]", - "[11.60000000000003, 4.221947087511958, -0.029429246357860456, 0.06980899858227801, 0.12122500926620164, 0.023410882156929356, 0.011808970642829486, 0.0, 0.0]", - "[11.65000000000003, 4.226777946994522, -0.029489093230759374, 0.07289952242668746, 0.07201085260828814, -0.025803274500984148, 0.1118089706428295, 0.0, 0.0]", - "[11.700000000000031, 4.231608881320059, -0.029548865260685963, 0.07598989419499237, 0.12122500926620168, 0.02341088215692935, 0.011808970642829476, 0.0, 0.0]", - "[11.750000000000032, 4.23643973941842, -0.029608713517789872, 0.07408026460225038, 0.07201085260828817, -0.025803274500984155, -0.08819102935717059, 0.0, 0.0]", - "[11.800000000000033, 4.241270674080135, -0.029668485211537542, 0.07217079058132235, 0.12122500926620168, 0.023410882156929342, 0.011808970642829389, 0.0, 0.0]", - "[11.850000000000033, 4.246101532866981, -0.02972833278015555, 0.0702611623875394, 0.0720108526082882, -0.025803274500984158, -0.08819102935717066, 0.0, 0.0]", - "[11.900000000000034, 4.25093246679681, -0.029788105205790553, 0.0683516868794634, 0.12122500926620165, 0.023410882156929342, 0.011808970642829361, 0.0, 0.0]", - "[11.950000000000035, 4.25576332636113, -0.02984795199693433, 0.07144221055775168, 0.07201085260828816, -0.02580327450098415, 0.11180897064282938, 0.0, 0.0]", - "[12.000000000000036, 4.260594260642294, -0.029907724071235056, 0.07453258241622197, 0.12122500926620165, 0.023410882156929352, 0.011808970642829288, 0.0, 0.0]", - "[12.050000000000036, 4.265425118750105, -0.029967572318886262, 0.07262295284268723, 0.07201085260828817, -0.025803274500984148, -0.08819102935717077, 0.0, 0.0]", - "[12.100000000000037, 4.270256053378215, -0.030027344046240557, 0.07071347875347267, 0.12122500926620165, 0.02341088215692936, 0.01180897064282925, 0.0, 0.0]", - "[12.150000000000038, 4.275086912223822, -0.030087191556097584, 0.07380400389214002, 0.07201085260828817, -0.02580327450098415, 0.11180897064282926, 0.0, 0.0]", - "[12.200000000000038, 4.279917847194776, -0.0301469629406084, 0.07689437434900165, 0.12122500926620168, 0.023410882156929342, 0.011808970642829195, 0.0, 0.0]", - "[12.250000000000039, 4.284748704639085, -0.03020681185176325, 0.0749847434272702, 0.07201085260828818, -0.025803274500984158, -0.08819102935717085, 0.0, 0.0]", - "[12.30000000000004, 4.289579639948792, -0.030266582897518823, 0.07307527072302042, 0.12122500926620165, 0.02341088215692934, 0.011808970642829139, 0.0, 0.0]", - "[12.35000000000004, 4.29441049809359, -0.030326431108184497, 0.07116564122463793, 0.07201085260828817, -0.025803274500984158, -0.08819102935717092, 0.0, 0.0]", - "[12.400000000000041, 4.299241432659665, -0.030386202897572802, 0.06925616700937427, 0.12122500926620165, 0.023410882156929345, 0.011808970642829084, 0.0, 0.0]", - "[12.450000000000042, 4.304072291593362, -0.03044605031933982, 0.07234669196904836, 0.07201085260828816, -0.02580327450098415, 0.1118089706428291, 0.0, 0.0]", - "[12.500000000000043, 4.308903226513285, -0.03050582175488109, 0.07543706252960053, 0.1212250092662017, 0.023410882156929345, 0.01180897064282907, 0.0, 0.0]", - "[12.550000000000043, 4.31373408397395, -0.030565670649679008, 0.07352743164110531, 0.07201085260828818, -0.02580327450098415, -0.08819102935717098, 0.0, 0.0]", - "[12.600000000000044, 4.318565019243336, -0.030625441735756827, 0.07161795885492331, 0.1212250092662017, 0.023410882156929352, 0.011808970642829056, 0.0, 0.0]", - "[12.650000000000045, 4.3233958774533905, -0.03068528988116605, 0.0697083294891377, 0.07201085260828816, -0.02580327450098415, -0.08819102935717099, 0.0, 0.0]", - "[12.700000000000045, 4.328226811928276, -0.030745061761744377, 0.06779885508858177, 0.12122500926620164, 0.023410882156929352, 0.011808970642829, 0.0, 0.0]", - "[12.750000000000046, 4.335518453803065, -0.03080490906537782, 0.07088937980821604, 0.17043916592411512, -0.02580327450098415, 0.111808970642829, 0.0, 0.0]", - "[12.800000000000047, 4.3428100198894235, -0.03086468058057982, 0.07397975053063366, 0.12122500926620164, 0.023410882156929352, 0.011808970642828973, 0.0, 0.0]", - "[12.850000000000048, 4.3476408773936965, -0.03092452943176978, 0.072070119730747, 0.07201085260828814, -0.025803274500984144, -0.08819102935717107, 0.0, 0.0]", - "[12.900000000000048, 4.352471812594646, -0.030984300586283937, 0.07016064680550674, 0.12122500926620164, 0.02341088215692936, 0.011808970642828945, 0.0, 0.0]", - "[12.950000000000049, 4.35730267089894, -0.031044148637453802, 0.0732511730440869, 0.07201085260828813, -0.025803274500984155, 0.11180897064282896, 0.0, 0.0]", - "[13.00000000000005, 4.362133606456189, -0.031103919435667406, 0.07634154230963024, 0.12122500926620164, 0.02341088215692936, 0.011808970642828903, 0.0, 0.0]", - "[13.05000000000005, 4.366964463271344, -0.03116376897597664, 0.07443191010949755, 0.07201085260828813, -0.025803274500984144, -0.08819102935717114, 0.0, 0.0]", - "[13.100000000000051, 4.3717953991805185, -0.031223539422267486, 0.07252243862332147, 0.12122500926620165, 0.02341088215692936, 0.011808970642828862, 0.0, 0.0]", - "[13.150000000000052, 4.376626256756363, -0.03128338820188761, 0.07061280796886012, 0.07201085260828816, -0.025803274500984134, -0.08819102935717117, 0.0, 0.0]", - "[13.200000000000053, 4.381457191860061, -0.03134315945365295, 0.0687033348460117, 0.12122500926620164, 0.02341088215692936, 0.01180897064282882, 0.0, 0.0]", - "[13.250000000000053, 4.386288050288263, -0.03140300738091434, 0.07179386083281782, 0.07201085260828816, -0.025803274500984144, 0.11180897064282883, 0.0, 0.0]", - "[13.300000000000054, 4.3911189857597055, -0.03146277826493644, 0.07488423027271854, 0.12122500926620161, 0.02341088215692936, 0.011808970642828775, 0.0, 0.0]", - "[13.350000000000055, 4.395949842624914, -0.03152262775519154, 0.07297459817429264, 0.07201085260828811, -0.025803274500984144, -0.08819102935717127, 0.0, 0.0]", - "[13.400000000000055, 4.400780778459423, -0.03158239827614499, 0.07106512653640695, 0.12122500926620165, 0.023410882156929366, 0.011808970642828723, 0.0, 0.0]", - "[13.450000000000056, 4.405611636135482, -0.031642246955550936, 0.06915549608557436, 0.07201085260828816, -0.02580327450098414, -0.08819102935717134, 0.0, 0.0]", - "[13.500000000000057, 4.410442571112447, -0.031702018334050196, 0.0672460227052108, 0.1212250092662017, 0.023410882156929363, 0.011808970642828681, 0.0, 0.0]", - "[13.550000000000058, 4.4152734296948735, -0.03176186610708552, 0.0703365483786395, 0.07201085260828818, -0.025803274500984137, 0.11180897064282869, 0.0, 0.0]", - "[13.600000000000058, 4.4201043650515315, -0.03182163710589177, 0.07342691805177419, 0.1212250092662017, 0.023410882156929377, 0.011808970642828619, 0.0, 0.0]", - "[13.650000000000059, 4.424935221994447, -0.031881486518438695, 0.07151728611124625, 0.0720108526082882, -0.025803274500984123, -0.08819102935717144, 0.0, 0.0]", - "[13.70000000000006, 4.429766157725818, -0.031941257142531196, 0.06960781426378869, 0.12122500926620171, 0.023410882156929387, 0.011808970642828584, 0.0, 0.0]", - "[13.75000000000006, 4.434597015531389, -0.032001105692423835, 0.07269834151574144, 0.07201085260828823, -0.025803274500984102, 0.11180897064282858, 0.0, 0.0]", - "[13.800000000000061, 4.439427951632813, -0.032060875946463833, 0.07578870967555901, 0.12122500926620172, 0.023410882156929394, 0.011808970642828535, 0.0, 0.0]", - "[13.850000000000062, 4.444258807860351, -0.03212072607438917, 0.07387907628142817, 0.07201085260828821, -0.025803274500984102, -0.0881910293571715, 0.0, 0.0]", - "[13.900000000000063, 4.449089744327167, -0.03218049596303616, 0.0719696059283485, 0.12122500926620171, 0.023410882156929397, 0.0118089706428285, 0.0, 0.0]", - "[13.950000000000063, 4.453920601376101, -0.032240345269565214, 0.07005997420324207, 0.07201085260828823, -0.025803274500984102, -0.08819102935717155, 0.0, 0.0]", - "[14.000000000000064, 4.458751536975217, -0.032300116025913976, 0.06815050208704823, 0.12122500926620171, 0.023410882156929408, 0.011808970642828473, 0.0, 0.0]", - "[14.050000000000065, 4.463582394940222, -0.03235996441637279, 0.07124102901504172, 0.07201085260828821, -0.025803274500984102, 0.11180897064282846, 0.0, 0.0]", - "[14.100000000000065, 4.468413330921235, -0.03241973479082301, 0.07433139741952509, 0.12122500926620171, 0.023410882156929408, 0.011808970642828407, 0.0, 0.0]", - "[14.150000000000066, 4.473244187232452, -0.03247958483507033, 0.0724217641954226, 0.0720108526082882, -0.025803274500984096, -0.08819102935717166, 0.0, 0.0]", - "[14.200000000000067, 4.478075123590409, -0.03253935483257768, 0.07051229362114571, 0.1212250092662017, 0.023410882156929415, 0.011808970642828348, 0.0, 0.0]", - "[14.250000000000068, 4.485366767333139, -0.03259920400415173, 0.0736028221363151, 0.1704391659241152, -0.0258032745009841, 0.11180897064282838, 0.0, 0.0]", - "[14.300000000000068, 4.492658331529497, -0.03265897362935305, 0.07669318901837294, 0.12122500926620174, 0.023410882156929397, 0.01180897064282832, 0.0, 0.0]", - "[14.350000000000069, 4.497489187120699, -0.03271882439361472, 0.07478355433124761, 0.07201085260828821, -0.02580327450098411, -0.08819102935717173, 0.0, 0.0]", - "[14.40000000000007, 4.502320124218624, -0.032778593651153376, 0.07287408526053947, 0.12122500926620172, 0.023410882156929397, 0.011808970642828293, 0.0, 0.0]", - "[14.45000000000007, 4.507150980641497, -0.03283844358374353, 0.07096445226331718, 0.07201085260828823, -0.02580327450098411, -0.08819102935717177, 0.0, 0.0]", - "[14.500000000000071, 4.511981916861835, -0.03289821371886862, 0.06905498140940991, 0.12122500926620174, 0.0234108821569294, 0.011808970642828251, 0.0, 0.0]", - "[14.550000000000072, 4.5168127742102095, -0.030497276496087296, 0.07214550959035497, 0.07201085260828824, 0.0726250388148429, 0.11180897064282827, 0.0, 0.0]", - "[14.600000000000072, 4.521643709122125, -0.028096416836845453, 0.07523588016717811, 0.12122500926620172, 0.023410882156929394, 0.011808970642828223, 0.0, 0.0]", - "[14.650000000000073, 4.526474568551948, -0.02815626376248504, 0.07332625327988591, 0.07201085260828823, -0.025803274500984113, -0.08819102935717182, 0.0, 0.0]", - "[14.700000000000074, 4.531305501911829, -0.028216036758067914, 0.07141677661371242, 0.12122500926620174, 0.023410882156929387, 0.011808970642828168, 0.0, 0.0]", - "[14.750000000000075, 4.536136361970336, -0.028275883055024948, 0.06950715100386268, 0.07201085260828823, -0.02580327450098411, -0.08819102935717188, 0.0, 0.0]", - "[14.800000000000075, 4.540967294659191, -0.02833565672163385, 0.06759767297420749, 0.12122500926620174, 0.02341088215692939, 0.01180897064282814, 0.0, 0.0]", - "[14.850000000000076, 4.5457981554333395, -0.028395502302947212, 0.07068819419419817, 0.07201085260828824, -0.025803274500984102, 0.11180897064282816, 0.0, 0.0]", - "[14.900000000000077, 4.550629088460197, -0.028455275631553888, 0.07377856860133743, 0.12122500926620172, 0.0234108821569294, 0.011808970642828136, 0.0, 0.0]", - "[14.950000000000077, 4.555459947865373, -0.028515122581841572, 0.07186894166396185, 0.0720108526082882, -0.0258032745009841, -0.08819102935717191, 0.0, 0.0]", - "[15.000000000000078, 4.5602908812260745, -0.028574895576605745, 0.06995946499945192, 0.12122500926620168, 0.0234108821569294, 0.011808970642828112, 0.0, 0.0]", - "[15.050000000000079, 4.565121741308649, -0.028634741849495014, 0.0730499876246803, 0.07201085260828817, -0.025803274500984096, 0.11180897064282813, 0.0, 0.0]", - "[15.10000000000008, 4.569952674999302, -0.02869451451430571, 0.0761403606830288, 0.12122500926620164, 0.023410882156929408, 0.011808970642828084, 0.0, 0.0]", - "[15.15000000000008, 4.574783533765789, -0.028754362103282294, 0.07423073244787848, 0.07201085260828814, -0.025803274500984085, -0.08819102935717198, 0.0, 0.0]", - "[15.200000000000081, 4.579614467782532, -0.02881413444200201, 0.07232125711640869, 0.12122500926620165, 0.023410882156929415, 0.011808970642828029, 0.0, 0.0]", - "[15.250000000000082, 4.584445327190567, -0.028873981389430613, 0.07041163018484256, 0.07201085260828818, -0.025803274500984096, -0.08819102935717202, 0.0, 0.0]", - "[15.300000000000082, 4.5892762605236115, -0.028933754411847843, 0.06850215346414337, 0.12122500926620168, 0.023410882156929408, 0.011808970642828001, 0.0, 0.0]", - "[15.350000000000083, 4.594107120659703, -0.02899360063121939, 0.07159267598062717, 0.0720108526082882, -0.025803274500984096, 0.11180897064282802, 0.0, 0.0]", - "[15.400000000000084, 4.598938054333436, -0.029053373312950694, 0.07468304907335727, 0.1212250092662017, 0.023410882156929408, 0.011808970642827973, 0.0, 0.0]", - "[15.450000000000085, 4.603768913082743, -0.029113220919105304, 0.07277342080330226, 0.07201085260828818, -0.0258032745009841, -0.08819102935717207, 0.0, 0.0]", - "[15.500000000000085, 4.608599847092996, -0.02917299326431563, 0.07086394545864395, 0.12122500926620167, 0.0234108821569294, 0.011808970642827946, 0.0, 0.0]", - "[15.550000000000086, 4.615891451472752, -0.029232803072916997, 0.07395439399078536, 0.17043916592411518, -0.025803274500984096, 0.11180897064282795, 0.0, 0.05000000000000001]" + "[0.0, 2.991558736111579, -0.07835016954347276, -0.09073820491240625, 0.03775253424498685, 0.0923077274644122, 0.03812121609123423, 0.0, 0.0]", + "[0.05, 2.994676781073002, -0.07250436492107813, -0.08633201338788396, 0.08696669090290035, 0.14152188412232566, 0.13812121609123423, 0.0, 0.0]", + "[0.1, 3.000255530319947, -0.0641978560131613, -0.07692582907139633, 0.13618084756081386, 0.19073604078023917, 0.23812121609123427, 0.0, 0.0]", + "[0.15000000000000002, 3.0082949806901285, -0.055891461966289836, -0.06251965838850625, 0.18539500421872737, 0.14152188412232566, 0.33812121609123424, 0.0, 0.0]", + "[0.2, 3.0187951295148046, -0.05004576637391407, -0.04311350676192154, 0.23460916087664083, 0.09230772746441221, 0.4381212160912343, 0.0, 0.0]", + "[0.25, 3.0317559738698825, -0.04666076631193909, -0.023707511781504743, 0.2838233175345543, 0.04309357080649871, 0.33812121609123424, 0.0, 0.0]", + "[0.3, 3.0471775124340708, -0.043275715084153316, -0.00930148911843378, 0.33303747419246776, 0.09230772746441218, 0.23812121609123427, 0.0, 0.0]", + "[0.35, 3.062599024677393, -0.03989069017723322, 0.005104587026942831, 0.28382331753455436, 0.04309357080649867, 0.33812121609123424, 0.0, 0.0]", + "[0.39999999999999997, 3.0755598324791213, -0.03896636971190802, 0.019510639381594645, 0.23460916087664088, -0.0061205858514148115, 0.23812121609123432, 0.0, 0.0]", + "[0.44999999999999996, 3.086059921145177, -0.038042029626702105, 0.028916668769730904, 0.18539500421872737, 0.04309357080649867, 0.1381212160912343, 0.0, 0.0]", + "[0.49999999999999994, 3.0940992953355204, -0.03711772710697046, 0.03832277448849414, 0.1361808475608139, -0.006120585851414784, 0.23812121609123438, 0.0, 0.0]", + "[0.5499999999999999, 3.1021387195134302, -0.03619337459967223, 0.04772877863573808, 0.18539500421872743, 0.04309357080649872, 0.1381212160912343, 0.0, 0.0]", + "[0.6, 3.110178083133252, -0.03526908265046217, 0.05213477304747858, 0.13618084756081394, -0.0061205858514147855, 0.038121216091234214, 0.0, 0.0]", + "[0.65, 3.1182175138347654, -0.034344723619559835, 0.056540903764901895, 0.18539500421872745, 0.04309357080649871, 0.13812121609123423, 0.0, 0.0]", + "[0.7000000000000001, 3.1262568742756867, -0.033420434849250356, 0.0609468917173209, 0.13618084756081394, -0.006120585851414794, 0.038121216091234186, 0.0, 0.0]", + "[0.7500000000000001, 3.1318355257195876, -0.03249607320768137, 0.06535302773945091, 0.08696669090290043, 0.04309357080649871, 0.13812121609123418, 0.0, 0.0]", + "[0.8000000000000002, 3.1374142520892394, -0.031571786491862965, 0.06975901151727627, 0.13618084756081394, -0.006120585851414782, 0.03812121609123409, 0.0, 0.0]", + "[0.8500000000000002, 3.142992902013376, -0.030647423330528948, 0.06916499401620492, 0.08696669090290043, 0.04309357080649872, -0.06187878390876596, 0.0, 0.0]", + "[0.9000000000000002, 3.148571628244526, -0.0297231364762095, 0.06857113156607779, 0.13618084756081394, -0.006120585851414801, 0.038121216091234054, 0.0, 0.0]", + "[0.9500000000000003, 3.1541502797174146, -0.02879877486362727, 0.06797711721197044, 0.08696669090290043, 0.0430935708064987, -0.061878783908766014, 0.0, 0.0]", + "[1.0000000000000002, 3.159729004373025, -0.027874486433768265, 0.06738325156044823, 0.13618084756081392, -0.006120585851414799, 0.038121216091233985, 0.0, 0.0]", + "[1.0500000000000003, 3.1653076574496883, -0.026950126424961633, 0.0667892404651097, 0.0869666909029004, 0.0430935708064987, -0.06187878390876606, 0.0, 0.0]", + "[1.1000000000000003, 3.1708863804717686, -0.026025836361571304, 0.06619537149435696, 0.1361808475608139, -0.006120585851414799, 0.038121216091233937, 0.0, 0.0]", + "[1.1500000000000004, 3.176465035213326, -0.02756225329062616, 0.06560136378197443, 0.08696669090290043, -0.055334742509328294, -0.061878783908766104, 0.0, 0.0]", + "[1.2000000000000004, 3.182043758437172, -0.029098601737391108, 0.06500749522119895, 0.13618084756081392, -0.006120585851414784, 0.03812121609123389, 0.0, 0.0]", + "[1.2500000000000004, 3.1876224112010325, -0.02817424141578223, 0.06941362856125491, 0.0869666909029004, 0.04309357080649873, 0.1381212160912339, 0.0, 0.0]", + "[1.3000000000000005, 3.1932011357072123, -0.02724995283649213, 0.07381961612553488, 0.13618084756081394, -0.006120585851414792, 0.03812121609123381, 0.0, 0.0]", + "[1.3500000000000005, 3.198779788018754, -0.02632559206256302, 0.07322560347551668, 0.08696669090290043, 0.043093570806498706, -0.06187878390876624, 0.0, 0.0]", + "[1.4000000000000006, 3.2043585117325026, -0.02540130269084157, 0.07263173591019058, 0.13618084756081392, -0.006120585851414794, 0.038121216091233756, 0.0, 0.0]", + "[1.4500000000000006, 3.2099371658572453, -0.026937720236710566, 0.07203772694448134, 0.08696669090290043, -0.0553347425093283, -0.0618787839087663, 0.0, 0.0]", + "[1.5000000000000007, 3.215515889887629, -0.02847406787693834, 0.07144386002253753, 0.13618084756081397, -0.006120585851414794, 0.038121216091233714, 0.0, 0.0]", + "[1.5500000000000007, 3.22109454165398, -0.027549706557819513, 0.0708498462647289, 0.08696669090290045, 0.0430935708064987, -0.061878783908766326, 0.0, 0.0]", + "[1.6000000000000008, 3.2266732659628197, -0.026625417781189358, 0.07025597990859003, 0.13618084756081397, -0.006120585851414801, 0.03812121609123368, 0.0, 0.0]", + "[1.6500000000000008, 3.2322519194411963, -0.025701058174096097, 0.0696619696295072, 0.0869666909029005, 0.0430935708064987, -0.06187878390876638, 0.0, 0.0]", + "[1.7000000000000008, 3.2378306420049707, -0.024776767652401104, 0.06906809972750884, 0.136180847560814, -0.006120585851414789, 0.03812121609123362, 0.0, 0.0]", + "[1.7500000000000009, 3.2434092972630775, -0.026313184064905865, 0.06847409306472282, 0.08696669090290049, -0.0553347425093283, -0.06187878390876644, 0.0, 0.0]", + "[1.800000000000001, 3.2465272434986647, -0.02784953288081474, 0.06788022375387064, 0.03775253424498698, -0.00612058585141481, 0.03812121609123357, 0.0, 0.0]", + "[1.850000000000001, 3.2496452596009417, -0.026925172783358882, 0.06728621247840255, 0.08696669090290049, 0.04309357080649869, -0.06187878390876649, 0.0, 0.0]", + "[1.900000000000001, 3.255223982706433, -0.026000882803380674, 0.06669234367713785, 0.13618084756081397, -0.006120585851414813, 0.038121216091233506, 0.0, 0.0]", + "[1.950000000000001, 3.2608026373699217, -0.027537299810503537, 0.06609833580612609, 0.08696669090290043, -0.05533474250932831, -0.061878783908766534, 0.0, 0.0]", + "[2.000000000000001, 3.26638136068571, -0.029073648165326753, 0.06550446743217028, 0.13618084756081394, -0.006120585851414803, 0.03812121609123348, 0.0, 0.0]", + "[2.0500000000000007, 3.2719600133436892, -0.028149287737836166, 0.06491045548609284, 0.08696669090290042, 0.0430935708064987, -0.06187878390876656, 0.0, 0.0]", + "[2.1000000000000005, 3.2775387368285953, -0.027224998137271618, 0.0643165874557723, 0.13618084756081392, -0.006120585851414798, 0.038121216091233444, 0.0, 0.0]", + "[2.1500000000000004, 3.283117391061601, -0.026300639284807817, 0.06872271781061998, 0.08696669090290038, 0.04309357080649871, 0.13812121609123346, 0.0, 0.0]", + "[2.2, 3.2862353372602624, -0.025376349090966303, 0.0731287086555645, 0.03775253424498688, -0.0061205858514147855, 0.03812121609123342, 0.0, 0.0]", + "[2.25, 3.2893533522815672, -0.024451990074481646, 0.07253469957656035, 0.08696669090290038, 0.04309357080649871, -0.06187878390876663, 0.0, 0.0]", + "[2.3, 3.2949320741970127, -0.023527698904457224, 0.07194082835719834, 0.1361808475608139, -0.0061205858514147855, 0.03812121609123337, 0.0, 0.0]", + "[2.3499999999999996, 3.3005107301625562, -0.02506411460952459, 0.07134682313187957, 0.08696669090290034, -0.05533474250932827, -0.06187878390876667, 0.0, 0.0]", + "[2.3999999999999995, 3.306089452454159, -0.026600463988532715, 0.07075295267684592, 0.13618084756081378, -0.0061205858514147785, 0.03812121609123332, 0.0, 0.0]", + "[2.4499999999999993, 3.311668105861748, -0.02567610431065183, 0.07015894225392719, 0.08696669090290028, 0.04309357080649873, -0.06187878390876673, 0.0, 0.0]", + "[2.499999999999999, 3.31724682849112, -0.02475181385455456, 0.06956507248521916, 0.13618084756081378, -0.006120585851414765, 0.03812121609123327, 0.0, 0.0]", + "[2.549999999999999, 3.3228254836888933, -0.02628823032739175, 0.06897106569984152, 0.0869666909029003, -0.055334742509328266, -0.061878783908766784, 0.0, 0.0]", + "[2.5999999999999988, 3.325943429850977, -0.0278245790697966, 0.06837719653834474, 0.037752534244986785, -0.006120585851414766, 0.03812121609123321, 0.0, 0.0]", + "[2.6499999999999986, 3.3290614460401584, -0.02690021888543578, 0.06778318508629136, 0.0869666909029003, 0.043093570806498734, -0.061878783908766825, 0.0, 0.0]", + "[2.6999999999999984, 3.3346401692273373, -0.025975928987144552, 0.06718931645100934, 0.13618084756081383, -0.006120585851414773, 0.03812121609123319, 0.0, 0.0]", + "[2.7499999999999982, 3.340218823814462, -0.027512346070631757, 0.06659530842483012, 0.08696669090290032, -0.055334742509328266, -0.06187878390876688, 0.0, 0.0]", + "[2.799999999999998, 3.3457975472203825, -0.029048694335322443, 0.06600144023401781, 0.13618084756081383, -0.006120585851414772, 0.03812121609123311, 0.0, 0.0]", + "[2.849999999999998, 3.3513761997743803, -0.02812433380384956, 0.06540742807665507, 0.0869666909029003, 0.043093570806498734, -0.061878783908766936, 0.0, 0.0]", + "[2.8999999999999977, 3.356954923358106, -0.027200044302104664, 0.06481356024712967, 0.1361808475608138, -0.006120585851414766, 0.03812121609123306, 0.0, 0.0]", + "[2.9499999999999975, 3.3625335774975853, -0.026275685356113306, 0.06921969079201931, 0.08696669090290025, 0.043093570806498734, 0.13812121609123307, 0.0, 0.0]", + "[2.9999999999999973, 3.3656515236235536, -0.025351395234965223, 0.07362568148925544, 0.037752534244986764, -0.006120585851414768, 0.03812121609123298, 0.0, 0.0]", + "[3.049999999999997, 3.368769538699227, -0.024427036164111685, 0.0730316722997772, 0.08696669090290027, 0.043093570806498734, -0.061878783908767075, 0.0, 0.0]", + "[3.099999999999997, 3.374348260663993, -0.023502745043407658, 0.07243780118063099, 0.13618084756081375, -0.0061205858514147785, 0.03812121609123292, 0.0, 0.0]", + "[3.149999999999997, 3.3799269165853048, -0.025039160792706947, 0.07184379586543584, 0.08696669090290021, -0.055334742509328294, -0.06187878390876712, 0.0, 0.0]", + "[3.1999999999999966, 3.385505638933453, -0.026575510115170772, 0.07124992552529653, 0.1361808475608137, -0.006120585851414789, 0.03812121609123288, 0.0, 0.0]", + "[3.2499999999999964, 3.391084292271808, -0.0256511503680558, 0.07065591496169855, 0.08696669090290018, 0.04309357080649871, -0.06187878390876716, 0.0, 0.0]", + "[3.2999999999999963, 3.396663014965252, -0.024726859976029247, 0.07006204532317808, 0.13618084756081372, -0.00612058585141478, 0.03812121609123285, 0.0, 0.0]", + "[3.349999999999996, 3.4022416701041913, -0.026263276507701997, 0.06946803841825036, 0.0869666909029002, -0.05533474250932828, -0.061878783908767186, 0.0, 0.0]", + "[3.399999999999996, 3.405359616194384, -0.027799625178216186, 0.06887416940283078, 0.03775253424498669, -0.00612058585141478, 0.038121216091232826, 0.0, 0.0]", + "[3.4499999999999957, 3.4084776324687525, -0.02687526490866767, 0.06828015777768143, 0.08696669090290018, 0.04309357080649872, -0.061878783908767214, 0.0, 0.0]", + "[3.4999999999999956, 3.414056355735919, -0.025950975090364668, 0.06768628930493033, 0.13618084756081367, -0.00612058585141478, 0.03812121609123279, 0.0, 0.0]", + "[3.5499999999999954, 3.4196350102483555, -0.02748739224853953, 0.06709228112699062, 0.08696669090290018, -0.05533474250932829, -0.06187878390876727, 0.0, 0.0]", + "[3.599999999999995, 3.4252137337426256, -0.029023740424880293, 0.06649841311569965, 0.13618084756081372, -0.0061205858514147855, 0.03812121609123273, 0.0, 0.0]", + "[3.649999999999995, 3.4307923861945144, -0.028099379791298697, 0.06590440075085854, 0.08696669090290025, 0.04309357080649872, -0.061878783908767325, 0.0, 0.0]", + "[3.699999999999995, 3.4363711098751946, -0.02717509038650919, 0.06531053311834027, 0.13618084756081375, -0.006120585851414789, 0.03812121609123268, 0.0, 0.0]", + "[3.7499999999999947, 3.4419497639229975, -0.026250731348841868, 0.06471652399629424, 0.08696669090290024, 0.04309357080649872, -0.06187878390876738, 0.0, 0.0]", + "[3.7999999999999945, 3.447528485977412, -0.025326440317786286, 0.06412265305930791, 0.13618084756081375, -0.0061205858514147785, 0.038121216091232625, 0.0, 0.0]", + "[3.8499999999999943, 3.453107141683529, -0.024402082938432976, 0.06852878042088978, 0.08696669090290023, 0.04309357080649873, 0.13812121609123265, 0.0, 0.0]", + "[3.899999999999994, 3.4562250895270994, -0.023477791099682538, 0.07293477460818339, 0.03775253424498672, -0.0061205858514147785, 0.03812121609123262, 0.0, 0.0]", + "[3.949999999999994, 3.4593431027390142, -0.022553433892587557, 0.07234076920574259, 0.08696669090290023, 0.04309357080649872, -0.06187878390876742, 0.0, 0.0]", + "[3.999999999999994, 3.4649218227957936, -0.021629140863897015, 0.07174689420969055, 0.13618084756081375, -0.006120585851414784, 0.038121216091232576, 0.0, 0.0]", + "[4.049999999999994, 3.4705004806709567, -0.023165554659344327, 0.07115289286459683, 0.08696669090290024, -0.05533474250932829, -0.06187878390876748, 0.0, 0.0]", + "[4.099999999999993, 3.476079201172487, -0.024701905828425408, 0.0705590187722501, 0.13618084756081378, -0.006120585851414778, 0.03812121609123253, 0.0, 0.0]", + "[4.149999999999993, 3.4816578562540643, -0.02623832241746007, 0.06996501175076664, 0.08696669090290027, -0.05533474250932828, -0.06187878390876752, 0.0, 0.0]", + "[4.199999999999993, 3.487236579324463, -0.027774671017673655, 0.06937114287819338, 0.13618084756081378, -0.006120585851414777, 0.0381212160912325, 0.0, 0.0]", + "[4.249999999999993, 3.4928152320568904, -0.02685031066463071, 0.06877713108338873, 0.08696669090290024, 0.04309357080649873, -0.06187878390876753, 0.0, 0.0]", + "[4.299999999999993, 3.4983939554023715, -0.025926020924642672, 0.06818326276976859, 0.13618084756081372, -0.0061205858514147785, 0.03812121609123248, 0.0, 0.0]", + "[4.3499999999999925, 3.5039726098417714, -0.027462438155854533, 0.0675892544434224, 0.08696669090290027, -0.05533474250932829, -0.06187878390876756, 0.0, 0.0]", + "[4.399999999999992, 3.5070905553511973, -0.028998786245602193, 0.066995386608083, 0.03775253424498675, -0.006120585851414789, 0.038121216091232445, 0.0, 0.0]", + "[4.449999999999992, 3.5102085720898586, -0.028074425511761328, 0.06640137403952148, 0.08696669090290024, 0.04309357080649871, -0.0618787839087676, 0.0, 0.0]", + "[4.499999999999992, 3.5157872958656537, -0.027150136202087057, 0.0658075066002712, 0.13618084756081378, -0.006120585851414782, 0.038121216091232396, 0.0, 0.0]", + "[4.549999999999992, 3.5213659498236067, -0.02622577707457035, 0.06521349729565702, 0.08696669090290031, 0.04309357080649871, -0.061878783908767644, 0.0, 0.0]", + "[4.599999999999992, 3.5269446719624837, -0.025301486127977453, 0.0646196265302934, 0.13618084756081383, -0.006120585851414792, 0.03812121609123237, 0.0, 0.0]", + "[4.6499999999999915, 3.532523327589641, -0.026837902171431696, 0.06402562061739424, 0.08696669090290036, -0.055334742509328294, -0.06187878390876767, 0.0, 0.0]", + "[4.699999999999991, 3.5356412743363976, -0.028374251498509622, 0.06343175026787937, 0.037752534244986855, -0.006120585851414787, 0.03812121609123234, 0.0, 0.0]", + "[4.749999999999991, 3.538759289784966, -0.02744989205476108, 0.06283774032070243, 0.08696669090290035, 0.04309357080649872, -0.06187878390876773, 0.0, 0.0]", + "[4.799999999999991, 3.544338012290701, -0.026525601475025945, 0.06224387030077017, 0.13618084756081386, -0.006120585851414775, 0.038121216091232285, 0.0, 0.0]", + "[4.849999999999991, 3.5499166674985725, -0.02560124359742739, 0.0666499986747543, 0.08696669090290038, 0.04309357080649873, 0.1381212160912323, 0.0, 0.0]", + "[4.899999999999991, 3.555495389428324, -0.02467695244170927, 0.07105599147417013, 0.13618084756081386, -0.006120585851414773, 0.03812121609123225, 0.0, 0.0]", + "[4.94999999999999, 3.5610740444539895, -0.02621336908665587, 0.07046198433907722, 0.08696669090290035, -0.05533474250932827, -0.0618787839087678, 0.0, 0.0]", + "[4.99999999999999, 3.566652767593121, -0.027749717618135186, 0.06986811560616754, 0.13618084756081383, -0.00612058585141477, 0.0381212160912322, 0.0, 0.0]", + "[5.04999999999999, 3.5722314202437255, -0.02682535718326979, 0.06927410364510493, 0.08696669090290034, 0.043093570806498734, -0.061878783908767866, 0.0, 0.0]", + "[5.09999999999999, 3.5778101436658702, -0.025901067519943817, 0.06868023548725714, 0.13618084756081386, -0.006120585851414777, 0.03812121609123215, 0.0, 0.0]", + "[5.14999999999999, 3.5833887980338632, -0.02743748482256338, 0.06808622701581508, 0.08696669090290039, -0.05533474250932828, -0.06187878390876791, 0.0, 0.0]", + "[5.1999999999999895, 3.586506743458433, -0.028973832827454214, 0.06749235935289934, 0.03775253424498688, -0.006120585851414792, 0.03812121609123209, 0.0, 0.0]", + "[5.249999999999989, 3.589624760295525, -0.028049471995182103, 0.06689834658433183, 0.08696669090290039, 0.04309357080649871, -0.061878783908767956, 0.0, 0.0]", + "[5.299999999999989, 3.5952034841646197, -0.027125182778807242, 0.06630447933465994, 0.13618084756081392, -0.006120585851414798, 0.03812121609123205, 0.0, 0.0]", + "[5.349999999999989, 3.600782138034525, -0.02620082356324246, 0.0657104698511377, 0.0869666909029004, 0.043093570806498706, -0.06187878390876799, 0.0, 0.0]", + "[5.399999999999989, 3.6063608602560815, -0.02527653269932906, 0.06511659925377347, 0.13618084756081392, -0.006120585851414801, 0.038121216091232014, 0.0, 0.0]", + "[5.449999999999989, 3.611939515806041, -0.026812948819981617, 0.06452259318401228, 0.08696669090290043, -0.05533474250932829, -0.06187878390876802, 0.0, 0.0]", + "[5.4999999999999885, 3.617518238240983, -0.028349298055650663, 0.06392872302023436, 0.13618084756081394, -0.006120585851414784, 0.03812121609123199, 0.0, 0.0]", + "[5.549999999999988, 3.6230968917770094, -0.02742493850620707, 0.06833485479130004, 0.08696669090290043, 0.04309357080649871, 0.138121216091232, 0.0, 0.0]", + "[5.599999999999988, 3.626214837159819, -0.02650064912821836, 0.07274084397848411, 0.037752534244986924, -0.006120585851414794, 0.03812121609123195, 0.0, 0.0]", + "[5.649999999999988, 3.629332853110358, -0.02557628918249876, 0.07214683301133427, 0.08696669090290042, 0.043093570806498706, -0.06187878390876808, 0.0, 0.0]", + "[5.699999999999988, 3.63491157598708, -0.02465199897375012, 0.07155296374522271, 0.13618084756081392, -0.0061205858514147855, 0.03812121609123192, 0.0, 0.0]", + "[5.749999999999988, 3.640490230958261, -0.026188415673180636, 0.07095895649942197, 0.08696669090290042, -0.055334742509328294, -0.06187878390876816, 0.0, 0.0]", + "[5.799999999999987, 3.646068954164583, -0.027724764137469896, 0.07036508790303814, 0.13618084756081392, -0.006120585851414791, 0.03812121609123185, 0.0, 0.0]", + "[5.849999999999987, 3.6516476067350148, -0.026800403622430993, 0.0697710757790681, 0.08696669090290045, 0.04309357080649871, -0.0618787839087682, 0.0, 0.0]", + "[5.899999999999987, 3.657226330232192, -0.02587611403413873, 0.06917720777368397, 0.13618084756081397, -0.0061205858514147785, 0.03812121609123181, 0.0, 0.0]", + "[5.949999999999987, 3.66280498453038, -0.027412531406561712, 0.06858319916040582, 0.08696669090290048, -0.05533474250932827, -0.06187878390876823, 0.0, 0.0]", + "[5.999999999999987, 3.6659229298718037, -0.028948879328307083, 0.06798933166643623, 0.03775253424498698, -0.006120585851414773, 0.038121216091231785, 0.0, 0.0]", + "[6.0499999999999865, 3.6690409468055227, -0.02802451839940841, 0.06739531870152977, 0.08696669090290048, 0.04309357080649873, -0.06187878390876827, 0.0, 0.0]", + "[6.099999999999986, 3.674619670766125, -0.027100229274540307, 0.06680145163779373, 0.13618084756081397, -0.006120585851414773, 0.03812121609123173, 0.0, 0.0]", + "[6.149999999999986, 3.6801983245497603, -0.026175869972704758, 0.06620744197897482, 0.08696669090290048, 0.04309357080649873, -0.06187878390876831, 0.0, 0.0]", + "[6.199999999999986, 3.685777046852238, -0.025251579189712502, 0.06561357154603716, 0.13618084756081397, -0.006120585851414761, 0.03812121609123169, 0.0, 0.0]", + "[6.249999999999986, 3.6913557023267343, -0.026787995385827865, 0.0650195653229404, 0.08696669090290045, -0.05533474250932826, -0.06187878390876835, 0.0, 0.0]", + "[6.299999999999986, 3.696934424851239, -0.028324344531934963, 0.06442569534114659, 0.13618084756081394, -0.006120585851414766, 0.03812121609123165, 0.0, 0.0]", + "[6.349999999999985, 3.7025130782835136, -0.027399984878739108, 0.06883182732303016, 0.08696669090290043, 0.04309357080649873, 0.13812121609123165, 0.0, 0.0]", + "[6.399999999999985, 3.7056310235840244, -0.02647569558304795, 0.07323781634299084, 0.037752534244986945, -0.006120585851414772, 0.03812121609123155, 0.0, 0.0]", + "[6.449999999999985, 3.708749039597805, -0.025551335574087522, 0.07264380524733967, 0.08696669090290045, 0.04309357080649873, -0.061878783908768505, 0.0, 0.0]", + "[6.499999999999985, 3.714327762532715, -0.024627045423527415, 0.07204993609946342, 0.13618084756081394, -0.006120585851414796, 0.03812121609123152, 0.0, 0.0]", + "[6.549999999999985, 3.7199064174508183, -0.026163462176036212, 0.071455928745811, 0.08696669090290046, -0.05533474250932831, -0.06187878390876853, 0.0, 0.0]", + "[6.5999999999999845, 3.7254851407228085, -0.027699810574657015, 0.07086206028286123, 0.13618084756081397, -0.006120585851414803, 0.03812121609123148, 0.0, 0.0]", + "[6.649999999999984, 3.731063793214692, -0.026775449981071137, 0.07026804799928874, 0.08696669090290049, 0.0430935708064987, -0.06187878390876859, 0.0, 0.0]", + "[6.699999999999984, 3.736642516785299, -0.025851160466207296, 0.0696741801431064, 0.13618084756081397, -0.0061205858514148115, 0.03812121609123141, 0.0, 0.0]", + "[6.749999999999984, 3.742221171015264, -0.0273875779068531, 0.06908017139120382, 0.08696669090290048, -0.05533474250932832, -0.06187878390876866, 0.0, 0.0]", + "[6.799999999999984, 3.7453391162752303, -0.028923925747140988, 0.06848630406275057, 0.037752534244986966, -0.006120585851414829, 0.03812121609123134, 0.0, 0.0]", + "[6.849999999999984, 3.748457133303793, -0.027999564723397683, 0.06789229090512587, 0.08696669090290046, 0.04309357080649867, -0.061878783908768706, 0.0, 0.0]", + "[6.8999999999999835, 3.754035857354132, -0.0270752756882673, 0.06729842402373105, 0.13618084756081394, -0.006120585851414832, 0.0381212160912313, 0.0, 0.0]", + "[6.949999999999983, 3.759614511053248, -0.02615091630191384, 0.06670441419317721, 0.08696669090290046, 0.043093570806498664, -0.06187878390876874, 0.0, 0.0]", + "[6.999999999999983, 3.765193233434914, -0.025226625598109623, 0.06611054392114456, 0.13618084756081397, -0.006120585851414825, 0.03812121609123126, 0.0, 0.0]", + "[7.049999999999983, 3.7707718888356574, -0.02676304186797829, 0.06551653754818579, 0.08696669090290045, -0.055334742509328336, -0.061878783908768796, 0.0, 0.0]", + "[7.099999999999983, 3.776350611447902, -0.028299390926344894, 0.06492266774467499, 0.13618084756081397, -0.006120585851414827, 0.03812121609123121, 0.0, 0.0]", + "[7.149999999999983, 3.7819292647783413, -0.027375031171314172, 0.06932879993348047, 0.08696669090290043, 0.04309357080649868, 0.13812121609123124, 0.0, 0.0]", + "[7.199999999999982, 3.7850472099982313, -0.026450741956244177, 0.07373478878962413, 0.03775253424498693, -0.006120585851414827, 0.03812121609123116, 0.0, 0.0]", + "[7.249999999999982, 3.788165226073808, -0.025526381885487563, 0.07314077756840708, 0.08696669090290043, 0.04309357080649867, -0.06187878390876891, 0.0, 0.0]", + "[7.299999999999982, 3.7937439490654903, -0.024602091791700167, 0.07254690853588931, 0.13618084756081392, -0.006120585851414825, 0.03812121609123109, 0.0, 0.0]", + "[7.349999999999982, 3.7993226039318984, -0.02613850859590362, 0.07195290107719667, 0.08696669090290043, -0.055334742509328336, -0.061878783908768935, 0.0, 0.0]", + "[7.399999999999982, 3.804901327268058, -0.027674856930355332, 0.07135903274463436, 0.13618084756081394, -0.006120585851414829, 0.03812121609123107, 0.0, 0.0]", + "[7.4499999999999815, 3.8104799796829996, -0.026750496259826895, 0.07076502030471954, 0.08696669090290043, 0.04309357080649867, -0.061878783908768976, 0.0, 0.0]", + "[7.499999999999981, 3.816058703325452, -0.025826206816808906, 0.07017115259452335, 0.13618084756081397, -0.006120585851414817, 0.038121216091231036, 0.0, 0.0]", + "[7.549999999999981, 3.821637357488752, -0.02736262432412023, 0.06957714370716074, 0.08696669090290048, -0.055334742509328315, -0.06187878390876903, 0.0, 0.0]", + "[7.599999999999981, 3.8272160813988676, -0.02889897208461553, 0.06898327654084091, 0.136180847560814, -0.006120585851414829, 0.03812121609123096, 0.0, 0.0]", + "[7.649999999999981, 3.8327947333675083, -0.027974610967786254, 0.06838926319407149, 0.0869666909029005, 0.04309357080649867, -0.0618787839087691, 0.0, 0.0]", + "[7.699999999999981, 3.8383734575058415, -0.027050322020649258, 0.06779539649147355, 0.136180847560814, -0.006120585851414841, 0.03812121609123091, 0.0, 0.0]", + "[7.7499999999999805, 3.8439521111221677, -0.026125962551505337, 0.06720138649269479, 0.08696669090290052, 0.04309357080649867, -0.06187878390876917, 0.0, 0.0]", + "[7.79999999999998, 3.8495308335813148, -0.025201671925182172, 0.06660751637809856, 0.13618084756081403, -0.006120585851414825, 0.03812121609123083, 0.0, 0.0]", + "[7.84999999999998, 3.8551094889099873, -0.026738088267121405, 0.06601350985869704, 0.0869666909029005, -0.05533474250932833, -0.06187878390876921, 0.0, 0.0]", + "[7.89999999999998, 3.8582274353020867, -0.028274437239542555, 0.06541964022982183, 0.03775253424498699, -0.006120585851414829, 0.03812121609123081, 0.0, 0.0]", + "[7.94999999999998, 3.8613454511618803, -0.02735007738456941, 0.06482562944706285, 0.0869666909029005, 0.04309357080649867, -0.06187878390876925, 0.0, 0.0]", + "[7.99999999999998, 3.8669241740576856, -0.026425787194904776, 0.06423176021972868, 0.13618084756081403, -0.006120585851414831, 0.03812121609123076, 0.0, 0.0]", + "[8.04999999999998, 3.872502828897177, -0.02550142894892563, 0.06863788934223843, 0.08696669090290055, 0.043093570806498664, 0.1381212160912308, 0.0, 0.0]", + "[8.09999999999998, 3.875620775773996, -0.02457713807692644, 0.07304388156515558, 0.037752534244987056, -0.006120585851414846, 0.0381212160912307, 0.0, 0.0]", + "[8.14999999999998, 3.8787387900482115, -0.023652779807531114, 0.07244987400418873, 0.08696669090290056, 0.043093570806498664, -0.06187878390876938, 0.0, 0.0]", + "[8.199999999999982, 3.884317511196247, -0.02272848787009656, 0.07185600122549853, 0.13618084756081406, -0.006120585851414834, 0.03812121609123062, 0.0, 0.0]", + "[8.249999999999982, 3.8898961679502353, -0.02426490278671982, 0.07126199760224734, 0.0869666909029006, -0.055334742509328336, -0.06187878390876942, 0.0, 0.0]", + "[8.299999999999983, 3.895474889503113, -0.025801252904454623, 0.07066812564616846, 0.1361808475608141, -0.006120585851414827, 0.03812121609123058, 0.0, 0.0]", + "[8.349999999999984, 3.901053543601281, -0.0273376704768971, 0.07007411662646348, 0.08696669090290057, -0.05533474250932832, -0.06187878390876946, 0.0, 0.0]", + "[8.399999999999984, 3.906632267589547, -0.028874018159241933, 0.06948024961894035, 0.13618084756081406, -0.006120585851414817, 0.03812121609123055, 0.0, 0.0]", + "[8.449999999999985, 3.9122109194668404, -0.02794965695106471, 0.06888623608655776, 0.08696669090290055, 0.04309357080649868, -0.0618787839087695, 0.0, 0.0]", + "[8.499999999999986, 3.917789643691443, -0.02702536809019685, 0.06829236955925314, 0.136180847560814, -0.006120585851414825, 0.03812121609123052, 0.0, 0.0]", + "[8.549999999999986, 3.923368297226686, -0.026101008539968863, 0.06769835939571672, 0.08696669090290046, 0.04309357080649868, -0.06187878390876952, 0.0, 0.0]", + "[8.599999999999987, 3.9289470197616283, -0.025176717989441724, 0.06710448943513318, 0.13618084756081397, -0.006120585851414822, 0.038121216091230495, 0.0, 0.0]", + "[8.649999999999988, 3.9345256750198905, -0.02671313440179171, 0.06651048277266154, 0.08696669090290052, -0.05533474250932833, -0.061878783908769566, 0.0, 0.0]", + "[8.699999999999989, 3.937643621327817, -0.028249483290040144, 0.0659166133148199, 0.03775253424498702, -0.006120585851414815, 0.03812121609123044, 0.0, 0.0]", + "[8.74999999999999, 3.9407616372856835, -0.02732512333699433, 0.06532260233278361, 0.08696669090290052, 0.043093570806498685, -0.0618787839087696, 0.0, 0.0]", + "[8.79999999999999, 3.9463403602743, -0.02640083324014112, 0.06472873329403629, 0.13618084756081403, -0.0061205858514148115, 0.03812121609123041, 0.0, 0.0]", + "[8.84999999999999, 3.9519190150263657, -0.02547647490673672, 0.06913486259418851, 0.08696669090290056, 0.0430935708064987, 0.13812121609123043, 0.0, 0.0]", + "[8.899999999999991, 3.955036961836273, -0.02455218410164988, 0.07354085468114406, 0.037752534244987056, -0.00612058585141481, 0.03812121609123037, 0.0, 0.0]", + "[8.949999999999992, 3.958154976159481, -0.02362782578326258, 0.07294684702062867, 0.08696669090290056, 0.04309357080649869, -0.06187878390876967, 0.0, 0.0]", + "[8.999999999999993, 3.9637336973514565, -0.022703533889768042, 0.0723529743312217, 0.13618084756081406, -0.006120585851414807, 0.038121216091230335, 0.0, 0.0]", + "[9.049999999999994, 3.9693123540665853, -0.02423994884525128, 0.07175897062900949, 0.08696669090290055, -0.055334742509328315, -0.06187878390876971, 0.0, 0.0]", + "[9.099999999999994, 3.9748910756704827, -0.02577629891196485, 0.07116509877660246, 0.13618084756081403, -0.006120585851414806, 0.03812121609123029, 0.0, 0.0]", + "[9.149999999999995, 3.980469729705032, -0.027312716548026885, 0.07057108962762662, 0.08696669090290049, -0.055334742509328315, -0.061878783908769754, 0.0, 0.0]", + "[9.199999999999996, 3.98604845376983, -0.028849064153840757, 0.06997722277560947, 0.13618084756081403, -0.0061205858514148115, 0.038121216091230266, 0.0, 0.0]", + "[9.249999999999996, 3.99162710555749, -0.027924702856030666, 0.06938320906109864, 0.08696669090290052, 0.04309357080649869, -0.061878783908769774, 0.0, 0.0]", + "[9.299999999999997, 3.997205829866662, -0.027000414079732107, 0.06878934270563336, 0.136180847560814, -0.006120585851414817, 0.03812121609123024, 0.0, 0.0]", + "[9.349999999999998, 4.002784483322502, -0.0260760544501014, 0.06819533238075574, 0.08696669090290045, 0.043093570806498685, -0.061878783908769816, 0.0, 0.0]", + "[9.399999999999999, 4.008363205931582, -0.025151763973710967, 0.06760146257081319, 0.13618084756081394, -0.006120585851414825, 0.038121216091230196, 0.0, 0.0]", + "[9.45, 4.013941861121065, -0.026688180454838124, 0.06700745576859074, 0.08696669090290039, -0.05533474250932833, -0.061878783908769865, 0.0, 0.0]", + "[9.5, 4.017059807346566, -0.02822452926066057, 0.06641358647823335, 0.037752534244986896, -0.006120585851414827, 0.038121216091230134, 0.0, 0.0]", + "[9.55, 4.02017782340066, -0.027300169211387247, 0.0658195753006689, 0.0869666909029004, 0.043093570806498685, -0.061878783908769934, 0.0, 0.0]", + "[9.600000000000001, 4.025756546480254, -0.026375879205513163, 0.06522570644678527, 0.13618084756081392, -0.006120585851414817, 0.038121216091230065, 0.0, 0.0]", + "[9.650000000000002, 4.031335201146712, -0.02545152078649938, 0.06963183592089019, 0.08696669090290042, 0.043093570806498685, 0.13812121609123004, 0.0, 0.0]", + "[9.700000000000003, 4.036913923492448, -0.024527230046765915, 0.07403782787505188, 0.13618084756081392, -0.006120585851414825, 0.03812121609122998, 0.0, 0.0]", + "[9.750000000000004, 4.042492578211859, -0.026063646997967663, 0.07344382011766808, 0.08696669090290043, -0.05533474250932832, -0.06187878390877006, 0.0, 0.0]", + "[9.800000000000004, 4.045610523782259, -0.027599995148689046, 0.07284995215843391, 0.03775253424498694, -0.006120585851414822, 0.03812121609122994, 0.0, 0.0]", + "[9.850000000000005, 4.048728540679027, -0.026675634256741493, 0.07225593926860963, 0.08696669090290045, 0.04309357080649868, -0.06187878390877011, 0.0, 0.0]", + "[9.900000000000006, 4.054307264527744, -0.025751345019988756, 0.07166207197753109, 0.13618084756081394, -0.006120585851414817, 0.038121216091229884, 0.0, 0.0]", + "[9.950000000000006, 4.059885918500163, -0.027287762718181358, 0.07106806270230993, 0.0869666909029004, -0.05533474250932832, -0.061878783908770156, 0.0, 0.0]", + "[10.000000000000007, 4.0654646426398955, -0.02882411024906128, 0.07047419600255374, 0.1361808475608139, -0.006120585851414822, 0.038121216091229856, 0.0, 0.0]", + "[10.050000000000008, 4.071043294339616, -0.027899748863311383, 0.06988018210935486, 0.08696669090290042, 0.043093570806498685, -0.061878783908770184, 0.0, 0.0]", + "[10.100000000000009, 4.07662201873168, -0.026975460169905034, 0.06928631592232123, 0.13618084756081394, -0.0061205858514148115, 0.03812121609122984, 0.0, 0.0]", + "[10.15000000000001, 4.082200672109773, -0.026051100462529453, 0.068692305439471, 0.08696669090290043, 0.04309357080649869, -0.06187878390877024, 0.0, 0.0]", + "[10.20000000000001, 4.087779394791355, -0.025126810058640564, 0.06809843577684686, 0.13618084756081397, -0.006120585851414803, 0.038121216091229766, 0.0, 0.0]", + "[10.25000000000001, 4.093358049913671, -0.026663226606936173, 0.06750442883814241, 0.08696669090290045, -0.05533474250932831, -0.06187878390877028, 0.0, 0.0]", + "[10.300000000000011, 4.0964759960584685, -0.028199575332054822, 0.06691055971176993, 0.03775253424498695, -0.006120585851414803, 0.03812121609122972, 0.0, 0.0]", + "[10.350000000000012, 4.099594012206968, -0.02727521518837527, 0.06631654834237809, 0.08696669090290045, 0.0430935708064987, -0.06187878390877032, 0.0, 0.0]", + "[10.400000000000013, 4.105172735375735, -0.026350925271672758, 0.06572267966968535, 0.13618084756081394, -0.0061205858514148115, 0.03812121609122969, 0.0, 0.0]", + "[10.450000000000014, 4.110751389958373, -0.027887342359647176, 0.06512867163438828, 0.08696669090290043, -0.055334742509328315, -0.061878783908770364, 0.0, 0.0]", + "[10.500000000000014, 4.116330113309482, -0.029423690679147785, 0.06453480333220556, 0.13618084756081392, -0.006120585851414803, 0.03812121609122965, 0.0, 0.0]", + "[10.550000000000015, 4.121908765976794, -0.02849933026099011, 0.06894093686844224, 0.0869666909029004, 0.043093570806498706, 0.13812121609122965, 0.0, 0.0]", + "[10.600000000000016, 4.12502671041681, -0.02757504182579514, 0.07334692413992996, 0.037752534244986896, -0.006120585851414799, 0.03812121609122961, 0.0, 0.0]", + "[10.650000000000016, 4.12814472738432, -0.026650680863106187, 0.07275291110636371, 0.08696669090290039, 0.043093570806498706, -0.06187878390877044, 0.0, 0.0]", + "[10.700000000000017, 4.133723451298774, -0.0257263916920913, 0.07215904394886022, 0.13618084756081392, -0.006120585851414798, 0.03812121609122957, 0.0, 0.0]", + "[10.750000000000018, 4.13930210521053, -0.0272628094509478, 0.0715650345503739, 0.0869666909029004, -0.055334742509328294, -0.06187878390877046, 0.0, 0.0]", + "[10.800000000000018, 4.144880829423619, -0.028799156908468532, 0.07097116799967883, 0.1361808475608139, -0.006120585851414791, 0.03812121609122952, 0.0, 0.0]", + "[10.85000000000002, 4.15045948103707, -0.02787479543645007, 0.07037715393118779, 0.08696669090290042, 0.04309357080649871, -0.061878783908770545, 0.0, 0.0]", + "[10.90000000000002, 4.156038205510372, -0.02695050682428139, 0.06978328790922382, 0.13618084756081392, -0.006120585851414792, 0.03812121609122945, 0.0, 0.0]", + "[10.95000000000002, 4.161616858812357, -0.02602614704079556, 0.06918927727172246, 0.08696669090290043, 0.043093570806498706, -0.061878783908770614, 0.0, 0.0]", + "[11.000000000000021, 4.167195581564829, -0.025101856707796983, 0.06859540775314288, 0.13618084756081394, -0.006120585851414801, 0.03812121609122939, 0.0, 0.0]", + "[11.050000000000022, 4.172774236621561, -0.02663827332167686, 0.06800140068117538, 0.08696669090290046, -0.05533474250932831, -0.06187878390877067, 0.0, 0.0]", + "[11.100000000000023, 4.175892182687353, -0.028174621967789613, 0.06740753171533777, 0.03775253424498697, -0.0061205858514148045, 0.03812121609122933, 0.0, 0.0]", + "[11.150000000000023, 4.179010198928461, -0.027250261731501545, 0.06681352015777137, 0.08696669090290048, 0.0430935708064987, -0.06187878390877073, 0.0, 0.0]", + "[11.200000000000024, 4.184588922184617, -0.026325971902187554, 0.06621965166264647, 0.13618084756081397, -0.006120585851414815, 0.038121216091229274, 0.0, 0.0]", + "[11.250000000000025, 4.1901675766852, -0.02786238907221627, 0.06562564346062033, 0.08696669090290049, -0.055334742509328315, -0.061878783908770794, 0.0, 0.0]", + "[11.300000000000026, 4.195746300132334, -0.029398737295694147, 0.0650317753535496, 0.13618084756081397, -0.006120585851414817, 0.038121216091229204, 0.0, 0.0]", + "[11.350000000000026, 4.2013249526896255, -0.028474376767514933, 0.06943790911334295, 0.08696669090290046, 0.043093570806498685, 0.1381212160912292, 0.0, 0.0]", + "[11.400000000000027, 4.206903677428402, -0.027550088420822058, 0.07384389620500006, 0.13618084756081394, -0.006120585851414817, 0.03812121609122912, 0.0, 0.0]", + "[11.450000000000028, 4.21248232948194, -0.026625727388888604, 0.07324988303073345, 0.08696669090290039, 0.043093570806498685, -0.06187878390877093, 0.0, 0.0]", + "[11.500000000000028, 4.2180610534606595, -0.0257014382821397, 0.0726560160038143, 0.1361808475608139, -0.006120585851414817, 0.03812121609122906, 0.0, 0.0]", + "[11.55000000000003, 4.223639707313194, -0.02723785610021595, 0.07206200648499723, 0.08696669090290038, -0.05533474250932833, -0.061878783908771, 0.0, 0.0]", + "[11.60000000000003, 4.226757652118586, -0.028774203485929576, 0.07146814008020953, 0.03775253424498688, -0.006120585851414822, 0.038121216091229, 0.0, 0.0]", + "[11.65000000000003, 4.229875669680045, -0.0278498419292919, 0.07087412583977766, 0.08696669090290038, 0.04309357080649868, -0.06187878390877106, 0.0, 0.0]", + "[11.700000000000031, 4.235454394232952, -0.026925553396728304, 0.07028025997956612, 0.13618084756081386, -0.006120585851414824, 0.03812121609122894, 0.0, 0.0]", + "[11.750000000000032, 4.241033047460437, -0.026001193538744242, 0.06968624919068912, 0.08696669090290036, 0.04309357080649868, -0.06187878390877113, 0.0, 0.0]", + "[11.800000000000033, 4.24661177028221, -0.025076903275047944, 0.0690923798129273, 0.13618084756081386, -0.006120585851414822, 0.03812121609122887, 0.0, 0.0]", + "[11.850000000000033, 4.252190425274917, -0.02661331995295169, 0.06849837261086741, 0.08696669090290039, -0.05533474250932833, -0.06187878390877118, 0.0, 0.0]", + "[11.900000000000034, 4.255308371263378, -0.028149668521732795, 0.0679045038021627, 0.0377525342449869, -0.006120585851414817, 0.03812121609122882, 0.0, 0.0]", + "[11.950000000000035, 4.2584263875953186, -0.02722530819461076, 0.0673104920600275, 0.0869666909029004, 0.04309357080649868, -0.06187878390877124, 0.0, 0.0]", + "[12.000000000000036, 4.264005110937106, -0.0263010184509262, 0.06671662373889607, 0.1361808475608139, -0.006120585851414829, 0.03812121609122876, 0.0, 0.0]", + "[12.050000000000036, 4.269583765357374, -0.02783743570126913, 0.06612261537367657, 0.0869666909029004, -0.055334742509328336, -0.061878783908771294, 0.0, 0.0]", + "[12.100000000000037, 4.2751624888986886, -0.029373783830566203, 0.06552874745797516, 0.13618084756081392, -0.006120585851414848, 0.038121216091228705, 0.0, 0.0]", + "[12.150000000000038, 4.280741141347885, -0.028449423194293517, 0.06493473508766572, 0.0869666909029004, 0.04309357080649866, -0.06187878390877135, 0.0, 0.0]", + "[12.200000000000038, 4.286319865047651, -0.027525133808589643, 0.06434086749392798, 0.13618084756081392, -0.0061205858514148444, 0.03812121609122865, 0.0, 0.0]", + "[12.250000000000039, 4.291898519059423, -0.02660077473488982, 0.06874699829831278, 0.08696669090290042, 0.04309357080649866, 0.13812121609122865, 0.0, 0.0]", + "[12.30000000000004, 4.295016465009864, -0.02567648478926731, 0.073152988638892, 0.03775253424498691, -0.0061205858514148375, 0.038121216091228594, 0.0, 0.0]", + "[12.35000000000004, 4.2981344803054125, -0.02475212549853781, 0.0725589790026397, 0.0869666909029004, 0.04309357080649867, -0.06187878390877146, 0.0, 0.0]", + "[12.400000000000041, 4.303713202502615, -0.02382783461027085, 0.07196510835579044, 0.13618084756081392, -0.006120585851414831, 0.03812121609122854, 0.0, 0.0]", + "[12.450000000000042, 4.309291858178619, -0.02536425060487843, 0.07137110254214435, 0.0869666909029004, -0.055334742509328336, -0.06187878390877153, 0.0, 0.0]", + "[12.500000000000043, 4.3148705807411885, -0.026900599712920012, 0.07077723263769703, 0.13618084756081392, -0.006120585851414836, 0.03812121609122848, 0.0, 0.0]", + "[12.550000000000043, 4.320449233895766, -0.025976239782027188, 0.07018322170067409, 0.08696669090290043, 0.04309357080649867, -0.06187878390877156, 0.0, 0.0]", + "[12.600000000000044, 4.326027956785276, -0.02505194958606828, 0.06958935246055026, 0.13618084756081394, -0.006120585851414825, 0.03812121609122844, 0.0, 0.0]", + "[12.650000000000045, 4.331606611715495, -0.026588366326459178, 0.06899534513152046, 0.08696669090290045, -0.055334742509328336, -0.06187878390877163, 0.0, 0.0]", + "[12.700000000000045, 4.337185334893006, -0.028124714819559284, 0.06840147647659467, 0.13618084756081394, -0.006120585851414831, 0.038121216091228385, 0.0, 0.0]", + "[12.750000000000046, 4.342763987562271, -0.027200354403354204, 0.06780746455344842, 0.08696669090290046, 0.04309357080649867, -0.06187878390877168, 0.0, 0.0]", + "[12.800000000000047, 4.34834271098795, -0.026276064743564857, 0.06721359640278662, 0.136180847560814, -0.006120585851414831, 0.038121216091228316, 0.0, 0.0]", + "[12.850000000000048, 4.35392136532962, -0.027812482072507503, 0.06661958787785754, 0.08696669090290053, -0.055334742509328336, -0.061878783908771724, 0.0, 0.0]", + "[12.900000000000048, 4.357039310786231, -0.02934883010944065, 0.06602572014983367, 0.03775253424498704, -0.006120585851414834, 0.03812121609122828, 0.0, 0.0]", + "[12.950000000000049, 4.360157327533512, -0.02842446936697895, 0.06543170756375495, 0.08696669090290056, 0.04309357080649867, -0.06187878390877178, 0.0, 0.0]", + "[13.00000000000005, 4.365736051334344, -0.02750018008234083, 0.06483784017537633, 0.13618084756081408, -0.0061205858514148375, 0.03812121609122822, 0.0, 0.0]", + "[13.05000000000005, 4.371314705250302, -0.02657582091282894, 0.06924397117444504, 0.08696669090290059, 0.043093570806498664, 0.1381212160912282, 0.0, 0.0]", + "[13.100000000000051, 4.376893428465012, -0.02565153104206994, 0.07364996136290643, 0.13618084756081406, -0.006120585851414836, 0.03812121609122815, 0.0, 0.0]", + "[13.150000000000052, 4.38247208220336, -0.027187948974334162, 0.07305595161206671, 0.08696669090290053, -0.055334742509328336, -0.0618787839087719, 0.0, 0.0]", + "[13.200000000000053, 4.385590026869714, -0.028724296221009162, 0.07246208548979655, 0.03775253424498702, -0.006120585851414834, 0.03812121609122811, 0.0, 0.0]", + "[13.250000000000053, 4.388708044595544, -0.027799934499999016, 0.07186807091537036, 0.08696669090290053, 0.04309357080649867, -0.061878783908771925, 0.0, 0.0]", + "[13.300000000000054, 4.394286769302852, -0.02687564612183557, 0.07127420536888991, 0.136180847560814, -0.006120585851414831, 0.03812121609122809, 0.0, 0.0]", + "[13.350000000000055, 4.399865422386088, -0.025951286119600903, 0.07068019428690488, 0.08696669090290049, 0.04309357080649867, -0.06187878390877196, 0.0, 0.0]", + "[13.400000000000055, 4.405444145341796, -0.02502699598983762, 0.07008632518128628, 0.136180847560814, -0.006120585851414836, 0.03812121609122804, 0.0, 0.0]", + "[13.450000000000056, 4.411022800211041, -0.0265634127912026, 0.06949231772836106, 0.08696669090290045, -0.055334742509328336, -0.061878783908772016, 0.0, 0.0]", + "[13.500000000000057, 4.4166015234626075, -0.028099761210248785, 0.06889844922390811, 0.13618084756081394, -0.006120585851414839, 0.038121216091228, 0.0, 0.0]", + "[13.550000000000058, 4.4221801760445185, -0.027175400706689556, 0.06830443712326384, 0.08696669090290042, 0.043093570806498664, -0.06187878390877204, 0.0, 0.0]", + "[13.600000000000058, 4.427758899552383, -0.026251111129083148, 0.06771056913959249, 0.13618084756081394, -0.006120585851414834, 0.03812121609122796, 0.0, 0.0]", + "[13.650000000000059, 4.433337553817144, -0.027787528534933888, 0.06711656045839108, 0.0869666909029004, -0.05533474250932833, -0.06187878390877207, 0.0, 0.0]", + "[13.70000000000006, 4.436455499183188, -0.0293238764812979, 0.06652269291439783, 0.03775253424498691, -0.006120585851414832, 0.03812121609122794, 0.0, 0.0]", + "[13.75000000000006, 4.439573516034777, -0.028399515634529658, 0.06592868011637491, 0.0869666909029004, 0.04309357080649867, -0.061878783908772106, 0.0, 0.0]", + "[13.800000000000061, 4.4451522399348, -0.027475226449083297, 0.06533481292954753, 0.13618084756081394, -0.006120585851414822, 0.0381212160912279, 0.0, 0.0]", + "[13.850000000000062, 4.450730893756809, -0.026550867185622145, 0.06474080334870275, 0.08696669090290045, 0.043093570806498685, -0.06187878390877214, 0.0, 0.0]", + "[13.900000000000063, 4.456309616043774, -0.0256265763871171, 0.06414693288424389, 0.13618084756081394, -0.006120585851414824, 0.03812121609122787, 0.0, 0.0]", + "[13.950000000000063, 4.461888271510263, -0.02470221876813663, 0.06855306073273254, 0.08696669090290042, 0.04309357080649868, 0.13812121609122785, 0.0, 0.0]", + "[14.000000000000064, 4.4650062190865425, -0.023777927196676894, 0.0729590543769084, 0.037752534244986924, -0.006120585851414836, 0.03812121609122783, 0.0, 0.0]", + "[14.050000000000065, 4.468124232592039, -0.022853569695998648, 0.07236504837792508, 0.08696669090290042, 0.043093570806498664, -0.061878783908772224, 0.0, 0.0]", + "[14.100000000000065, 4.473702952950447, -0.021929276968937508, 0.0717711739947643, 0.13618084756081392, -0.006120585851414829, 0.03812121609122779, 0.0, 0.0]", + "[14.150000000000066, 4.479281610515675, -0.02346569107432127, 0.07117717201989947, 0.08696669090290042, -0.05533474250932833, -0.061878783908772265, 0.0, 0.0]", + "[14.200000000000067, 4.484860331307841, -0.025002041952765768, 0.07058329851810731, 0.13618084756081392, -0.006120585851414824, 0.03812121609122775, 0.0, 0.0]", + "[14.250000000000068, 4.490438986117605, -0.026538458813614555, 0.06998929094431479, 0.08696669090290038, -0.055334742509328315, -0.06187878390877229, 0.0, 0.0]", + "[14.300000000000068, 4.49601770944162, -0.02807480716021108, 0.0693954225870748, 0.13618084756081386, -0.0061205858514148115, 0.0381212160912277, 0.0, 0.0]", + "[14.350000000000069, 4.5015963619378825, -0.027150446571003607, 0.0688014103123988, 0.08696669090290038, 0.04309357080649869, -0.06187878390877235, 0.0, 0.0]", + "[14.40000000000007, 4.5071750855262405, -0.026226157073892038, 0.06820754249228779, 0.1361808475608139, -0.0061205858514148115, 0.03812121609122766, 0.0, 0.0]", + "[14.45000000000007, 4.512753739715761, -0.027762574554984043, 0.06761353365820094, 0.08696669090290035, -0.05533474250932832, -0.06187878390877239, 0.0, 0.0]", + "[14.500000000000071, 4.515871684993004, -0.029298922412549302, 0.06701966629464101, 0.037752534244986834, -0.0061205858514148115, 0.03812121609122762, 0.0, 0.0]", + "[14.550000000000072, 4.518989701947039, -0.028374561463333885, 0.06642565328845201, 0.08696669090290034, 0.043093570806498685, -0.06187878390877244, 0.0, 0.0]", + "[14.600000000000072, 4.524568425944403, -0.027450272375228794, 0.06583178629941581, 0.13618084756081383, -0.00612058585141481, 0.03812121609122755, 0.0, 0.0]", + "[14.650000000000073, 4.530147079674301, -0.026525913019656767, 0.06523777653140768, 0.08696669090290032, 0.04309357080649869, -0.0618787839087725, 0.0, 0.0]", + "[14.700000000000074, 4.535725802048025, -0.025601622307909213, 0.06464390624323449, 0.1361808475608138, -0.006120585851414801, 0.0381212160912275, 0.0, 0.0]", + "[14.750000000000075, 4.541304457433229, -0.027138038593316195, 0.06404989983870268, 0.08696669090290031, -0.055334742509328294, -0.06187878390877254, 0.0, 0.0]", + "[14.800000000000075, 4.5468831800005365, -0.028674387696621253, 0.06345602994387964, 0.1361808475608138, -0.006120585851414794, 0.03812121609122747, 0.0, 0.0]", + "[14.850000000000076, 4.552461833435648, -0.027750028046261657, 0.0678621619199999, 0.08696669090290031, 0.04309357080649871, 0.13812121609122746, 0.0, 0.0]", + "[14.900000000000077, 4.55557977866917, -0.02682573881755849, 0.07226815080384509, 0.0377525342449868, -0.006120585851414794, 0.03812121609122743, 0.0, 0.0]", + "[14.950000000000077, 4.558697794814295, -0.025901378677252708, 0.07167413944130843, 0.0869666909029003, 0.043093570806498706, -0.06187878390877261, 0.0, 0.0]", + "[15.000000000000078, 4.564276517897857, -0.024977088675345302, 0.0710802705954847, 0.1361808475608138, -0.006120585851414794, 0.0381212160912274, 0.0, 0.0]", + "[15.050000000000079, 4.569855172649601, -0.026513505594211194, 0.07048626290380516, 0.0869666909029003, -0.055334742509328294, -0.06187878390877267, 0.0, 0.0]", + "[15.10000000000008, 4.575433896044484, -0.02804985386993884, 0.0698923946905662, 0.13618084756081378, -0.006120585851414784, 0.03812121609122735, 0.0, 0.0]", + "[15.15000000000008, 4.581012548456781, -0.02712549319676599, 0.06929838224527793, 0.08696669090290031, 0.04309357080649871, -0.06187878390877269, 0.0, 0.0]", + "[15.200000000000081, 4.586591272123968, -0.026201203778484967, 0.06870451458534546, 0.13618084756081383, -0.006120585851414796, 0.03812121609122732, 0.0, 0.0]", + "[15.250000000000082, 4.592169926239889, -0.027737621333175973, 0.06811050560171017, 0.08696669090290035, -0.055334742509328294, -0.06187878390877274, 0.0, 0.0]", + "[15.300000000000082, 4.595287871430081, -0.0292739691036889, 0.06751663841503497, 0.03775253424498687, -0.006120585851414799, 0.03812121609122726, 0.0, 0.0]", + "[15.350000000000083, 4.598405888484728, -0.028349608053862628, 0.06692262520441117, 0.08696669090290038, 0.043093570806498706, -0.061878783908772765, 0.0, 0.0]", + "[15.400000000000084, 4.603984612577608, -0.02742531906127231, 0.06632875840945482, 0.13618084756081386, -0.006120585851414801, 0.03812121609122724, 0.0, 0.0]", + "[15.450000000000085, 4.609563266217208, -0.026500959615402844, 0.06573474845796808, 0.08696669090290042, 0.0430935708064987, -0.06187878390877279, 0.0, 0.0]", + "[15.500000000000085, 4.615141954678806, -0.025576634991529887, 0.06514080926253786, 0.13618084756081392, -0.006120585851414798, 0.03812121609122722, 0.0, 0.05000000000000001]" ] }, "type": "simtrace", @@ -346,7 +345,7 @@ "1": { "node_name": "1-0", "id": 1, - "start_line": 346, + "start_line": 345, "parent": { "name": "0-0", "index": 0, @@ -356,19 +355,19 @@ "2-0": { "name": "2-0", "index": 2, - "start_line": 741 + "start_line": 740 }, "2-1": { "name": "2-1", "index": 4, - "start_line": 1567 + "start_line": 1566 } }, "agent": { "test": "<class 'dryvr_plus_plus.example.example_agent.quadrotor_agent.QuadrotorAgent'>" }, "init": { - "test": "[4.615891451472752, -0.029232803072916997, 0.07395439399078536, 0.17043916592411518, -0.025803274500984096, 0.11180897064282795, 1, 0]" + "test": "[4.615141954678806, -0.025576634991529887, 0.06514080926253786, 0.13618084756081392, -0.006120585851414798, 0.03812121609122722, 1, 0]" }, "mode": { "test": "[\"Follow_Waypoint\"]" @@ -376,363 +375,363 @@ "static": { "test": "[]" }, - "start_time": 15.55, + "start_time": 15.5, "trace": { "test": [ - "[15.55, 4.615891451472752, -0.029232803072916997, 0.07395439399078536, 0.17043916592411518, -0.025803274500984096, 0.11180897064282795, 1.0, 0.0]", - "[15.600000000000001, 4.625643763685406, -0.029292612881518354, 0.07704484252292675, 0.21965332258202863, 0.02341088215692938, 0.011808970642827932, 1.0, 0.0]", - "[15.65, 4.637856822172548, -0.02689167641563203, 0.07513521294422638, 0.2688674792399421, 0.07262503881484288, -0.08819102935717212, 1.0, 0.0]", - "[15.700000000000001, 4.652530586117437, -0.02203003449199788, 0.07322573476106191, 0.31808163589785554, 0.12183919547275637, 0.011808970642827904, 1.0, 0.0]", - "[15.75, 4.6696650529995845, -0.014707689631105863, 0.07131611995613024, 0.36729579255576905, 0.17105335213066988, -0.08819102935717217, 1.0, 0.0]", - "[15.8, 4.689260219039781, -0.00492464561216388, 0.06940661419861646, 0.4165099492136825, 0.2202675087885833, 0.01180897064282771, 1.0, 0.0]", - "[15.850000000000001, 4.711316078501547, 0.004858367826184975, 0.06749704630330479, 0.46572410587159596, 0.1710533521306698, -0.08819102935717232, 1.0, 0.0]", - "[15.9, 4.735832645685058, 0.014641397322650601, 0.06558751103705324, 0.5149382625295096, 0.22026750878858328, 0.01180897064282771, 1.0, 0.0]", - "[15.950000000000001, 4.762809934840795, 0.024424396732818286, 0.06867800450100925, 0.5641524191874228, 0.17105335213066977, 0.11180897064282769, 1.0, 0.0]", - "[16.0, 4.792247942546186, 0.031746677593331815, 0.07176838632557223, 0.6133665758453364, 0.12183919547275626, 0.011808970642827639, 1.0, 0.0]", - "[16.05, 4.824146664409619, 0.039069030438135595, 0.06985875529784549, 0.6625807325032498, 0.17105335213066972, -0.0881910293571724, 1.0, 0.0]", - "[16.1, 4.858506097752389, 0.046391301327061284, 0.06794929079919022, 0.7117948891611633, 0.1218391954727562, 0.011808970642827599, 1.0, 0.0]", - "[16.150000000000002, 4.892865443308141, 0.053713660003004204, 0.0710398307396993, 0.6625807325032497, 0.1710533521306697, 0.1118089706428276, 1.0, 0.0]", - "[16.2, 4.924764077426002, 0.06103592510223573, 0.07413018053835135, 0.6133665758453362, 0.12183919547275616, 0.011808970642827543, 1.0, 0.0]", - "[16.25, 4.954202000372171, 0.06835829072197126, 0.07722073458820027, 0.5641524191874226, 0.17105335213066963, 0.11180897064282755, 1.0, 0.0]", - "[16.3, 4.98117921233383, 0.07568054933079328, 0.08031107119875779, 0.514938262529509, 0.12183919547275612, 0.011808970642827495, 1.0, 0.0]", - "[16.35, 5.00569571344665, 0.08300292111808555, 0.07840140168111312, 0.4657241058715954, 0.17105335213066963, -0.08819102935717255, 1.0, 0.0]", - "[16.400000000000002, 5.02775150680192, 0.09278600066293081, 0.07649196810994902, 0.416509949213682, 0.22026750878858314, 0.011808970642827446, 1.0, 0.0]", - "[16.45, 5.047346592499572, 0.10256896433932819, 0.07458229910155352, 0.3672957925557685, 0.17105335213066966, -0.08819102935717257, 1.0, 0.0]", - "[16.5, 5.0644809709021334, 0.10989122072063259, 0.07267286408145125, 0.31808163589785504, 0.12183919547275618, 0.011808970642827432, 1.0, 0.0]", - "[16.55, 5.079154642382823, 0.1172135908084729, 0.07576342721020163, 0.26886747923994153, 0.17105335213066966, 0.11180897064282744, 1.0, 0.0]", - "[16.6, 5.091367603506094, 0.12453584557628036, 0.07885375601606462, 0.21965332258202802, 0.12183919547275615, 0.011808970642827384, 1.0, 0.0]", - "[16.650000000000002, 5.101119854279093, 0.13185822070601896, 0.07694407970678407, 0.17043916592411454, 0.17105335213066963, -0.08819102935717266, 1.0, 0.0]", - "[16.700000000000003, 5.108411398303288, 0.13918047404054035, 0.07503465087754889, 0.12122500926620101, 0.12183919547275611, 0.011808970642827349, 1.0, 0.0]", - "[16.75, 5.1132422356611436, 0.14650284691963367, 0.07312497914143476, 0.07201085260828752, 0.17105335213066963, -0.08819102935717271, 1.0, 0.0]", - "[16.8, 5.115612366419592, 0.1562859263981339, 0.07121554543546194, 0.022796695950373987, 0.22026750878858314, 0.011808970642827293, 1.0, 0.0]", - "[16.85, 5.115521790588969, 0.16606889120942134, 0.07430610920211661, -0.02641746070753951, 0.1710533521306697, 0.11180897064282727, 1.0, 0.0]", - "[16.900000000000002, 5.112970504413671, 0.17339114567603395, 0.07739643739597106, -0.07563161736545301, 0.12183919547275615, 0.01180897064282721, 1.0, 0.0]", - "[16.950000000000003, 5.107958507935753, 0.18071352105931557, 0.07548676057150734, -0.12484577402336654, 0.17105335213066966, -0.08819102935717285, 1.0, 0.0]", - "[17.0, 5.100485804974214, 0.1880357744054806, 0.07357733171861305, -0.17405993068128, 0.12183919547275619, 0.011808970642827155, 1.0, 0.0]", - "[17.05, 5.093013221320834, 0.19535814705980165, 0.0716676604392218, -0.12484577402336651, 0.1710533521306697, -0.0881910293571729, 1.0, 0.0]", - "[17.1, 5.088001344094718, 0.20268040319128117, 0.06975822592674764, -0.07563161736545301, 0.12183919547275622, 0.011808970642827085, 1.0, 0.0]", - "[17.150000000000002, 5.082989353178604, 0.21000277301276088, 0.07284878851427035, -0.12484577402336651, 0.17105335213066974, 0.11180897064282708, 1.0, 0.0]", - "[17.200000000000003, 5.077977476999016, 0.21978585314087407, 0.07593911796455426, -0.075631617365453, 0.22026750878858325, 0.011808970642827002, 1.0, 0.0]", - "[17.25, 5.075426311145127, 0.22956881356591974, 0.07402944234962124, -0.02641746070753952, 0.17105335213066977, -0.08819102935717305, 1.0, 0.0]", - "[17.3, 5.072875024523536, 0.2368910675862382, 0.07212001212689045, -0.07563161736545301, 0.1218391954727563, 0.011808970642826946, 1.0, 0.0]", - "[17.35, 5.07032385578028, 0.24421343948489257, 0.07021034238296514, -0.026417460707539506, 0.1710533521306698, -0.0881910293571731, 1.0, 0.0]", - "[17.400000000000002, 5.070233393396155, 0.25153569644017415, 0.06830090619657807, 0.02279669595037399, 0.12183919547275629, 0.011808970642826919, 1.0, 0.0]", - "[17.450000000000003, 5.0701428190267315, 0.2588580653807525, 0.07139146699416585, -0.026417460707539513, 0.1710533521306698, 0.11180897064282691, 1.0, 0.0]", - "[17.5, 5.070052357642177, 0.2661803213364637, 0.0744817982137726, 0.022796695950373994, 0.12183919547275628, 0.011808970642826842, 1.0, 0.0]", - "[17.55, 5.069961778305882, 0.2735026952439152, 0.07257212438810068, -0.02641746070753951, 0.17105335213066974, -0.08819102935717321, 1.0, 0.0]", - "[17.6, 5.069871317915572, 0.2808249502053818, 0.07066269225301737, 0.022796695950374007, 0.12183919547275622, 0.011808970642826808, 1.0, 0.0]", - "[17.650000000000002, 5.069780741564783, 0.2881473211273286, 0.07375325707661853, -0.0264174607075395, 0.17105335213066974, 0.1118089706428268, 1.0, 0.0]", - "[17.700000000000003, 5.069690282165042, 0.29546957509822663, 0.07684358426321293, 0.022796695950374, 0.12183919547275619, 0.011808970642826752, 1.0, 0.0]", - "[17.75, 5.069599700840555, 0.30279195099387146, 0.07493390639766027, -0.026417460707539513, 0.1710533521306697, -0.0881910293571733, 1.0, 0.0]", - "[17.8, 5.069509242427644, 0.3101142039779391, 0.07302447828052447, 0.02279669595037399, 0.12183919547275618, 0.01180897064282671, 1.0, 0.0]", - "[17.85, 5.0694186641085235, 0.3174365768682165, 0.07611504710364651, -0.026417460707539524, 0.1710533521306697, 0.11180897064282672, 1.0, 0.0]", - "[17.9, 5.069328206680036, 0.324758828867862, 0.07920537028478243, 0.022796695950373987, 0.1218391954727562, 0.011808970642826648, 1.0, 0.0]", - "[17.95, 5.069237623381403, 0.33208120673765246, 0.07729568840789283, -0.026417460707539513, 0.1710533521306697, -0.08819102935717338, 1.0, 0.0]", - "[18.0, 5.0691471669345765, 0.33940345775563474, 0.0753862642857161, 0.022796695950373987, 0.12183919547275614, 0.011808970642826641, 1.0, 0.0]", - "[18.05, 5.069056586656207, 0.3467258326051625, 0.07347658854580597, -0.026417460707539517, 0.17105335213066963, -0.0881910293571734, 1.0, 0.0]", - "[18.1, 5.068966127179135, 0.35404808665338955, 0.07156715826636666, 0.022796695950373987, 0.12183919547275615, 0.011808970642826627, 1.0, 0.0]", - "[18.15, 5.06887554993997, 0.3613704584637108, 0.07465772489508736, -0.02641746070753952, 0.17105335213066966, 0.11180897064282663, 1.0, 0.0]", - "[18.2, 5.068785091437748, 0.3686927115370892, 0.07774805025797948, 0.022796695950373983, 0.12183919547275612, 0.011808970642826565, 1.0, 0.0]", - "[18.25, 5.068694509206672, 0.3760150883393211, 0.07583837055029993, -0.026417460707539517, 0.17105335213066963, -0.08819102935717352, 1.0, 0.0]", - "[18.299999999999997, 5.0686040516777755, 0.3833373404393744, 0.07392894422942456, 0.022796695950373994, 0.12183919547275612, 0.011808970642826502, 1.0, 0.0]", - "[18.349999999999998, 5.068513472494294, 0.39065971419401363, 0.07201927071425723, -0.026417460707539506, 0.17105335213066963, -0.08819102935717354, 1.0, 0.0]", - "[18.4, 5.068423011911013, 0.39798196934845065, 0.07010983818707059, 0.02279669595037399, 0.12183919547275612, 0.01180897064282646, 1.0, 0.0]", - "[18.45, 5.068332435788066, 0.4053043400425531, 0.07320040254770664, -0.026417460707539513, 0.17105335213066963, 0.11180897064282647, 1.0, 0.0]", - "[18.5, 5.068241976174497, 0.4126265942272794, 0.07629073016878603, 0.022796695950373994, 0.12183919547275615, 0.011808970642826398, 1.0, 0.0]", - "[18.549999999999997, 5.068151395049883, 0.41994896992305025, 0.07438105270936418, -0.026417460707539513, 0.1710533521306697, -0.08819102935717366, 1.0, 0.0]", - "[18.599999999999998, 5.068060936405078, 0.4272712231390128, 0.07247162412103282, 0.022796695950373987, 0.12183919547275618, 0.01180897064282635, 1.0, 0.0]", - "[18.65, 5.067970358345918, 0.4345935957693289, 0.07556219241593032, -0.026417460707539517, 0.1710533521306697, 0.11180897064282636, 1.0, 0.0]", - "[18.699999999999996, 5.0678799006697774, 0.4419158480166261, 0.07865251610027844, 0.022796695950373973, 0.12183919547275615, 0.011808970642826315, 1.0, 0.0]", - "[18.749999999999996, 5.067789317606484, 0.4492382256510752, 0.07674283470158749, -0.026417460707539517, 0.17105335213066963, -0.08819102935717371, 1.0, 0.0]", - "[18.799999999999997, 5.067698860898169, 0.4565604769305458, 0.0748334100480833, 0.02279669595037399, 0.12183919547275614, 0.01180897064282628, 1.0, 0.0]", - "[18.849999999999998, 5.067608280904388, 0.4638828514954848, 0.07292373488643908, -0.02641746070753952, 0.17105335213066963, -0.08819102935717377, 1.0, 0.0]", - "[18.9, 5.067517821122315, 0.471205105848714, 0.07101430398725503, 0.022796695950373997, 0.12183919547275612, 0.011808970642826253, 1.0, 0.0]", - "[18.949999999999996, 5.067427244206189, 0.4785274773359947, 0.07410486995957836, -0.02641746070753951, 0.17105335213066963, 0.11180897064282624, 1.0, 0.0]", - "[18.999999999999996, 5.067336785390431, 0.4883105591621476, 0.07719519595955468, 0.022796695950374004, 0.22026750878858312, 0.01180897064282617, 1.0, 0.0]", - "[19.049999999999997, 5.0672462034613694, 0.49809351787499634, 0.07528551686554763, -0.026417460707539493, 0.17105335213066966, -0.08819102935717385, 1.0, 0.0]", - "[19.099999999999994, 5.067155745614688, 0.5054157702928352, 0.07337608989895245, 0.022796695950374014, 0.12183919547275612, 0.01180897064282617, 1.0, 0.0]", - "[19.149999999999995, 5.0670651667647055, 0.5127381437139741, 0.07646665980075125, -0.0264174607075395, 0.17105335213066963, 0.11180897064282619, 1.0, 0.0]", - "[19.199999999999996, 5.06697470988378, 0.5200603951660552, 0.07955698186927189, 0.022796695950373997, 0.12183919547275615, 0.011808970642826148, 1.0, 0.0]", - "[19.249999999999996, 5.066884126020794, 0.5273827736001995, 0.07764729884565173, -0.02641746070753951, 0.17105335213066963, -0.0881910293571739, 1.0, 0.0]", - "[19.299999999999997, 5.066793670105045, 0.5347050240871051, 0.07573787580258874, 0.02279669595037399, 0.12183919547275616, 0.011808970642826093, 1.0, 0.0]", - "[19.349999999999994, 5.066703089325069, 0.5420273994382372, 0.0738281990434504, -0.026417460707539503, 0.17105335213066966, -0.08819102935717393, 1.0, 0.0]", - "[19.399999999999995, 5.066612630323492, 0.5493496530109697, 0.07191876973018567, 0.022796695950374, 0.12183919547275615, 0.011808970642826058, 1.0, 0.0]", - "[19.449999999999996, 5.066522052631955, 0.5566720252736639, 0.0750093372780991, -0.026417460707539503, 0.17105335213066966, 0.11180897064282608, 1.0, 0.0]", - "[19.499999999999993, 5.066431594595018, 0.5639942778817578, 0.0780996616955635, 0.022796695950374, 0.12183919547275612, 0.01180897064282601, 1.0, 0.0]", - "[19.549999999999994, 5.066341011885555, 0.5713166551623761, 0.07618998101583357, -0.026417460707539496, 0.1710533521306696, -0.08819102935717402, 1.0, 0.0]", - "[19.599999999999994, 5.066250554812764, 0.5786389068063246, 0.07428055562173386, 0.022796695950374, 0.1218391954727561, 0.011808970642825989, 1.0, 0.0]", - "[19.649999999999995, 5.066159975193032, 0.5859612809972117, 0.07237088122013932, -0.026417460707539496, 0.1710533521306696, -0.08819102935717404, 1.0, 0.0]", - "[19.699999999999996, 5.066069515028301, 0.5932835357330981, 0.07046144954342054, 0.022796695950374004, 0.1218391954727561, 0.011808970642825975, 1.0, 0.0]", - "[19.749999999999993, 5.065978938502564, 0.6006059068299908, 0.07355201472250048, -0.026417460707539493, 0.1710533521306696, 0.111808970642826, 1.0, 0.0]", - "[19.799999999999994, 5.065888479301796, 0.6079281606019153, 0.07664234150479324, 0.022796695950374014, 0.12183919547275607, 0.011808970642825933, 1.0, 0.0]", - "[19.849999999999994, 5.065797897754138, 0.6152505367207299, 0.07473266318577351, -0.026417460707539493, 0.1710533521306696, -0.0881910293571741, 1.0, 0.0]", - "[19.89999999999999, 5.06570743951689, 0.6225727895291335, 0.0728232354255758, 0.022796695950374014, 0.12183919547275611, 0.011808970642825906, 1.0, 0.0]", - "[19.949999999999992, 5.065616861064039, 0.6298951625531419, 0.07591380452043081, -0.026417460707539493, 0.17105335213066963, 0.11180897064282594, 1.0, 0.0]", - "[19.999999999999993, 5.065526403790669, 0.6372174143976683, 0.07900412738637501, 0.022796695950374004, 0.12183919547275616, 0.011808970642825892, 1.0, 0.0]", - "[20.049999999999994, 5.065435820315309, 0.6445397924441844, 0.07709444515038978, -0.0264174607075395, 0.17105335213066963, -0.08819102935717416, 1.0, 0.0]", - "[20.099999999999994, 5.065345364005368, 0.6518620433252812, 0.07518502130635535, 0.02279669595037401, 0.12183919547275615, 0.011808970642825836, 1.0, 0.0]", - "[20.14999999999999, 5.0652547836255355, 0.6591844182762705, 0.07327534536028196, -0.026417460707539496, 0.17105335213066963, -0.08819102935717424, 1.0, 0.0]", - "[20.199999999999992, 5.065164324218424, 0.6665066722545384, 0.07136591522299504, 0.022796695950374, 0.12183919547275615, 0.01180897064282578, 1.0, 0.0]", - "[20.249999999999993, 5.065073746937307, 0.6738290441068129, 0.07445648193696207, -0.026417460707539513, 0.17105335213066966, 0.1118089706428258, 1.0, 0.0]", - "[20.29999999999999, 5.064983288493713, 0.6836121263051295, 0.07754680718072578, 0.022796695950373987, 0.22026750878858314, 0.011808970642825746, 1.0, 0.0]", - "[20.34999999999999, 5.064892706186306, 0.6933950846396335, 0.07563712731794647, -0.026417460707539513, 0.1710533521306697, -0.08819102935717432, 1.0, 0.0]", - "[20.39999999999999, 5.064802248707082, 0.7007173366900155, 0.07372770109799963, 0.02279669595037399, 0.12183919547275619, 0.011808970642825656, 1.0, 0.0]", - "[20.449999999999992, 5.064711669498404, 0.7080397104698484, 0.07181802753164077, -0.026417460707539506, 0.1710533521306697, -0.08819102935717438, 1.0, 0.0]", - "[20.499999999999993, 5.064621208918423, 0.7153619656209858, 0.06990859501115837, 0.02279669595037399, 0.12183919547275622, 0.011808970642825628, 1.0, 0.0]", - "[20.54999999999999, 5.064530632811749, 0.7226843362988162, 0.07299915933873098, -0.026417460707539513, 0.17105335213066974, 0.11180897064282563, 1.0, 0.0]", - "[20.59999999999999, 5.064440173195061, 0.7300065904866607, 0.07608948696614645, 0.022796695950373994, 0.12183919547275626, 0.011808970642825566, 1.0, 0.0]", - "[20.64999999999999, 5.064349592060057, 0.7373289661928201, 0.07417980948561587, -0.026417460707539513, 0.17105335213066977, -0.08819102935717452, 1.0, 0.0]", - "[20.69999999999999, 5.064259133406261, 0.7446512194177728, 0.07227038087901703, 0.022796695950373987, 0.12183919547275623, 0.01180897064282549, 1.0, 0.0]", - "[20.74999999999999, 5.064168555373506, 0.7519735920216835, 0.07536094912026026, -0.026417460707539524, 0.1710533521306698, 0.1118089706428255, 1.0, 0.0]", - "[20.79999999999999, 5.06407809768299, 0.7592958442833558, 0.07845127283381773, 0.022796695950373976, 0.12183919547275636, 0.011808970642825427, 1.0, 0.0]", - "[20.84999999999999, 5.06398751462171, 0.7666182219157917, 0.07654159143921724, -0.026417460707539524, 0.17105335213066988, -0.08819102935717466, 1.0, 0.0]", - "[20.89999999999999, 5.063897057894063, 0.7739404732145967, 0.0746321667464265, 0.022796695950373983, 0.12183919547275636, 0.01180897064282535, 1.0, 0.0]", - "[20.94999999999999, 5.063806477935255, 0.7812628477445602, 0.07272249165585037, -0.026417460707539513, 0.17105335213066986, -0.08819102935717471, 1.0, 0.0]", - "[20.99999999999999, 5.063716018104088, 0.7885851021468836, 0.07081306065691041, 0.02279669595037399, 0.12183919547275636, 0.011808970642825309, 1.0, 0.0]", - "[21.04999999999999, 5.063625441249792, 0.7959074735723367, 0.07390362650360383, -0.026417460707539513, 0.1710533521306699, 0.1118089706428253, 1.0, 0.0]", - "[21.099999999999987, 5.063534982381805, 0.8032297270114805, 0.0769939526097075, 0.022796695950373994, 0.1218391954727564, 0.011808970642825253, 1.0, 0.0]", - "[21.149999999999988, 5.06344440049697, 0.8105521034674716, 0.0750842736055675, -0.026417460707539506, 0.1710533521306699, -0.0881910293571748, 1.0, 0.0]", - "[21.19999999999999, 5.063353942591762, 0.8178743559438371, 0.07317484652004959, 0.022796695950374004, 0.12183919547275641, 0.011808970642825198, 1.0, 0.0]", - "[21.24999999999999, 5.063263363811551, 0.8251967292952046, 0.07626541628007723, -0.0264174607075395, 0.1710533521306699, 0.11180897064282522, 1.0, 0.0]", - "[21.29999999999999, 5.063172906869518, 0.8325189808083934, 0.07935573847276442, 0.022796695950373997, 0.12183919547275643, 0.011808970642825177, 1.0, 0.0]", - "[21.349999999999987, 5.06308232305868, 0.8398413591903876, 0.07744605555510924, -0.0264174607075395, 0.17105335213066988, -0.08819102935717485, 1.0, 0.0]", - "[21.399999999999988, 5.06299186707941, 0.8471636097408134, 0.0755366323829767, 0.022796695950373997, 0.12183919547275635, 0.011808970642825128, 1.0, 0.0]", - "[21.44999999999999, 5.062901286373299, 0.8544859850180816, 0.07362695577392536, -0.026417460707539506, 0.17105335213066983, -0.0881910293571749, 1.0, 0.0]", - "[21.499999999999986, 5.062810827288455, 0.8618082386740822, 0.0717175262914649, 0.022796695950373994, 0.12183919547275635, 0.011808970642825115, 1.0, 0.0]", - "[21.549999999999986, 5.062720249688728, 0.8691306108449658, 0.0748080936528254, -0.026417460707539506, 0.17105335213066983, 0.1118089706428251, 1.0, 0.0]", - "[21.599999999999987, 5.062629791567017, 0.8789136933651648, 0.07789841824254459, 0.022796695950373994, 0.2202675087885833, 0.011808970642825073, 1.0, 0.0]", - "[21.649999999999988, 5.062539208934679, 0.8886966513747374, 0.07598873771952577, -0.026417460707539506, 0.17105335213066983, -0.08819102935717499, 1.0, 0.0]", - "[21.69999999999999, 5.062448751776309, 0.8960189031042656, 0.0740793121515333, 0.02279669595037399, 0.12183919547275635, 0.011808970642825017, 1.0, 0.0]", - "[21.749999999999986, 5.062358172250175, 0.903341277201557, 0.07216963794011888, -0.026417460707539506, 0.17105335213066986, -0.08819102935717502, 1.0, 0.0]", - "[21.799999999999986, 5.0622677119845445, 0.9106635320383417, 0.07026020605838093, 0.022796695950373994, 0.1218391954727564, 0.011808970642825004, 1.0, 0.0]", - "[21.849999999999987, 5.062177135566353, 0.9179859030276895, 0.07335077101893597, -0.026417460707539503, 0.17105335213066988, 0.111808970642825, 1.0, 0.0]", - "[21.899999999999984, 5.062086676263846, 0.9253081569013533, 0.07644109800795644, 0.022796695950374004, 0.1218391954727564, 0.011808970642824955, 1.0, 0.0]", - "[21.949999999999985, 5.061996094811867, 0.9326305329244882, 0.0745314198833521, -0.026417460707539496, 0.1710533521306699, -0.0881910293571751, 1.0, 0.0]", - "[21.999999999999986, 5.061905636472084, 0.9399527858354277, 0.07262199191480824, 0.022796695950374018, 0.12183919547275641, 0.01180897064282492, 1.0, 0.0]", - "[22.049999999999986, 5.061815058128029, 0.9472751587506393, 0.07571256078859462, -0.02641746070753949, 0.1710533521306699, 0.11180897064282494, 1.0, 0.0]", - "[22.099999999999987, 5.0617246007513685, 0.954597410698456, 0.07880288386441776, 0.022796695950374014, 0.12183919547275637, 0.011808970642824879, 1.0, 0.0]", - "[22.149999999999984, 5.061634017373558, 0.9619197886474241, 0.07689320182664394, -0.026417460707539493, 0.17105335213066988, -0.08819102935717518, 1.0, 0.0]", - "[22.199999999999985, 5.0615435609596116, 0.9692420396325278, 0.07498377777127456, 0.022796695950374007, 0.12183919547275641, 0.01180897064282481, 1.0, 0.0]", - "[22.249999999999986, 5.061452980689703, 0.9765644144735931, 0.07307410204855941, -0.02641746070753949, 0.1710533521306699, -0.08819102935717524, 1.0, 0.0]", - "[22.299999999999983, 5.061362521167251, 0.983886668567202, 0.07116467167690736, 0.022796695950374014, 0.1218391954727564, 0.011808970642824754, 1.0, 0.0]", - "[22.349999999999984, 5.061271944006427, 0.9912090402991818, 0.07425523814644336, -0.02641746070753949, 0.1710533521306699, 0.11180897064282475, 1.0, 0.0]", - "[22.399999999999984, 5.061181485447109, 0.998531293429658, 0.0773455636253545, 0.022796695950374018, 0.12183919547275641, 0.011808970642824677, 1.0, 0.0]", - "[22.449999999999985, 5.061090903251355, 1.0058536701965668, 0.07543588398944864, -0.02641746070753948, 0.17105335213066988, -0.0881910293571754, 1.0, 0.0]", - "[22.499999999999986, 5.0610004456547655, 1.0131759223643124, 0.07352645753102657, 0.022796695950374025, 0.1218391954727564, 0.01180897064282458, 1.0, 0.0]", - "[22.549999999999983, 5.060909866568046, 1.020498296022188, 0.07161678421247673, -0.02641746070753948, 0.17105335213066988, -0.08819102935717546, 1.0, 0.0]", - "[22.599999999999984, 5.060819405861898, 1.0278205512994936, 0.06970735143562966, 0.022796695950374028, 0.12183919547275635, 0.011808970642824552, 1.0, 0.0]", - "[22.649999999999984, 5.060728829885249, 1.0351429218473012, 0.0727979154990039, -0.02641746070753948, 0.1710533521306698, 0.11180897064282458, 1.0, 0.0]", - "[22.69999999999998, 5.0606383701422555, 1.0424651761614514, 0.07588824338306459, 0.022796695950374028, 0.1218391954727563, 0.011808970642824525, 1.0, 0.0]", - "[22.749999999999982, 5.060547789129653, 1.0497875517452109, 0.07397856615124254, -0.026417460707539475, 0.1710533521306698, -0.08819102935717552, 1.0, 0.0]", - "[22.799999999999983, 5.060457330349419, 1.057109805096601, 0.07206913728773094, 0.02279669595037402, 0.12183919547275635, 0.01180897064282449, 1.0, 0.0]", - "[22.849999999999984, 5.0603667524468126, 1.0644321775703667, 0.0751597052645272, -0.02641746070753947, 0.17105335213066986, 0.1118089706428245, 1.0, 0.0]", - "[22.899999999999984, 5.060276294629734, 1.071754429958602, 0.07825002923525276, 0.02279669595037403, 0.12183919547275635, 0.011808970642824441, 1.0, 0.0]", - "[22.94999999999998, 5.060185711691258, 1.0790768074682338, 0.07634034809018295, -0.02641746070753946, 0.17105335213066983, -0.0881910293571756, 1.0, 0.0]", - "[22.999999999999982, 5.0600952548369245, 1.0863990588937218, 0.0744309231399802, 0.02279669595037403, 0.12183919547275637, 0.011808970642824393, 1.0, 0.0]", - "[23.049999999999983, 5.060004675008371, 1.0937214332934304, 0.07252124831407358, -0.026417460707539468, 0.17105335213066986, -0.08819102935717565, 1.0, 0.0]", - "[23.09999999999998, 5.059914215043666, 1.1010436878292944, 0.07061181704378755, 0.022796695950374042, 0.1218391954727564, 0.011808970642824351, 1.0, 0.0]", - "[23.14999999999998, 5.059823638325928, 1.1083660591181872, 0.07370238261299922, -0.026417460707539454, 0.1710533521306699, 0.11180897064282436, 1.0, 0.0]", - "[23.19999999999998, 5.059733179324404, 1.1181491407585742, 0.07679270899044065, 0.022796695950374053, 0.22026750878858342, 0.011808970642824303, 1.0, 0.0]", - "[23.249999999999982, 5.0596425975697645, 1.1279320996458455, 0.0748830302508497, -0.026417460707539447, 0.17105335213066994, -0.08819102935717577, 1.0, 0.0]", - "[23.299999999999983, 5.059552139531309, 1.135254352255457, 0.0729736028945854, 0.022796695950374042, 0.12183919547275643, 0.011808970642824226, 1.0, 0.0]", - "[23.34999999999998, 5.059461560887298, 1.142576725470624, 0.07606417237786232, -0.02641746070753946, 0.17105335213066994, 0.11180897064282422, 1.0, 0.0]", - "[23.39999999999998, 5.059371103812028, 1.1498989771170507, 0.0791544948412801, 0.02279669595037403, 0.12183919547275643, 0.011808970642824192, 1.0, 0.0]", - "[23.44999999999998, 5.0592805201313125, 1.1572213553689217, 0.07724481218802755, -0.026417460707539465, 0.17105335213066994, -0.08819102935717588, 1.0, 0.0]", - "[23.49999999999998, 5.0591900640188125, 1.1645436060525773, 0.07533538874518157, 0.022796695950374035, 0.12183919547275646, 0.011808970642824157, 1.0, 0.0]", - "[23.54999999999998, 5.059099483448799, 1.1718659811937469, 0.07342571241267375, -0.02641746070753947, 0.17105335213066994, -0.08819102935717593, 1.0, 0.0]", - "[23.59999999999998, 5.059009024225208, 1.1791882349884941, 0.07151628264828937, 0.022796695950374025, 0.12183919547275641, 0.011808970642824046, 1.0, 0.0]", - "[23.64999999999998, 5.058918446766668, 1.1865106070181903, 0.0746068497227656, -0.026417460707539475, 0.17105335213066994, 0.11180897064282405, 1.0, 0.0]", - "[23.69999999999998, 5.058827988506295, 1.1938328598497203, 0.07769717459423778, 0.022796695950374028, 0.12183919547275643, 0.011808970642823984, 1.0, 0.0]", - "[23.749999999999982, 5.058737406010295, 1.2011552369168752, 0.07578749434825105, -0.026417460707539468, 0.17105335213066994, -0.08819102935717604, 1.0, 0.0]", - "[23.799999999999983, 5.058646948712731, 1.2084774887855947, 0.07387806849743085, 0.022796695950374025, 0.12183919547275647, 0.011808970642823963, 1.0, 0.0]", - "[23.849999999999984, 5.061017197692386, 1.2157998627413695, 0.0719683945735697, 0.07201085260828755, 0.17105335213066997, -0.08819102935717607, 1.0, 0.0]", - "[23.899999999999984, 5.063387327696715, 1.2231221177218172, 0.07005896239991849, 0.022796695950374042, 0.12183919547275646, 0.011808970642823935, 1.0, 0.0]", - "[23.949999999999985, 5.063296751424164, 1.2304444885655232, 0.07314952706453873, -0.026417460707539465, 0.17105335213066997, 0.11180897064282394, 1.0, 0.0]", - "[23.999999999999986, 5.063206291978127, 1.2377667425827175, 0.07623985434520414, 0.022796695950374025, 0.1218391954727565, 0.011808970642823886, 1.0, 0.0]", - "[24.049999999999986, 5.0631157106674465, 1.2450891184645543, 0.0743301765077082, -0.026417460707539482, 0.17105335213067, -0.08819102935717615, 1.0, 0.0]", - "[24.099999999999987, 5.063025252184262, 1.252411371518896, 0.07242074824778015, 0.022796695950374025, 0.12183919547275651, 0.011808970642823838, 1.0, 0.0]", - "[24.149999999999988, 5.0629346739855565, 1.2597337442887593, 0.07551131682622884, -0.026417460707539486, 0.17105335213067002, 0.11180897064282383, 1.0, 0.0]", - "[24.19999999999999, 5.062844216465619, 1.267055996379853, 0.07860164019318171, 0.02279669595037402, 0.12183919547275651, 0.011808970642823775, 1.0, 0.0]", - "[24.24999999999999, 5.0627536332289, 1.27437837418773, 0.07669195844209581, -0.026417460707539482, 0.17105335213067002, -0.08819102935717629, 1.0, 0.0]", - "[24.29999999999999, 5.0626631766717995, 1.2817006253159873, 0.07478253409584681, 0.022796695950374025, 0.12183919547275651, 0.011808970642823727, 1.0, 0.0]", - "[24.34999999999999, 5.062572596546957, 1.289023000011987, 0.07287285866789588, -0.02641746070753948, 0.17105335213067, -0.08819102935717635, 1.0, 0.0]", - "[24.39999999999999, 5.062482136877669, 1.2963452542524312, 0.07096342799788397, 0.022796695950374025, 0.12183919547275648, 0.01180897064282365, 1.0, 0.0]", - "[24.449999999999992, 5.062391559865316, 1.3036676258359392, 0.074053994165735, -0.026417460707539475, 0.17105335213066997, 0.11180897064282364, 1.0, 0.0]", - "[24.499999999999993, 5.062301101159312, 1.3134507077718445, 0.07714431994270131, 0.022796695950374018, 0.22026750878858348, 0.011808970642823595, 1.0, 0.0]", - "[24.549999999999994, 5.062210519108254, 1.3232336663626985, 0.07523464060080819, -0.02641746070753948, 0.17105335213067002, -0.08819102935717643, 1.0, 0.0]", - "[24.599999999999994, 5.062120061365305, 1.3305559186768023, 0.07332521384499578, 0.022796695950374028, 0.12183919547275648, 0.011808970642823602, 1.0, 0.0]", - "[24.649999999999995, 5.062029482426575, 1.3378782921866879, 0.07641578392712203, -0.026417460707539475, 0.17105335213067002, 0.11180897064282361, 1.0, 0.0]", - "[24.699999999999996, 5.061939025646908, 1.3452005435375114, 0.07950610578989327, 0.022796695950374025, 0.12183919547275653, 0.011808970642823567, 1.0, 0.0]", - "[24.749999999999996, 5.061848441669655, 1.3525229220859218, 0.07759642253409157, -0.026417460707539482, 0.17105335213067005, -0.08819102935717649, 1.0, 0.0]", - "[24.799999999999997, 5.061757985852851, 1.3598451724738823, 0.07568699969207916, 0.02279669595037402, 0.12183919547275651, 0.011808970642823532, 1.0, 0.0]", - "[24.849999999999998, 5.061667404987927, 1.3671675479099639, 0.07377732276032921, -0.02641746070753949, 0.17105335213067, -0.08819102935717654, 1.0, 0.0]", - "[24.9, 5.061576946058521, 1.374489801410527, 0.07186789359370811, 0.022796695950374007, 0.12183919547275651, 0.011808970642823477, 1.0, 0.0]", - "[24.95, 5.061486368306469, 1.3818121737337337, 0.07495846126457924, -0.026417460707539503, 0.17105335213067005, 0.1118089706428235, 1.0, 0.0]", - "[25.0, 5.061395910340376, 1.3891344262709826, 0.07804878553809037, 0.022796695950373997, 0.12183919547275654, 0.011808970642823442, 1.0, 0.0]", - "[25.05, 5.0613053275492765, 1.3964568036332374, 0.07613910469248066, -0.026417460707539496, 0.17105335213067005, -0.0881910293571766, 1.0, 0.0]", - "[25.1, 5.061214870546089, 1.4037790552075815, 0.07422967943981211, 0.022796695950374, 0.1218391954727566, 0.011808970642823394, 1.0, 0.0]", - "[25.150000000000002, 5.061124290867767, 1.4111014294570594, 0.07232000491916356, -0.0264174607075395, 0.17105335213067008, -0.08819102935717665, 1.0, 0.0]", - "[25.200000000000003, 5.061033830751555, 1.418423684144428, 0.0704105733410293, 0.022796695950374, 0.1218391954727566, 0.011808970642823366, 1.0, 0.0]", - "[25.250000000000004, 5.060943254186505, 1.4257460552806345, 0.07350113859999186, -0.0264174607075395, 0.17105335213067005, 0.11180897064282339, 1.0, 0.0]", - "[25.300000000000004, 5.0608527950336395, 1.4330683090046559, 0.07659146528494816, 0.022796695950374007, 0.12183919547275651, 0.01180897064282331, 1.0, 0.0]", - "[25.350000000000005, 5.06076221342907, 1.440390685180381, 0.07468178685028928, -0.026417460707539493, 0.17105335213067, -0.08819102935717674, 1.0, 0.0]", - "[25.400000000000006, 5.060671755239152, 1.4477129379414562, 0.0727723591862587, 0.022796695950374004, 0.12183919547275653, 0.011808970642823297, 1.0, 0.0]", - "[25.450000000000006, 5.060581176747756, 1.4550353110040084, 0.07586292835943208, -0.0264174607075395, 0.17105335213067, 0.1118089706428233, 1.0, 0.0]", - "[25.500000000000007, 5.060490719521178, 1.4623575628017424, 0.07895325113029708, 0.02279669595037401, 0.12183919547275644, 0.011808970642823262, 1.0, 0.0]", - "[25.550000000000008, 5.060400135990386, 1.469679940903691, 0.07704356878167654, -0.026417460707539486, 0.17105335213066994, -0.08819102935717679, 1.0, 0.0]", - "[25.60000000000001, 5.0603096797267355, 1.4770021917384983, 0.0751341450316992, 0.02279669595037402, 0.12183919547275643, 0.011808970642823213, 1.0, 0.0]", - "[25.65000000000001, 5.06021909930902, 1.4843245667273706, 0.07322446900864954, -0.02641746070753948, 0.17105335213066994, -0.08819102935717682, 1.0, 0.0]", - "[25.70000000000001, 5.060128639932067, 1.4916468206754794, 0.07131503893264425, 0.022796695950374018, 0.12183919547275639, 0.011808970642823186, 1.0, 0.0]", - "[25.75000000000001, 5.060038062627878, 1.4989691925508253, 0.07440560569349046, -0.02641746070753948, 0.17105335213066988, 0.11180897064282319, 1.0, 0.0]", - "[25.80000000000001, 5.059947604214299, 1.5087522747791573, 0.07749593087626508, 0.022796695950374014, 0.22026750878858337, 0.01180897064282311, 1.0, 0.0]", - "[25.850000000000012, 5.059857021870222, 1.5185352330769915, 0.07558625093897393, -0.026417460707539503, 0.17105335213066988, -0.08819102935717699, 1.0, 0.0]", - "[25.900000000000013, 5.059766564419729, 1.52585748509864, 0.07367682477741205, 0.022796695950374004, 0.12183919547275635, 0.011808970642823033, 1.0, 0.0]", - "[25.950000000000014, 5.059675985189038, 1.5331798589004866, 0.07176715116632149, -0.026417460707539503, 0.17105335213066986, -0.08819102935717699, 1.0, 0.0]", - "[26.000000000000014, 5.059585524624891, 1.5405021140357904, 0.06985771867801156, 0.022796695950374, 0.12183919547275637, 0.011808970642823047, 1.0, 0.0]", - "[26.050000000000015, 5.059494948508062, 1.5478244847237765, 0.07294828302621964, -0.0264174607075395, 0.17105335213066988, 0.11180897064282305, 1.0, 0.0]", - "[26.100000000000016, 5.059404488907321, 1.5551467388956741, 0.07603861062123174, 0.022796695950373997, 0.12183919547275641, 0.011808970642823019, 1.0, 0.0]", - "[26.150000000000016, 5.05931390775026, 1.5624691146238905, 0.07412893309588281, -0.0264174607075395, 0.17105335213066994, -0.08819102935717701, 1.0, 0.0]", - "[26.200000000000017, 5.059223449112527, 1.5697913678327808, 0.07221950452192132, 0.022796695950374004, 0.12183919547275643, 0.011808970642822991, 1.0, 0.0]", - "[26.250000000000018, 5.059132871069232, 1.577113740447231, 0.07531007278458075, -0.0264174607075395, 0.17105335213066994, 0.111808970642823, 1.0, 0.0]", - "[26.30000000000002, 5.059042413394896, 1.5844359926927218, 0.07840039646525859, 0.022796695950374007, 0.12183919547275646, 0.011808970642822943, 1.0, 0.0]", - "[26.35000000000002, 5.058951830311493, 1.5917583703472815, 0.07649071502570408, -0.026417460707539486, 0.1710533521306699, -0.0881910293571771, 1.0, 0.0]", - "[26.40000000000002, 5.058861373600147, 1.5990806216297846, 0.0745812903660369, 0.02279669595037401, 0.12183919547275644, 0.011808970642822908, 1.0, 0.0]", - "[26.45000000000002, 5.058770793630416, 1.606402996170672, 0.07267161525326377, -0.026417460707539496, 0.17105335213066994, -0.08819102935717715, 1.0, 0.0]", - "[26.50000000000002, 5.05868033380521, 1.6137252505670345, 0.07076218426643625, 0.02279669595037401, 0.12183919547275647, 0.011808970642822866, 1.0, 0.0]", - "[26.550000000000022, 5.0585897569495275, 1.621047621993874, 0.07385275011594764, -0.026417460707539493, 0.17105335213067, 0.11180897064282289, 1.0, 0.0]", - "[26.600000000000023, 5.0584992980877495, 1.6283698754268077, 0.07694307620943201, 0.022796695950374004, 0.12183919547275651, 0.011808970642822846, 1.0, 0.0]", - "[26.650000000000023, 5.060869549578927, 1.6356922518941053, 0.07503339718231729, 0.07201085260828749, 0.17105335213067, -0.08819102935717718, 1.0, 0.0]", - "[26.700000000000024, 5.063239677072714, 1.6430145043640125, 0.07312397010992187, 0.022796695950373976, 0.12183919547275653, 0.011808970642822825, 1.0, 0.0]", - "[26.750000000000025, 5.063149098290526, 1.650336877717358, 0.07621453987396795, -0.026417460707539524, 0.17105335213067002, 0.11180897064282283, 1.0, 0.0]", - "[26.800000000000026, 5.063058641355198, 1.657659129223842, 0.0793048620530312, 0.022796695950373976, 0.1218391954727565, 0.011808970642822797, 1.0, 0.0]", - "[26.850000000000026, 5.062968057532669, 1.664981507617527, 0.07739517911162096, -0.02641746070753952, 0.17105335213067, -0.08819102935717724, 1.0, 0.0]", - "[26.900000000000027, 5.062877601560345, 1.672303758161006, 0.07548575595360346, 0.022796695950373987, 0.12183919547275648, 0.011808970642822783, 1.0, 0.0]", - "[26.950000000000028, 5.0627870208516805, 1.6796261334408267, 0.0735760793393661, -0.02641746070753951, 0.17105335213067, -0.08819102935717726, 1.0, 0.0]", - "[27.00000000000003, 5.062696561765322, 1.686948387098342, 0.07166664985382702, 0.022796695950373997, 0.12183919547275648, 0.011808970642822741, 1.0, 0.0]", - "[27.05000000000003, 5.06260598417087, 1.6942707592639512, 0.07475721720447, -0.026417460707539503, 0.17105335213067, 0.11180897064282275, 1.0, 0.0]", - "[27.10000000000003, 5.06251552604796, 1.7040538417829518, 0.07784754179662376, 0.022796695950373987, 0.22026750878858348, 0.011808970642822707, 1.0, 0.0]", - "[27.15000000000003, 5.062424943412801, 1.713836799789704, 0.07593786126787339, -0.026417460707539517, 0.17105335213066997, -0.08819102935717735, 1.0, 0.0]", - "[27.20000000000003, 5.062334486253016, 1.7211590515206454, 0.0740284356970099, 0.02279669595037399, 0.1218391954727565, 0.011808970642822679, 1.0, 0.0]", - "[27.250000000000032, 5.06224390673195, 1.7284814256128698, 0.07211876149589143, -0.026417460707539513, 0.17105335213067, -0.08819102935717738, 1.0, 0.0]", - "[27.300000000000033, 5.062153446457871, 1.735803680458105, 0.07020932959698288, 0.022796695950373987, 0.12183919547275648, 0.011808970642822644, 1.0, 0.0]", - "[27.350000000000033, 5.0620628700512595, 1.7431260514358746, 0.07329989453401163, -0.02641746070753952, 0.17105335213066997, 0.11180897064282266, 1.0, 0.0]", - "[27.400000000000034, 5.061972410740659, 1.7504483053176318, 0.07639022153947773, 0.02279669595037398, 0.12183919547275646, 0.011808970642822623, 1.0, 0.0]", - "[27.450000000000035, 5.06188182929308, 1.7577706813363696, 0.07448054342380832, -0.026417460707539513, 0.17105335213066994, -0.0881910293571774, 1.0, 0.0]", - "[27.500000000000036, 5.061791370945554, 1.765092934255051, 0.0725711154395329, 0.02279669595037399, 0.12183919547275648, 0.011808970642822603, 1.0, 0.0]", - "[27.550000000000036, 5.06170079261234, 1.7724153071594204, 0.07566168429128918, -0.026417460707539513, 0.17105335213066997, 0.11180897064282261, 1.0, 0.0]", - "[27.600000000000037, 5.061610335228283, 1.7797375591146314, 0.07875200738213722, 0.022796695950373994, 0.12183919547275644, 0.01180897064282254, 1.0, 0.0]", - "[27.650000000000038, 5.061519751854217, 1.787059937059855, 0.07684232535197219, -0.026417460707539506, 0.17105335213066997, -0.08819102935717754, 1.0, 0.0]", - "[27.70000000000004, 5.061429295433219, 1.79438218805201, 0.07493290128227385, 0.022796695950373994, 0.12183919547275646, 0.011808970642822485, 1.0, 0.0]", - "[27.75000000000004, 5.0613387151734335, 1.8017045628829518, 0.07302322558012903, -0.026417460707539513, 0.17105335213066997, -0.08819102935717757, 1.0, 0.0]", - "[27.80000000000004, 5.061248255638007, 1.8090268169895345, 0.07111379518211428, 0.022796695950373994, 0.12183919547275646, 0.011808970642822436, 1.0, 0.0]", - "[27.85000000000004, 5.0611576784928, 1.8163491887058987, 0.07420436161991986, -0.026417460707539513, 0.17105335213066994, 0.11180897064282244, 1.0, 0.0]", - "[27.90000000000004, 5.061067219920869, 1.8236714418489866, 0.07729468712445663, 0.022796695950373983, 0.12183919547275641, 0.011808970642822408, 1.0, 0.0]", - "[27.950000000000042, 5.060976637734538, 1.8309938186064731, 0.07538500750769699, -0.026417460707539513, 0.17105335213066988, -0.08819102935717765, 1.0, 0.0]", - "[28.000000000000043, 5.060886180125697, 1.8383160707864723, 0.0734755810243764, 0.022796695950373994, 0.1218391954727564, 0.01180897064282238, 1.0, 0.0]", - "[28.050000000000043, 5.06079560105386, 1.8456384444294653, 0.07156590773606746, -0.026417460707539517, 0.17105335213066988, -0.08819102935717771, 1.0, 0.0]", - "[28.100000000000044, 5.060705140330389, 1.8529606997240933, 0.0696564749240219, 0.02279669595037399, 0.12183919547275637, 0.01180897064282227, 1.0, 0.0]", - "[28.150000000000045, 5.06061456437332, 1.8602830702523174, 0.07274703894760422, -0.026417460707539513, 0.1710533521306699, 0.11180897064282225, 1.0, 0.0]", - "[28.200000000000045, 5.060524104613367, 1.8676053245834265, 0.0758373668661237, 0.022796695950373994, 0.1218391954727564, 0.01180897064282218, 1.0, 0.0]", - "[28.250000000000046, 5.060433523614931, 1.8749277001530205, 0.07392768966308566, -0.02641746070753951, 0.1710533521306699, -0.08819102935717785, 1.0, 0.0]", - "[28.300000000000047, 5.060343064818098, 1.8822499535210093, 0.07201826076584629, 0.022796695950373987, 0.12183919547275643, 0.01180897064282213, 1.0, 0.0]", - "[28.350000000000048, 5.060252486934347, 1.8895723259759163, 0.07510882870432374, -0.026417460707539513, 0.17105335213066994, 0.11180897064282214, 1.0, 0.0]", - "[28.40000000000005, 5.060162029101026, 1.8968945783803934, 0.07819915270805232, 0.02279669595037399, 0.12183919547275641, 0.011808970642822054, 1.0, 0.0]", - "[28.45000000000005, 5.060071446176015, 1.904216955876561, 0.07628947159034108, -0.0264174607075395, 0.17105335213066986, -0.08819102935717799, 1.0, 0.0]", - "[28.50000000000005, 5.059980989305793, 1.9115392073179391, 0.07438004660785151, 0.022796695950374004, 0.12183919547275632, 0.01180897064282202, 1.0, 0.0]", - "[28.55000000000005, 5.059890409495388, 1.9188615816995005, 0.0724703718188178, -0.026417460707539493, 0.17105335213066983, -0.08819102935717804, 1.0, 0.0]", - "[28.60000000000005, 5.0597999495104355, 1.9261838362556096, 0.07056094050739446, 0.022796695950374007, 0.12183919547275633, 0.011808970642821964, 1.0, 0.0]", - "[28.650000000000052, 5.059709372814892, 1.9335062075223086, 0.07365150603150973, -0.026417460707539496, 0.17105335213066986, 0.111808970642822, 1.0, 0.0]", - "[28.700000000000053, 5.059618913793472, 1.9432892891428002, 0.07674183244937677, 0.02279669595037401, 0.22026750878858334, 0.011808970642821943, 1.0, 0.0]", - "[28.750000000000053, 5.05952833205641, 1.9530722480476481, 0.07483215374549983, -0.026417460707539493, 0.17105335213066986, -0.0881910293571781, 1.0, 0.0]", - "[28.800000000000054, 5.059437873998176, 1.960394500677039, 0.07292272634904468, 0.022796695950374018, 0.12183919547275633, 0.011808970642821895, 1.0, 0.0]", - "[28.850000000000055, 5.0593472953758765, 1.9677168738704942, 0.07601329578820493, -0.026417460707539493, 0.17105335213066986, 0.11180897064282191, 1.0, 0.0]", - "[28.900000000000055, 5.0592568382811685, 1.9750391255363575, 0.0791036182911161, 0.022796695950374, 0.12183919547275643, 0.011808970642821853, 1.0, 0.0]", - "[28.950000000000056, 5.059166254617473, 1.982361503771209, 0.07719393567244616, -0.0264174607075395, 0.17105335213066994, -0.08819102935717818, 1.0, 0.0]", - "[29.000000000000057, 5.059075798485877, 1.9896837544739614, 0.07528451219079715, 0.022796695950373994, 0.12183919547275643, 0.011808970642821826, 1.0, 0.0]", - "[29.050000000000058, 5.058985217936896, 1.997006129594098, 0.07337483590102711, -0.02641746070753951, 0.17105335213066997, -0.08819102935717824, 1.0, 0.0]", - "[29.10000000000006, 5.058894758690468, 2.0043283834116816, 0.07146540609023927, 0.022796695950373994, 0.12183919547275643, 0.011808970642821756, 1.0, 0.0]", - "[29.15000000000006, 5.058804181256444, 2.0116507554168632, 0.07455597311490211, -0.026417460707539513, 0.17105335213066997, 0.11180897064282178, 1.0, 0.0]", - "[29.20000000000006, 5.058713722973565, 2.018973008270898, 0.07764629803210313, 0.022796695950373987, 0.12183919547275648, 0.0118089706428217, 1.0, 0.0]", - "[29.25000000000006, 5.061083975044236, 2.026295385317688, 0.07573661782749687, 0.07201085260828749, 0.17105335213067002, -0.08819102935717835, 1.0, 0.0]", - "[29.30000000000006, 5.0634541019590085, 2.0336176372085824, 0.07382719193162011, 0.022796695950373987, 0.12183919547275651, 0.011808970642821659, 1.0, 0.0]", - "[29.350000000000062, 5.063363522598252, 2.0409400111404965, 0.071917518056242, -0.02641746070753951, 0.17105335213067002, -0.0881910293571784, 1.0, 0.0]", - "[29.400000000000063, 5.0632730621635265, 2.048262266146378, 0.07000808583091066, 0.022796695950374, 0.12183919547275648, 0.011808970642821603, 1.0, 0.0]", - "[29.450000000000063, 5.063182485917874, 2.0555846369631867, 0.07309865044087824, -0.0264174607075395, 0.17105335213066997, 0.11180897064282161, 1.0, 0.0]", - "[29.500000000000064, 5.063092026446719, 2.0629068910055, 0.07618897777258192, 0.022796695950373994, 0.12183919547275646, 0.011808970642821569, 1.0, 0.0]", - "[29.550000000000065, 5.063001445159259, 2.0702292668641165, 0.0742792999822676, -0.026417460707539503, 0.17105335213066997, -0.08819102935717849, 1.0, 0.0]", - "[29.600000000000065, 5.0629109866512705, 2.077551519943261, 0.07236987167194171, 0.022796695950373997, 0.12183919547275647, 0.01180897064282152, 1.0, 0.0]", - "[29.650000000000066, 5.062820408478842, 2.084873892686847, 0.07546044019699581, -0.0264174607075395, 0.17105335213066997, 0.11180897064282155, 1.0, 0.0]", - "[29.700000000000067, 5.062729950934417, 2.09219614480243, 0.07855076361370877, 0.022796695950373994, 0.12183919547275641, 0.011808970642821506, 1.0, 0.0]", - "[29.750000000000068, 5.062639367720282, 2.0995185225877226, 0.07664108190851357, -0.026417460707539513, 0.17105335213066988, -0.08819102935717857, 1.0, 0.0]", - "[29.800000000000068, 5.062548911139002, 2.1068407737401573, 0.07473165751313783, 0.02279669595037398, 0.12183919547275636, 0.011808970642821437, 1.0, 0.0]", - "[29.85000000000007, 5.0624583310398235, 2.1141631484104924, 0.0728219821373347, -0.026417460707539527, 0.17105335213066988, -0.08819102935717865, 1.0, 0.0]", - "[29.90000000000007, 5.062367871343484, 2.1214854026779872, 0.07091255141235683, 0.02279669595037398, 0.12183919547275637, 0.011808970642821354, 1.0, 0.0]", - "[29.95000000000007, 5.0622772943594745, 2.1288077742331533, 0.07400311752261729, -0.026417460707539524, 0.1710533521306699, 0.11180897064282136, 1.0, 0.0]", - "[30.00000000000007, 5.062186835626717, 2.1385908561423057, 0.07709344335394376, 0.022796695950373973, 0.22026750878858342, 0.011808970642821319, 1.0, 0.0]", - "[30.05000000000007, 5.062096253600793, 2.148373814758292, 0.07518376406311825, -0.026417460707539534, 0.1710533521306699, -0.08819102935717874, 1.0, 0.0]", - "[30.100000000000072, 5.0620057958312525, 2.15569606709899, 0.07327433725326835, 0.022796695950373973, 0.12183919547275641, 0.011808970642821257, 1.0, 0.0]", - "[30.150000000000073, 5.061915216920411, 2.1630184405809882, 0.07636490727872833, -0.02641746070753952, 0.1710533521306699, 0.11180897064282125, 1.0, 0.0]", - "[30.200000000000074, 5.061824760114444, 2.1703406919581116, 0.0794552291949391, 0.022796695950373997, 0.12183919547275636, 0.011808970642821194, 1.0, 0.0]", - "[30.250000000000075, 5.061734176161799, 2.1776630704819127, 0.07754554598914161, -0.026417460707539513, 0.17105335213066988, -0.08819102935717885, 1.0, 0.0]", - "[30.300000000000075, 5.061643720318989, 2.1849853208958794, 0.07563612309428436, 0.022796695950373987, 0.12183919547275643, 0.011808970642821146, 1.0, 0.0]", - "[30.350000000000076, 5.061553139481378, 2.192307696304647, 0.07372644621803516, -0.026417460707539513, 0.17105335213066994, -0.0881910293571789, 1.0, 0.0]", - "[30.400000000000077, 5.0614626805234355, 2.1996299498337453, 0.0718170169934319, 0.02279669595037399, 0.12183919547275643, 0.011808970642821104, 1.0, 0.0]", - "[30.450000000000077, 5.06137210280106, 2.206952322127277, 0.0749075846040061, -0.02641746070753951, 0.17105335213066994, 0.11180897064282111, 1.0, 0.0]", - "[30.500000000000078, 5.061281644806711, 2.2142745746927828, 0.07799790893493386, 0.02279669595037399, 0.12183919547275644, 0.011808970642821055, 1.0, 0.0]", - "[30.55000000000008, 5.061191062042358, 2.221596952028292, 0.07608822814366786, -0.026417460707539503, 0.17105335213066994, -0.08819102935717898, 1.0, 0.0]", - "[30.60000000000008, 5.06110060501119, 2.2289192036306162, 0.07417880283414605, 0.022796695950374004, 0.12183919547275644, 0.01180897064282102, 1.0, 0.0]", - "[30.65000000000008, 5.061010025362003, 2.236241577850961, 0.07226912837269613, -0.026417460707539503, 0.17105335213066997, -0.08819102935717904, 1.0, 0.0]", - "[30.70000000000008, 5.060919565215579, 2.243563832568542, 0.070359696733173, 0.02279669595037399, 0.12183919547275648, 0.011808970642820979, 1.0, 0.0]", - "[30.75000000000008, 5.060828988681746, 2.250886203673532, 0.07345026192870471, -0.026417460707539506, 0.17105335213067, 0.11180897064282097, 1.0, 0.0]", - "[30.800000000000082, 5.06073852949893, 2.2582084574275036, 0.076540588674518, 0.02279669595037398, 0.12183919547275651, 0.01180897064282091, 1.0, 0.0]", - "[30.850000000000083, 5.060647947922956, 2.2655308335746334, 0.07463091029796431, -0.02641746070753952, 0.17105335213067, -0.08819102935717912, 1.0, 0.0]", - "[30.900000000000084, 5.060557489703347, 2.2728530863653975, 0.07272148257360736, 0.02279669595037398, 0.12183919547275648, 0.011808970642820882, 1.0, 0.0]", - "[30.950000000000085, 5.060466911242662, 2.28017545939724, 0.0758120516843794, -0.02641746070753952, 0.17105335213067, 0.11180897064282089, 1.0, 0.0]", - "[31.000000000000085, 5.060376453986657, 2.2874977112244026, 0.07890237451504048, 0.022796695950373987, 0.12183919547275648, 0.011808970642820847, 1.0, 0.0]", - "[31.050000000000086, 5.060285870483925, 2.29482008929829, 0.07699269222343713, -0.026417460707539524, 0.17105335213066997, -0.08819102935717923, 1.0, 0.0]", - "[31.100000000000087, 5.060195414191106, 2.302142340162265, 0.07508326841419251, 0.022796695950373973, 0.1218391954727564, 0.01180897064282077, 1.0, 0.0]", - "[31.150000000000087, 5.060104833803593, 2.3094647151209333, 0.07317359245251574, -0.026417460707539527, 0.17105335213066994, -0.08819102935717926, 1.0, 0.0]", - "[31.200000000000088, 5.060014374395467, 2.3167869691002148, 0.0712641623131685, 0.022796695950373976, 0.12183919547275647, 0.011808970642820743, 1.0, 0.0]", - "[31.25000000000009, 5.059923797123358, 2.3241093409434828, 0.0743547290088343, -0.026417460707539524, 0.17105335213067, 0.11180897064282075, 1.0, 0.0]", - "[31.30000000000009, 5.059833338678851, 2.3338924231408864, 0.07744505425445301, 0.022796695950373983, 0.2202675087885835, 0.011808970642820694, 1.0, 0.0]", - "[31.35000000000009, 5.059742756364522, 2.343675381468468, 0.07553537437760681, -0.026417460707539517, 0.17105335213067, -0.08819102935717935, 1.0, 0.0]", - "[31.40000000000009, 5.059652298883262, 2.3509976335208878, 0.07362594815351971, 0.02279669595037399, 0.1218391954727565, 0.01180897064282066, 1.0, 0.0]", - "[31.45000000000009, 5.059561719684257, 2.358320007291051, 0.071716274606809, -0.02641746070753952, 0.17105335213067002, -0.08819102935717943, 1.0, 0.0]", - "[31.500000000000092, 5.059471259087572, 2.3656422624588926, 0.06980684205238571, 0.022796695950373976, 0.12183919547275655, 0.01180897064282059, 1.0, 0.0]", - "[31.550000000000093, 5.0593806830040755, 2.372964633113545, 0.07289740633286293, -0.026417460707539524, 0.17105335213067005, 0.11180897064282061, 1.0, 0.0]", - "[31.600000000000094, 5.0592902233710255, 2.380286887317752, 0.0759877339935251, 0.02279669595037398, 0.12183919547275651, 0.011808970642820556, 1.0, 0.0]", - "[31.650000000000095, 5.0591996422451775, 2.387609263014756, 0.0740780565315976, -0.02641746070753952, 0.17105335213067002, -0.08819102935717948, 1.0, 0.0]", - "[31.700000000000095, 5.059109183575362, 2.394931516255728, 0.07216862789244935, 0.022796695950373976, 0.12183919547275657, 0.011808970642820535, 1.0, 0.0]", - "[31.750000000000096, 5.059018605564963, 2.402253888837285, 0.07525919608827161, -0.02641746070753952, 0.17105335213067005, 0.11180897064282053, 1.0, 0.0]", - "[31.800000000000097, 5.058928147858774, 2.4095761411146293, 0.07834951983367207, 0.02279669595037399, 0.12183919547275653, 0.011808970642820459, 1.0, 0.0]", - "[31.850000000000097, 5.058837564806112, 2.416898518738448, 0.07643983845658073, -0.026417460707539517, 0.17105335213067002, -0.08819102935717962, 1.0, 0.0]", - "[31.900000000000098, 5.058747108063139, 2.424220770052576, 0.0745304137326549, 0.022796695950373997, 0.1218391954727565, 0.011808970642820396, 1.0, 0.0]", - "[31.9500000000001, 5.05865652812586, 2.431543144561011, 0.07262073868582182, -0.02641746070753951, 0.17105335213067, -0.08819102935717965, 1.0, 0.0]", - "[32.0000000000001, 5.058566068267427, 2.438865398990599, 0.0707113076314805, 0.022796695950373994, 0.12183919547275651, 0.011808970642820368, 1.0, 0.0]", - "[32.0500000000001, 5.058475491445694, 2.4461877703834896, 0.07380187341200779, -0.02641746070753951, 0.17105335213067005, 0.11180897064282036, 1.0, 0.0]", - "[32.1000000000001, 5.0583850325509045, 2.453510023849436, 0.076892199572572, 0.022796695950373997, 0.12183919547275654, 0.011808970642820292, 1.0, 0.0]", - "[32.150000000000105, 5.0607552840100745, 2.460832400284724, 0.07498252061049833, 0.0720108526082875, 0.17105335213067005, -0.08819102935717979, 1.0, 0.0]", - "[32.2000000000001, 5.063125411536662, 2.4681546527874305, 0.07307309347145743, 0.02279669595037401, 0.12183919547275651, 0.011808970642820216, 1.0, 0.0]", - "[32.2500000000001, 5.063034832788011, 2.475477026107238, 0.07616366316735616, -0.026417460707539493, 0.17105335213067002, 0.11180897064282022, 1.0, 0.0]", - "[32.300000000000104, 5.0629443758200985, 2.4827992776463073, 0.07925398541262944, 0.022796695950374007, 0.12183919547275651, 0.011808970642820153, 1.0, 0.0]", - "[32.35000000000011, 5.062853792029135, 2.4901216560084256, 0.07734430253535994, -0.026417460707539486, 0.17105335213067, -0.08819102935717987, 1.0, 0.0]", - "[32.400000000000105, 5.062763336024443, 2.4974439065842757, 0.07543487931156805, 0.022796695950374014, 0.12183919547275648, 0.011808970642820132, 1.0, 0.0]", - "[32.4500000000001, 5.0626727553489035, 2.5047662818309715, 0.0735252027646368, -0.026417460707539496, 0.17105335213066997, -0.08819102935717993, 1.0, 0.0]", - "[32.50000000000011, 5.0625822962287135, 2.5120885355223184, 0.0716157732103563, 0.022796695950374014, 0.12183919547275646, 0.011808970642820077, 1.0, 0.0]", - "[32.55000000000011, 5.062491718668752, 2.5194109076534366, 0.07470634049091517, -0.026417460707539493, 0.17105335213066997, 0.11180897064282008, 1.0, 0.0]", - "[32.60000000000011, 5.06240126051221, 2.526733160381133, 0.07779666515140328, 0.022796695950374014, 0.12183919547275647, 0.011808970642820014, 1.0, 0.0]", - "[32.650000000000105, 5.062310677909806, 2.5340555375546923, 0.0758869846892091, -0.026417460707539482, 0.17105335213067, -0.08819102935718004, 1.0, 0.0]", - "[32.70000000000011, 5.062220220716507, 2.5413777893191476, 0.07397755905024649, 0.022796695950374018, 0.12183919547275651, 0.011808970642819952, 1.0, 0.0]", - "[32.750000000000114, 5.06212964122962, 2.5487001633771893, 0.07206788491858498, -0.026417460707539482, 0.17105335213067002, -0.08819102935718007, 1.0, 0.0]", - "[32.80000000000011, 5.062039180920734, 2.5560224182572333, 0.07015845294894787, 0.022796695950374007, 0.12183919547275657, 0.011808970642819924, 1.0, 0.0]", - "[32.85000000000011, 5.061948604549515, 2.5633447891996095, 0.07324901781405942, -0.026417460707539496, 0.17105335213067008, 0.11180897064281994, 1.0, 0.0]", - "[32.90000000000011, 5.06185814520429, 2.5731278704962954, 0.07633934488987777, 0.022796695950374, 0.2202675087885836, 0.011808970642819876, 1.0, 0.0]", - "[32.95000000000012, 5.061767563790494, 2.582910829724409, 0.07442966684285668, -0.0264174607075395, 0.17105335213067008, -0.08819102935718015, 1.0, 0.0]", - "[33.000000000000114, 5.061677105408554, 2.5902330826775044, 0.07252023878865375, 0.022796695950373997, 0.12183919547275658, 0.011808970642819841, 1.0, 0.0]", - "[33.05000000000011, 5.0615865271103555, 2.597555455546858, 0.07561080756926035, -0.026417460707539513, 0.17105335213067008, 0.11180897064281983, 1.0, 0.0]", - "[33.100000000000115, 5.061496069692073, 2.6048777075362963, 0.07870113072965534, 0.022796695950373987, 0.12183919547275657, 0.011808970642819772, 1.0, 0.0]", - "[33.15000000000012, 5.06140548635139, 2.612200085448136, 0.07679144876732276, -0.026417460707539524, 0.17105335213067008, -0.08819102935718029, 1.0, 0.0]", - "[33.20000000000012, 5.061314967232464, 2.6195223991382175, 0.07488189729947217, 0.022796695950373973, 0.12183919547275654, 0.01180897064281973, 1.0, 0.05000000000000001]" + "[15.5, 4.615141954678806, -0.025576634991529887, 0.06514080926253786, 0.13618084756081392, -0.006120585851414798, 0.03812121609122722, 1.0, 0.0]", + "[15.55, 4.623181350973294, -0.024652310367652794, 0.06454687006709925, 0.18539500421872745, 0.04309357080649867, -0.06187878390877288, 1.0, 0.0]", + "[15.6, 4.6336814873980385, -0.02126724561352147, 0.06395299649781525, 0.23460916087664094, 0.09230772746441215, 0.038121216091227116, 1.0, 0.0]", + "[15.65, 4.646642328581187, -0.015421476100984322, 0.06335899792338752, 0.28382331753455436, 0.14152188412232564, -0.06187878390877293, 1.0, 0.0]", + "[15.7, 4.662063871298847, -0.007115005053936224, 0.06276510530902543, 0.3330374741924678, 0.19073604078023904, 0.038121216091226984, 1.0, 0.0]", + "[15.75, 4.679946110424278, 0.0011914315692678507, 0.062171142747627056, 0.3822516308503814, 0.1415218841223255, -0.061878783908773105, 1.0, 0.0]", + "[15.8, 4.70028904785917, 0.00949788166775602, 0.06157720756713894, 0.4314657875082949, 0.19073604078023895, 0.0381212160912269, 1.0, 0.0]", + "[15.85, 4.723092706182049, 0.017804314759302452, 0.060983237829639464, 0.48067994416620835, 0.14152188412232547, -0.061878783908773105, 1.0, 0.0]", + "[15.9, 4.748357082700918, 0.02611078827597725, 0.060389350233399926, 0.5298941008241218, 0.19073604078023895, 0.03812121609122691, 1.0, 0.0]", + "[15.95, 4.776082174188289, 0.03441720386882278, 0.06479547713625654, 0.5791082574820352, 0.14152188412232547, 0.13812121609122693, 1.0, 0.0]", + "[16.0, 4.8062679797696735, 0.042723690782220144, 0.06920145912034043, 0.6283224141399487, 0.19073604078023895, 0.03812121609122688, 1.0, 0.0]", + "[16.05, 4.83891449855583, 0.05103009474207123, 0.06860743018911025, 0.6775365707978622, 0.14152188412232541, -0.06187878390877316, 1.0, 0.0]", + "[16.1, 4.874021727708086, 0.056875788335826, 0.06801358587676384, 0.7267507274557757, 0.09230772746441195, 0.038121216091226845, 1.0, 0.0]", + "[16.15, 4.909128862326539, 0.06272157646338283, 0.06741954947781376, 0.6775365707978622, 0.14152188412232544, -0.061878783908773216, 1.0, 0.0]", + "[16.2, 4.941775288313485, 0.07102807322244703, 0.06682570910861413, 0.6283224141399488, 0.19073604078023895, 0.03812121609122679, 1.0, 0.0]", + "[16.25, 4.97196100561384, 0.07933447185481717, 0.06623166935228537, 0.5791082574820353, 0.14152188412232544, -0.06187878390877325, 1.0, 0.0]", + "[16.3, 4.999686014573878, 0.0876409699749992, 0.06563783174878964, 0.5298941008241219, 0.19073604078023892, 0.03812121609122675, 1.0, 0.0]", + "[16.35, 5.024950315435719, 0.09594736783464551, 0.06504379042233578, 0.48067994416620846, 0.14152188412232544, -0.06187878390877329, 1.0, 0.0]", + "[16.4, 5.047753908372468, 0.1042538663123237, 0.06444995354524923, 0.431465787508295, 0.19073604078023892, 0.038121216091226706, 1.0, 0.0]", + "[16.45, 5.068096793509853, 0.11256026411330639, 0.06885611660002641, 0.3822516308503816, 0.14152188412232544, 0.1381212160912267, 1.0, 0.0]", + "[16.5, 5.085978967326737, 0.12086676604505973, 0.07326206806777721, 0.3330374741924681, 0.19073604078023892, 0.038121216091226685, 1.0, 0.0]", + "[16.55, 5.101400429824478, 0.1291731568721896, 0.07266801245170246, 0.28382331753455453, 0.14152188412232544, -0.06187878390877336, 1.0, 0.0]", + "[16.6, 5.114361184629271, 0.13747966215024046, 0.07207418939253563, 0.2346091608766411, 0.19073604078023898, 0.03812121609122665, 1.0, 0.0]", + "[16.65, 5.124861231800848, 0.14578605331699537, 0.07148013446655697, 0.18539500421872757, 0.14152188412232541, -0.06187878390877342, 1.0, 0.0]", + "[16.7, 5.132900571386763, 0.15409255814813333, 0.07088631049929191, 0.1361808475608141, 0.19073604078023887, 0.038121216091226595, 1.0, 0.0]", + "[16.75, 5.138479203424725, 0.16239894984706718, 0.07029225665466673, 0.0869666909029006, 0.14152188412232536, -0.061878783908773445, 1.0, 0.0]", + "[16.8, 5.1415971279455, 0.17070545407755228, 0.0696984314669136, 0.037752534244987104, 0.19073604078023884, 0.03812121609122654, 1.0, 0.0]", + "[16.85, 5.14225434497384, 0.17901184643265455, 0.06910437895558033, -0.011461622412926389, 0.14152188412232536, -0.0618787839087735, 1.0, 0.0]", + "[16.900000000000002, 5.140450854530402, 0.18731834996156266, 0.06851055234226781, -0.0606757790708399, 0.19073604078023887, 0.03812121609122651, 1.0, 0.0]", + "[16.95, 5.136186656631974, 0.19562474305568744, 0.06791650133258084, -0.10988993572875339, 0.1415218841223254, -0.06187878390877353, 1.0, 0.0]", + "[17.0, 5.129461751292878, 0.20393124581446162, 0.06732267315440583, -0.15910409238666684, 0.19073604078023887, 0.038121216091226456, 1.0, 0.0]", + "[17.05, 5.120276138524821, 0.21223763970475099, 0.06672862376247417, -0.20831824904458035, 0.14152188412232536, -0.061878783908773584, 1.0, 0.0]", + "[17.1, 5.111090633807167, 0.21808332617629314, 0.06613479392200554, -0.1591040923866669, 0.09230772746441192, 0.03812121609122641, 1.0, 0.0]", + "[17.150000000000002, 5.104365836486992, 0.22392911984867284, 0.06554074625633213, -0.10988993572875341, 0.14152188412232541, -0.061878783908773625, 1.0, 0.0]", + "[17.2, 5.097640932841359, 0.23223562091398603, 0.0649469146371532, -0.1591040923866669, 0.19073604078023892, 0.03812121609122639, 1.0, 0.0]", + "[17.25, 5.090916134648021, 0.24054201652700227, 0.06935308213773739, -0.10988993572875336, 0.1415218841223254, 0.13812121609122638, 1.0, 0.0]", + "[17.3, 5.086652047817003, 0.2488485206885383, 0.07375902907471324, -0.06067577907083988, 0.1907360407802389, 0.03812121609122635, 1.0, 0.0]", + "[17.35, 5.082387845381557, 0.25715490924564643, 0.07316496884610017, -0.10988993572875339, 0.1415218841223254, -0.061878783908773695, 1.0, 0.0]", + "[17.400000000000002, 5.0781237616457355, 0.2630005904011478, 0.0725711498074844, -0.06067577907083988, 0.09230772746441185, 0.038121216091226304, 1.0, 0.0]", + "[17.450000000000003, 5.0763203852964285, 0.2688463893786025, 0.07197709136223988, -0.011461622412926382, 0.14152188412232536, -0.061878783908773764, 1.0, 0.0]", + "[17.5, 5.074516892021016, 0.27715289573948587, 0.07138327050331902, -0.06067577907083988, 0.19073604078023884, 0.03812121609122624, 1.0, 0.0]", + "[17.55, 5.072713514778545, 0.28545928606742654, 0.07078921387292407, -0.011461622412926392, 0.14152188412232536, -0.061878783908773806, 1.0, 0.0]", + "[17.6, 5.070910022394674, 0.2913049690103186, 0.07019539120244535, -0.060675779070839896, 0.0923077274644119, 0.03812121609122621, 1.0, 0.0]", + "[17.65, 5.069106644246611, 0.29715076618901914, 0.06960133641215357, -0.011461622412926385, 0.1415218841223254, -0.06187878390877385, 1.0, 0.0]", + "[17.7, 5.067303152780317, 0.3054572707407844, 0.0690075118772211, -0.06067577907083989, 0.19073604078023892, 0.03812121609122618, 1.0, 0.0]", + "[17.75, 5.0654997737166045, 0.31376366288996665, 0.06841345894747164, -0.011461622412926375, 0.14152188412232541, -0.06187878390877385, 1.0, 0.0]", + "[17.8, 5.066157102027185, 0.3196093476648553, 0.06781963255449362, 0.03775253424498712, 0.09230772746441193, 0.03812121609122615, 1.0, 0.0]", + "[17.85, 5.066814319773466, 0.32545514300404393, 0.06722558150197168, -0.011461622412926396, 0.14152188412232547, -0.0618787839087739, 1.0, 0.0]", + "[17.9, 5.065010830153584, 0.3337616457093978, 0.06663175321525018, -0.060675779070839896, 0.19073604078023895, 0.038121216091226096, 1.0, 0.0]", + "[17.95, 5.063207449235391, 0.3420680397130592, 0.06603770405368307, -0.011461622412926392, 0.14152188412232541, -0.06187878390877396, 1.0, 0.0]", + "[18.0, 5.06386477568427, 0.3503745414887021, 0.06544387387784853, 0.037752534244987104, 0.1907360407802389, 0.03812121609122605, 1.0, 0.0]", + "[18.049999999999997, 5.064521995294221, 0.3586809364254164, 0.06484982661218464, -0.011461622412926392, 0.1415218841223254, -0.061878783908774, 1.0, 0.0]", + "[18.099999999999998, 5.065179320807041, 0.36452662399806557, 0.0642559945343373, 0.037752534244987104, 0.09230772746441192, 0.038121216091226, 1.0, 0.0]", + "[18.15, 5.065836541358379, 0.37037241653219904, 0.06866216149629027, -0.011461622412926392, 0.14152188412232541, 0.13812121609122602, 1.0, 0.0]", + "[18.2, 5.066493869958842, 0.3786789204594262, 0.0730681089093667, 0.03775253424498712, 0.19073604078023892, 0.038121216091225964, 1.0, 0.0]", + "[18.25, 5.067151083389717, 0.3869853092170632, 0.07247404908821553, -0.011461622412926378, 0.14152188412232541, -0.06187878390877408, 1.0, 0.0]", + "[18.299999999999997, 5.065347589455055, 0.3952918162371948, 0.07188022956884467, -0.060675779070839875, 0.1907360407802389, 0.03812121609122593, 1.0, 0.0]", + "[18.349999999999998, 5.06354421284706, 0.4035982059306584, 0.07128617164923311, -0.011461622412926368, 0.1415218841223254, -0.06187878390877411, 1.0, 0.0]", + "[18.4, 5.064201543602117, 0.40944388826107153, 0.07069235022327233, 0.03775253424498713, 0.09230772746441193, 0.03812121609122589, 1.0, 0.0]", + "[18.449999999999996, 5.0648587589118526, 0.4152896860368048, 0.0700982942198485, -0.011461622412926368, 0.14152188412232544, -0.06187878390877417, 1.0, 0.0]", + "[18.499999999999996, 5.065516088719707, 0.4235961911714217, 0.0695044708692332, 0.03775253424498714, 0.19073604078023895, 0.03812121609122584, 1.0, 0.0]", + "[18.549999999999997, 5.0661733049757265, 0.4319025827542033, 0.06891041678859405, -0.011461622412926364, 0.14152188412232544, -0.06187878390877421, 1.0, 0.0]", + "[18.599999999999998, 5.066830633837987, 0.4402090869432264, 0.06831659151659283, 0.037752534244987146, 0.1907360407802389, 0.03812121609122579, 1.0, 0.0]", + "[18.65, 5.067487851041263, 0.4485154794732656, 0.06772253936072023, -0.011461622412926354, 0.14152188412232536, -0.06187878390877428, 1.0, 0.0]", + "[18.699999999999996, 5.065684360886492, 0.4568219827135052, 0.06712871216085213, -0.06067577907083985, 0.19073604078023884, 0.03812121609122572, 1.0, 0.0]", + "[18.749999999999996, 5.0638809804917315, 0.46512837619373565, 0.06653466193570684, -0.011461622412926344, 0.14152188412232533, -0.06187878390877433, 1.0, 0.0]", + "[18.799999999999997, 5.064538307453723, 0.4709740623172137, 0.06594083280248217, 0.03775253424498715, 0.09230772746441185, 0.038121216091225665, 1.0, 0.0]", + "[18.849999999999994, 5.065195526561185, 0.4768198562952213, 0.06534678451579244, -0.011461622412926347, 0.1415218841223253, -0.061878783908774375, 1.0, 0.0]", + "[18.899999999999995, 5.06585285256695, 0.4851263576277476, 0.06475295343957357, 0.03775253424498716, 0.1907360407802388, 0.038121216091225624, 1.0, 0.0]", + "[18.949999999999996, 5.0665100726301615, 0.4934327530177209, 0.06415890709490324, -0.011461622412926333, 0.1415218841223253, -0.06187878390877442, 1.0, 0.0]", + "[18.999999999999996, 5.067167397680539, 0.49927844105281344, 0.06356507407740075, 0.03775253424498716, 0.09230772746441179, 0.03812121609122558, 1.0, 0.0]", + "[19.049999999999997, 5.06782461870103, 0.5051242331177911, 0.06797124008605948, -0.011461622412926354, 0.14152188412232533, 0.1381212160912256, 1.0, 0.0]", + "[19.099999999999994, 5.068481946848189, 0.5134307365917136, 0.07237718842022177, 0.03775253424498714, 0.1907360407802388, 0.038121216091225575, 1.0, 0.0]", + "[19.149999999999995, 5.069139160717474, 0.5217371257877603, 0.07178312948989134, -0.011461622412926347, 0.14152188412232536, -0.06187878390877447, 1.0, 0.0]", + "[19.199999999999996, 5.067335667230852, 0.5300436323598523, 0.07118930906013247, -0.06067577907083986, 0.19073604078023887, 0.03812121609122554, 1.0, 0.0]", + "[19.249999999999993, 5.065532290166021, 0.5383500225101533, 0.07059525206878473, -0.011461622412926357, 0.14152188412232533, -0.0618787839087745, 1.0, 0.0]", + "[19.299999999999994, 5.0661896204561945, 0.5441957053054499, 0.07000142969821023, 0.037752534244987146, 0.09230772746441182, 0.0381212160912255, 1.0, 0.0]", + "[19.349999999999994, 5.066846836236753, 0.5500415026103624, 0.06940737465146404, -0.01146162241292635, 0.1415218841223253, -0.06187878390877454, 1.0, 0.0]", + "[19.399999999999995, 5.065043344663983, 0.5583480072686019, 0.06881355033288049, -0.06067577907083986, 0.19073604078023884, 0.03812121609122546, 1.0, 0.0]", + "[19.449999999999996, 5.063239965683855, 0.5666543993342011, 0.06821949723329543, -0.011461622412926364, 0.14152188412232536, -0.06187878390877461, 1.0, 0.0]", + "[19.499999999999993, 5.063897294057386, 0.574960903034494, 0.06762567096822583, 0.03775253424498713, 0.19073604078023884, 0.03812121609122539, 1.0, 0.0]", + "[19.549999999999994, 5.064554511754828, 0.5832672960586981, 0.06703161981646458, -0.011461622412926357, 0.14152188412232536, -0.06187878390877465, 1.0, 0.0]", + "[19.599999999999994, 5.06521183916914, 0.5891129817298556, 0.06643779160232603, 0.037752534244987146, 0.0923077274644119, 0.038121216091225346, 1.0, 0.0]", + "[19.64999999999999, 5.065869057827067, 0.5949587761573986, 0.06584374240220997, -0.01146162241292635, 0.14152188412232541, -0.061878783908774694, 1.0, 0.0]", + "[19.699999999999992, 5.066526384279749, 0.6032652779368435, 0.0652499122341004, 0.03775253424498715, 0.19073604078023892, 0.038121216091225305, 1.0, 0.0]", + "[19.749999999999993, 5.067183603899039, 0.6115716728828953, 0.06465586498740991, -0.01146162241292634, 0.1415218841223254, -0.06187878390877472, 1.0, 0.0]", + "[19.799999999999994, 5.065380116166211, 0.6198781737011912, 0.06406203286630797, -0.06067577907083983, 0.1907360407802389, 0.03812121609122529, 1.0, 0.0]", + "[19.849999999999994, 5.063576733344021, 0.6281845696088513, 0.06846819976819486, -0.011461622412926326, 0.1415218841223254, 0.1381212160912253, 1.0, 0.0]", + "[19.89999999999999, 5.06423406193776, 0.6364910735293525, 0.0728741471949377, 0.03775253424498717, 0.19073604078023887, 0.03812121609122523, 1.0, 0.0]", + "[19.949999999999992, 5.064891275354052, 0.6447974622724054, 0.07228008734415259, -0.01146162241292633, 0.14152188412232536, -0.06187878390877483, 1.0, 0.0]", + "[19.999999999999993, 5.065548607049203, 0.6506431436627245, 0.07168626782840208, 0.03775253424498716, 0.09230772746441189, 0.03812121609122516, 1.0, 0.0]", + "[20.04999999999999, 5.066205821426504, 0.6564889423708928, 0.07109220993033001, -0.011461622412926344, 0.1415218841223254, -0.06187878390877489, 1.0, 0.0]", + "[20.09999999999999, 5.06686315215961, 0.6647954484307604, 0.07049838845976451, 0.03775253424498716, 0.19073604078023887, 0.038121216091225124, 1.0, 0.0]", + "[20.14999999999999, 5.067520367498678, 0.6731018390965912, 0.06990433251594023, -0.011461622412926347, 0.1415218841223254, -0.061878783908774944, 1.0, 0.0]", + "[20.199999999999992, 5.065716875485816, 0.6814083441949227, 0.06931050909159549, -0.06067577907083985, 0.19073604078023887, 0.038121216091225055, 1.0, 0.0]", + "[20.249999999999993, 5.063913496943519, 0.6897147358226907, 0.06871645510236583, -0.011461622412926337, 0.14152188412232536, -0.061878783908774986, 1.0, 0.0]", + "[20.29999999999999, 5.064570825752774, 0.6955604200989047, 0.06812262972266277, 0.03775253424498715, 0.09230772746441185, 0.03812121609122502, 1.0, 0.0]", + "[20.34999999999999, 5.065228043016901, 0.7014062159202478, 0.06752857769043455, -0.01146162241292633, 0.1415218841223253, -0.06187878390877503, 1.0, 0.0]", + "[20.39999999999999, 5.065885370862299, 0.7097127190924083, 0.06693475035223391, 0.037752534244987174, 0.19073604078023873, 0.038121216091224965, 1.0, 0.0]", + "[20.44999999999999, 5.0665425890901, 0.7180191126469713, 0.06634070027812762, -0.01146162241292632, 0.14152188412232522, -0.06187878390877508, 1.0, 0.0]", + "[20.49999999999999, 5.067199915971978, 0.7238647988505642, 0.06574687098211433, 0.037752534244987195, 0.09230772746441172, 0.038121216091224944, 1.0, 0.0]", + "[20.54999999999999, 5.067857135163954, 0.729710592744059, 0.06515282286714888, -0.011461622412926309, 0.14152188412232522, -0.06187878390877511, 1.0, 0.0]", + "[20.59999999999999, 5.066053647005553, 0.7380170939879284, 0.0645589916107848, -0.060675779070839805, 0.1907360407802387, 0.03812121609122489, 1.0, 0.0]", + "[20.64999999999999, 5.064250264607654, 0.7463234894712969, 0.06896515937480445, -0.011461622412926292, 0.1415218841223252, 0.1381212160912249, 1.0, 0.0]", + "[20.69999999999999, 5.064907593629051, 0.7546299938194557, 0.07337110593257469, 0.037752534244987215, 0.19073604078023873, 0.03812121609122487, 1.0, 0.0]", + "[20.74999999999999, 5.065564806614034, 0.762936382131202, 0.07277704520540243, -0.011461622412926295, 0.14152188412232525, -0.06187878390877521, 1.0, 0.0]", + "[20.79999999999999, 5.066222138738953, 0.7687820630917523, 0.07218322656291436, 0.0377525342449872, 0.09230772746441177, 0.03812121609122479, 1.0, 0.0]", + "[20.849999999999987, 5.066879352687683, 0.7746278622284941, 0.07158916779400848, -0.011461622412926305, 0.14152188412232528, -0.06187878390877525, 1.0, 0.0]", + "[20.899999999999988, 5.065075859285849, 0.782934368715797, 0.07099534719196406, -0.060675779070839805, 0.1907360407802388, 0.03812121609122476, 1.0, 0.0]", + "[20.94999999999999, 5.063272482131624, 0.7912407589554923, 0.07040129038225985, -0.011461622412926305, 0.1415218841223253, -0.06187878390877529, 1.0, 0.0]", + "[20.99999999999999, 5.063929812328108, 0.7995472644787387, 0.069807467821314, 0.03775253424498718, 0.1907360407802388, 0.03812121609122471, 1.0, 0.0]", + "[21.04999999999999, 5.064587028205341, 0.807853655682734, 0.06921341297100565, -0.011461622412926323, 0.1415218841223253, -0.061878783908775346, 1.0, 0.0]", + "[21.099999999999987, 5.065244357437296, 0.8136993395362487, 0.06861958845019986, 0.03775253424498719, 0.0923077274644118, 0.03812121609122468, 1.0, 0.0]", + "[21.149999999999988, 5.065901574279568, 0.8195451357794459, 0.06802553556079041, -0.011461622412926323, 0.14152188412232533, -0.06187878390877536, 1.0, 0.0]", + "[21.19999999999999, 5.066558902546016, 0.8278516393726554, 0.0674317090781343, 0.03775253424498718, 0.1907360407802388, 0.03812121609122464, 1.0, 0.0]", + "[21.249999999999986, 5.067216120353679, 0.8361580325070801, 0.0668376581503339, -0.011461622412926323, 0.14152188412232533, -0.06187878390877543, 1.0, 0.0]", + "[21.299999999999986, 5.0654126308112275, 0.8444645351350006, 0.06624382970627259, -0.060675779070839805, 0.19073604078023884, 0.03812121609122458, 1.0, 0.0]", + "[21.349999999999987, 5.063609249796798, 0.8527709292349014, 0.06564978074025732, -0.011461622412926312, 0.14152188412232533, -0.06187878390877546, 1.0, 0.0]", + "[21.399999999999988, 5.0642665761323045, 0.8586166159848645, 0.06505595033405516, 0.03775253424498719, 0.09230772746441183, 0.03812121609122454, 1.0, 0.0]", + "[21.44999999999999, 5.064923795871471, 0.8644624093311672, 0.06446190333094896, -0.011461622412926309, 0.14152188412232536, -0.06187878390877551, 1.0, 0.0]", + "[21.499999999999986, 5.065581121240603, 0.8727689100270618, 0.06386807096113493, 0.037752534244987195, 0.1907360407802389, 0.038121216091224486, 1.0, 0.0]", + "[21.549999999999986, 5.066238341946066, 0.8810753060592883, 0.06327402592148161, -0.011461622412926316, 0.14152188412232541, -0.06187878390877558, 1.0, 0.0]", + "[21.599999999999987, 5.066895666348966, 0.8893818057889518, 0.06268019158834857, 0.03775253424498718, 0.19073604078023892, 0.038121216091224416, 1.0, 0.0]", + "[21.649999999999984, 5.0675528880208045, 0.8976882027875518, 0.06708635627351568, -0.01146162241292632, 0.14152188412232547, 0.1381212160912244, 1.0, 0.0]", + "[21.699999999999985, 5.068210215530084, 0.9059947056235942, 0.07149230590380908, 0.03775253424498718, 0.19073604078023892, 0.03812121609122434, 1.0, 0.0]", + "[21.749999999999986, 5.068867430023802, 0.9143010954440757, 0.07089824824228902, -0.011461622412926333, 0.14152188412232541, -0.06187878390877572, 1.0, 0.0]", + "[21.799999999999986, 5.067063937167555, 0.9226076013857927, 0.07030442653164899, -0.06067577907083985, 0.19073604078023895, 0.03812121609122429, 1.0, 0.0]", + "[21.849999999999987, 5.0652605594667985, 0.9309139921720204, 0.06971037083246343, -0.011461622412926337, 0.14152188412232547, -0.06187878390877576, 1.0, 0.0]", + "[21.899999999999984, 5.065917889115856, 0.9367596756084334, 0.06911654715918186, 0.03775253424498716, 0.09230772746441192, 0.038121216091224236, 1.0, 0.0]", + "[21.949999999999985, 5.066575105541558, 0.9426054722682015, 0.06852249342332749, -0.01146162241292635, 0.1415218841223254, -0.06187878390877582, 1.0, 0.0]", + "[21.999999999999986, 5.064771614617756, 0.9509119762774724, 0.0679286677860813, -0.06067577907083986, 0.1907360407802389, 0.038121216091224194, 1.0, 0.0]", + "[22.049999999999983, 5.06296823498429, 0.9592183689964081, 0.06733461601403398, -0.011461622412926371, 0.14152188412232547, -0.061878783908775846, 1.0, 0.0]", + "[22.099999999999984, 5.0636255627003965, 0.9650640543657738, 0.06674078841311697, 0.03775253424498712, 0.09230772746441199, 0.03812121609122414, 1.0, 0.0]", + "[22.149999999999984, 5.0642827810592586, 0.9709098490923828, 0.06614673860531771, -0.011461622412926382, 0.14152188412232547, -0.061878783908775915, 1.0, 0.0]", + "[22.199999999999985, 5.064940107808414, 0.9792163511683011, 0.06555290903962334, 0.03775253424498712, 0.19073604078023895, 0.0381212160912241, 1.0, 0.0]", + "[22.249999999999986, 5.065597327134163, 0.9875227458208129, 0.06495886119647856, -0.011461622412926392, 0.14152188412232544, -0.061878783908775964, 1.0, 0.0]", + "[22.299999999999983, 5.0662546529164825, 0.9958292469298955, 0.06436502966623618, 0.03775253424498712, 0.19073604078023898, 0.03812121609122405, 1.0, 0.0]", + "[22.349999999999984, 5.0669118732091745, 1.0041356425493506, 0.06377098378785764, -0.011461622412926371, 0.14152188412232553, -0.061878783908775985, 1.0, 0.0]", + "[22.399999999999984, 5.067569198024453, 1.0099813308195438, 0.06317715029264619, 0.03775253424498714, 0.09230772746441206, 0.03812121609122403, 1.0, 0.0]", + "[22.44999999999998, 5.0682264192844055, 1.0158271226450608, 0.06758331581473657, -0.011461622412926361, 0.14152188412232553, 0.13812121609122402, 1.0, 0.0]", + "[22.499999999999982, 5.068883747206692, 1.0241336258941096, 0.07198926460582816, 0.037752534244987146, 0.19073604078023904, 0.03812121609122399, 1.0, 0.0]", + "[22.549999999999983, 5.069540961286036, 1.032440015300216, 0.0713952061023251, -0.011461622412926357, 0.14152188412232553, -0.06187878390877605, 1.0, 0.0]", + "[22.599999999999984, 5.067737468015864, 1.0407465216558582, 0.07080138523275414, -0.06067577907083986, 0.1907360407802391, 0.03812121609122397, 1.0, 0.0]", + "[22.649999999999984, 5.065934090728608, 1.0490529120285867, 0.07020732869336431, -0.011461622412926361, 0.14152188412232558, -0.06187878390877608, 1.0, 0.0]", + "[22.69999999999998, 5.0665914207907585, 1.0548985950519056, 0.06961350585946302, 0.03775253424498713, 0.09230772746441206, 0.03812121609122393, 1.0, 0.0]", + "[22.749999999999982, 5.067248636803697, 1.0607443921244393, 0.06901945128489578, -0.011461622412926361, 0.14152188412232555, -0.06187878390877611, 1.0, 0.0]", + "[22.799999999999983, 5.065445145467447, 1.069050896546159, 0.06842562648571932, -0.06067577907083987, 0.19073604078023906, 0.03812121609122392, 1.0, 0.0]", + "[22.84999999999998, 5.0636417662460795, 1.0773572888529974, 0.06783157387631772, -0.011461622412926371, 0.14152188412232555, -0.061878783908776124, 1.0, 0.0]", + "[22.89999999999998, 5.064299094373945, 1.0856637923076253, 0.0672377471120727, 0.03775253424498713, 0.19073604078023906, 0.03812121609122389, 1.0, 0.0]", + "[22.94999999999998, 5.064956312321203, 1.0939701855816455, 0.0666436964679215, -0.011461622412926364, 0.14152188412232558, -0.06187878390877615, 1.0, 0.0]", + "[22.999999999999982, 5.065613639481806, 1.0998158715065143, 0.06604986773825755, 0.037752534244987146, 0.09230772746441208, 0.038121216091223875, 1.0, 0.0]", + "[23.049999999999983, 5.066270858396517, 1.1056616656772733, 0.06545581905990915, -0.01146162241292635, 0.14152188412232558, -0.06187878390877619, 1.0, 0.0]", + "[23.09999999999998, 5.06692818458949, 1.1139681671970105, 0.06486198836409071, 0.03775253424498715, 0.19073604078023912, 0.03812121609122382, 1.0, 0.0]", + "[23.14999999999998, 5.06758540447179, 1.1222745624060741, 0.06426794165182226, -0.011461622412926347, 0.1415218841223256, -0.06187878390877621, 1.0, 0.0]", + "[23.19999999999998, 5.065781917005079, 1.130581062958254, 0.06367410898999047, -0.06067577907083986, 0.19073604078023904, 0.03812121609122382, 1.0, 0.0]", + "[23.24999999999998, 5.063978533913855, 1.1388874591349483, 0.06808027534521734, -0.011461622412926354, 0.14152188412232558, 0.13812121609122383, 1.0, 0.0]", + "[23.29999999999998, 5.064635862247206, 1.1471939627950622, 0.07248622330105015, 0.03775253424498715, 0.1907360407802391, 0.03812121609122376, 1.0, 0.0]", + "[23.34999999999998, 5.065293075914459, 1.1555003517890783, 0.07189216396020595, -0.011461622412926344, 0.14152188412232558, -0.06187878390877629, 1.0, 0.0]", + "[23.39999999999998, 5.065950407355114, 1.161346033433893, 0.0712983439273365, 0.03775253424498716, 0.09230772746441208, 0.03812121609122371, 1.0, 0.0]", + "[23.44999999999998, 5.066607621989714, 1.1671918318847634, 0.07070428655207685, -0.01146162241292634, 0.14152188412232558, -0.061878783908776346, 1.0, 0.0]", + "[23.49999999999998, 5.0648041292752914, 1.1754983376846564, 0.07011046455325844, -0.06067577907083985, 0.1907360407802391, 0.03812121609122367, 1.0, 0.0]", + "[23.54999999999998, 5.063000751431917, 1.1838047286135005, 0.06951640914385968, -0.01146162241292634, 0.14152188412232558, -0.0618787839087764, 1.0, 0.0]", + "[23.59999999999998, 5.063658080937604, 1.189650412193283, 0.06892258517926031, 0.03775253424498716, 0.09230772746441206, 0.0381212160912236, 1.0, 0.0]", + "[23.64999999999998, 5.064315297507293, 1.1954962087090635, 0.06832853173597894, -0.011461622412926333, 0.14152188412232555, -0.06187878390877646, 1.0, 0.0]", + "[23.69999999999998, 5.064972626045219, 1.2038027125737536, 0.06773470580495362, 0.037752534244987146, 0.19073604078023904, 0.03812121609122354, 1.0, 0.0]", + "[23.749999999999982, 5.065629843582632, 1.212109105437931, 0.06714065432802781, -0.011461622412926354, 0.14152188412232553, -0.0618787839087765, 1.0, 0.0]", + "[23.799999999999983, 5.066287171152863, 1.2204156083349276, 0.06654682643071139, 0.037752534244987146, 0.190736040780239, 0.038121216091223514, 1.0, 0.0]", + "[23.849999999999984, 5.066944389658035, 1.2287220021668626, 0.06595277692020662, -0.011461622412926361, 0.1415218841223255, -0.06187878390877654, 1.0, 0.0]", + "[23.899999999999984, 5.0676017162604525, 1.2345676886499148, 0.06535894705635018, 0.03775253424498713, 0.09230772746441197, 0.03812121609122346, 1.0, 0.0]", + "[23.949999999999985, 5.068258935733573, 1.2404134822622652, 0.0647648995126527, -0.011461622412926378, 0.14152188412232547, -0.06187878390877661, 1.0, 0.0]", + "[23.999999999999986, 5.06645544785793, 1.2487199832233775, 0.06417106768174499, -0.060675779070839854, 0.19073604078023895, 0.038121216091223376, 1.0, 0.0]", + "[24.049999999999986, 5.06465206517547, 1.2570263789913056, 0.06857723486755744, -0.011461622412926354, 0.14152188412232547, 0.13812121609122338, 1.0, 0.0]", + "[24.099999999999987, 5.065309393918244, 1.2653328830608412, 0.07298318199147255, 0.037752534244987146, 0.19073604078023895, 0.03812121609122331, 1.0, 0.0]", + "[24.149999999999988, 5.065966607175348, 1.2736392716447091, 0.07238912181723298, -0.011461622412926375, 0.14152188412232544, -0.061878783908776755, 1.0, 0.0]", + "[24.19999999999999, 5.0666239390259395, 1.2794849528795866, 0.0717953026173296, 0.037752534244987146, 0.09230772746441193, 0.038121216091223264, 1.0, 0.0]", + "[24.24999999999999, 5.067281153250777, 1.2853307517402202, 0.07120124440945763, -0.011461622412926361, 0.14152188412232541, -0.06187878390877678, 1.0, 0.0]", + "[24.29999999999999, 5.065477660126762, 1.2936372579497069, 0.07060742324290767, -0.06067577907083985, 0.1907360407802389, 0.03812121609122324, 1.0, 0.0]", + "[24.34999999999999, 5.063674282692794, 1.3019436484691427, 0.0700133670016181, -0.01146162241292635, 0.14152188412232544, -0.06187878390877682, 1.0, 0.0]", + "[24.39999999999999, 5.064331612607711, 1.3102501537108215, 0.06941954386854568, 0.037752534244987146, 0.19073604078023887, 0.03812121609122316, 1.0, 0.0]", + "[24.449999999999992, 5.064988828768248, 1.31855654519812, 0.06882548959389087, -0.011461622412926364, 0.14152188412232536, -0.06187878390877687, 1.0, 0.0]", + "[24.499999999999993, 5.065646157715251, 1.3244022293365865, 0.06823166449408138, 0.03775253424498713, 0.09230772746441186, 0.038121216091223126, 1.0, 0.0]", + "[24.549999999999994, 5.066303374843818, 1.3302480252934883, 0.06763761218640618, -0.011461622412926371, 0.14152188412232536, -0.0618787839087769, 1.0, 0.0]", + "[24.599999999999994, 5.06696070282268, 1.338554528599113, 0.06704378511939561, 0.03775253424498713, 0.19073604078023884, 0.03812121609122311, 1.0, 0.0]", + "[24.649999999999995, 5.067617920919368, 1.3468609220225631, 0.06644973477887664, -0.011461622412926364, 0.1415218841223253, -0.06187878390877694, 1.0, 0.0]", + "[24.699999999999996, 5.065814431667311, 1.3551674243600893, 0.06585590574475278, -0.06067577907083986, 0.1907360407802388, 0.038121216091223084, 1.0, 0.0]", + "[24.749999999999996, 5.064011050361185, 1.3634738187516857, 0.06526185737144513, -0.011461622412926357, 0.14152188412232533, -0.06187878390877697, 1.0, 0.0]", + "[24.799999999999997, 5.064668376403759, 1.3693195057945822, 0.06466802637002156, 0.037752534244987146, 0.09230772746441182, 0.03812121609122304, 1.0, 0.0]", + "[24.849999999999998, 5.065325596436878, 1.3751652988469338, 0.06907419438496037, -0.01146162241292634, 0.14152188412232533, 0.13812121609122305, 1.0, 0.0]", + "[24.9, 5.065982925588151, 1.383471803324968, 0.07348014067883205, 0.03775253424498716, 0.1907360407802388, 0.038121216091223036, 1.0, 0.0]", + "[24.95, 5.0666401384362, 1.3917781914997793, 0.07288607967341654, -0.011461622412926333, 0.14152188412232533, -0.06187878390877702, 1.0, 0.0]", + "[25.0, 5.064836643935412, 1.4000846990860354, 0.07229226130437465, -0.06067577907083983, 0.1907360407802388, 0.03812121609122299, 1.0, 0.0]", + "[25.05, 5.063033267878122, 1.4083910882287956, 0.07169820226576865, -0.01146162241292634, 0.14152188412232536, -0.06187878390877705, 1.0, 0.0]", + "[25.1, 5.063690599169621, 1.414236770022768, 0.07110438192982094, 0.037752534244987174, 0.09230772746441185, 0.03812121609122296, 1.0, 0.0]", + "[25.150000000000002, 5.064347813953721, 1.4200825683241367, 0.07051032485834, -0.011461622412926333, 0.14152188412232533, -0.06187878390877711, 1.0, 0.0]", + "[25.200000000000003, 5.065005144277017, 1.4283890739741947, 0.06991650255506707, 0.03775253424498716, 0.19073604078023884, 0.03812121609122291, 1.0, 0.0]", + "[25.250000000000004, 5.0656623600293, 1.4366954650532398, 0.06932244745086748, -0.011461622412926337, 0.14152188412232536, -0.061878783908777164, 1.0, 0.0]", + "[25.300000000000004, 5.066319689384436, 1.4450019697351377, 0.06872862318035598, 0.03775253424498716, 0.19073604078023884, 0.038121216091222834, 1.0, 0.0]", + "[25.350000000000005, 5.06697690610492, 1.4533083617823856, 0.06813457004348186, -0.011461622412926337, 0.1415218841223253, -0.06187878390877722, 1.0, 0.0]", + "[25.400000000000006, 5.0676342344918135, 1.4591540464809614, 0.06754074380556704, 0.03775253424498717, 0.09230772746441179, 0.03812121609122278, 1.0, 0.0]", + "[25.450000000000006, 5.0682914521806275, 1.464999841877617, 0.06694669263627578, -0.011461622412926326, 0.1415218841223253, -0.06187878390877725, 1.0, 0.0]", + "[25.500000000000007, 5.066487962520851, 1.4733063446228647, 0.0663528644306153, -0.06067577907083982, 0.1907360407802388, 0.03812121609122274, 1.0, 0.0]", + "[25.550000000000008, 5.0646845816223465, 1.4816127386068378, 0.06575881522904337, -0.011461622412926326, 0.14152188412232533, -0.0618787839087773, 1.0, 0.0]", + "[25.60000000000001, 5.065341908072449, 1.4899192403837023, 0.06516498505569057, 0.037752534244987174, 0.19073604078023884, 0.038121216091222695, 1.0, 0.0]", + "[25.65000000000001, 5.065999127698078, 1.4982256353360943, 0.06457093782188203, -0.011461622412926337, 0.14152188412232533, -0.06187878390877733, 1.0, 0.0]", + "[25.70000000000001, 5.06665645317973, 1.5040713229399114, 0.06397710568070328, 0.03775253424498717, 0.09230772746441188, 0.03812121609122268, 1.0, 0.0]", + "[25.75000000000001, 5.067313673773881, 1.509917115431232, 0.06838327255566312, -0.011461622412926333, 0.1415218841223254, 0.13812121609122271, 1.0, 0.0]", + "[25.80000000000001, 5.06797100236467, 1.5182236193487852, 0.07278921998839555, 0.03775253424498717, 0.19073604078023892, 0.038121216091222675, 1.0, 0.0]", + "[25.850000000000012, 5.0686282157726055, 1.5265300080834832, 0.07219516012063337, -0.01146162241292633, 0.14152188412232544, -0.06187878390877737, 1.0, 0.0]", + "[25.900000000000013, 5.06682472183186, 1.5348365151096997, 0.0716013406136258, -0.06067577907083984, 0.19073604078023892, 0.038121216091222626, 1.0, 0.0]", + "[25.950000000000014, 5.065021345214379, 1.5431429048126495, 0.07100728271328972, -0.011461622412926344, 0.1415218841223254, -0.061878783908777414, 1.0, 0.0]", + "[26.000000000000014, 5.065678675945544, 1.548988587166954, 0.07041346123878266, 0.03775253424498716, 0.09230772746441185, 0.038121216091222584, 1.0, 0.0]", + "[26.050000000000015, 5.0663358912901, 1.554834384907867, 0.06981940530611076, -0.011461622412926344, 0.14152188412232536, -0.06187878390877747, 1.0, 0.0]", + "[26.100000000000016, 5.066993221052824, 1.563140889997352, 0.06922558186379031, 0.037752534244987146, 0.1907360407802389, 0.038121216091222515, 1.0, 0.0]", + "[26.150000000000016, 5.067650437365811, 1.5714472816371001, 0.06863152789890303, -0.011461622412926347, 0.14152188412232536, -0.061878783908777525, 1.0, 0.0]", + "[26.200000000000017, 5.065846946330209, 1.5797537857581716, 0.06803770248882779, -0.06067577907083983, 0.19073604078023887, 0.03812121609122249, 1.0, 0.0]", + "[26.250000000000018, 5.0640435668074835, 1.588060178366368, 0.06744365049176547, -0.011461622412926333, 0.1415218841223254, -0.06187878390877755, 1.0, 0.0]", + "[26.30000000000002, 5.064700894633314, 1.5939058636260082, 0.06684982311380358, 0.03775253424498716, 0.09230772746441189, 0.03812121609122246, 1.0, 0.0]", + "[26.35000000000002, 5.065358112883292, 1.5997516584614992, 0.06625577308476222, -0.01146162241292635, 0.1415218841223254, -0.061878783908777595, 1.0, 0.0]", + "[26.40000000000002, 5.066015439740516, 1.6080581606454871, 0.06566194373865887, 0.03775253424498715, 0.19073604078023887, 0.038121216091222404, 1.0, 0.0]", + "[26.45000000000002, 5.0666726589590905, 1.616364555190824, 0.06506789567774116, -0.011461622412926357, 0.14152188412232536, -0.06187878390877765, 1.0, 0.0]", + "[26.50000000000002, 5.064869170829157, 1.6246710564062268, 0.06447406436353417, -0.06067577907083985, 0.19073604078023887, 0.03812121609122235, 1.0, 0.0]", + "[26.550000000000022, 5.063065788400676, 1.632977451920179, 0.06888023206541052, -0.011461622412926344, 0.14152188412232536, 0.13812121609122235, 1.0, 0.0]", + "[26.600000000000023, 5.063723117398768, 1.6412839562450332, 0.07328617867053397, 0.03775253424498716, 0.19073604078023887, 0.03812121609122233, 1.0, 0.0]", + "[26.650000000000023, 5.0643803303990635, 1.6495903445720907, 0.07269211797447309, -0.01146162241292635, 0.14152188412232533, -0.06187878390877776, 1.0, 0.0]", + "[26.700000000000024, 5.065037662506072, 1.6554360255505536, 0.07209829929558785, 0.03775253424498716, 0.09230772746441183, 0.03812121609122225, 1.0, 0.0]", + "[26.750000000000025, 5.065694876474827, 1.661281824667269, 0.07150424056737482, -0.01146162241292634, 0.14152188412232533, -0.0618787839087778, 1.0, 0.0]", + "[26.800000000000026, 5.066352207613308, 1.6695883311325128, 0.0709104199205087, 0.037752534244987174, 0.1907360407802388, 0.038121216091222196, 1.0, 0.0]", + "[26.850000000000026, 5.067009422550575, 1.6778947213965434, 0.07031636316025155, -0.011461622412926323, 0.14152188412232528, -0.06187878390877786, 1.0, 0.0]", + "[26.900000000000027, 5.065205930139299, 1.6862012268932887, 0.06972254054545647, -0.06067577907083982, 0.19073604078023876, 0.03812121609122214, 1.0, 0.0]", + "[26.950000000000028, 5.063402551992209, 1.6945076181258492, 0.06912848575319064, -0.01146162241292632, 0.14152188412232525, -0.061878783908777914, 1.0, 0.0]", + "[27.00000000000003, 5.064059881193634, 1.700353302009894, 0.06853466117035005, 0.037752534244987174, 0.09230772746441179, 0.0381212160912221, 1.0, 0.0]", + "[27.05000000000003, 5.064717098068046, 1.706199098220951, 0.06794060834624832, -0.01146162241292633, 0.1415218841223253, -0.06187878390877797, 1.0, 0.0]", + "[27.10000000000003, 5.065374426300804, 1.7145056017804712, 0.06734678179513771, 0.037752534244987174, 0.19073604078023879, 0.03812121609122204, 1.0, 0.0]", + "[27.15000000000003, 5.066031644143876, 1.7228119949503071, 0.06675273093929043, -0.011461622412926333, 0.1415218841223253, -0.061878783908778, 1.0, 0.0]", + "[27.20000000000003, 5.066688971407983, 1.7286576807716703, 0.06615890241994377, 0.03775253424498717, 0.09230772746441178, 0.03812121609122201, 1.0, 0.0]", + "[27.250000000000032, 5.067346190219758, 1.7345034750453638, 0.06556485353243938, -0.011461622412926323, 0.1415218841223253, -0.06187878390877802, 1.0, 0.0]", + "[27.300000000000033, 5.065542701683109, 1.7428099766674838, 0.06497102304465505, -0.060675779070839826, 0.19073604078023884, 0.03812121609122199, 1.0, 0.0]", + "[27.350000000000033, 5.063739319661294, 1.751116371774769, 0.06937719157285241, -0.01146162241292632, 0.14152188412232536, 0.138121216091222, 1.0, 0.0]", + "[27.400000000000034, 5.064396649066289, 1.7594228765065254, 0.07378313735117638, 0.03775253424498718, 0.1907360407802388, 0.03812121609122195, 1.0, 0.0]", + "[27.450000000000035, 5.065053861659419, 1.7677292644264178, 0.07318907582778209, -0.011461622412926316, 0.14152188412232528, -0.06187878390877811, 1.0, 0.0]", + "[27.500000000000036, 5.065711194173526, 1.7735749449977811, 0.07259525797609738, 0.03775253424498718, 0.09230772746441179, 0.03812121609122188, 1.0, 0.0]", + "[27.550000000000036, 5.066368407735238, 1.779420744521541, 0.07200119842079523, -0.011461622412926333, 0.14152188412232528, -0.06187878390877819, 1.0, 0.0]", + "[27.600000000000037, 5.0670257392807105, 1.787727251393776, 0.0714073786009075, 0.03775253424498716, 0.19073604078023879, 0.03812121609122179, 1.0, 0.0]", + "[27.650000000000038, 5.067682953811046, 1.7960336412508742, 0.07081332101378922, -0.011461622412926344, 0.14152188412232528, -0.06187878390877825, 1.0, 0.0]", + "[27.70000000000004, 5.065879460992895, 1.8043401471544946, 0.07021949922573957, -0.06067577907083984, 0.19073604078023879, 0.03812121609122175, 1.0, 0.0]", + "[27.75000000000004, 5.064076083252628, 1.8126465379802332, 0.06962544360683699, -0.011461622412926347, 0.14152188412232533, -0.06187878390877828, 1.0, 0.0]", + "[27.80000000000004, 5.064733412860823, 1.8184922214575088, 0.06903161985052571, 0.03775253424498715, 0.09230772746441182, 0.03812121609122171, 1.0, 0.0]", + "[27.85000000000004, 5.065390629328512, 1.8243380180752906, 0.06843756619998467, -0.011461622412926354, 0.1415218841223253, -0.06187878390877836, 1.0, 0.0]", + "[27.90000000000004, 5.066047957967951, 1.8326445220414918, 0.06784374047522342, 0.037752534244987146, 0.19073604078023884, 0.038121216091221655, 1.0, 0.0]", + "[27.950000000000042, 5.0667051754043895, 1.840950914804693, 0.06724968879312078, -0.011461622412926371, 0.14152188412232533, -0.0618787839087784, 1.0, 0.0]", + "[28.000000000000043, 5.064901685492401, 1.8492574178021515, 0.06665586109993614, -0.06067577907083987, 0.1907360407802388, 0.03812121609122161, 1.0, 0.0]", + "[28.050000000000043, 5.063098304845904, 1.8575638115341186, 0.06606181138630371, -0.011461622412926375, 0.14152188412232533, -0.06187878390877844, 1.0, 0.0]", + "[28.100000000000044, 5.0637556315478145, 1.8658703135627916, 0.06546798172460977, 0.037752534244987125, 0.1907360407802389, 0.038121216091221585, 1.0, 0.0]", + "[28.150000000000045, 5.0644128509218245, 1.8741767082635639, 0.06487393397952677, -0.011461622412926382, 0.14152188412232541, -0.06187878390877844, 1.0, 0.0]", + "[28.200000000000045, 5.065070176654913, 1.8800223956159448, 0.06428010234925065, 0.03775253424498712, 0.09230772746441192, 0.03812121609122156, 1.0, 0.0]", + "[28.250000000000046, 5.065727396997782, 1.885868188358545, 0.06868626973479373, -0.011461622412926389, 0.14152188412232547, 0.13812121609122158, 1.0, 0.0]", + "[28.300000000000047, 5.0663847258406935, 1.8941746925282195, 0.07309221665523315, 0.03775253424498712, 0.19073604078023892, 0.03812121609122152, 1.0, 0.0]", + "[28.350000000000048, 5.06704193899559, 1.9024810810098787, 0.07249815627331249, -0.011461622412926392, 0.14152188412232541, -0.06187878390877852, 1.0, 0.0]", + "[28.40000000000005, 5.065238444802031, 1.9107875882889087, 0.07190433728000631, -0.06067577907083991, 0.19073604078023892, 0.038121216091221516, 1.0, 0.0]", + "[28.45000000000005, 5.0634350684371485, 1.919093977739261, 0.07131027886640762, -0.01146162241292641, 0.1415218841223254, -0.06187878390877851, 1.0, 0.0]", + "[28.50000000000005, 5.064092399420703, 1.9249396598411765, 0.07071645790473811, 0.037752534244987104, 0.09230772746441189, 0.038121216091221516, 1.0, 0.0]", + "[28.55000000000005, 5.06474961451305, 1.930785457834299, 0.0701224014595928, -0.011461622412926389, 0.1415218841223254, -0.06187878390877853, 1.0, 0.0]", + "[28.60000000000005, 5.065406944527807, 1.9390919631758188, 0.06952857852939064, 0.037752534244987104, 0.19073604078023892, 0.03812121609122146, 1.0, 0.0]", + "[28.650000000000052, 5.066064160588947, 1.9473983545637203, 0.06893452405276775, -0.011461622412926396, 0.14152188412232544, -0.06187878390877857, 1.0, 0.0]", + "[28.700000000000053, 5.0667214896349195, 1.9557048589364552, 0.06834069915405724, 0.03775253424498711, 0.19073604078023895, 0.038121216091221446, 1.0, 0.0]", + "[28.750000000000053, 5.067378706664863, 1.9640112512931618, 0.06774664664598332, -0.011461622412926392, 0.14152188412232547, -0.061878783908778594, 1.0, 0.0]", + "[28.800000000000054, 5.068036034742015, 1.96985693630148, 0.0671528197786907, 0.03775253424498711, 0.09230772746441193, 0.03812121609122142, 1.0, 0.0]", + "[28.850000000000055, 5.068693252740818, 1.9757027313881466, 0.06655876923927673, -0.011461622412926382, 0.14152188412232544, -0.061878783908778635, 1.0, 0.0]", + "[28.900000000000055, 5.0668897633912655, 1.984009233823168, 0.06596494040325655, -0.06067577907083989, 0.19073604078023895, 0.03812121609122136, 1.0, 0.0]", + "[28.950000000000056, 5.065086382182279, 1.9923156281176249, 0.06537089183256743, -0.011461622412926399, 0.14152188412232544, -0.06187878390877868, 1.0, 0.0]", + "[29.000000000000057, 5.06574370832165, 2.0006221295837587, 0.06477706102782961, 0.037752534244987104, 0.1907360407802389, 0.038121216091221335, 1.0, 0.0]", + "[29.050000000000058, 5.06640092825825, 2.00892852484712, 0.06418301442589151, -0.011461622412926396, 0.14152188412232541, -0.06187878390877872, 1.0, 0.0]", + "[29.10000000000006, 5.067058253428704, 2.014774212762137, 0.06358918165237651, 0.037752534244987104, 0.0923077274644119, 0.03812121609122128, 1.0, 0.0]", + "[29.15000000000006, 5.067715474334252, 2.020620004942059, 0.06799534789459445, -0.011461622412926406, 0.14152188412232541, 0.1381212160912213, 1.0, 0.0]", + "[29.20000000000006, 5.068372802614719, 2.0289265085492882, 0.07240129595788643, 0.03775253424498709, 0.1907360407802389, 0.03812121609122126, 1.0, 0.0]", + "[29.25000000000006, 5.069030016331805, 2.0372328975931375, 0.07180723671829974, -0.011461622412926416, 0.14152188412232541, -0.061878783908778816, 1.0, 0.0]", + "[29.30000000000006, 5.0672265227004925, 2.045539404309921, 0.07121341658254468, -0.06067577907083993, 0.19073604078023895, 0.03812121609122119, 1.0, 0.0]", + "[29.350000000000062, 5.065423145773307, 2.0538457943225756, 0.0706193593115098, -0.01146162241292643, 0.14152188412232547, -0.06187878390877886, 1.0, 0.0]", + "[29.400000000000063, 5.066080476194505, 2.0596914769868477, 0.07002553720716874, 0.03775253424498708, 0.09230772746441195, 0.03812121609122114, 1.0, 0.0]", + "[29.450000000000063, 5.066737691849257, 2.0655372744175655, 0.06943148190479295, -0.011461622412926416, 0.14152188412232544, -0.06187878390877891, 1.0, 0.0]", + "[29.500000000000064, 5.0649342001556565, 2.0738437791966353, 0.0688376578317296, -0.06067577907083992, 0.19073604078023892, 0.03812121609122107, 1.0, 0.0]", + "[29.550000000000065, 5.063130821290722, 2.0821501711470387, 0.06824360449807279, -0.011461622412926413, 0.1415218841223254, -0.061878783908778996, 1.0, 0.0]", + "[29.600000000000065, 5.063788149774145, 2.0904566749572244, 0.0676497784562984, 0.03775253424498709, 0.1907360407802389, 0.038121216091221016, 1.0, 0.0]", + "[29.650000000000066, 5.064445367366684, 2.0987630678765274, 0.0670557270913844, -0.011461622412926399, 0.1415218841223254, -0.061878783908779024, 1.0, 0.0]", + "[29.700000000000067, 5.065102694881195, 2.104608753447487, 0.06646189908084248, 0.03775253424498711, 0.09230772746441185, 0.03812121609122099, 1.0, 0.0]", + "[29.750000000000068, 5.065759913442678, 2.110454547971473, 0.06586784968475999, -0.011461622412926389, 0.14152188412232536, -0.06187878390877905, 1.0, 0.0]", + "[29.800000000000068, 5.066417239988218, 2.118761049843776, 0.06527401970533198, 0.03775253424498712, 0.1907360407802389, 0.03812121609122096, 1.0, 0.0]", + "[29.85000000000007, 5.067074459518672, 2.1270674447009923, 0.06467997227813387, -0.011461622412926385, 0.1415218841223254, -0.06187878390877908, 1.0, 0.0]", + "[29.90000000000007, 5.065270971700807, 2.1353739456043286, 0.0640861403298281, -0.06067577907083988, 0.19073604078023887, 0.038121216091220905, 1.0, 0.0]", + "[29.95000000000007, 5.063467588960076, 2.143680341430528, 0.06849230739723806, -0.011461622412926385, 0.14152188412232536, 0.1381212160912209, 1.0, 0.0]", + "[30.00000000000007, 5.064124917646793, 2.151986845444008, 0.07289825463505409, 0.03775253424498713, 0.1907360407802389, 0.038121216091220836, 1.0, 0.0]", + "[30.05000000000007, 5.064782130957487, 2.1602932340814665, 0.07230419456970631, -0.011461622412926361, 0.14152188412232541, -0.0618787839087792, 1.0, 0.0]", + "[30.100000000000072, 5.065439462753866, 2.1661389153705564, 0.07171037525964627, 0.037752534244987146, 0.09230772746441193, 0.03812121609122081, 1.0, 0.0]", + "[30.150000000000073, 5.066096677033446, 2.1719847141764457, 0.07111631716301042, -0.011461622412926354, 0.14152188412232547, -0.061878783908779246, 1.0, 0.0]", + "[30.200000000000074, 5.06675400786091, 2.1802912203306732, 0.07052249588417786, 0.03775253424498716, 0.19073604078023895, 0.03812121609122078, 1.0, 0.0]", + "[30.250000000000075, 5.067411223109402, 2.1885976109059277, 0.06992843975630937, -0.011461622412926337, 0.14152188412232547, -0.06187878390877926, 1.0, 0.0]", + "[30.300000000000075, 5.0656077310095515, 2.1969041160912477, 0.06933461650871929, -0.060675779070839854, 0.190736040780239, 0.03812121609122074, 1.0, 0.0]", + "[30.350000000000076, 5.063804352550841, 2.205210507635427, 0.06874056234964274, -0.011461622412926337, 0.1415218841223255, -0.0618787839087793, 1.0, 0.0]", + "[30.400000000000077, 5.064461681440461, 2.2110561918312768, 0.0681467371332335, 0.03775253424498717, 0.09230772746441199, 0.03812121609122071, 1.0, 0.0]", + "[30.450000000000077, 5.065118898626843, 2.216901987730364, 0.067552684943033, -0.011461622412926326, 0.14152188412232547, -0.06187878390877933, 1.0, 0.0]", + "[30.500000000000078, 5.065776226547474, 2.2252084909777574, 0.06695885775769989, 0.03775253424498717, 0.19073604078023898, 0.038121216091220655, 1.0, 0.0]", + "[30.55000000000008, 5.066433444702847, 2.2335148844598907, 0.06636480753642184, -0.011461622412926354, 0.14152188412232547, -0.061878783908779385, 1.0, 0.0]", + "[30.60000000000008, 5.067090771654491, 2.2393605705937154, 0.06577097838217275, 0.037752534244987146, 0.09230772746441199, 0.0381212160912206, 1.0, 0.0]", + "[30.65000000000008, 5.067747990778875, 2.2452063645548033, 0.06517693012986409, -0.011461622412926344, 0.14152188412232547, -0.06187878390877943, 1.0, 0.0]", + "[30.70000000000008, 5.06594450255497, 2.253512865864177, 0.06458309900660107, -0.06067577907083982, 0.19073604078023895, 0.03812121609122057, 1.0, 0.0]", + "[30.75000000000008, 5.064141120220259, 2.261819261284357, 0.06898926689901527, -0.011461622412926323, 0.14152188412232544, 0.13812121609122055, 1.0, 0.0]", + "[30.800000000000082, 5.0647984493130975, 2.2701257657039577, 0.07339521331162013, 0.037752534244987174, 0.19073604078023892, 0.038121216091220496, 1.0, 0.0]", + "[30.850000000000083, 5.065455662217558, 2.2784321539351815, 0.0728011524208297, -0.011461622412926323, 0.14152188412232541, -0.06187878390877954, 1.0, 0.0]", + "[30.900000000000084, 5.066112994420147, 2.2842778348180635, 0.0722073339361593, 0.037752534244987195, 0.09230772746441188, 0.038121216091220475, 1.0, 0.0]", + "[30.950000000000085, 5.06677020829354, 2.29012363403014, 0.07161327501417769, -0.011461622412926316, 0.14152188412232541, -0.06187878390877961, 1.0, 0.0]", + "[31.000000000000085, 5.064966714818619, 2.2984301405905323, 0.07101945456064553, -0.06067577907083982, 0.19073604078023892, 0.038121216091220406, 1.0, 0.0]", + "[31.050000000000086, 5.063163337734976, 2.3067365307596464, 0.0704253976075249, -0.011461622412926312, 0.14152188412232541, -0.06187878390877963, 1.0, 0.0]", + "[31.100000000000087, 5.06382066799965, 2.3150430363510828, 0.06983157518513751, 0.03775253424498719, 0.1907360407802389, 0.03812121609122039, 1.0, 0.0]", + "[31.150000000000087, 5.064477883810969, 2.323349427489165, 0.0692375202008981, -0.011461622412926312, 0.1415218841223254, -0.06187878390877965, 1.0, 0.0]", + "[31.200000000000088, 5.065135213106665, 2.3291951112789384, 0.06864369580961045, 0.03775253424498719, 0.09230772746441189, 0.03812121609122036, 1.0, 0.0]", + "[31.25000000000009, 5.065792429886989, 2.3350409075840854, 0.06804964279432435, -0.011461622412926312, 0.1415218841223254, -0.061878783908779704, 1.0, 0.0]", + "[31.30000000000009, 5.066449758213661, 2.3433474112375183, 0.0674558164340392, 0.03775253424498719, 0.1907360407802389, 0.03812121609122031, 1.0, 0.0]", + "[31.35000000000009, 5.067106975963009, 2.351653804313631, 0.06686176538775028, -0.011461622412926316, 0.14152188412232541, -0.06187878390877973, 1.0, 0.0]", + "[31.40000000000009, 5.065303486364069, 2.3599603069980417, 0.06626793705847345, -0.06067577907083981, 0.1907360407802389, 0.03812121609122027, 1.0, 0.0]", + "[31.45000000000009, 5.06350010540439, 2.3682667010431904, 0.06567388798120431, -0.011461622412926323, 0.14152188412232536, -0.06187878390877979, 1.0, 0.0]", + "[31.500000000000092, 5.064157431792991, 2.3741123877400585, 0.06508005768288677, 0.03775253424498719, 0.09230772746441185, 0.038121216091220225, 1.0, 0.0]", + "[31.550000000000093, 5.064814651480446, 2.3799581811380754, 0.06448601057470119, -0.011461622412926323, 0.14152188412232533, -0.06187878390877983, 1.0, 0.0]", + "[31.600000000000094, 5.065471976899961, 2.388264681884355, 0.06389217830726553, 0.03775253424498718, 0.19073604078023884, 0.038121216091220156, 1.0, 0.0]", + "[31.650000000000095, 5.066129197556501, 2.396571077867657, 0.0632981331682003, -0.011461622412926337, 0.1415218841223253, -0.061878783908779905, 1.0, 0.0]", + "[31.700000000000095, 5.066786522006933, 2.404877577644852, 0.06270429893164753, 0.037752534244987174, 0.19073604078023876, 0.038121216091220114, 1.0, 0.0]", + "[31.750000000000096, 5.067443743632567, 2.4131839745972496, 0.06711046371069454, -0.011461622412926326, 0.14152188412232528, 0.1381212160912201, 1.0, 0.0]", + "[31.800000000000097, 5.068101071193383, 2.421490477484829, 0.0715164132362689, 0.037752534244987174, 0.19073604078023879, 0.03812121609122008, 1.0, 0.0]", + "[31.850000000000097, 5.068758285629645, 2.4297968672478545, 0.07092235545800214, -0.01146162241292633, 0.1415218841223253, -0.06187878390877997, 1.0, 0.0]", + "[31.900000000000098, 5.066954792717609, 2.4381033732453607, 0.07032853386072176, -0.06067577907083983, 0.1907360407802388, 0.03812121609122003, 1.0, 0.0]", + "[31.9500000000001, 5.065151415071046, 2.4464097639773943, 0.06973447805141572, -0.011461622412926333, 0.14152188412232533, -0.06187878390878002, 1.0, 0.0]", + "[32.0000000000001, 5.065808744772771, 2.452255447361139, 0.06914065448515296, 0.037752534244987174, 0.09230772746441185, 0.03812121609122, 1.0, 0.0]", + "[32.0500000000001, 5.066465961147081, 2.4581012440722985, 0.06854660064487386, -0.01146162241292633, 0.14152188412232533, -0.06187878390878004, 1.0, 0.0]", + "[32.1000000000001, 5.067123289879747, 2.4639469284251, 0.0679527751095479, 0.037752534244987174, 0.09230772746441183, 0.038121216091219975, 1.0, 0.0]", + "[32.150000000000105, 5.067780507223125, 2.46979272416719, 0.06735872323835343, -0.01146162241292633, 0.14152188412232533, -0.06187878390878008, 1.0, 0.0]", + "[32.2000000000001, 5.065977017218241, 2.4780992272575455, 0.06676489573392831, -0.06067577907083984, 0.19073604078023879, 0.03812121609121992, 1.0, 0.0]", + "[32.2500000000001, 5.064173636664493, 2.4864056208967646, 0.0661708458318367, -0.01146162241292634, 0.14152188412232528, -0.06187878390878015, 1.0, 0.0]", + "[32.300000000000104, 5.064830963459009, 2.4947121230180422, 0.06557701635831058, 0.03775253424498715, 0.19073604078023876, 0.03812121609121985, 1.0, 0.0]", + "[32.35000000000011, 5.065488182740553, 2.503018517626348, 0.06498296842534043, -0.011461622412926347, 0.14152188412232522, -0.0618787839087802, 1.0, 0.0]", + "[32.400000000000105, 5.066145508565975, 2.5088642048863963, 0.06438913698267917, 0.037752534244987146, 0.09230772746441171, 0.038121216091219795, 1.0, 0.0]", + "[32.4500000000001, 5.066802728816628, 2.514709997721211, 0.0687953045555975, -0.011461622412926344, 0.1415218841223252, 0.13812121609121977, 1.0, 0.0]", + "[32.50000000000011, 5.067460057752436, 2.52301650198378, 0.07320125128727917, 0.03775253424498716, 0.19073604078023865, 0.038121216091219746, 1.0, 0.0]", + "[32.55000000000011, 5.068117270813688, 2.5313228903717944, 0.07260719071507932, -0.011461622412926354, 0.14152188412232516, -0.061878783908780315, 1.0, 0.0]", + "[32.60000000000011, 5.0663137765266475, 2.5396293977443025, 0.07201337191171578, -0.06067577907083986, 0.19073604078023867, 0.0381212160912197, 1.0, 0.0]", + "[32.650000000000105, 5.064510400255083, 2.547935787101336, 0.07141931330849936, -0.01146162241292635, 0.14152188412232516, -0.06187878390878037, 1.0, 0.0]", + "[32.70000000000011, 5.065167731331801, 2.553781469110088, 0.07082549253613184, 0.03775253424498716, 0.09230772746441161, 0.038121216091219656, 1.0, 0.0]", + "[32.750000000000114, 5.06582494633112, 2.559627267196238, 0.0702314359019615, -0.011461622412926333, 0.14152188412232514, -0.061878783908780384, 1.0, 0.0]", + "[32.80000000000011, 5.066482276438771, 2.567933772630652, 0.06963761316051396, 0.037752534244987174, 0.19073604078023867, 0.03812121609121963, 1.0, 0.0]", + "[32.85000000000011, 5.067139492407158, 2.5762401639258012, 0.06904355849542439, -0.01146162241292633, 0.14152188412232516, -0.06187878390878044, 1.0, 0.0]", + "[32.90000000000011, 5.065336001027277, 2.5845466683911504, 0.06844973378490082, -0.06067577907083985, 0.19073604078023865, 0.03812121609121955, 1.0, 0.0]", + "[32.95000000000012, 5.0635326218485215, 2.592853060655376, 0.06785568108891224, -0.011461622412926344, 0.14152188412232516, -0.06187878390878051, 1.0, 0.0]", + "[33.000000000000114, 5.064189950018024, 2.598698745571344, 0.06726185440926977, 0.03775253424498716, 0.09230772746441164, 0.03812121609121949, 1.0, 0.0]", + "[33.05000000000011, 5.064847167924588, 2.6045445407502474, 0.06666780368243638, -0.011461622412926333, 0.1415218841223251, -0.06187878390878055, 1.0, 0.0]", + "[33.100000000000115, 5.065504495124974, 2.6128510432773946, 0.06607397503361027, 0.037752534244987174, 0.19073604078023862, 0.03812121609121946, 1.0, 0.0]", + "[33.15000000000012, 5.06616176792077, 2.621157491399954, 0.06548003583816284, -0.011461622412926323, 0.14152188412232508, -0.061878783908780585, 1.0, 0.05000000000000001]" ] }, "type": "simtrace", @@ -741,24 +740,24 @@ "2": { "node_name": "2-0", "id": 2, - "start_line": 741, + "start_line": 740, "parent": { "name": "1-0", "index": 1, - "start_line": 346 + "start_line": 345 }, "child": { "3-0": { "name": "3-0", "index": 3, - "start_line": 1136 + "start_line": 1135 } }, "agent": { "test": "<class 'dryvr_plus_plus.example.example_agent.quadrotor_agent.QuadrotorAgent'>" }, "init": { - "test": "[5.061314967232464, 2.6195223991382175, 0.07488189729947217, 0.022796695950373973, 0.12183919547275654, 0.01180897064281973, 2, 0]" + "test": "[5.06616176792077, 2.621157491399954, 0.06548003583816284, -0.011461622412926323, 0.14152188412232508, -0.061878783908780585, 2, 0]" }, "mode": { "test": "[\"Follow_Waypoint\"]" @@ -766,368 +765,368 @@ "static": { "test": "[]" }, - "start_time": 33.2, + "start_time": 33.15, "trace": { "test": [ - "[33.2, 5.061314967232464, 2.6195223991382175, 0.07488189729947217, 0.022796695950373973, 0.12183919547275654, 0.01180897064281973, 2.0, 0.0]", - "[33.25, 5.061224387007438, 2.6268447739344016, 0.07297222166795436, -0.026417460707539527, 0.17105335213067008, -0.08819102935718032, 2.0, 0.0]", - "[33.300000000000004, 5.058673100507446, 2.6366278550055506, 0.07106279119814012, -0.07563161736545305, 0.22026750878858356, 0.011808970642819688, 2.0, 0.0]", - "[33.35, 5.053661107732314, 2.6488716423518386, 0.06915312189749673, -0.12484577402336654, 0.2694816654464971, -0.08819102935718034, 2.0, 0.0]", - "[33.400000000000006, 5.046188408682264, 2.6635761359730443, 0.067243685096711, -0.17405993068128006, 0.31869582210441066, 0.01180897064281966, 2.0, 0.0]", - "[33.45, 5.036255003357135, 2.6807413358693295, 0.07033424513054319, -0.22327408733919354, 0.36790997876232423, 0.11180897064281967, 2.0, 0.0]", - "[33.5, 5.026321710302798, 2.700367246120067, 0.0734245770373519, -0.17405993068128006, 0.41712413542023774, 0.011808970642819633, 2.0, 0.0]", - "[33.550000000000004, 5.018849127602679, 2.7224538667250235, 0.07151490382099479, -0.1248457740233666, 0.46633829207815125, -0.0881910293571804, 2.0, 0.0]", - "[33.6, 5.011376426625495, 2.747001193604946, 0.06960547093602076, -0.17405993068128012, 0.5155524487360648, 0.011808970642819605, 2.0, 0.0]", - "[33.650000000000006, 5.001443019373185, 2.7740092267599974, 0.07269603488576498, -0.22327408733919363, 0.5647666053939784, 0.11180897064281961, 2.0, 0.0]", - "[33.7, 4.991509728246051, 2.8034779702695207, 0.07578636287662076, -0.17405993068128017, 0.6139807620518921, 0.011808970642819556, 2.0, 0.0]", - "[33.75, 4.984037147473157, 2.832946592610946, 0.07387668574426731, -0.12484577402336666, 0.5647666053939784, -0.08819102935718048, 2.0, 0.0]", - "[33.800000000000004, 4.976564444568724, 2.859954508677379, 0.07196725677534292, -0.17405993068128017, 0.5155524487360648, 0.011808970642819522, 2.0, 0.0]", - "[33.85, 4.969091860680171, 2.884501718468671, 0.07505782464116335, -0.12484577402336666, 0.46633829207815136, 0.11180897064281953, 2.0, 0.0]", - "[33.900000000000006, 4.961619156811926, 2.9065882179055023, 0.07814814871596867, -0.1740599306812802, 0.4171241354202379, 0.01180897064281948, 2.0, 0.0]", - "[33.95, 4.954146577966244, 2.926214006988132, 0.07623846766764393, -0.12484577402336669, 0.3679099787623245, -0.08819102935718057, 2.0, 0.0]", - "[34.0, 4.946673873134632, 2.9433790897958048, 0.07432904261462249, -0.1740599306812802, 0.31869582210441105, 0.011808970642819425, 2.0, 0.0]", - "[34.050000000000004, 4.939201291173239, 2.9580834663283544, 0.07741961439630653, -0.12484577402336672, 0.26948166544649754, 0.11180897064281944, 2.0, 0.0]", - "[34.1, 4.931728585377887, 2.970327132506495, 0.08050993455535103, -0.17405993068128026, 0.220267508788584, 0.011808970642819404, 2.0, 0.0]", - "[34.150000000000006, 4.92425600845925, 2.9801100883304987, 0.07860024959139617, -0.12484577402336675, 0.17105335213067047, -0.08819102935718066, 2.0, 0.0]", - "[34.2, 4.916783301700613, 2.9874323378795644, 0.07669082845396342, -0.17405993068128023, 0.12183919547275697, 0.011808970642819341, 2.0, 0.0]", - "[34.25, 4.909310721666236, 2.992293881153515, 0.07478114982098956, -0.12484577402336677, 0.07262503881484345, -0.0881910293571807, 2.0, 0.0]", - "[34.300000000000004, 4.901838018023407, 2.994694718152598, 0.07287172235243379, -0.17405993068128028, 0.023410882156929946, 0.011808970642819272, 2.0, 0.0]", - "[34.35, 4.894365434873147, 2.9946348488766406, 0.07596229171841513, -0.12484577402336677, -0.025803274500983554, 0.11180897064281928, 2.0, 0.0]", - "[34.400000000000006, 4.886892730266667, 2.9921142692462817, 0.07905261429317662, -0.1740599306812802, -0.07501743115889707, 0.01180897064281921, 2.0, 0.0]", - "[34.45, 4.879420152159142, 2.989593816114876, 0.0771429317449631, -0.12484577402336669, -0.025803274500983568, -0.08819102935718084, 2.0, 0.0]", - "[34.5, 4.871947446589457, 2.9870732355213105, 0.07523350819165654, -0.17405993068128015, -0.07501743115889709, 0.011808970642819154, 2.0, 0.0]", - "[34.550000000000004, 4.8644748653660725, 2.9845527792740465, 0.07332383197466555, -0.12484577402336663, -0.02580327450098359, -0.08819102935718087, 2.0, 0.0]", - "[34.6, 4.857002162912288, 2.98203220179638, 0.07141440209005216, -0.1740599306812801, -0.07501743115889709, 0.011808970642819161, 2.0, 0.0]", - "[34.650000000000006, 4.849529578572955, 2.9795117424331665, 0.06950473220447129, -0.12484577402336663, -0.025803274500983575, -0.08819102935718087, 2.0, 0.0]", - "[34.7, 4.84205687923516, 2.9794519893447444, 0.06759529598836754, -0.17405993068128015, 0.02341088215692993, 0.011808970642819161, 2.0, 0.0]", - "[34.75, 4.8345842917797945, 2.979392124373893, 0.07068585660665229, -0.12484577402336666, -0.025803274500983575, 0.11180897064281917, 2.0, 0.0]", - "[34.800000000000004, 4.8271115914783325, 2.97933237224914, 0.07377618792892646, -0.17405993068128017, 0.023410882156929925, 0.01180897064281914, 2.0, 0.0]", - "[34.85, 4.819639009065909, 2.979272502235344, 0.07686675879414812, -0.12484577402336666, -0.02580327450098357, 0.11180897064281914, 2.0, 0.0]", - "[34.900000000000006, 4.812166303721624, 2.9792127551534118, 0.07995707986973224, -0.17405993068128015, 0.023410882156929918, 0.01180897064281912, 2.0, 0.0]", - "[34.95, 4.80469372635188, 2.979152880096939, 0.07804739582239507, -0.12484577402336663, -0.02580327450098359, -0.08819102935718093, 2.0, 0.0]", - "[35.00000000000001, 4.797221020044388, 2.979093133978214, 0.07613797376826707, -0.1740599306812801, 0.02341088215692991, 0.01180897064281907, 2.0, 0.0]", - "[35.050000000000004, 4.78974843955884, 2.979033262037544, 0.07422829605204131, -0.12484577402336657, -0.02580327450098358, -0.08819102935718096, 2.0, 0.0]", - "[35.1, 4.782275736367197, 2.978973512802971, 0.07231886766671042, -0.17405993068128003, 0.023410882156929925, 0.01180897064281905, 2.0, 0.0]", - "[35.150000000000006, 4.774803152765747, 2.9789136439782036, 0.07540943611590509, -0.12484577402336648, -0.02580327450098358, 0.11180897064281906, 2.0, 0.0]", - "[35.2, 4.767330448610464, 2.97885389570727, 0.07849975960746536, -0.17405993068128, 0.02341088215692992, 0.011808970642819015, 2.0, 0.0]", - "[35.25, 4.7598578700517455, 2.978794021839769, 0.07659007797604361, -0.1248457740233665, -0.025803274500983568, -0.08819102935718104, 2.0, 0.0]", - "[35.300000000000004, 4.752385164933241, 2.978734274532056, 0.07468065350596953, -0.17405993068127995, 0.023410882156929925, 0.011808970642818953, 2.0, 0.0]", - "[35.35, 4.744912583258689, 2.978674403780392, 0.07277097820572785, -0.12484577402336644, -0.025803274500983575, -0.0881910293571811, 2.0, 0.0]", - "[35.400000000000006, 4.737439881256063, 2.9786146533567988, 0.0708615474043836, -0.17405993068127992, 0.02341088215692992, 0.011808970642818911, 2.0, 0.0]", - "[35.45, 4.729967296465575, 2.97855478572107, 0.07395211343752836, -0.12484577402336644, -0.02580327450098359, 0.11180897064281892, 2.0, 0.0]", - "[35.5, 4.722494593499307, 2.9784950362611213, 0.07704243934508849, -0.1740599306812799, 0.023410882156929914, 0.011808970642818863, 2.0, 0.0]", - "[35.550000000000004, 4.7150220137516055, 2.9784351635826054, 0.07513276012960662, -0.12484577402336644, -0.02580327450098358, -0.08819102935718118, 2.0, 0.0]", - "[35.6, 4.707549309822099, 2.9783754150858934, 0.07322333324356244, -0.17405993068127995, 0.02341088215692992, 0.011808970642818814, 2.0, 0.0]", - "[35.650000000000006, 4.700076726958528, 2.9783155455232477, 0.07631390319207844, -0.12484577402336644, -0.025803274500983586, 0.11180897064281883, 2.0, 0.0]", - "[35.7, 4.692604022065391, 2.978255797990166, 0.07940422518437006, -0.17405993068127998, 0.023410882156929914, 0.011808970642818765, 2.0, 0.0]", - "[35.75, 4.685131444244497, 2.9781959233848414, 0.07749454205374043, -0.12484577402336645, -0.025803274500983586, -0.08819102935718126, 2.0, 0.0]", - "[35.800000000000004, 4.677658738388154, 2.9781361768149672, 0.07558511908290637, -0.17405993068127995, 0.023410882156929925, 0.011808970642818759, 2.0, 0.0]", - "[35.85, 4.6701861574514565, 2.978076305325446, 0.07367544228338851, -0.12484577402336645, -0.025803274500983582, -0.08819102935718132, 2.0, 0.0]", - "[35.9, 4.662713454710963, 2.978016555639724, 0.07176601298135062, -0.17405993068128, 0.023410882156929914, 0.011808970642818703, 2.0, 0.0]", - "[35.95, 4.6552408706583615, 2.977956687266106, 0.07485658051383588, -0.12484577402336654, -0.025803274500983592, 0.1118089706428187, 2.0, 0.0]", - "[36.0, 4.647768166954231, 2.97789693854402, 0.07794690492210742, -0.17405993068128006, 0.023410882156929897, 0.011808970642818682, 2.0, 0.0]", - "[36.05, 4.640295587944363, 2.9778370651276713, 0.076037224207397, -0.12484577402336658, -0.02580327450098361, -0.08819102935718137, 2.0, 0.0]", - "[36.1, 4.632822883277008, 2.977777317368808, 0.07412779882061307, -0.17405993068128003, 0.023410882156929897, 0.011808970642818648, 2.0, 0.0]", - "[36.15, 4.625350301151303, 2.977717447068295, 0.07221812443708298, -0.12484577402336655, -0.02580327450098361, -0.0881910293571814, 2.0, 0.0]", - "[36.2, 4.617877599599831, 2.9776576961935493, 0.07030869271902808, -0.17405993068128003, 0.02341088215692989, 0.011808970642818606, 2.0, 0.0]", - "[36.25, 4.6104050143581885, 2.9775978290089733, 0.0733992578354598, -0.12484577402336655, -0.025803274500983603, 0.11180897064281861, 2.0, 0.0]", - "[36.3, 4.602932311843074, 2.9775380790978723, 0.07648958465973485, -0.17405993068128006, 0.02341088215692991, 0.01180897064281853, 2.0, 0.0]", - "[36.35, 4.59545973164422, 2.977478206870509, 0.07457990636096806, -0.12484577402336655, -0.025803274500983582, -0.08819102935718151, 2.0, 0.0]", - "[36.4, 4.587987028165867, 2.9774184579226444, 0.07267047855821038, -0.17405993068128006, 0.023410882156929935, 0.011808970642818495, 2.0, 0.0]", - "[36.45, 4.5805144448511435, 2.977358588811152, 0.07576104759001115, -0.12484577402336658, -0.02580327450098357, 0.1118089706428185, 2.0, 0.0]", - "[36.5, 4.573041740409162, 2.9772988408269145, 0.07885137049902116, -0.17405993068128012, 0.023410882156929932, 0.011808970642818419, 2.0, 0.0]", - "[36.55, 4.5655691621371135, 2.977238966672747, 0.07694168828511147, -0.1248457740233666, -0.02580327450098357, -0.08819102935718162, 2.0, 0.0]", - "[36.6, 4.558096456731926, 2.977179219651718, 0.07503226439755975, -0.17405993068128012, 0.023410882156929918, 0.011808970642818377, 2.0, 0.0]", - "[36.65, 4.5506238753440735, 2.9771193486133534, 0.07312258851476056, -0.12484577402336663, -0.025803274500983586, -0.08819102935718165, 2.0, 0.0]", - "[36.699999999999996, 4.543151173054733, 2.9770595984764756, 0.07121315829600561, -0.17405993068128012, 0.023410882156929918, 0.011808970642818384, 2.0, 0.0]", - "[36.75, 4.535678588550977, 2.976999730554014, 0.0743037249117722, -0.12484577402336658, -0.02580327450098358, 0.11180897064281839, 2.0, 0.0]", - "[36.8, 4.528205885298002, 2.97693998138077, 0.07739405023676567, -0.1740599306812801, 0.023410882156929918, 0.011808970642818335, 2.0, 0.0]", - "[36.849999999999994, 4.520733305836977, 2.9768801084155787, 0.0754843704387788, -0.1248457740233666, -0.02580327450098359, -0.08819102935718173, 2.0, 0.0]", - "[36.9, 4.513260601620778, 2.9768203602055587, 0.07357494413527371, -0.17405993068128012, 0.02341088215692992, 0.011808970642818273, 2.0, 0.0]", - "[36.949999999999996, 4.505788019043916, 2.976760490356204, 0.0766655146663635, -0.12484577402336666, -0.025803274500983586, 0.11180897064281828, 2.0, 0.0]", - "[37.0, 4.498315313864101, 2.9767007431098027, 0.07975583607614063, -0.17405993068128012, 0.02341088215692991, 0.011808970642818245, 2.0, 0.0]", - "[37.05, 4.490842736329853, 2.9766408682178316, 0.07784615236306254, -0.1248457740233666, -0.025803274500983592, -0.08819102935718179, 2.0, 0.0]", - "[37.099999999999994, 4.483370030186845, 2.976581121934622, 0.07593672997471335, -0.17405993068128012, 0.0234108821569299, 0.011808970642818217, 2.0, 0.0]", - "[37.15, 4.475897449536833, 2.9765212501584184, 0.07402705259267349, -0.12484577402336662, -0.025803274500983606, -0.08819102935718182, 2.0, 0.0]", - "[37.199999999999996, 4.46842474650964, 2.976461500759396, 0.07211762387319127, -0.17405993068128015, 0.023410882156929907, 0.011808970642818203, 2.0, 0.0]", - "[37.25, 4.460952162743756, 2.9764016320990616, 0.07520819198826657, -0.12484577402336658, -0.025803274500983613, 0.11180897064281822, 2.0, 0.0]", - "[37.3, 4.453479458752937, 2.976341883663663, 0.07829851581400672, -0.17405993068128006, 0.023410882156929887, 0.011808970642818176, 2.0, 0.0]", - "[37.349999999999994, 4.446006880029726, 2.9762820099606575, 0.0763888345168303, -0.12484577402336657, -0.025803274500983606, -0.08819102935718187, 2.0, 0.0]", - "[37.4, 4.438534175075699, 2.9762222624884664, 0.07447940971254852, -0.17405993068128006, 0.02341088215692989, 0.011808970642818134, 2.0, 0.0]", - "[37.449999999999996, 4.431061593236684, 2.976162391901262, 0.07256973474647956, -0.12484577402336658, -0.025803274500983603, -0.0881910293571819, 2.0, 0.0]", - "[37.49999999999999, 4.423588891398503, 2.9761026413132243, 0.07066030361099683, -0.17405993068128006, 0.023410882156929907, 0.011808970642818106, 2.0, 0.0]", - "[37.55, 4.4161163064435875, 2.9760427738419226, 0.07375086931003468, -0.12484577402336655, -0.02580327450098359, 0.11180897064281811, 2.0, 0.0]", - "[37.599999999999994, 4.408643603641774, 2.975983024217517, 0.07684119555176154, -0.1740599306812801, 0.023410882156929907, 0.011808970642818058, 2.0, 0.0]", - "[37.64999999999999, 4.4011710237295825, 2.9759231517034896, 0.07493151667051122, -0.12484577402336659, -0.025803274500983592, -0.08819102935718198, 2.0, 0.0]", - "[37.699999999999996, 4.393698319964546, 2.975863403042307, 0.07302208945027283, -0.1740599306812801, 0.023410882156929914, 0.011808970642818023, 2.0, 0.0]", - "[37.74999999999999, 4.386225736936521, 2.975803533644115, 0.0761126590646292, -0.12484577402336662, -0.025803274500983586, 0.11180897064281803, 2.0, 0.0]", - "[37.8, 4.378753032207869, 2.975743785946548, 0.079202981391146, -0.17405993068128012, 0.023410882156929914, 0.011808970642817988, 2.0, 0.0]", - "[37.849999999999994, 4.371280454222455, 2.9756839115057443, 0.07729329859481245, -0.12484577402336658, -0.02580327450098359, -0.08819102935718207, 2.0, 0.0]", - "[37.89999999999999, 4.363807748530613, 2.9756241647713693, 0.07538387528972286, -0.17405993068128006, 0.02341088215692992, 0.011808970642817926, 2.0, 0.0]", - "[37.949999999999996, 4.356335167429433, 2.9755642934463316, 0.07347419882442269, -0.12484577402336659, -0.025803274500983565, -0.08819102935718212, 2.0, 0.0]", - "[37.99999999999999, 4.348862464853403, 2.975504543596144, 0.07156476918820406, -0.17405993068128012, 0.023410882156929932, 0.011808970642817884, 2.0, 0.0]", - "[38.05, 4.341389880636356, 2.975444675386974, 0.07465533638654284, -0.12484577402336658, -0.025803274500983568, 0.11180897064281789, 2.0, 0.0]", - "[38.099999999999994, 4.333917177096704, 2.9753849265004093, 0.07774566112902571, -0.17405993068128015, 0.02341088215692993, 0.011808970642817829, 2.0, 0.0]", - "[38.14999999999999, 4.326444597922322, 2.975325053248574, 0.07583598074859692, -0.12484577402336662, -0.025803274500983575, -0.08819102935718226, 2.0, 0.0]", - "[38.199999999999996, 4.318971893419462, 2.975265305325216, 0.07392655502757163, -0.1740599306812801, 0.023410882156929918, 0.01180897064281776, 2.0, 0.0]", - "[38.24999999999999, 4.311499311129282, 2.9752054351891792, 0.07701712614117966, -0.12484577402336658, -0.025803274500983575, 0.11180897064281775, 2.0, 0.0]", - "[38.29999999999999, 4.304026605662816, 2.9751456882294254, 0.08010744696850493, -0.1740599306812801, 0.023410882156929925, 0.011808970642817669, 2.0, 0.0]", - "[38.349999999999994, 4.296554028415181, 2.9750858130508417, 0.0781977626730487, -0.12484577402336657, -0.025803274500983565, -0.08819102935718237, 2.0, 0.0]", - "[38.39999999999999, 4.289081321985538, 2.975026067054265, 0.07628834086711823, -0.17405993068128003, 0.023410882156929946, 0.01180897064281762, 2.0, 0.0]", - "[38.44999999999999, 4.281608741622177, 2.9749661949914086, 0.07437866290261853, -0.1248457740233665, -0.025803274500983568, -0.08819102935718245, 2.0, 0.0]", - "[38.49999999999999, 4.274136038308311, 2.9749064458790566, 0.07246923476563372, -0.17405993068127995, 0.02341088215692993, 0.011808970642817537, 2.0, 0.0]", - "[38.54999999999999, 4.266663454829117, 2.9748465769320327, 0.07555980346324445, -0.12484577402336648, -0.02580327450098358, 0.11180897064281756, 2.0, 0.0]", - "[38.599999999999994, 4.259190750551639, 2.9747868287832926, 0.07865012670651483, -0.17405993068128003, 0.023410882156929932, 0.011808970642817475, 2.0, 0.0]", - "[38.64999999999999, 4.251718172115047, 2.9747269547936663, 0.0767404448269417, -0.12484577402336651, -0.02580327450098357, -0.08819102935718257, 2.0, 0.0]", - "[38.69999999999999, 4.244245466874379, 2.9746672076081175, 0.07483102060509683, -0.17405993068128, 0.02341088215692994, 0.011808970642817447, 2.0, 0.0]", - "[38.74999999999999, 4.236772885322027, 2.9746073367342523, 0.07292134505655015, -0.1248457740233665, -0.025803274500983558, -0.0881910293571826, 2.0, 0.0]", - "[38.79999999999999, 4.229300183197164, 2.9745475864328945, 0.07101191450358235, -0.17405993068128, 0.023410882156929953, 0.011808970642817412, 2.0, 0.0]", - "[38.849999999999994, 4.221827598528946, 2.9744877186748946, 0.0741024807851728, -0.12484577402336655, -0.02580327450098354, 0.11180897064281742, 2.0, 0.0]", - "[38.89999999999999, 4.214354895440468, 2.974427969337156, 0.07719280644441205, -0.17405993068128003, 0.023410882156929956, 0.011808970642817378, 2.0, 0.0]", - "[38.94999999999999, 4.206882315814909, 2.974368096536498, 0.07528312698074653, -0.1248457740233665, -0.025803274500983554, -0.08819102935718268, 2.0, 0.0]", - "[38.99999999999999, 4.199409611763223, 2.974308348161965, 0.07337370034296321, -0.17405993068128, 0.023410882156929956, 0.011808970642817329, 2.0, 0.0]", - "[39.04999999999999, 4.191937029021869, 2.9742484784771026, 0.07646427053981504, -0.12484577402336651, -0.025803274500983544, 0.11180897064281736, 2.0, 0.0]", - "[39.09999999999999, 4.184464324006583, 2.9741887310661697, 0.07955459228390648, -0.17405993068128, 0.023410882156929953, 0.011808970642817336, 2.0, 0.0]", - "[39.14999999999999, 4.176991746307766, 2.974128856338769, 0.07764490890522532, -0.1248457740233665, -0.025803274500983554, -0.0881910293571827, 2.0, 0.0]", - "[39.19999999999999, 4.169519040329304, 2.9740691098910124, 0.0757354861825261, -0.17405993068128, 0.02341088215692995, 0.011808970642817301, 2.0, 0.0]", - "[39.249999999999986, 4.162046459514764, 2.974009238279334, 0.07382580913479232, -0.12484577402336651, -0.025803274500983544, -0.08819102935718273, 2.0, 0.0]", - "[39.29999999999999, 4.154573756652074, 2.9739494887158067, 0.07191638008104692, -0.17405993068128006, 0.023410882156929963, 0.011808970642817274, 2.0, 0.0]", - "[39.34999999999999, 4.147101172721706, 2.973889620219958, 0.0750069478618989, -0.12484577402336658, -0.025803274500983537, 0.11180897064281728, 2.0, 0.0]", - "[39.39999999999999, 4.139628468895411, 2.9738298716200378, 0.078097272021938, -0.1740599306812801, 0.02341088215692997, 0.011808970642817197, 2.0, 0.0]", - "[39.44999999999999, 4.132155890007636, 2.973769998081595, 0.0761875910591426, -0.12484577402336658, -0.025803274500983527, -0.08819102935718284, 2.0, 0.0]", - "[39.499999999999986, 4.1246831852181485, 2.9737102504448654, 0.07427816592052644, -0.17405993068128012, 0.023410882156929963, 0.011808970642817163, 2.0, 0.0]", - "[39.54999999999999, 4.117210603214617, 2.9736503800221805, 0.07236849128874819, -0.12484577402336658, -0.025803274500983547, -0.0881910293571829, 2.0, 0.0]", - "[39.59999999999999, 4.109737901540934, 2.9735906292696455, 0.0704590598190173, -0.17405993068128012, 0.02341088215692996, 0.011808970642817107, 2.0, 0.0]", - "[39.64999999999999, 4.102265316421541, 2.9735307619628224, 0.07354962518384653, -0.12484577402336655, -0.025803274500983547, 0.11180897064281711, 2.0, 0.0]", - "[39.69999999999999, 4.094792613784245, 2.9734710121739023, 0.07663995175985693, -0.17405993068128, 0.02341088215692995, 0.011808970642817072, 2.0, 0.0]", - "[39.749999999999986, 4.087320033707501, 2.97341113982443, 0.07473027321297164, -0.1248457740233665, -0.025803274500983544, -0.08819102935718298, 2.0, 0.0]", - "[39.79999999999999, 4.0798473301069995, 2.9733513909987157, 0.07282084565841457, -0.17405993068127995, 0.02341088215692995, 0.011808970642817024, 2.0, 0.0]", - "[39.84999999999999, 4.0723747469144636, 2.9732915217650344, 0.07591141493849551, -0.12484577402336647, -0.025803274500983547, 0.11180897064281703, 2.0, 0.0]", - "[39.899999999999984, 4.064902042350366, 2.9732317739029157, 0.07900173759936988, -0.17405993068127995, 0.02341088215692995, 0.011808970642816975, 2.0, 0.0]", - "[39.94999999999999, 4.054968627432249, 2.9731718996267085, 0.07709205513748303, -0.2232740873391934, -0.02580327450098355, -0.08819102935718307, 2.0, 0.0]", - "[39.999999999999986, 4.04503533989139, 2.97311215272776, 0.07518263149799036, -0.17405993068127992, 0.02341088215692995, 0.011808970642816927, 2.0, 0.0]", - "[40.04999999999998, 4.037562758625657, 2.9730522815672757, 0.07327295536705182, -0.12484577402336645, -0.025803274500983568, -0.08819102935718315, 2.0, 0.0]", - "[40.09999999999999, 4.030090056214155, 2.972992531552559, 0.07136352539651857, -0.17405993068127998, 0.02341088215692993, 0.011808970642816871, 2.0, 0.0]", - "[40.149999999999984, 4.022617471832596, 2.9729326635078976, 0.07445409226058647, -0.12484577402336648, -0.025803274500983575, 0.11180897064281689, 2.0, 0.0]", - "[40.19999999999999, 4.015144768457493, 2.9728729144567825, 0.07754441733742329, -0.17405993068128, 0.02341088215692993, 0.01180897064281685, 2.0, 0.0]", - "[40.249999999999986, 4.007672189118517, 2.9728130413695406, 0.07563473729143873, -0.1248457740233665, -0.025803274500983575, -0.0881910293571832, 2.0, 0.0]", - "[40.29999999999998, 4.000199484780226, 2.9727532932816145, 0.07372531123602039, -0.17405993068127998, 0.023410882156929932, 0.011808970642816802, 2.0, 0.0]", - "[40.34999999999999, 3.9927269023255, 2.972693423310123, 0.07681588201528318, -0.12484577402336647, -0.02580327450098358, 0.11180897064281681, 2.0, 0.0]", - "[40.399999999999984, 3.9852541970236253, 2.9726336761857794, 0.0799062031770447, -0.17405993068127995, 0.023410882156929925, 0.011808970642816781, 2.0, 0.0]", - "[40.44999999999999, 3.9777816196113527, 2.9725738011718343, 0.0779965192161234, -0.12484577402336647, -0.025803274500983586, -0.08819102935718329, 2.0, 0.0]", - "[40.499999999999986, 3.9703089133463236, 2.9725140550106466, 0.0760870970757136, -0.17405993068127995, 0.023410882156929918, 0.011808970642816718, 2.0, 0.0]", - "[40.54999999999998, 3.9628363328183767, 2.9724541831123763, 0.07417741944564099, -0.12484577402336641, -0.025803274500983575, -0.08819102935718331, 2.0, 0.0]", - "[40.59999999999999, 3.955363629669071, 2.9723944338354644, 0.07226799097427998, -0.17405993068127995, 0.023410882156929914, 0.01180897064281669, 2.0, 0.0]", - "[40.649999999999984, 3.9478910460253402, 2.9723345650529773, 0.07535855933756207, -0.12484577402336647, -0.025803274500983592, 0.1118089706428167, 2.0, 0.0]", - "[40.69999999999998, 3.9404183419124443, 2.972274816739655, 0.07844888291525151, -0.17405993068127998, 0.023410882156929918, 0.011808970642816649, 2.0, 0.0]", - "[40.749999999999986, 3.9329457633112233, 2.9722149429146585, 0.07653920137019561, -0.12484577402336645, -0.02580327450098358, -0.08819102935718337, 2.0, 0.0]", - "[40.79999999999998, 3.925473058235156, 2.972155195564507, 0.07462977681388892, -0.17405993068127995, 0.023410882156929914, 0.011808970642816635, 2.0, 0.0]", - "[40.84999999999998, 3.9180004765182272, 2.972095324855218, 0.07272010159975206, -0.12484577402336648, -0.025803274500983582, -0.0881910293571834, 2.0, 0.0]", - "[40.899999999999984, 3.910527774557919, 2.9720355743893094, 0.07081067071242501, -0.17405993068127998, 0.02341088215692992, 0.011808970642816621, 2.0, 0.0]", - "[40.94999999999998, 3.903055189725173, 2.9719757067958383, 0.07390123665970347, -0.12484577402336652, -0.02580327450098358, 0.11180897064281661, 2.0, 0.0]", - "[40.999999999999986, 3.895582486801268, 2.971915957293526, 0.07699156265334442, -0.17405993068128006, 0.023410882156929932, 0.011808970642816545, 2.0, 0.0]", - "[41.04999999999998, 3.8881099070110876, 2.9718560846574893, 0.07508188352417823, -0.1248457740233666, -0.025803274500983575, -0.08819102935718351, 2.0, 0.0]", - "[41.09999999999998, 3.8806372031239964, 2.9717963361183637, 0.07317245655195073, -0.1740599306812801, 0.023410882156929932, 0.011808970642816524, 2.0, 0.0]", - "[41.149999999999984, 3.8731646202180734, 2.9717364665980694, 0.07626302641440999, -0.12484577402336658, -0.025803274500983565, 0.11180897064281653, 2.0, 0.0]", - "[41.19999999999998, 3.8656919153674045, 2.971676719022521, 0.07935334849299233, -0.1740599306812801, 0.023410882156929942, 0.011808970642816496, 2.0, 0.0]", - "[41.249999999999986, 3.8582193375039178, 2.97161684445979, 0.07744366544890899, -0.12484577402336659, -0.02580327450098355, -0.08819102935718354, 2.0, 0.0]", - "[41.29999999999998, 3.8507466316900967, 2.9715570978473935, 0.07553424239167197, -0.1740599306812801, 0.023410882156929963, 0.011808970642816469, 2.0, 0.0]", - "[41.34999999999998, 3.8432740507109453, 2.971497226400328, 0.07362456567841956, -0.12484577402336658, -0.025803274500983547, -0.08819102935718359, 2.0, 0.0]", - "[41.399999999999984, 3.8358013480128412, 2.971437476672216, 0.0717151362902477, -0.17405993068128006, 0.023410882156929956, 0.011808970642816434, 2.0, 0.0]", - "[41.44999999999999, 3.828328763917913, 2.971377608340927, 0.07480570373672461, -0.12484577402336657, -0.025803274500983544, 0.11180897064281645, 2.0, 0.0]", - "[41.499999999999986, 3.820856060256224, 2.9713178595763985, 0.07789602823123655, -0.17405993068128, 0.023410882156929953, 0.011808970642816406, 2.0, 0.0]", - "[41.54999999999998, 3.8133834812037875, 2.9712579862026174, 0.0759863476030204, -0.12484577402336651, -0.025803274500983544, -0.08819102935718362, 2.0, 0.0]", - "[41.59999999999999, 3.8059107765789304, 2.971198238401257, 0.07407692212988477, -0.17405993068128, 0.023410882156929963, 0.011808970642816385, 2.0, 0.0]", - "[41.64999999999999, 3.7984381944107954, 2.9711383681431744, 0.07216724783256975, -0.12484577402336651, -0.025803274500983537, -0.08819102935718365, 2.0, 0.0]", - "[41.69999999999999, 3.7909654929016887, 2.971078617226063, 0.07025781602843031, -0.17405993068128003, 0.023410882156929973, 0.011808970642816372, 2.0, 0.0]", - "[41.749999999999986, 3.783492907617744, 2.9710187500837906, 0.07334838105890207, -0.12484577402336657, -0.025803274500983533, 0.11180897064281636, 2.0, 0.0]", - "[41.79999999999999, 3.7760202051450453, 2.970959000130271, 0.0764387079693671, -0.17405993068128006, 0.023410882156929977, 0.011808970642816302, 2.0, 0.0]", - "[41.849999999999994, 3.768547624903649, 2.9708991279454495, 0.0745290297570423, -0.12484577402336655, -0.02580327450098353, -0.08819102935718376, 2.0, 0.0]", - "[41.89999999999999, 3.761074921467768, 2.970839378955112, 0.07261960186798432, -0.17405993068128006, 0.02341088215692999, 0.011808970642816247, 2.0, 0.0]", - "[41.94999999999999, 3.7536023381106385, 2.9707795098860243, 0.07571017081362029, -0.12484577402336658, -0.02580327450098352, 0.11180897064281628, 2.0, 0.0]", - "[41.99999999999999, 3.746129633711187, 2.9707197618592587, 0.07880049380904629, -0.17405993068128012, 0.023410882156929998, 0.011808970642816212, 2.0, 0.0]", - "[42.05, 3.7386570553964726, 2.9706598877477557, 0.07689081168182704, -0.12484577402336662, -0.025803274500983502, -0.08819102935718384, 2.0, 0.0]", - "[42.099999999999994, 3.731184350033873, 2.9706001406841382, 0.07498138770773843, -0.1740599306812801, 0.023410882156929998, 0.011808970642816177, 2.0, 0.0]", - "[42.14999999999999, 3.723711768603504, 2.970540269688289, 0.07307171191132882, -0.12484577402336657, -0.025803274500983516, -0.08819102935718387, 2.0, 0.0]", - "[42.199999999999996, 3.7162390663566107, 2.9704805195089645, 0.07116228160632512, -0.17405993068128006, 0.023410882156929987, 0.011808970642816136, 2.0, 0.0]", - "[42.25, 3.708766481810475, 2.970420651628883, 0.07425284813597743, -0.12484577402336658, -0.025803274500983527, 0.11180897064281617, 2.0, 0.0]", - "[42.3, 3.7012937786000033, 2.970360902413138, 0.07734317354733435, -0.17405993068128006, 0.023410882156929977, 0.011808970642816122, 2.0, 0.0]", - "[42.349999999999994, 3.6938211990963397, 2.970301029490584, 0.07543349383598377, -0.12484577402336658, -0.02580327450098352, -0.08819102935718395, 2.0, 0.0]", - "[42.4, 3.686348494922704, 2.9702412812380024, 0.07352406744599523, -0.17405993068128012, 0.023410882156929987, 0.011808970642816052, 2.0, 0.0]", - "[42.45, 3.6788759123033516, 2.9701814114311373, 0.07661463789074781, -0.1248457740233666, -0.025803274500983502, 0.11180897064281606, 2.0, 0.0]", - "[42.5, 3.67140320716616, 2.9701216641421113, 0.07970495938713423, -0.17405993068128012, 0.023410882156930005, 0.01180897064281599, 2.0, 0.0]", - "[42.55, 3.663930629589143, 2.9700617892929104, 0.07779527576096253, -0.12484577402336659, -0.0258032745009835, -0.08819102935718409, 2.0, 0.0]", - "[42.6, 3.6564579234888233, 2.9700020429670135, 0.07588585328587255, -0.17405993068128012, 0.023410882156929998, 0.0118089706428159, 2.0, 0.0]", - "[42.650000000000006, 3.6489853427961982, 2.969942171233421, 0.07397617599041456, -0.12484577402336663, -0.025803274500983506, -0.08819102935718415, 2.0, 0.0]", - "[42.7, 3.641512639811539, 2.969882421791862, 0.07206674718450254, -0.17405993068128015, 0.023410882156929994, 0.011808970642815872, 2.0, 0.0]", - "[42.75, 3.634040056003192, 2.969822553173992, 0.07515731521329333, -0.12484577402336663, -0.0258032745009835, 0.11180897064281586, 2.0, 0.0]", - "[42.800000000000004, 3.6265673520549693, 2.969762804695997, 0.07824763912558823, -0.17405993068128015, 0.023410882156930005, 0.011808970642815796, 2.0, 0.0]", - "[42.85000000000001, 3.6190947732890137, 2.9697029310357355, 0.07633795791526214, -0.12484577402336669, -0.025803274500983485, -0.08819102935718423, 2.0, 0.0]", - "[42.900000000000006, 3.6116220683776485, 2.9696431835208834, 0.07442853302429493, -0.17405993068128017, 0.023410882156930015, 0.011808970642815789, 2.0, 0.0]", - "[42.95, 3.604149486496051, 2.969583312976263, 0.0725188581447532, -0.12484577402336665, -0.02580327450098348, -0.08819102935718423, 2.0, 0.0]", - "[43.00000000000001, 3.5966767847003798, 2.969523562345717, 0.07060942692289446, -0.17405993068128017, 0.023410882156930022, 0.011808970642815761, 2.0, 0.0]", - "[43.05000000000001, 3.5892041997030253, 2.9694636949168545, 0.0736999925357007, -0.12484577402336669, -0.025803274500983492, 0.11180897064281578, 2.0, 0.0]", - "[43.10000000000001, 3.581731496943784, 2.9694039452498786, 0.07679031886392748, -0.17405993068128017, 0.023410882156930005, 0.011808970642815733, 2.0, 0.0]", - "[43.150000000000006, 3.574258916988879, 2.9693440727785663, 0.07488064006947116, -0.12484577402336669, -0.025803274500983502, -0.08819102935718434, 2.0, 0.0]", - "[43.20000000000001, 3.566786213266478, 2.96928432407475, 0.072971212762603, -0.1740599306812802, 0.023410882156929998, 0.01180897064281567, 2.0, 0.0]", - "[43.250000000000014, 3.559313630195896, 2.9692244547191144, 0.07606178229048677, -0.12484577402336669, -0.0258032745009835, 0.11180897064281567, 2.0, 0.0]", - "[43.30000000000001, 3.5518409255099477, 2.969164706978845, 0.07915210470376947, -0.17405993068128015, 0.02341088215692999, 0.011808970642815594, 2.0, 0.0]", - "[43.35000000000001, 3.544368347481674, 2.9691048325809004, 0.07724242199452239, -0.1248457740233666, -0.02580327450098352, -0.08819102935718445, 2.0, 0.0]", - "[43.40000000000001, 3.5368956418326025, 2.9690450858037543, 0.07533299860252447, -0.17405993068128012, 0.023410882156929977, 0.011808970642815532, 2.0, 0.0]", - "[43.45000000000002, 3.529423060688736, 2.9689852145214037, 0.07342332222396167, -0.12484577402336658, -0.02580327450098352, -0.08819102935718454, 2.0, 0.0]", - "[43.500000000000014, 3.5219503581553115, 2.9689254646286103, 0.07151389250116924, -0.1740599306812801, 0.02341088215692999, 0.011808970642815456, 2.0, 0.0]", - "[43.55000000000001, 3.514477773895734, 2.96886559646197, 0.07460445961309058, -0.12484577402336658, -0.025803274500983495, 0.11180897064281545, 2.0, 0.0]", - "[43.600000000000016, 3.507005070398755, 2.9688058475327317, 0.07769478444228253, -0.1740599306812801, 0.023410882156930015, 0.011808970642815372, 2.0, 0.0]", - "[43.65000000000002, 3.4995324911815433, 2.9687459743237268, 0.07578510414888208, -0.1248457740233666, -0.02580327450098348, -0.0881910293571847, 2.0, 0.0]", - "[43.70000000000002, 3.4920597867214265, 2.968686226357626, 0.07387567834100607, -0.17405993068128015, 0.023410882156930015, 0.01180897064281531, 2.0, 0.0]", - "[43.750000000000014, 3.484587204388586, 2.968626356264248, 0.07196600437836022, -0.12484577402336666, -0.02580327450098348, -0.08819102935718473, 2.0, 0.0]", - "[43.80000000000002, 3.47711450304415, 2.9685666051824664, 0.07005657223962049, -0.17405993068128015, 0.023410882156930022, 0.011808970642815247, 2.0, 0.0]", - "[43.85000000000002, 3.469641917595566, 2.9685067382048334, 0.07314713693555677, -0.12484577402336668, -0.025803274500983478, 0.11180897064281525, 2.0, 0.0]", - "[43.90000000000002, 3.462169215287567, 2.968446988086615, 0.07623746418068125, -0.17405993068128015, 0.02341088215693002, 0.01180897064281522, 2.0, 0.0]", - "[43.95000000000002, 3.4546966348814037, 2.970847948322363, 0.07432778630315136, -0.12484577402336669, 0.07262503881484353, -0.08819102935718484, 2.0, 0.0]", - "[44.00000000000002, 3.4472239316102438, 2.973248785693114, 0.07241835807938928, -0.17405993068128017, 0.023410882156930005, 0.011808970642815136, 2.0, 0.0]", - "[44.050000000000026, 3.439751348088433, 2.9731889167887076, 0.07550892669040528, -0.12484577402336668, -0.025803274500983495, 0.11180897064281514, 2.0, 0.0]", - "[44.10000000000002, 3.432278643853728, 2.9731291685971954, 0.07859925002058374, -0.17405993068128015, 0.023410882156929994, 0.011808970642815081, 2.0, 0.0]", - "[44.15000000000002, 3.4248060653741974, 2.973069294650508, 0.07668956822826144, -0.1248457740233666, -0.02580327450098351, -0.08819102935718495, 2.0, 0.0]", - "[44.200000000000024, 3.4173333601763747, 2.973009547422113, 0.07478014391935534, -0.17405993068128012, 0.023410882156929977, 0.011808970642815053, 2.0, 0.0]", - "[44.25000000000003, 3.4098607785812654, 2.972949676591005, 0.072870468457688, -0.12484577402336663, -0.025803274500983523, -0.08819102935718501, 2.0, 0.0]", - "[44.300000000000026, 3.4023880764990766, 2.9728899262469763, 0.07096103781801492, -0.17405993068128015, 0.02341088215692997, 0.01180897064281499, 2.0, 0.0]", - "[44.35000000000002, 3.39491549178827, 2.972830058531566, 0.07405160401306647, -0.12484577402336659, -0.025803274500983533, 0.111808970642815, 2.0, 0.0]", - "[44.40000000000003, 3.3874427887425345, 2.972770309151084, 0.07714192975915647, -0.1740599306812801, 0.02341088215692998, 0.011808970642814949, 2.0, 0.0]", - "[44.45000000000003, 3.3799702090740635, 2.972710436393337, 0.07523225038268347, -0.12484577402336657, -0.025803274500983523, -0.08819102935718509, 2.0, 0.0]", - "[44.50000000000003, 3.372497505065196, 2.9726506879759866, 0.0733228236578969, -0.17405993068128003, 0.02341088215692998, 0.0118089706428149, 2.0, 0.0]", - "[44.550000000000026, 3.3650249222811124, 2.9725908183338525, 0.07641339376792669, -0.12484577402336652, -0.025803274500983513, 0.11180897064281489, 2.0, 0.0]", - "[44.60000000000003, 3.3575522173087236, 2.9725310708800237, 0.07950371559918146, -0.17405993068128003, 0.02341088215692998, 0.011808970642814845, 2.0, 0.0]", - "[44.650000000000034, 3.3500796395668258, 2.9724711961957047, 0.07759403230803671, -0.12484577402336655, -0.02580327450098352, -0.08819102935718517, 2.0, 0.0]", - "[44.70000000000003, 3.342606933631344, 2.9724114497049694, 0.07568460949800652, -0.17405993068128003, 0.023410882156929984, 0.011808970642814824, 2.0, 0.0]", - "[44.75000000000003, 3.3351343527739226, 2.972351578136174, 0.07377493253740641, -0.12484577402336654, -0.025803274500983516, -0.08819102935718523, 2.0, 0.0]", - "[44.80000000000003, 3.327661649954022, 2.972291828529857, 0.07186550339671623, -0.17405993068128, 0.023410882156929994, 0.01180897064281479, 2.0, 0.0]", - "[44.85000000000004, 3.320189065980953, 2.972231960076708, 0.07495607109080418, -0.12484577402336651, -0.02580327450098351, 0.11180897064281478, 2.0, 0.0]", - "[44.900000000000034, 3.3127163621975244, 2.9721722114339206, 0.07804639533794745, -0.17405993068128003, 0.023410882156929987, 0.011808970642814741, 2.0, 0.0]", - "[44.95000000000003, 3.305243783266698, 2.9721123379385297, 0.07613671446262871, -0.12484577402336652, -0.025803274500983516, -0.08819102935718531, 2.0, 0.0]", - "[45.000000000000036, 3.2977710785201606, 2.9720525902588495, 0.0742272892367412, -0.17405993068127998, 0.02341088215692998, 0.011808970642814692, 2.0, 0.0]", - "[45.05000000000004, 3.290298496473775, 2.971992719879016, 0.0723176146920372, -0.12484577402336644, -0.025803274500983533, -0.08819102935718537, 2.0, 0.0]", - "[45.10000000000004, 3.2828257948428523, 2.9719329690837215, 0.07040818313542056, -0.17405993068127992, 0.023410882156929963, 0.011808970642814616, 2.0, 0.0]", - "[45.150000000000034, 3.275353209680787, 2.971873101819569, 0.07349874841354422, -0.12484577402336644, -0.025803274500983533, 0.11180897064281461, 2.0, 0.0]", - "[45.20000000000004, 3.2678805070863284, 2.97181335198781, 0.0765890750765991, -0.17405993068127992, 0.023410882156929963, 0.011808970642814574, 2.0, 0.0]", - "[45.25000000000004, 3.2604079269665625, 2.9717534796813583, 0.07467939661713, -0.12484577402336644, -0.025803274500983527, -0.08819102935718545, 2.0, 0.0]", - "[45.30000000000004, 3.2529352234089797, 2.971693730812723, 0.07276996897536192, -0.1740599306812799, 0.023410882156929973, 0.011808970642814567, 2.0, 0.0]", - "[45.35000000000004, 3.24546264017362, 2.9716338616218643, 0.07586053816842836, -0.1248457740233664, -0.02580327450098353, 0.11180897064281459, 2.0, 0.0]", - "[45.40000000000004, 3.237989935652528, 2.9715741137167386, 0.07895086091668864, -0.1740599306812799, 0.02341088215692998, 0.011808970642814519, 2.0, 0.0]", - "[45.450000000000045, 3.2305173574593113, 2.9715142394837377, 0.07704117854259401, -0.12484577402336644, -0.025803274500983516, -0.08819102935718551, 2.0, 0.0]", - "[45.50000000000004, 3.223044651975136, 2.9714544925416964, 0.0751317548155389, -0.17405993068128, 0.023410882156929984, 0.011808970642814505, 2.0, 0.0]", - "[45.55000000000004, 3.215572070666418, 2.9713946214241966, 0.07322207877194281, -0.1248457740233665, -0.025803274500983513, -0.08819102935718554, 2.0, 0.0]", - "[45.600000000000044, 3.208099368297802, 2.971334871366596, 0.07131264871427123, -0.17405993068128, 0.023410882156929973, 0.01180897064281447, 2.0, 0.0]", - "[45.65000000000005, 3.2006267838734574, 2.971275003364722, 0.07440321549139613, -0.1248457740233665, -0.025803274500983527, 0.11180897064281448, 2.0, 0.0]", - "[45.700000000000045, 3.193154080541324, 2.9712152542706383, 0.07749354065554491, -0.17405993068127995, 0.02341088215692997, 0.011808970642814422, 2.0, 0.0]", - "[45.75000000000004, 3.1856815011591797, 2.971155381226566, 0.0755838606972767, -0.12484577402336644, -0.02580327450098354, -0.08819102935718565, 2.0, 0.0]", - "[45.80000000000005, 3.1782087968639483, 2.97109563309558, 0.07367443455436419, -0.17405993068127995, 0.023410882156929963, 0.011808970642814345, 2.0, 0.0]", - "[45.85000000000005, 3.170736214366267, 2.971035763167044, 0.07676500524634576, -0.12484577402336645, -0.025803274500983537, 0.11180897064281436, 2.0, 0.0]", - "[45.90000000000005, 3.1632635091075474, 2.9709760159995473, 0.07985532649579277, -0.17405993068127995, 0.023410882156929966, 0.01180897064281431, 2.0, 0.0]", - "[45.950000000000045, 3.155790931651902, 2.9709161410289737, 0.0779456426229989, -0.12484577402336645, -0.025803274500983533, -0.08819102935718577, 2.0, 0.0]", - "[46.00000000000005, 3.148318225430125, 2.970856394824534, 0.07603622039470302, -0.17405993068127998, 0.023410882156929966, 0.011808970642814234, 2.0, 0.0]", - "[46.050000000000054, 3.14084564485904, 2.9707965229694016, 0.07412654285228457, -0.12484577402336648, -0.025803274500983544, -0.08819102935718581, 2.0, 0.0]", - "[46.10000000000005, 3.133372941752764, 2.9707367736494596, 0.07221711429349163, -0.17405993068128, 0.023410882156929956, 0.011808970642814193, 2.0, 0.0]", - "[46.15000000000005, 3.1259003580661084, 2.970676904909897, 0.0753076825695546, -0.12484577402336645, -0.02580327450098355, 0.1118089706428142, 2.0, 0.0]", - "[46.20000000000005, 3.118427653996336, 2.9706171565534527, 0.07839800623486695, -0.17405993068127998, 0.023410882156929956, 0.01180897064281413, 2.0, 0.0]", - "[46.25000000000006, 3.1109550753517747, 2.970557282771796, 0.0764883247778762, -0.12484577402336655, -0.025803274500983547, -0.0881910293571859, 2.0, 0.0]", - "[46.300000000000054, 3.1034823703189294, 2.970497535378424, 0.07457890013374617, -0.17405993068128012, 0.023410882156929956, 0.011808970642814082, 2.0, 0.0]", - "[46.35000000000005, 3.096009788558892, 2.970437664712244, 0.07266922500720055, -0.12484577402336662, -0.025803274500983547, -0.08819102935718598, 2.0, 0.0]", - "[46.400000000000055, 3.0885370866415816, 2.9703779142033366, 0.07075979403250453, -0.17405993068128015, 0.02341088215692995, 0.011808970642814054, 2.0, 0.0]", - "[46.45000000000006, 3.081064501765942, 2.970318046652759, 0.07385035989262663, -0.12484577402336663, -0.025803274500983544, 0.11180897064281406, 2.0, 0.0]", - "[46.50000000000006, 3.0735917988851287, 2.9702582971073554, 0.07694068597382721, -0.17405993068128012, 0.023410882156929963, 0.011808970642813978, 2.0, 0.0]", - "[46.550000000000054, 3.066119219051638, 2.9701984245146282, 0.07503100693266304, -0.12484577402336659, -0.025803274500983537, -0.08819102935718606, 2.0, 0.0]", - "[46.60000000000006, 3.058646515207737, 2.9701386759323114, 0.07312157987267572, -0.1740599306812801, 0.023410882156929966, 0.011808970642813929, 2.0, 0.0]", - "[46.65000000000006, 3.051173932258738, 2.970078806455093, 0.07621214964760722, -0.1248457740233666, -0.02580327450098354, 0.11180897064281395, 2.0, 0.0]", - "[46.70000000000006, 3.043701227451363, 2.9700190588362503, 0.07930247181415982, -0.17405993068128012, 0.023410882156929963, 0.011808970642813908, 2.0, 0.0]", - "[46.75000000000006, 3.036228649544344, 2.969959184317052, 0.07739278885853085, -0.1248457740233666, -0.025803274500983537, -0.08819102935718612, 2.0, 0.0]", - "[46.80000000000006, 3.0287559437739255, 2.9698994376612537, 0.07548336571310278, -0.1740599306812801, 0.023410882156929973, 0.011808970642813887, 2.0, 0.0]", - "[46.850000000000065, 3.021283362751495, 2.969839566257467, 0.07357368908778833, -0.12484577402336659, -0.02580327450098353, -0.08819102935718615, 2.0, 0.0]", - "[46.90000000000006, 3.013810660096548, 2.9697798164861955, 0.071664259611921, -0.17405993068128012, 0.02341088215692997, 0.011808970642813874, 2.0, 0.0]", - "[46.95000000000006, 3.006338075958575, 2.969719948197951, 0.07475482697093462, -0.12484577402336665, -0.025803274500983537, 0.11180897064281387, 2.0, 0.0]", - "[47.000000000000064, 2.9988653723401484, 2.96966019939016, 0.07784515155335234, -0.17405993068128017, 0.023410882156929977, 0.011808970642813783, 2.0, 0.0]", - "[47.05000000000007, 2.9913927932442115, 2.969600326059879, 0.07593547101352695, -0.12484577402336666, -0.025803274500983533, -0.08819102935718628, 2.0, 0.0]", - "[47.100000000000065, 2.9839200886627255, 2.969540578215148, 0.07402604545226467, -0.17405993068128017, 0.023410882156929966, 0.011808970642813721, 2.0, 0.0]", - "[47.15000000000006, 2.976447506451344, 2.969480708000312, 0.07211637124282266, -0.12484577402336669, -0.02580327450098353, -0.08819102935718634, 2.0, 0.0]", - "[47.20000000000007, 2.968974804985364, 2.9694209570400742, 0.070206939351053, -0.1740599306812802, 0.023410882156929973, 0.01180897064281368, 2.0, 0.0]", - "[47.25000000000007, 2.9615022196584064, 2.969361089940815, 0.07329750429412676, -0.12484577402336673, -0.025803274500983523, 0.11180897064281367, 2.0, 0.0]", - "[47.30000000000007, 2.9540295172289386, 2.969301339944065, 0.07638783129243219, -0.17405993068128028, 0.02341088215692998, 0.011808970642813603, 2.0, 0.0]", - "[47.350000000000065, 2.946556936944073, 2.9692414678027124, 0.07447815316843351, -0.1248457740233668, -0.025803274500983533, -0.08819102935718648, 2.0, 0.0]", - "[47.40000000000007, 2.9390842335515304, 2.9691817187690375, 0.07256872519131426, -0.17405993068128028, 0.02341088215692996, 0.011808970642813527, 2.0, 0.0]", - "[47.450000000000074, 2.931611650151186, 2.9691218497431637, 0.07565929404914276, -0.12484577402336682, -0.02580327450098354, 0.1118089706428135, 2.0, 0.0]", - "[47.50000000000007, 2.9241389457951876, 2.9690621016729453, 0.07874961713286237, -0.17405993068128034, 0.023410882156929963, 0.011808970642813464, 2.0, 0.0]", - "[47.55000000000007, 2.9166663674367586, 2.9690022276051566, 0.07683993509446914, -0.12484577402336683, -0.025803274500983533, -0.08819102935718656, 2.0, 0.0]", - "[47.60000000000007, 2.9091936621177314, 2.9689424804979665, 0.07493051103184291, -0.1740599306812803, 0.023410882156929973, 0.011808970642813471, 2.0, 0.0]", - "[47.65000000000008, 2.9017210806439264, 2.9688826095455543, 0.07302083532369381, -0.12484577402336677, -0.025803274500983523, -0.08819102935718659, 2.0, 0.0]", - "[47.700000000000074, 2.8942483784403388, 2.9688228593229247, 0.07111140493069516, -0.1740599306812803, 0.023410882156929987, 0.01180897064281343, 2.0, 0.0]", - "[47.75000000000007, 2.8867757938510223, 2.968762991486024, 0.07420197137260674, -0.12484577402336676, -0.02580327450098352, 0.11180897064281345, 2.0, 0.0]", - "[47.800000000000075, 2.879303090683971, 2.968703242226857, 0.07729229687219116, -0.17405993068128026, 0.023410882156929987, 0.011808970642813395, 2.0, 0.0]", - "[47.85000000000008, 2.8718305111366242, 2.968643369347986, 0.07538261724960207, -0.12484577402336677, -0.02580327450098352, -0.08819102935718667, 2.0, 0.0]", - "[47.90000000000008, 2.864357807006529, 2.9685836210518635, 0.07347319077114159, -0.17405993068128028, 0.023410882156929987, 0.011808970642813318, 2.0, 0.0]", - "[47.950000000000074, 2.856885224343773, 2.9685237512884024, 0.07656376112770001, -0.1248457740233668, -0.025803274500983523, 0.11180897064281334, 2.0, 0.0]", - "[48.00000000000008, 2.8494125192502486, 2.968464003955709, 0.07965408271281543, -0.17405993068128028, 0.023410882156929977, 0.011808970642813284, 2.0, 0.0]", - "[48.05000000000008, 2.8419399416292763, 2.9708649669766474, 0.07774439917595798, -0.12484577402336677, 0.07262503881484347, -0.08819102935718678, 2.0, 0.0]", - "[48.10000000000008, 2.8344672355727476, 2.9732658015620292, 0.0758349766118867, -0.1740599306812803, 0.023410882156929973, 0.011808970642813207, 2.0, 0.0]", - "[48.15000000000008, 2.826994654836488, 2.9732059298720706, 0.07392529940509174, -0.12484577402336683, -0.02580327450098352, -0.08819102935718681, 2.0, 0.0]", - "[48.20000000000008, 2.8195219518953216, 2.97314618038702, 0.07201587051080503, -0.17405993068128034, 0.02341088215692999, 0.011808970642813194, 2.0, 0.0]", - "[48.250000000000085, 2.8120493680436174, 2.973086311812507, 0.07510643845149752, -0.12484577402336677, -0.025803274500983513, 0.11180897064281323, 2.0, 0.0]", - "[48.30000000000008, 2.8045766641390144, 2.9730265632908925, 0.07819676245242331, -0.17405993068128023, 0.023410882156929987, 0.011808970642813187, 2.0, 0.0]", - "[48.35000000000008, 2.797104085329153, 2.9729666896745366, 0.0762870813313119, -0.12484577402336672, -0.02580327450098351, -0.08819102935718687, 2.0, 0.0]", - "[48.400000000000084, 2.7896313804615382, 2.9729069421159338, 0.07437765635144444, -0.17405993068128023, 0.023410882156929994, 0.011808970642813166, 2.0, 0.0]", - "[48.45000000000009, 2.7821587985363383, 2.972847071614917, 0.07246798156050081, -0.1248457740233667, -0.025803274500983513, -0.08819102935718687, 2.0, 0.0]", - "[48.500000000000085, 2.774686096784127, 2.9727873209409115, 0.07055855025033354, -0.17405993068128023, 0.023410882156929994, 0.011808970642813166, 2.0, 0.0]", - "[48.55000000000008, 2.7672135117434493, 2.972727453555372, 0.07364911577510855, -0.12484577402336673, -0.025803274500983495, 0.11180897064281317, 2.0, 0.0]", - "[48.60000000000009, 2.7597408090277935, 2.9726677038448095, 0.0767394421919007, -0.17405993068128023, 0.023410882156930015, 0.01180897064281309, 2.0, 0.0]", - "[48.65000000000009, 2.752268229029013, 2.9726078314173727, 0.07482976348659627, -0.12484577402336675, -0.02580327450098348, -0.08819102935718695, 2.0, 0.0]", - "[48.70000000000009, 2.7447955253503316, 2.972548082669837, 0.07292033609089252, -0.17405993068128026, 0.02341088215693002, 0.011808970642813055, 2.0, 0.0]", - "[48.750000000000085, 2.7373229422361796, 2.9724882133577712, 0.07601090553024407, -0.12484577402336676, -0.025803274500983474, 0.11180897064281306, 2.0, 0.0]", - "[48.80000000000009, 2.7298502375940905, 2.9724284655736426, 0.07910122803264692, -0.17405993068128023, 0.023410882156930036, 0.011808970642812992, 2.0, 0.0]", - "[48.850000000000094, 2.719916822598413, 2.972368591219875, 0.07719154541316403, -0.22327408733919377, -0.025803274500983468, -0.08819102935718709, 2.0, 0.0]", - "[48.90000000000009, 2.7099835351353376, 2.972308844398711, 0.07528212193172418, -0.17405993068128028, 0.02341088215693004, 0.011808970642812916, 2.0, 0.0]", - "[48.95000000000009, 2.7025109539476064, 2.9722489731602244, 0.07337244564229144, -0.12484577402336672, -0.025803274500983468, -0.08819102935718715, 2.0, 0.0]", - "[49.00000000000009, 2.6950382514578886, 2.9721892232237246, 0.0714630158306899, -0.17405993068128028, 0.023410882156930036, 0.01180897064281286, 2.0, 0.0]", - "[49.0500000000001, 2.687565667154756, 2.97212935510064, 0.07455358285410967, -0.12484577402336682, -0.025803274500983454, 0.11180897064281287, 2.0, 0.0]", - "[49.100000000000094, 2.6800929637016253, 2.9720696061275533, 0.07764390777239907, -0.1740599306812804, 0.023410882156930053, 0.011808970642812833, 2.0, 0.0]", - "[49.15000000000009, 2.672620384440242, 2.9720097329627184, 0.07573422756874999, -0.12484577402336691, -0.025803274500983443, -0.08819102935718723, 2.0, 0.0]", - "[49.200000000000095, 2.6651476800241225, 2.97194998495262, 0.07382480167147308, -0.1740599306812804, 0.02341088215693005, 0.011808970642812777, 2.0, 0.0]", - "[49.2500000000001, 2.6576750976474495, 2.971890114903075, 0.07191512779789147, -0.12484577402336688, -0.025803274500983443, -0.08819102935718726, 2.0, 0.0]", - "[49.3000000000001, 2.650202396346687, 2.9718303637776198, 0.07000569557041027, -0.1740599306812804, 0.023410882156930064, 0.01180897064281275, 2.0, 0.0]", - "[49.350000000000094, 2.642729810854582, 2.971770496843508, 0.07309626017791411, -0.12484577402336693, -0.02580327450098345, 0.11180897064281275, 2.0, 0.0]", - "[49.4000000000001, 2.6352571085904, 2.971710746681473, 0.07618658751206957, -0.17405993068128042, 0.02341088215693006, 0.011808970642812701, 2.0, 0.0]", - "[49.4500000000001, 2.6277845281400976, 2.971650874705558, 0.07427690972422855, -0.12484577402336694, -0.02580327450098345, -0.08819102935718737, 2.0, 0.0]", - "[49.5000000000001, 2.6203118249129114, 2.971591125506526, 0.07236748141111504, -0.17405993068128048, 0.023410882156930057, 0.011808970642812666, 2.0, 0.0]", - "[49.5500000000001, 2.6128392413472876, 2.9715312566459318, 0.07545804993310509, -0.12484577402336697, -0.025803274500983443, 0.11180897064281267, 2.0, 0.0]", - "[49.6000000000001, 2.605366537156721, 2.9714715084102803, 0.07854837335297336, -0.1740599306812804, 0.023410882156930064, 0.011808970642812638, 2.0, 0.0]", - "[49.650000000000105, 2.597893958632691, 2.971411634508092, 0.07663869165106875, -0.1248457740233669, -0.025803274500983443, -0.08819102935718742, 2.0, 0.0]", - "[49.7000000000001, 2.5904212534791764, 2.9713518872353903, 0.07472926725213298, -0.1740599306812804, 0.023410882156930057, 0.011808970642812597, 2.0, 0.0]", - "[49.7500000000001, 2.582948671839943, 2.9712920164484053, 0.07281959188012223, -0.12484577402336688, -0.02580327450098346, -0.08819102935718748, 2.0, 0.0]", - "[49.800000000000104, 2.5754759698017016, 2.97123226606043, 0.07091016115115048, -0.17405993068128045, 0.02341088215693004, 0.011808970642812541, 2.0, 0.0]", - "[49.85000000000011, 2.568003385047115, 2.9711723983887985, 0.07400072725724635, -0.12484577402336693, -0.02580327450098346, 0.11180897064281253, 2.0, 0.0]", - "[49.900000000000105, 2.5605306820454867, 2.9711126489642092, 0.07709105309295977, -0.17405993068128042, 0.023410882156930043, 0.011808970642812479, 2.0, 0.0]", - "[49.9500000000001, 2.5530581023325474, 2.971052776250931, 0.07518137380684362, -0.12484577402336695, -0.025803274500983454, -0.08819102935718756, 2.0, 0.0]", - "[50.00000000000011, 2.5455853983679555, 2.970993027789305, 0.07327194699209158, -0.17405993068128045, 0.02341088215693005, 0.011808970642812458, 2.0, 0.0]", - "[50.05000000000011, 2.538112815539781, 2.970933158191262, 0.0763625170125316, -0.12484577402336698, -0.02580327450098345, 0.11180897064281245, 2.0, 0.0]", - "[50.10000000000011, 2.530640110611846, 2.970873410692979, 0.07945283893411241, -0.17405993068128048, 0.02341088215693005, 0.011808970642812389, 2.0, 0.0]", - "[50.150000000000105, 2.5231675328250973, 2.9708135360535093, 0.07754315573410046, -0.12484577402336697, -0.025803274500983457, -0.08819102935718764, 2.0, 0.0]", - "[50.20000000000011, 2.515694826934255, 2.970753789518134, 0.07563373283336466, -0.1740599306812805, 0.023410882156930036, 0.011808970642812347, 2.0, 0.0]", - "[50.250000000000114, 2.508222246032395, 2.970693917993777, 0.07372405596305917, -0.12484577402336698, -0.025803274500983478, -0.0881910293571877, 2.0, 0.0]", - "[50.30000000000011, 2.500749543256738, 2.970634168343216, 0.0718146267324691, -0.1740599306812805, 0.02341088215693003, 0.011808970642812305, 2.0, 0.0]", - "[50.35000000000011, 2.4932769592396116, 2.9705742999341243, 0.0749051943370358, -0.124845774023367, -0.025803274500983474, 0.11180897064281234, 2.0, 0.0]", - "[50.40000000000011, 2.485804255500605, 2.9705145512469135, 0.07799551867444225, -0.17405993068128048, 0.02341088215693003, 0.011808970642812312, 2.0, 0.0]", - "[50.45000000000012, 2.4783316765249555, 2.970454677796346, 0.07608583789020087, -0.12484577402336698, -0.025803274500983468, -0.08819102935718773, 2.0, 0.0]", - "[50.500000000000114, 2.470858971823029, 2.970394930072055, 0.07417641257366753, -0.17405993068128053, 0.023410882156930032, 0.01180897064281227, 2.0, 0.0]", - "[50.55000000000011, 2.463386389732238, 2.9703350597366285, 0.07226673811919451, -0.12484577402336705, -0.025803274500983474, -0.08819102935718781, 2.0, 0.0]", - "[50.600000000000115, 2.4559136881455252, 2.970275308897123, 0.07035730647274505, -0.17405993068128053, 0.02341088215693002, 0.01180897064281218, 2.0, 0.0]", - "[50.65000000000012, 2.4484411029394377, 2.970215441676993, 0.07344787166141745, -0.124845774023367, -0.025803274500983485, 0.1118089706428122, 2.0, 0.0]", - "[50.70000000000012, 2.4409684003893686, 2.970155691800844, 0.0765381984146711, -0.17405993068128048, 0.023410882156930022, 0.01180897064281216, 2.0, 0.0]", - "[50.750000000000114, 2.4334958202248074, 2.9700958195391878, 0.07462852004622271, -0.124845774023367, -0.025803274500983478, -0.0881910293571879, 2.0, 0.0]", - "[50.80000000000012, 2.426023116711806, 2.970036070625973, 0.07271909231386994, -0.1740599306812805, 0.02341088215693003, 0.011808970642812125, 2.0, 0.0]", - "[50.85000000000012, 2.4185505334320725, 2.9699762014794886, 0.07580966141677029, -0.124845774023367, -0.025803274500983478, 0.11180897064281214, 2.0, 0.0]", - "[50.90000000000012, 2.411077828955761, 2.969916453529583, 0.07889998425602252, -0.1740599306812805, 0.023410882156930025, 0.01180897064281207, 2.0, 0.0]", - "[50.95000000000012, 2.403605250717318, 2.969856579341809, 0.07699030197382568, -0.12484577402336701, -0.02580327450098347, -0.08819102935718795, 2.0, 0.0]", - "[51.00000000000012, 2.3961325452781344, 2.9697968323547754, 0.07508087815534935, -0.17405993068128048, 0.02341088215693003, 0.011808970642812042, 2.0, 0.0]", - "[51.050000000000125, 2.3886599639246495, 2.969736961282043, 0.07317120220271586, -0.12484577402336697, -0.025803274500983474, -0.088191029357188, 2.0, 0.0]", - "[51.10000000000012, 2.3811873213070296, 2.9696771514734457, 0.07126165073486489, -0.17405993068128048, 0.02341088215693004, 0.011808970642812014, 2.0, 0.05000000000000001]" + "[33.15, 5.06616176792077, 2.621157491399954, 0.06548003583816284, -0.011461622412926323, 0.14152188412232508, -0.061878783908780585, 2.0, 0.0]", + "[33.199999999999996, 5.064358279448121, 2.6294639929580734, 0.06488620522033495, -0.060675779070839826, 0.19073604078023854, 0.038121216091219406, 2.0, 0.0]", + "[33.25, 5.060094083627053, 2.6402312018646117, 0.06429215843171217, -0.10988993572875333, 0.23995019743815205, -0.061878783908780634, 2.0, 0.0]", + "[33.3, 5.053369180457743, 2.653459118119393, 0.06369832584467512, -0.1591040923866668, 0.28916435409606556, 0.038121216091219365, 2.0, 0.0]", + "[33.35, 5.044183569940012, 2.669147741722594, 0.063104281025258, -0.20831824904458038, 0.33837851075397907, -0.06187878390878069, 2.0, 0.0]", + "[33.4, 5.034998062901533, 2.687297072674043, 0.06251044646902257, -0.1591040923866669, 0.3875926674118926, 0.03812121609121932, 2.0, 0.0]", + "[33.449999999999996, 5.025812453352926, 2.707907110973911, 0.06691661092836305, -0.20831824904458043, 0.43680682406980603, 0.13812121609121933, 2.0, 0.0]", + "[33.5, 5.016626949425034, 2.7309778607017368, 0.07132256077320802, -0.1591040923866669, 0.4860209807277195, 0.03812121609121926, 2.0, 0.0]", + "[33.55, 5.007441332686583, 2.7565093218572416, 0.07072850331368696, -0.2083182490445804, 0.5352351373856331, -0.0618787839087808, 2.0, 0.0]", + "[33.6, 4.998255831868884, 2.784501490361052, 0.07013468139767606, -0.1591040923866669, 0.5844492940435467, 0.0381212160912192, 2.0, 0.0]", + "[33.65, 4.991531038399682, 2.8149543662133603, 0.06954062590707465, -0.10988993572875334, 0.6336634507014604, -0.061878783908780814, 2.0, 0.0]", + "[33.699999999999996, 4.984806130947701, 2.8454071280828916, 0.06894680202214346, -0.15910409238666687, 0.584449294043547, 0.03812121609121921, 2.0, 0.0]", + "[33.75, 4.975620516147237, 2.8733991826039382, 0.06835274850048711, -0.20831824904458035, 0.5352351373856334, -0.06187878390878084, 2.0, 0.0]", + "[33.8, 4.966435013391524, 2.8989305297767034, 0.06775892264655922, -0.15910409238666684, 0.48602098072772004, 0.03812121609121917, 2.0, 0.0]", + "[33.85, 4.957249399560116, 2.922001169601016, 0.06716487109396692, -0.20831824904458032, 0.4368068240698065, -0.061878783908780884, 2.0, 0.0]", + "[33.9, 4.94806389583532, 2.9426111020770738, 0.0665710432709226, -0.15910409238666684, 0.38759266741189297, 0.03812121609121913, 2.0, 0.0]", + "[33.949999999999996, 4.94133909945895, 2.9607603272047056, 0.07097721446346654, -0.10988993572875332, 0.33837851075397946, 0.13812121609121913, 2.0, 0.0]", + "[34.0, 4.934614190834486, 2.976448840904378, 0.07538315757510605, -0.15910409238666676, 0.28916435409606595, 0.0381212160912191, 2.0, 0.0]", + "[34.05, 4.927889401647938, 2.989676643176395, 0.07478909338242595, -0.10988993572875325, 0.23995019743815243, -0.06187878390878096, 2.0, 0.0]", + "[34.1, 4.921164489913357, 3.0004437381001576, 0.07419527819946879, -0.15910409238666673, 0.19073604078023892, 0.038121216091219046, 2.0, 0.0]", + "[34.15, 4.914439699757718, 3.008750125675475, 0.07360121597591868, -0.10988993572875326, 0.14152188412232547, -0.061878783908780995, 2.0, 0.0]", + "[34.199999999999996, 4.907714788992248, 3.014595805902559, 0.07300739882378768, -0.15910409238666678, 0.09230772746441193, 0.038121216091219, 2.0, 0.0]", + "[34.25, 4.898529170878353, 3.01798077878122, 0.07241333856945845, -0.20831824904458027, 0.043093570806498435, -0.061878783908781064, 2.0, 0.0]", + "[34.3, 4.889343671436002, 3.0189050443116683, 0.07181951944806572, -0.15910409238666678, -0.006120585851415065, 0.038121216091218935, 2.0, 0.0]", + "[34.35, 4.882618879342051, 3.017368602493716, 0.07122546116304285, -0.10988993572875327, -0.05533474250932857, -0.06187878390878113, 2.0, 0.0]", + "[34.4, 4.875893970514929, 3.013371453327564, 0.07063164007231433, -0.15910409238666678, -0.10454889916724207, 0.03812121609121888, 2.0, 0.0]", + "[34.449999999999996, 4.86916917745177, 3.0069135968130296, 0.07003758375666126, -0.10988993572875325, -0.15376305582515556, -0.061878783908781154, 2.0, 0.0]", + "[34.5, 4.862444269593871, 3.0004558550932336, 0.06944376069653395, -0.15910409238666676, -0.10454889916724205, 0.03812121609121885, 2.0, 0.0]", + "[34.55, 4.855719475561478, 2.9964588207218106, 0.06884970635030137, -0.10988993572875323, -0.05533474250932857, -0.06187878390878119, 2.0, 0.0]", + "[34.6, 4.848994568672806, 2.9924616734941103, 0.06825588132076343, -0.15910409238666676, -0.10454889916724208, 0.03812121609121881, 2.0, 0.0]", + "[34.65, 4.842269773671184, 2.9884646381534603, 0.06766182894393866, -0.10988993572875326, -0.05533474250932857, -0.061878783908781244, 2.0, 0.0]", + "[34.7, 4.83554486775174, 2.986928310160998, 0.06706800194498978, -0.15910409238666678, -0.006120585851415065, 0.03812121609121877, 2.0, 0.0]", + "[34.75, 4.826359254483922, 2.9853918722199433, 0.06647395153757438, -0.2083182490445803, -0.05533474250932857, -0.0618787839087813, 2.0, 0.0]", + "[34.8, 4.817173750195472, 2.983855543258255, 0.06588012256922113, -0.15910409238666678, -0.006120585851415075, 0.03812121609121871, 2.0, 0.0]", + "[34.85, 4.81044895325539, 2.9823191062864325, 0.06528607413122321, -0.10988993572875333, -0.05533474250932857, -0.06187878390878133, 2.0, 0.0]", + "[34.9, 4.803724049274408, 2.980782776355511, 0.06469224319345108, -0.15910409238666684, -0.006120585851415061, 0.03812121609121866, 2.0, 0.0]", + "[34.95, 4.794538437945061, 2.9792463403529252, 0.06409819672488, -0.20831824904458038, -0.05533474250932857, -0.0618787839087814, 2.0, 0.0]", + "[35.0, 4.785352931718136, 2.977710009452764, 0.0635043638176747, -0.15910409238666684, -0.006120585851415072, 0.038121216091218615, 2.0, 0.0]", + "[35.05, 4.778628132839571, 2.9761735744194247, 0.06791052992592175, -0.10988993572875327, -0.05533474250932858, 0.13812121609121863, 2.0, 0.0]", + "[35.1, 4.7719032267172725, 2.9746372466298174, 0.07231647812180521, -0.15910409238666678, -0.006120585851415079, 0.03812121609121861, 2.0, 0.0]", + "[35.15, 4.765178435028585, 2.9755616302678916, 0.07172241901331329, -0.10988993572875333, 0.043093570806498414, -0.061878783908781446, 2.0, 0.0]", + "[35.2, 4.758453525796187, 2.976485896362256, 0.07112859874607874, -0.1591040923866668, -0.0061205858514150925, 0.03812121609121856, 2.0, 0.0]", + "[35.25, 4.751728733138321, 2.977410279031154, 0.0705345416068921, -0.10988993572875327, 0.043093570806498394, -0.06187878390878148, 2.0, 0.0]", + "[35.3, 4.745003824875101, 2.978334546094699, 0.06994071937034634, -0.15910409238666678, -0.00612058585141511, 0.03812121609121852, 2.0, 0.0]", + "[35.35, 4.735818209263486, 2.9767981058098454, 0.06934666420048335, -0.2083182490445803, -0.05533474250932862, -0.061878783908781536, 2.0, 0.0]", + "[35.4, 4.726632707318841, 2.9752617791919627, 0.06875283999459253, -0.1591040923866668, -0.006120585851415124, 0.03812121609121846, 2.0, 0.0]", + "[35.449999999999996, 4.719907912722581, 2.9761861599224644, 0.06815878679410169, -0.10988993572875329, 0.04309357080649838, -0.06187878390878158, 2.0, 0.0]", + "[35.5, 4.713183006397764, 2.97711042892441, 0.06756496061884945, -0.15910409238666678, -0.006120585851415117, 0.03812121609121842, 2.0, 0.0]", + "[35.55, 4.706458210832301, 2.9780348086857087, 0.06697090938771653, -0.10988993572875333, 0.04309357080649837, -0.06187878390878162, 2.0, 0.0]", + "[35.599999999999994, 4.699733305476692, 2.9789590786568594, 0.06637708124310084, -0.15910409238666684, -0.0061205858514151446, 0.03812121609121841, 2.0, 0.0]", + "[35.65, 4.690547692772699, 2.9774226412796305, 0.06578303198134339, -0.20831824904458035, -0.05533474250932864, -0.06187878390878166, 2.0, 0.0]", + "[35.699999999999996, 4.681362187920424, 2.9758863117541168, 0.06518920186733346, -0.15910409238666684, -0.006120585851415148, 0.038121216091218324, 2.0, 0.0]", + "[35.75, 4.674637390416517, 2.9768106895769715, 0.0645951545749947, -0.10988993572875334, 0.043093570806498366, -0.061878783908781744, 2.0, 0.0]", + "[35.8, 4.667912486999355, 2.977734961486571, 0.06400132249157486, -0.15910409238666684, -0.0061205858514151446, 0.03812121609121827, 2.0, 0.0]", + "[35.849999999999994, 4.66118768852622, 2.976198526047803, 0.06840748942362726, -0.10988993572875334, -0.05533474250932864, 0.13812121609121827, 2.0, 0.0]", + "[35.9, 4.65446278199852, 2.974662198663599, 0.07281343679575797, -0.15910409238666687, -0.006120585851415127, 0.03812121609121825, 2.0, 0.0]", + "[35.949999999999996, 4.647737990715204, 2.975586582707047, 0.07221937686357445, -0.10988993572875339, 0.04309357080649838, -0.061878783908781806, 2.0, 0.0]", + "[36.0, 4.64101308107743, 2.976510848396035, 0.07162555742003757, -0.15910409238666687, -0.006120585851415117, 0.03812121609121819, 2.0, 0.0]", + "[36.05, 4.631827464091247, 2.974974406736615, 0.0710314994571445, -0.2083182490445804, -0.05533474250932862, -0.06187878390878185, 2.0, 0.0]", + "[36.099999999999994, 4.622641963521173, 2.9734380814933044, 0.07043767804429404, -0.1591040923866669, -0.006120585851415113, 0.03812121609121816, 2.0, 0.0]", + "[36.15, 4.615917170299492, 2.9743624635983865, 0.06984362205074329, -0.10988993572875344, 0.043093570806498394, -0.0618787839087819, 2.0, 0.0]", + "[36.199999999999996, 4.6091922626000885, 2.975286731225746, 0.0692497986685624, -0.15910409238666695, -0.006120585851415103, 0.03812121609121809, 2.0, 0.0]", + "[36.24999999999999, 4.602467468409221, 2.976211112361642, 0.06865574464433748, -0.10988993572875343, 0.04309357080649841, -0.061878783908781966, 2.0, 0.0]", + "[36.3, 4.595742561679008, 2.97713538095819, 0.06806191929282492, -0.15910409238666695, -0.006120585851415086, 0.038121216091218046, 2.0, 0.0]", + "[36.349999999999994, 4.586556947600403, 2.975598942206349, 0.06746786723794393, -0.2083182490445805, -0.055334742509328586, -0.06187878390878201, 2.0, 0.0]", + "[36.39999999999999, 4.577371444122746, 2.9740626140554536, 0.06687403991706713, -0.159104092386667, -0.006120585851415086, 0.03812121609121799, 2.0, 0.0]", + "[36.449999999999996, 4.570646647993464, 2.9749869932529345, 0.06627998983157639, -0.10988993572875347, 0.043093570806498414, -0.06187878390878207, 2.0, 0.0]", + "[36.49999999999999, 4.563921743201669, 2.975911263787903, 0.0656861605413192, -0.15910409238666698, -0.006120585851415075, 0.03812121609121792, 2.0, 0.0]", + "[36.55, 4.557196946103175, 2.9768356420161712, 0.06509211242520618, -0.10988993572875348, 0.043093570806498435, -0.06187878390878213, 2.0, 0.0]", + "[36.599999999999994, 4.550472042280596, 2.977759913520355, 0.06449828116556588, -0.15910409238666695, -0.006120585851415072, 0.03812121609121788, 2.0, 0.0]", + "[36.64999999999999, 4.541286431109645, 2.976223477676167, 0.06390423501884783, -0.20831824904458046, -0.05533474250932857, -0.06187878390878217, 2.0, 0.0]", + "[36.699999999999996, 4.532100924724328, 2.9746871466176112, 0.06331040178979483, -0.15910409238666698, -0.006120585851415075, 0.038121216091217824, 2.0, 0.0]", + "[36.74999999999999, 4.525376125687371, 2.975611522907417, 0.06271635761251303, -0.10988993572875347, 0.04309357080649842, -0.06187878390878222, 2.0, 0.0]", + "[36.8, 4.518651223803261, 2.976535796350068, 0.06212252241403181, -0.15910409238666698, -0.006120585851415082, 0.0381212160912178, 2.0, 0.0]", + "[36.849999999999994, 4.511926423797067, 2.9749993624443567, 0.06652868623100819, -0.10988993572875348, -0.055334742509328586, 0.1381212160912178, 2.0, 0.0]", + "[36.89999999999999, 4.5052015188023935, 2.973463033527125, 0.07093463671815119, -0.159104092386667, -0.0061205858514150925, 0.03812121609121774, 2.0, 0.0]", + "[36.949999999999996, 4.498476725986089, 2.9743874160375827, 0.07034057990090385, -0.1098899357287535, 0.043093570806498414, -0.06187878390878232, 2.0, 0.0]", + "[36.99999999999999, 4.4917518178813065, 2.975311683259563, 0.06974675734242568, -0.15910409238666703, -0.006120585851415082, 0.038121216091217686, 2.0, 0.0]", + "[37.04999999999999, 4.482566202428123, 2.9737752431331437, 0.06915270249448914, -0.20831824904458052, -0.05533474250932859, -0.061878783908782355, 2.0, 0.0]", + "[37.099999999999994, 4.473380700325048, 2.9722389163568317, 0.06855887796667817, -0.15910409238666698, -0.0061205858514150925, 0.03812121609121766, 2.0, 0.0]", + "[37.14999999999999, 4.466655905570359, 2.9731632969289055, 0.06796482508810213, -0.10988993572875345, 0.043093570806498435, -0.06187878390878241, 2.0, 0.0]", + "[37.19999999999999, 4.459930999403966, 2.9740875660892745, 0.0673709985909417, -0.15910409238666692, -0.006120585851415058, 0.03812121609121758, 2.0, 0.0]", + "[37.24999999999999, 4.45320620368008, 2.975011945692152, 0.0667769476817113, -0.10988993572875339, 0.043093570806498456, -0.061878783908782466, 2.0, 0.0]", + "[37.29999999999999, 4.446481298482886, 2.9759362158217204, 0.06618311921519951, -0.15910409238666687, -0.006120585851415044, 0.03812121609121755, 2.0, 0.0]", + "[37.349999999999994, 4.4372956859373085, 2.9743997786029075, 0.06558907027533262, -0.20831824904458038, -0.055334742509328544, -0.06187878390878249, 2.0, 0.0]", + "[37.39999999999999, 4.428110180926621, 2.972863448918982, 0.064995239839438, -0.1591040923866669, -0.0061205858514150335, 0.03812121609121752, 2.0, 0.0]", + "[37.44999999999999, 4.421385383264303, 2.9737878265834254, 0.06440119286897897, -0.10988993572875336, 0.04309357080649846, -0.06187878390878252, 2.0, 0.0]", + "[37.49999999999999, 4.414660480005547, 2.9747120986514335, 0.0638073604636856, -0.15910409238666684, -0.0061205858514150405, 0.03812121609121749, 2.0, 0.0]", + "[37.54999999999999, 4.407935681374007, 2.975636475346656, 0.0632133154626234, -0.10988993572875332, 0.04309357080649845, -0.06187878390878255, 2.0, 0.0]", + "[37.599999999999994, 4.401210779084476, 2.9765607483838874, 0.06261948108792793, -0.15910409238666684, -0.006120585851415054, 0.038121216091217464, 2.0, 0.0]", + "[37.64999999999999, 4.39202516944658, 2.977485124109879, 0.06702564572869803, -0.20831824904458035, 0.04309357080649845, 0.13812121609121747, 2.0, 0.0]", + "[37.69999999999999, 4.382839665607986, 2.97840939403657, 0.07143159539209626, -0.15910409238666684, -0.006120585851415054, 0.03812121609121747, 2.0, 0.0]", + "[37.74999999999999, 4.376114873197053, 2.9768729525355995, 0.07083753775115911, -0.10988993572875336, -0.055334742509328565, -0.06187878390878258, 2.0, 0.0]", + "[37.79999999999999, 4.369389964686903, 2.975336627133846, 0.07024371601636348, -0.1591040923866669, -0.006120585851415068, 0.03812121609121742, 2.0, 0.0]", + "[37.84999999999999, 4.362665171306785, 2.976261009080491, 0.0696496603447483, -0.10988993572875337, 0.04309357080649842, -0.06187878390878262, 2.0, 0.0]", + "[37.89999999999999, 4.355940263765817, 2.977185276866285, 0.0690558366406386, -0.1591040923866669, -0.006120585851415079, 0.03812121609121738, 2.0, 0.0]", + "[37.94999999999999, 4.346754648876448, 2.97564883730368, 0.06846178293833673, -0.20831824904458038, -0.05533474250932858, -0.06187878390878266, 2.0, 0.0]", + "[37.999999999999986, 4.3375691462095585, 2.9741125099635535, 0.06786795726489185, -0.15910409238666687, -0.006120585851415065, 0.038121216091217366, 2.0, 0.0]", + "[38.04999999999999, 4.330844350891055, 2.9750368899718116, 0.06727390553195269, -0.10988993572875336, 0.043093570806498435, -0.061878783908782674, 2.0, 0.0]", + "[38.09999999999999, 4.324119445288477, 2.9759611596959954, 0.06668007788915598, -0.15910409238666687, -0.006120585851415058, 0.03812121609121734, 2.0, 0.0]", + "[38.14999999999999, 4.317394649000773, 2.9768855387350563, 0.06608602812556502, -0.10988993572875333, 0.04309357080649844, -0.0618787839087827, 2.0, 0.0]", + "[38.19999999999999, 4.310669744367396, 2.9778098094284426, 0.06549219851341441, -0.15910409238666684, -0.006120585851415065, 0.0381212160912173, 2.0, 0.0]", + "[38.249999999999986, 4.301484132385638, 2.9762733727734476, 0.06489815071918952, -0.20831824904458032, -0.05533474250932856, -0.06187878390878274, 2.0, 0.0]", + "[38.29999999999999, 4.292298626811133, 2.974737042525704, 0.06430431913765368, -0.1591040923866668, -0.006120585851415072, 0.03812121609121724, 2.0, 0.0]", + "[38.34999999999999, 4.285573828584996, 2.975661419626329, 0.0637102733128389, -0.1098899357287533, 0.043093570806498435, -0.06187878390878281, 2.0, 0.0]", + "[38.39999999999999, 4.27884892589006, 2.9765856922581557, 0.06311643976190187, -0.1591040923866668, -0.006120585851415065, 0.0381212160912172, 2.0, 0.0]", + "[38.44999999999999, 4.272124126694699, 2.9750492575416128, 0.06752260522643899, -0.10988993572875333, -0.055334742509328565, 0.1381212160912172, 2.0, 0.0]", + "[38.499999999999986, 4.265399220889252, 2.9735129294351554, 0.07192855406614002, -0.15910409238666678, -0.006120585851415068, 0.03812121609121719, 2.0, 0.0]", + "[38.54999999999999, 4.258674428883654, 2.974437312756321, 0.07133449560158847, -0.10988993572875326, 0.043093570806498435, -0.06187878390878285, 2.0, 0.0]", + "[38.59999999999999, 4.251949519968158, 2.9753615791675876, 0.07074067469042826, -0.15910409238666678, -0.006120585851415072, 0.03812121609121716, 2.0, 0.0]", + "[38.649999999999984, 4.242763903704252, 2.9738251382304437, 0.07014661819515464, -0.20831824904458032, -0.055334742509328586, -0.061878783908782896, 2.0, 0.0]", + "[38.69999999999999, 4.233578402411906, 2.9722888122648605, 0.06955279531469283, -0.15910409238666684, -0.006120585851415086, 0.03812121609121712, 2.0, 0.0]", + "[38.749999999999986, 4.226853608467954, 2.973213193647673, 0.0689587407887501, -0.10988993572875336, 0.043093570806498414, -0.06187878390878291, 2.0, 0.0]", + "[38.79999999999998, 4.220128701490817, 2.9741374619972984, 0.06836491593896946, -0.15910409238666684, -0.006120585851415089, 0.0381212160912171, 2.0, 0.0]", + "[38.84999999999999, 4.2134039065776845, 2.9750618424109287, 0.06777086338234072, -0.10988993572875334, 0.04309357080649842, -0.061878783908782965, 2.0, 0.0]", + "[38.899999999999984, 4.206679000569732, 2.9759861117297386, 0.06717703656324017, -0.15910409238666684, -0.006120585851415082, 0.03812121609121705, 2.0, 0.0]", + "[38.94999999999999, 4.197493387213387, 2.974449673700157, 0.06658298597594377, -0.20831824904458035, -0.0553347425093286, -0.061878783908783014, 2.0, 0.0]", + "[38.999999999999986, 4.188307883013472, 2.972913344827005, 0.06598915718749, -0.15910409238666684, -0.0061205858514150994, 0.038121216091217006, 2.0, 0.0]", + "[39.04999999999998, 4.181583086161934, 2.973837723302232, 0.0653951085695734, -0.10988993572875332, 0.04309357080649841, -0.061878783908783035, 2.0, 0.0]", + "[39.09999999999999, 4.1748581820923905, 2.974761994559451, 0.06480127781174991, -0.1591040923866668, -0.0061205858514150925, 0.038121216091216964, 2.0, 0.0]", + "[39.149999999999984, 4.1681333842716475, 2.97568637206547, 0.06420723116320014, -0.10988993572875329, 0.04309357080649841, -0.061878783908783104, 2.0, 0.0]", + "[39.19999999999999, 4.161408481171313, 2.9766106442918994, 0.06361339843600425, -0.1591040923866668, -0.0061205858514150994, 0.03812121609121691, 2.0, 0.0]", + "[39.249999999999986, 4.152222870722606, 2.9750742091699545, 0.06301935375683893, -0.20831824904458032, -0.055334742509328606, -0.06187878390878313, 2.0, 0.0]", + "[39.29999999999998, 4.143037363615049, 2.9735378773891585, 0.06242551906024034, -0.1591040923866668, -0.0061205858514150925, 0.038121216091216895, 2.0, 0.0]", + "[39.34999999999999, 4.136312563855853, 2.9744622529567257, 0.061831476350501735, -0.10988993572875327, 0.04309357080649842, -0.06187878390878316, 2.0, 0.0]", + "[39.399999999999984, 4.129587662693976, 2.975386527121613, 0.06123763968448468, -0.1591040923866668, -0.006120585851415068, 0.03812121609121684, 2.0, 0.0]", + "[39.44999999999998, 4.120402054183737, 2.9763109017199483, 0.06564380203392764, -0.20831824904458035, 0.043093570806498435, 0.13812121609121686, 2.0, 0.0]", + "[39.499999999999986, 4.111216549217483, 2.9772351727742983, 0.07004975398865737, -0.15910409238666687, -0.006120585851415068, 0.03812121609121681, 2.0, 0.0]", + "[39.54999999999998, 4.104491755678889, 2.978159554562467, 0.06945569863905507, -0.10988993572875336, 0.04309357080649845, -0.06187878390878324, 2.0, 0.0]", + "[39.59999999999998, 4.0977668482963905, 2.979083822506732, 0.06886187461294078, -0.15910409238666684, -0.006120585851415058, 0.03812121609121677, 2.0, 0.0]", + "[39.649999999999984, 4.091042053788624, 2.977547383102596, 0.06826782123263626, -0.10988993572875336, -0.05533474250932857, -0.061878783908783284, 2.0, 0.0]", + "[39.69999999999998, 4.084317147375308, 2.976011055604006, 0.06767399523720616, -0.1591040923866669, -0.006120585851415061, 0.038121216091216714, 2.0, 0.0]", + "[39.749999999999986, 4.075131533613602, 2.974474617169063, 0.06707994382624131, -0.20831824904458035, -0.05533474250932856, -0.061878783908783326, 2.0, 0.0]", + "[39.79999999999998, 4.065946029819052, 2.972938288701276, 0.06648611586146233, -0.15910409238666684, -0.006120585851415054, 0.038121216091216686, 2.0, 0.0]", + "[39.84999999999998, 4.059221233372884, 2.973862667581872, 0.06589206641986187, -0.10988993572875333, 0.04309357080649845, -0.061878783908783354, 2.0, 0.0]", + "[39.899999999999984, 4.052496328897969, 2.9747869384337187, 0.06529823648572919, -0.15910409238666684, -0.006120585851415047, 0.038121216091216645, 2.0, 0.0]", + "[39.94999999999998, 4.045771531482602, 2.975711316345115, 0.06470418901347896, -0.10988993572875336, 0.04309357080649845, -0.06187878390878341, 2.0, 0.0]", + "[39.999999999999986, 4.039046627976886, 2.9766355881661632, 0.06411035710999026, -0.15910409238666684, -0.006120585851415054, 0.03812121609121659, 2.0, 0.0]", + "[40.04999999999998, 4.029861017122794, 2.9750991526388333, 0.06351631160710827, -0.20831824904458035, -0.05533474250932856, -0.06187878390878345, 2.0, 0.0]", + "[40.09999999999998, 4.020675510420624, 2.9735628212634255, 0.06292247773423225, -0.15910409238666687, -0.006120585851415054, 0.03812121609121655, 2.0, 0.0]", + "[40.149999999999984, 4.013950711066822, 2.9744871972363836, 0.06232843420076233, -0.10988993572875341, 0.04309357080649844, -0.06187878390878349, 2.0, 0.0]", + "[40.19999999999998, 4.007225809499552, 2.9754114709958746, 0.06173459835848298, -0.15910409238666695, -0.006120585851415068, 0.03812121609121652, 2.0, 0.0]", + "[40.24999999999998, 4.000501009176525, 2.973875037406998, 0.06614076153167277, -0.10988993572875343, -0.05533474250932857, 0.13812121609121655, 2.0, 0.0]", + "[40.29999999999998, 3.9937761044987505, 2.9723387081728685, 0.07054671266273058, -0.15910409238666692, -0.006120585851415072, 0.038121216091216485, 2.0, 0.0]", + "[40.34999999999998, 3.9870513113654766, 2.9732630903663573, 0.06995265648954505, -0.1098899357287534, 0.043093570806498435, -0.06187878390878356, 2.0, 0.0]", + "[40.39999999999998, 3.980326403577656, 2.9741873579052993, 0.0693588332870224, -0.1591040923866669, -0.006120585851415075, 0.03812121609121644, 2.0, 0.0]", + "[40.44999999999998, 3.973601609475218, 2.9751117391296233, 0.06876477908311512, -0.10988993572875341, 0.04309357080649842, -0.06187878390878362, 2.0, 0.0]", + "[40.49999999999998, 3.9668767026565632, 2.9760360076377315, 0.06817095391130785, -0.1591040923866669, -0.006120585851415068, 0.03812121609121638, 2.0, 0.0]", + "[40.54999999999998, 3.957691088489508, 2.9744995687974374, 0.06757690167669797, -0.2083182490445804, -0.05533474250932858, -0.06187878390878369, 2.0, 0.0]", + "[40.59999999999998, 3.9485055851003117, 2.9729632407350035, 0.06698307453557065, -0.15910409238666698, -0.006120585851415082, 0.038121216091216326, 2.0, 0.0]", + "[40.64999999999998, 3.9417807890595022, 2.9738876200209567, 0.06638902427030911, -0.10988993572875347, 0.04309357080649843, -0.061878783908783715, 2.0, 0.0]", + "[40.69999999999998, 3.9350558841792256, 2.974811890467442, 0.06579519515984474, -0.15910409238666692, -0.006120585851415086, 0.0381212160912163, 2.0, 0.0]", + "[40.74999999999998, 3.9283310871692256, 2.975736268784205, 0.06520114686391629, -0.10988993572875345, 0.04309357080649841, -0.061878783908783756, 2.0, 0.0]", + "[40.79999999999998, 3.9216061832581417, 2.9766605401998842, 0.06460731578411291, -0.15910409238666695, -0.006120585851415106, 0.038121216091216256, 2.0, 0.0]", + "[40.84999999999998, 3.912420571998675, 2.97512410426718, 0.0640132694575358, -0.2083182490445804, -0.055334742509328606, -0.061878783908783805, 2.0, 0.0]", + "[40.89999999999998, 3.903235065701883, 2.9735877732971505, 0.06341943640836116, -0.15910409238666695, -0.0061205858514150994, 0.038121216091216215, 2.0, 0.0]", + "[40.94999999999998, 3.8965102667534617, 2.9745121496754914, 0.06282539205118094, -0.10988993572875344, 0.043093570806498394, -0.061878783908783826, 2.0, 0.0]", + "[40.99999999999998, 3.889785364780805, 2.975436423029597, 0.0622315570326187, -0.15910409238666695, -0.006120585851415117, 0.03812121609121619, 2.0, 0.0]", + "[41.049999999999976, 3.8805997554597766, 2.976360798438722, 0.06663772102953505, -0.20831824904458043, 0.04309357080649838, 0.1381212160912162, 2.0, 0.0]", + "[41.09999999999998, 3.871414251304243, 2.977285068682351, 0.07104367133693211, -0.1591040923866669, -0.006120585851415134, 0.038121216091216166, 2.0, 0.0]", + "[41.14999999999998, 3.8646894585762896, 2.9782094512811605, 0.07044961434016045, -0.10988993572875341, 0.04309357080649837, -0.06187878390878388, 2.0, 0.0]", + "[41.199999999999974, 3.8579645503831435, 2.979133718414777, 0.06985579196123175, -0.15910409238666692, -0.006120585851415124, 0.038121216091216104, 2.0, 0.0]", + "[41.24999999999998, 3.848778934841585, 2.9775972781999807, 0.06926173693371991, -0.2083182490445804, -0.055334742509328634, -0.061878783908783964, 2.0, 0.0]", + "[41.29999999999998, 3.839593432826897, 2.9760609515120557, 0.06866791258550671, -0.15910409238666687, -0.006120585851415124, 0.03812121609121605, 2.0, 0.0]", + "[41.34999999999998, 3.8328686381606065, 2.976985332172529, 0.06807385952730964, -0.10988993572875337, 0.04309357080649838, -0.061878783908784006, 2.0, 0.0]", + "[41.39999999999998, 3.826143731905803, 2.9779096012444883, 0.06748003320979443, -0.1591040923866669, -0.006120585851415117, 0.03812121609121599, 2.0, 0.0]", + "[41.44999999999998, 3.819418936270342, 2.9763731629680463, 0.066885982120894, -0.1098899357287534, -0.05533474250932863, -0.061878783908784075, 2.0, 0.0]", + "[41.499999999999986, 3.8126940309847197, 2.974836834341765, 0.06629215383406471, -0.15910409238666687, -0.006120585851415127, 0.03812121609121592, 2.0, 0.0]", + "[41.54999999999998, 3.8059692343800644, 2.9757612130638726, 0.0656981047145016, -0.10988993572875336, 0.04309357080649837, -0.06187878390878413, 2.0, 0.0]", + "[41.59999999999998, 3.7992443300636323, 2.976685484074203, 0.06510427445834073, -0.15910409238666684, -0.006120585851415138, 0.03812121609121587, 2.0, 0.0]", + "[41.649999999999984, 3.7900587183988113, 2.9751490477361453, 0.06451022730811053, -0.20831824904458035, -0.05533474250932864, -0.061878783908784186, 2.0, 0.0]", + "[41.69999999999999, 3.780873212507376, 2.9736127171714726, 0.06391639508259588, -0.15910409238666684, -0.006120585851415138, 0.0381212160912158, 2.0, 0.0]", + "[41.749999999999986, 3.774148413964317, 2.9745370939551763, 0.06332234990174603, -0.10988993572875336, 0.04309357080649835, -0.06187878390878424, 2.0, 0.0]", + "[41.79999999999998, 3.7674235115862946, 2.9754613669039167, 0.06272851570686094, -0.1591040923866668, -0.0061205858514151515, 0.03812121609121577, 2.0, 0.0]", + "[41.84999999999999, 3.7606987120740274, 2.9739249325042794, 0.06713468052746464, -0.10988993572875327, -0.055334742509328655, 0.1381212160912158, 2.0, 0.0]", + "[41.89999999999999, 3.7539738065855666, 2.9723886040808365, 0.07154063001126026, -0.15910409238666678, -0.006120585851415162, 0.03812121609121578, 2.0, 0.0]", + "[41.94999999999999, 3.7472490142628923, 2.9733129870849253, 0.07094657219098803, -0.10988993572875329, 0.04309357080649834, -0.06187878390878426, 2.0, 0.0]", + "[41.999999999999986, 3.7405241056644623, 2.974237253813259, 0.07035275063556962, -0.15910409238666678, -0.006120585851415155, 0.03812121609121574, 2.0, 0.0]", + "[42.04999999999999, 3.733799312372645, 2.9751616358482034, 0.06975869478453516, -0.10988993572875332, 0.04309357080649835, -0.061878783908784284, 2.0, 0.0]", + "[42.099999999999994, 3.7270744047433624, 2.976085903545684, 0.06916487125987224, -0.1591040923866668, -0.006120585851415148, 0.038121216091215715, 2.0, 0.0]", + "[42.14999999999999, 3.717888789765667, 2.974549463894751, 0.06857081737809542, -0.20831824904458027, -0.055334742509328655, -0.06187878390878431, 2.0, 0.0]", + "[42.19999999999999, 3.7087032871871175, 2.973013136642964, 0.06797699188415007, -0.15910409238666676, -0.006120585851415155, 0.038121216091215715, 2.0, 0.0]", + "[42.24999999999999, 3.701978491956965, 2.9739375167395736, 0.06738293997168614, -0.10988993572875323, 0.04309357080649835, -0.06187878390878434, 2.0, 0.0]", + "[42.3, 3.695253586266022, 2.974861786375395, 0.06678911250844066, -0.1591040923866667, -0.006120585851415162, 0.03812121609121567, 2.0, 0.0]", + "[42.349999999999994, 3.688528790066697, 2.9757861655028326, 0.06619506256527136, -0.10988993572875316, 0.04309357080649835, -0.06187878390878438, 2.0, 0.0]", + "[42.39999999999999, 3.681803885344929, 2.9767104361078274, 0.06560123313272499, -0.15910409238666667, -0.006120585851415158, 0.03812121609121563, 2.0, 0.0]", + "[42.449999999999996, 3.6726182732747668, 2.975173999364428, 0.06500718515886932, -0.20831824904458018, -0.05533474250932868, -0.06187878390878442, 2.0, 0.0]", + "[42.5, 3.6634327677886755, 2.9736376692050994, 0.06441335375698741, -0.15910409238666673, -0.006120585851415172, 0.03812121609121559, 2.0, 0.0]", + "[42.55, 3.6567079696509657, 2.974562046394152, 0.06381930775249482, -0.10988993572875325, 0.04309357080649834, -0.06187878390878448, 2.0, 0.0]", + "[42.599999999999994, 3.6499830668675903, 2.9754863189375387, 0.0632254743812604, -0.15910409238666678, -0.006120585851415165, 0.03812121609121552, 2.0, 0.0]", + "[42.65, 3.6407974567358328, 2.9764106951573917, 0.0676316400255254, -0.20831824904458027, 0.04309357080649834, 0.13812121609121553, 2.0, 0.0]", + "[42.7, 3.6316119533909457, 2.977334964590374, 0.07203758868573899, -0.15910409238666678, -0.006120585851415158, 0.03812121609121546, 2.0, 0.0]", + "[42.75, 3.624887161473546, 2.978259347999737, 0.07144353004197479, -0.10988993572875329, 0.04309357080649834, -0.06187878390878459, 2.0, 0.0]", + "[42.8, 3.6181622524698374, 2.979183614322791, 0.0708497093100576, -0.1591040923866668, -0.0061205858514151515, 0.03812121609121541, 2.0, 0.0]", + "[42.85, 3.6089766361177036, 2.9776471732974192, 0.07025565263550997, -0.2083182490445803, -0.05533474250932864, -0.061878783908784644, 2.0, 0.0]", + "[42.900000000000006, 3.5997911349135996, 2.976110847420078, 0.06966182993434913, -0.15910409238666684, -0.006120585851415138, 0.03812121609121538, 2.0, 0.0]", + "[42.95, 3.5930663410579036, 2.9770352288911446, 0.06906777522907775, -0.10988993572875333, 0.04309357080649837, -0.06187878390878468, 2.0, 0.0]", + "[43.0, 3.586341433992498, 2.977959497152501, 0.06847395055865516, -0.15910409238666678, -0.006120585851415134, 0.038121216091215326, 2.0, 0.0]", + "[43.050000000000004, 3.5796166391676496, 2.976423058065445, 0.06787989782263845, -0.10988993572875329, -0.05533474250932864, -0.061878783908784714, 2.0, 0.0]", + "[43.10000000000001, 3.5728917330714043, 2.9748867302497866, 0.06728607118294287, -0.15910409238666678, -0.006120585851415155, 0.038121216091215285, 2.0, 0.0]", + "[43.150000000000006, 3.5661669372773828, 2.975811109782528, 0.06669202041622328, -0.1098899357287533, 0.043093570806498345, -0.06187878390878473, 2.0, 0.0]", + "[43.2, 3.559442032150307, 2.976735379982215, 0.06609819180723643, -0.1591040923866668, -0.006120585851415169, 0.03812121609121527, 2.0, 0.0]", + "[43.25000000000001, 3.5502564196748314, 2.975198942833502, 0.06550414300980928, -0.20831824904458035, -0.0553347425093287, -0.061878783908784776, 2.0, 0.0]", + "[43.30000000000001, 3.5410709145940586, 2.9736626130794916, 0.06491031243150694, -0.1591040923866669, -0.006120585851415207, 0.038121216091215215, 2.0, 0.0]", + "[43.35000000000001, 3.5343461168616708, 2.9745869906738656, 0.06431626560342396, -0.10988993572875339, 0.04309357080649828, -0.061878783908784825, 2.0, 0.0]", + "[43.400000000000006, 3.527621213672968, 2.9755112628119247, 0.06372243305578885, -0.1591040923866669, -0.006120585851415224, 0.038121216091215174, 2.0, 0.0]", + "[43.45000000000001, 3.5208964149713924, 2.9764356394371116, 0.06312838819703454, -0.1098899357287534, 0.04309357080649828, -0.061878783908784867, 2.0, 0.0]", + "[43.500000000000014, 3.5141715127518807, 2.9773599125443617, 0.0625345536800647, -0.1591040923866669, -0.006120585851415214, 0.038121216091215146, 2.0, 0.0]", + "[43.55000000000001, 3.507446713081107, 2.9758234783032305, 0.0669407181785933, -0.10988993572875336, -0.055334742509328724, 0.13812121609121514, 2.0, 0.0]", + "[43.60000000000001, 3.500721807751205, 2.974287149721229, 0.07134666798457101, -0.15910409238666687, -0.006120585851415235, 0.0381212160912151, 2.0, 0.0]", + "[43.65000000000001, 3.4939970152699114, 2.975211532566698, 0.0707526104866037, -0.10988993572875336, 0.04309357080649827, -0.06187878390878494, 2.0, 0.0]", + "[43.70000000000002, 3.4872721068300945, 2.976135799453644, 0.07015878860889382, -0.15910409238666684, -0.006120585851415224, 0.03812121609121508, 2.0, 0.0]", + "[43.750000000000014, 3.4780864910418523, 2.974599358992164, 0.06956473308013841, -0.20831824904458032, -0.055334742509328724, -0.06187878390878498, 2.0, 0.0]", + "[43.80000000000001, 3.4689009892738576, 2.9730630325509315, 0.06897090923318915, -0.15910409238666684, -0.006120585851415207, 0.038121216091215035, 2.0, 0.0]", + "[43.850000000000016, 3.4621761948542726, 2.973987413458109, 0.06837685567370613, -0.1098899357287533, 0.04309357080649828, -0.06187878390878499, 2.0, 0.0]", + "[43.90000000000002, 3.4554512883527546, 2.9749116822833535, 0.06778302985749919, -0.1591040923866668, -0.006120585851415228, 0.03812121609121502, 2.0, 0.0]", + "[43.95000000000002, 3.4462656745028237, 2.973375243760185, 0.06718897826726654, -0.2083182490445803, -0.055334742509328724, -0.06187878390878502, 2.0, 0.0]", + "[44.000000000000014, 3.4370801707965133, 2.9718389153806366, 0.06659515048178384, -0.15910409238666684, -0.006120585851415228, 0.03812121609121498, 2.0, 0.0]", + "[44.05000000000002, 3.4303553744386, 2.972763294349486, 0.06600110086085786, -0.10988993572875333, 0.04309357080649828, -0.061878783908785075, 2.0, 0.0]", + "[44.10000000000002, 3.4236304698754148, 2.973687565113064, 0.06540727110608158, -0.15910409238666684, -0.006120585851415228, 0.03812121609121494, 2.0, 0.0]", + "[44.15000000000002, 3.416905672548333, 2.9746119431127447, 0.06481322345444346, -0.10988993572875333, 0.04309357080649827, -0.061878783908785116, 2.0, 0.0]", + "[44.20000000000002, 3.4101807689543193, 2.975536214845494, 0.0642193917303729, -0.15910409238666684, -0.006120585851415238, 0.038121216091214896, 2.0, 0.0]", + "[44.25000000000002, 3.400995158011912, 2.973999779229849, 0.06362534604804193, -0.20831824904458032, -0.05533474250932875, -0.061878783908785144, 2.0, 0.0]", + "[44.300000000000026, 3.3918096513980696, 2.972463447942769, 0.06303151235464183, -0.15910409238666687, -0.006120585851415252, 0.038121216091214855, 2.0, 0.0]", + "[44.35000000000002, 3.385084852132607, 2.973387824004069, 0.062437468641668395, -0.10988993572875339, 0.04309357080649824, -0.0618787839087852, 2.0, 0.0]", + "[44.40000000000002, 3.3783599504769803, 2.9743120976752047, 0.061843632978921585, -0.1591040923866669, -0.006120585851415266, 0.03812121609121483, 2.0, 0.0]", + "[44.450000000000024, 3.369174341472972, 2.975236472767309, 0.06624979633167331, -0.2083182490445804, 0.04309357080649823, 0.13812121609121483, 2.0, 0.0]", + "[44.50000000000003, 3.359988837000308, 2.976160743328068, 0.07065574728345694, -0.15910409238666684, -0.006120585851415287, 0.03812121609121475, 2.0, 0.0]", + "[44.550000000000026, 3.353264043955099, 2.977085125609622, 0.07006169093132777, -0.10988993572875332, 0.04309357080649821, -0.0618787839087853, 2.0, 0.0]", + "[44.60000000000002, 3.3465391360791945, 2.9780093930604807, 0.06946786790778459, -0.15910409238666678, -0.00612058585141529, 0.0381212160912147, 2.0, 0.0]", + "[44.65000000000003, 3.3398143420648583, 2.976472953162913, 0.06887381352486151, -0.10988993572875326, -0.05533474250932878, -0.06187878390878535, 2.0, 0.0]", + "[44.70000000000003, 3.333089435158092, 2.974936626157775, 0.06827998853209298, -0.15910409238666676, -0.006120585851415283, 0.03812121609121466, 2.0, 0.0]", + "[44.75000000000003, 3.326364640174605, 2.975861006501051, 0.06768593611842025, -0.10988993572875329, 0.043093570806498185, -0.061878783908785366, 2.0, 0.0]", + "[44.800000000000026, 3.3196397342369863, 2.976785275890194, 0.06709210915640736, -0.15910409238666673, -0.006120585851415311, 0.03812121609121463, 2.0, 0.0]", + "[44.85000000000003, 3.3104541209509533, 2.9752488379309243, 0.06649805871198007, -0.20831824904458024, -0.05533474250932881, -0.06187878390878541, 2.0, 0.0]", + "[44.900000000000034, 3.3012686166807472, 2.97371250898748, 0.06590422978069599, -0.15910409238666673, -0.006120585851415328, 0.03812121609121459, 2.0, 0.0]", + "[44.95000000000003, 3.2945438197589376, 2.9746368873924327, 0.06531018130557122, -0.10988993572875325, 0.04309357080649817, -0.06187878390878546, 2.0, 0.0]", + "[45.00000000000003, 3.2878189157596474, 2.9755611587199047, 0.06471635040499794, -0.15910409238666678, -0.006120585851415332, 0.03812121609121455, 2.0, 0.0]", + "[45.05000000000003, 3.2810941178686717, 2.9764855361556912, 0.06412230389915637, -0.10988993572875325, 0.04309357080649818, -0.06187878390878551, 2.0, 0.0]", + "[45.10000000000004, 3.2743692148385506, 2.977409808452332, 0.06352847102929338, -0.15910409238666673, -0.006120585851415335, 0.03812121609121451, 2.0, 0.0]", + "[45.150000000000034, 3.2676444159783986, 2.97587337340058, 0.06793463717495375, -0.10988993572875325, -0.055334742509328835, 0.1381212160912145, 2.0, 0.0]", + "[45.20000000000003, 3.260919509837978, 2.9743370456290963, 0.07234058533401032, -0.15910409238666673, -0.006120585851415325, 0.038121216091214445, 2.0, 0.0]", + "[45.250000000000036, 3.251733892270207, 2.9728006033880874, 0.07174652618936432, -0.2083182490445802, -0.055334742509328835, -0.06187878390878563, 2.0, 0.0]", + "[45.30000000000004, 3.242548392281756, 2.9712642787263985, 0.07115270595833259, -0.15910409238666673, -0.006120585851415325, 0.03812121609121438, 2.0, 0.0]", + "[45.35000000000004, 3.235823599641733, 2.9721886614131376, 0.0705586487828932, -0.10988993572875325, 0.04309357080649818, -0.061878783908785685, 2.0, 0.0]", + "[45.400000000000034, 3.2290986913606368, 2.973112928458804, 0.06996482658267304, -0.15910409238666673, -0.006120585851415311, 0.03812121609121433, 2.0, 0.0]", + "[45.45000000000004, 3.2223738977514995, 2.974037310176429, 0.06937077137641139, -0.10988993572875322, 0.04309357080649819, -0.0618787839087857, 2.0, 0.0]", + "[45.50000000000004, 3.2156489904395213, 2.9749615781912144, 0.06877694720700624, -0.15910409238666673, -0.0061205858514153146, 0.03812121609121431, 2.0, 0.0]", + "[45.55000000000004, 3.206463375779117, 2.9734251388575728, 0.06818289396994325, -0.20831824904458024, -0.05533474250932882, -0.06187878390878574, 2.0, 0.0]", + "[45.60000000000004, 3.1972778728832894, 2.971888811288508, 0.06758906783131093, -0.15910409238666676, -0.006120585851415318, 0.03812121609121425, 2.0, 0.0]", + "[45.65000000000004, 3.1905530773358723, 2.9728131910678535, 0.06699501656350909, -0.10988993572875326, 0.043093570806498185, -0.06187878390878578, 2.0, 0.0]", + "[45.700000000000045, 3.1838281719621797, 2.9737374610209235, 0.06640118845563102, -0.15910409238666676, -0.006120585851415308, 0.038121216091214216, 2.0, 0.0]", + "[45.75000000000004, 3.177103375445618, 2.9746618398311253, 0.06580713915706696, -0.10988993572875325, 0.0430935708064982, -0.06187878390878584, 2.0, 0.0]", + "[45.80000000000004, 3.170378471041073, 2.9755861107533432, 0.0652133090799443, -0.15910409238666676, -0.006120585851415304, 0.038121216091214175, 2.0, 0.0]", + "[45.850000000000044, 3.1611928592881213, 2.9740496743271536, 0.06461926175063813, -0.20831824904458027, -0.05533474250932881, -0.06187878390878585, 2.0, 0.0]", + "[45.90000000000005, 3.152007353484833, 2.972513343850628, 0.0640254297042323, -0.15910409238666676, -0.0061205858514153146, 0.03812121609121415, 2.0, 0.0]", + "[45.950000000000045, 3.145282555029937, 2.973437720722495, 0.06343138434424012, -0.10988993572875327, 0.0430935708064982, -0.061878783908785914, 2.0, 0.0]", + "[46.00000000000004, 3.1385576525637333, 2.974361993583054, 0.06283755032853315, -0.15910409238666676, -0.006120585851415297, 0.03812121609121408, 2.0, 0.0]", + "[46.05000000000005, 3.131832853139665, 2.975286369485748, 0.062243506937836535, -0.10988993572875325, 0.04309357080649821, -0.061878783908786, 2.0, 0.0]", + "[46.10000000000005, 3.125107951642637, 2.976210643315483, 0.06164967095282759, -0.15910409238666676, -0.006120585851415294, 0.03812121609121402, 2.0, 0.0]", + "[46.15000000000005, 3.1159223427972202, 2.977135018248996, 0.0660558339833307, -0.20831824904458027, 0.04309357080649821, 0.13812121609121403, 2.0, 0.0]", + "[46.200000000000045, 3.1067368381658893, 2.978059288968422, 0.07046178525751565, -0.1591040923866668, -0.00612058585141528, 0.03812121609121399, 2.0, 0.0]", + "[46.25000000000005, 3.1000120449619275, 2.976522848260481, 0.06986772922796435, -0.1098899357287533, -0.05533474250932877, -0.061878783908786046, 2.0, 0.0]", + "[46.300000000000054, 3.0932871372447743, 2.9749865220657306, 0.06927390588184891, -0.15910409238666678, -0.0061205858514152695, 0.038121216091213966, 2.0, 0.0]", + "[46.35000000000005, 3.0865623430716886, 2.975910903219408, 0.06867985182149282, -0.10988993572875332, 0.04309357080649823, -0.061878783908786074, 2.0, 0.0]", + "[46.40000000000005, 3.079837436323655, 2.976835171798137, 0.06808602650618828, -0.15910409238666687, -0.0061205858514152625, 0.03812121609121391, 2.0, 0.0]", + "[46.45000000000005, 3.0706518222271937, 2.975298733028439, 0.06749197441502235, -0.20831824904458035, -0.05533474250932876, -0.06187878390878613, 2.0, 0.0]", + "[46.50000000000006, 3.0614663187674256, 2.973762404895433, 0.06689814713049842, -0.15910409238666684, -0.0061205858514152695, 0.03812121609121387, 2.0, 0.0]", + "[46.550000000000054, 3.0547415226560686, 2.9746867841108386, 0.06630409700858649, -0.10988993572875333, 0.04309357080649823, -0.06187878390878617, 2.0, 0.0]", + "[46.60000000000005, 3.0480166178463137, 2.9756110546278474, 0.06571026775482453, -0.15910409238666684, -0.006120585851415297, 0.03812121609121384, 2.0, 0.0]", + "[46.650000000000055, 3.0412918207658164, 2.9765354328741127, 0.06511621960214212, -0.10988993572875336, 0.043093570806498206, -0.06187878390878622, 2.0, 0.0]", + "[46.70000000000006, 3.0345669169252054, 2.977459704360264, 0.06452238837914363, -0.15910409238666687, -0.006120585851415287, 0.038121216091213786, 2.0, 0.0]", + "[46.75000000000006, 3.025381305736185, 2.975923268498007, 0.06392834219571115, -0.2083182490445804, -0.05533474250932879, -0.06187878390878627, 2.0, 0.0]", + "[46.800000000000054, 3.0161957993689676, 2.9743869374575516, 0.06333450900343687, -0.15910409238666692, -0.006120585851415273, 0.038121216091213744, 2.0, 0.0]", + "[46.85000000000006, 3.009471000350142, 2.9753113137654896, 0.06274046478931165, -0.10988993572875344, 0.04309357080649823, -0.061878783908786296, 2.0, 0.0]", + "[46.90000000000006, 3.0027460984478638, 2.976235587189975, 0.06214662962774347, -0.15910409238666692, -0.0061205858514152695, 0.03812121609121369, 2.0, 0.0]", + "[46.95000000000006, 2.99602129845987, 2.974699153266064, 0.06655279348170214, -0.10988993572875341, -0.05533474250932877, 0.13812121609121372, 2.0, 0.0]", + "[47.00000000000006, 2.9892963934473427, 2.973162824366687, 0.07095874393256556, -0.1591040923866669, -0.006120585851415276, 0.038121216091213696, 2.0, 0.0]", + "[47.05000000000006, 2.9825716006484955, 2.9740872068946023, 0.07036468707984735, -0.10988993572875341, 0.043093570806498234, -0.06187878390878633, 2.0, 0.0]", + "[47.100000000000065, 2.9758466925262144, 2.975011474099084, 0.06977086455692671, -0.15910409238666692, -0.006120585851415287, 0.038121216091213675, 2.0, 0.0]", + "[47.15000000000006, 2.96666107705549, 2.973475033955122, 0.06917680967334597, -0.20831824904458043, -0.0553347425093288, -0.06187878390878637, 2.0, 0.0]", + "[47.20000000000006, 2.9574755749699952, 2.9719387071963896, 0.06858298518125533, -0.15910409238666698, -0.0061205858514153146, 0.03812121609121362, 2.0, 0.0]", + "[47.250000000000064, 2.9507507802329234, 2.9728630877860804, 0.06798893226688248, -0.1098899357287535, 0.04309357080649819, -0.06187878390878641, 2.0, 0.0]", + "[47.30000000000007, 2.944025874048872, 2.9737873569287916, 0.06739510580560255, -0.15910409238666703, -0.0061205858514153146, 0.03812121609121359, 2.0, 0.0]", + "[47.350000000000065, 2.937301078342686, 2.9747117365493687, 0.06680105486040791, -0.10988993572875355, 0.04309357080649819, -0.06187878390878646, 2.0, 0.0]", + "[47.40000000000006, 2.930576173127752, 2.9756360066611975, 0.06620722642994241, -0.15910409238666703, -0.0061205858514153146, 0.03812121609121352, 2.0, 0.0]", + "[47.45000000000007, 2.9213905605643955, 2.9740995694246046, 0.06561317745394711, -0.20831824904458057, -0.05533474250932882, -0.06187878390878653, 2.0, 0.0]", + "[47.50000000000007, 2.912205055571522, 2.972563239758494, 0.06501934705425332, -0.1591040923866671, -0.006120585851415308, 0.03812121609121347, 2.0, 0.0]", + "[47.55000000000007, 2.9054802579270556, 2.9734876174407896, 0.06442530004752076, -0.1098899357287536, 0.0430935708064982, -0.06187878390878658, 2.0, 0.0]", + "[47.600000000000065, 2.8987553546504095, 2.974411889490906, 0.0638314676785799, -0.1591040923866671, -0.006120585851415304, 0.038121216091213425, 2.0, 0.0]", + "[47.65000000000007, 2.892030556036799, 2.975336266204058, 0.06323742264108612, -0.10988993572875361, 0.0430935708064982, -0.06187878390878663, 2.0, 0.0]", + "[47.700000000000074, 2.885305653729301, 2.9762605392233223, 0.06264358830289957, -0.15910409238666712, -0.006120585851415304, 0.03812121609121337, 2.0, 0.0]", + "[47.75000000000007, 2.8761200440734, 2.977184914967319, 0.06704975298025558, -0.2083182490445806, 0.0430935708064982, 0.1381212160912134, 2.0, 0.0]", + "[47.80000000000007, 2.866934540252417, 2.9781091848763976, 0.07145570260786706, -0.15910409238666715, -0.006120585851415308, 0.03812121609121332, 2.0, 0.0]", + "[47.85000000000007, 2.860209747858643, 2.9765727433582674, 0.0708616449320647, -0.10988993572875366, -0.05533474250932881, -0.061878783908786705, 2.0, 0.0]", + "[47.90000000000008, 2.8534848393312857, 2.9750364179737203, 0.07026782323223066, -0.15910409238666717, -0.006120585851415311, 0.0381212160912133, 2.0, 0.0]", + "[47.950000000000074, 2.8467600459684212, 2.975960799937619, 0.06967376752555754, -0.10988993572875366, 0.04309357080649819, -0.06187878390878674, 2.0, 0.0]", + "[48.00000000000007, 2.8400351384101516, 2.9768850677061116, 0.06907994385660042, -0.15910409238666717, -0.006120585851415294, 0.03812121609121326, 2.0, 0.0]", + "[48.050000000000075, 2.830849523503437, 2.97534862812616, 0.06848589011905132, -0.20831824904458063, -0.05533474250932879, -0.061878783908786796, 2.0, 0.0]", + "[48.10000000000008, 2.821664020853935, 2.973812300803421, 0.06789206448093649, -0.1591040923866672, -0.006120585851415287, 0.03812121609121322, 2.0, 0.0]", + "[48.15000000000008, 2.81493922555286, 2.9747366808291082, 0.06729801271258416, -0.1098899357287537, 0.04309357080649821, -0.06187878390878682, 2.0, 0.0]", + "[48.200000000000074, 2.808214319932809, 2.9756609505358202, 0.06670418510529214, -0.1591040923866672, -0.00612058585141529, 0.03812121609121316, 2.0, 0.0]", + "[48.25000000000008, 2.8014895236626254, 2.9765853295923987, 0.06611013530610496, -0.10988993572875369, 0.043093570806498206, -0.06187878390878688, 2.0, 0.0]", + "[48.30000000000008, 2.794764619011686, 2.977509600268222, 0.06551630572964028, -0.15910409238666717, -0.006120585851415297, 0.038121216091213134, 2.0, 0.0]", + "[48.35000000000008, 2.7855790070123216, 2.9759731635956204, 0.06492225789963968, -0.20831824904458066, -0.0553347425093288, -0.06187878390878692, 2.0, 0.0]", + "[48.40000000000008, 2.7763935014554604, 2.9744368333655222, 0.06432842635395834, -0.15910409238666712, -0.006120585851415304, 0.03812121609121308, 2.0, 0.0]", + "[48.45000000000008, 2.7696687032470075, 2.9753612104838316, 0.06373438049320988, -0.10988993572875358, 0.0430935708064982, -0.06187878390878696, 2.0, 0.0]", + "[48.500000000000085, 2.762943800534344, 2.9762854830979313, 0.06314054697829304, -0.15910409238666706, -0.006120585851415297, 0.03812121609121305, 2.0, 0.0]", + "[48.55000000000008, 2.756219001356753, 2.974749048363618, 0.06754671247893636, -0.10988993572875357, -0.05533474250932881, 0.13812121609121306, 2.0, 0.0]", + "[48.60000000000008, 2.7494940955339784, 2.97321272027449, 0.07195266128342684, -0.1591040923866671, -0.006120585851415301, 0.038121216091213, 2.0, 0.0]", + "[48.650000000000084, 2.7427693035452023, 2.974137103612476, 0.07135860278469407, -0.10988993572875362, 0.0430935708064982, -0.061878783908787045, 2.0, 0.0]", + "[48.70000000000009, 2.736044394612831, 2.9750613700068675, 0.07076478190782215, -0.15910409238666712, -0.006120585851415308, 0.03812121609121297, 2.0, 0.0]", + "[48.750000000000085, 2.726858778331999, 2.973524929052798, 0.0701707253781532, -0.20831824904458063, -0.05533474250932881, -0.06187878390878709, 2.0, 0.0]", + "[48.80000000000008, 2.7176732770566256, 2.971988603104188, 0.06957690253217957, -0.15910409238666712, -0.006120585851415311, 0.03812121609121291, 2.0, 0.0]", + "[48.85000000000009, 2.7109484831296937, 2.9729129845040188, 0.06898284797165545, -0.10988993572875361, 0.043093570806498185, -0.06187878390878713, 2.0, 0.0]", + "[48.90000000000009, 2.704223576135486, 2.973837252836574, 0.0683890231565601, -0.15910409238666712, -0.006120585851415311, 0.038121216091212884, 2.0, 0.0]", + "[48.95000000000009, 2.6974987812394753, 2.974761633267326, 0.06779497056514232, -0.10988993572875362, 0.043093570806498185, -0.061878783908787156, 2.0, 0.0]", + "[49.000000000000085, 2.6907738752143504, 2.975685902568964, 0.06720114378093273, -0.15910409238666712, -0.006120585851415328, 0.038121216091212884, 2.0, 0.0]", + "[49.05000000000009, 2.681588261840785, 2.9741494645221604, 0.06660709315864345, -0.20831824904458063, -0.05533474250932882, -0.061878783908787156, 2.0, 0.0]", + "[49.100000000000094, 2.672402757658136, 2.9726131356662737, 0.06601326440527142, -0.15910409238666712, -0.006120585851415325, 0.038121216091212856, 2.0, 0.0]", + "[49.15000000000009, 2.6656779608239094, 2.973537514158809, 0.06541921575218387, -0.10988993572875358, 0.04309357080649818, -0.0618787839087872, 2.0, 0.0]", + "[49.20000000000009, 2.658953056737008, 2.9744617853986703, 0.06482538502962985, -0.15910409238666703, -0.0061205858514153215, 0.0381212160912128, 2.0, 0.0]", + "[49.25000000000009, 2.652228258933671, 2.975386162922096, 0.06423133834571212, -0.10988993572875354, 0.04309357080649817, -0.061878783908787226, 2.0, 0.0]", + "[49.3000000000001, 2.6455033558158836, 2.976310435131072, 0.06363750565398076, -0.15910409238666706, -0.006120585851415335, 0.03812121609121277, 2.0, 0.0]", + "[49.350000000000094, 2.6363177453496753, 2.9747739999916263, 0.06304346093925431, -0.20831824904458057, -0.05533474250932882, -0.06187878390878727, 2.0, 0.0]", + "[49.40000000000009, 2.62713223825966, 2.9732376682283737, 0.062449626278301425, -0.1591040923866671, -0.0061205858514153146, 0.03812121609121273, 2.0, 0.0]", + "[49.450000000000095, 2.6204074385180482, 2.974162043813524, 0.0618555835328322, -0.10988993572875357, 0.043093570806498185, -0.06187878390878734, 2.0, 0.0]", + "[49.5000000000001, 2.6136825373385424, 2.97508631796078, 0.06126174690263881, -0.15910409238666703, -0.0061205858514153146, 0.03812121609121266, 2.0, 0.0]", + "[49.5500000000001, 2.6069577366277903, 2.973549884759628, 0.06566790928799801, -0.1098899357287535, -0.05533474250932881, 0.13812121609121264, 2.0, 0.0]", + "[49.600000000000094, 2.600232832338184, 2.972013555137331, 0.07007386120778948, -0.159104092386667, -0.006120585851415308, 0.03812121609121261, 2.0, 0.0]", + "[49.6500000000001, 2.593508038816229, 2.972937936942138, 0.06947980582437914, -0.10988993572875355, 0.04309357080649819, -0.06187878390878742, 2.0, 0.0]", + "[49.7000000000001, 2.5867831314170355, 2.973862204869708, 0.0688859818321892, -0.15910409238666703, -0.006120585851415301, 0.03812121609121258, 2.0, 0.0]", + "[49.7500000000001, 2.577597516669383, 2.9747865857054556, 0.0682919284178441, -0.20831824904458052, 0.043093570806498206, -0.06187878390878746, 2.0, 0.0]", + "[49.8000000000001, 2.568412013860838, 2.975710854602097, 0.06769810245656245, -0.15910409238666706, -0.006120585851415273, 0.03812121609121252, 2.0, 0.0]", + "[49.8500000000001, 2.561687218400736, 2.976635234468757, 0.06710405101134134, -0.1098899357287536, 0.04309357080649823, -0.0618787839087875, 2.0, 0.0]", + "[49.900000000000105, 2.5549623129396974, 2.9775595043344802, 0.06651022308094666, -0.1591040923866671, -0.006120585851415287, 0.03812121609121251, 2.0, 0.0]", + "[49.9500000000001, 2.545776700130214, 2.976023066851759, 0.0659161736048347, -0.20831824904458057, -0.055334742509328794, -0.061878783908787545, 2.0, 0.0]", + "[50.0000000000001, 2.5365911953834877, 2.9744867374317954, 0.06532234370529515, -0.15910409238666706, -0.006120585851415294, 0.03812121609121247, 2.0, 0.0]", + "[50.050000000000104, 2.5298663979851876, 2.9754111153602576, 0.06472829619836912, -0.1098899357287535, 0.04309357080649823, -0.06187878390878759, 2.0, 0.0]", + "[50.10000000000011, 2.523141494462355, 2.976335387164187, 0.06413446432966498, -0.15910409238666698, -0.006120585851415266, 0.03812121609121241, 2.0, 0.0]", + "[50.150000000000105, 2.5164166960949528, 2.9772597641235463, 0.0635404187918899, -0.10988993572875348, 0.04309357080649824, -0.06187878390878763, 2.0, 0.0]", + "[50.2000000000001, 2.5096917935412244, 2.978184036896581, 0.06294658495402711, -0.15910409238666695, -0.006120585851415259, 0.038121216091212384, 2.0, 0.0]", + "[50.25000000000011, 2.502966994204711, 2.9766476023211905, 0.06735275013175067, -0.10988993572875348, -0.055334742509328766, 0.1381212160912124, 2.0, 0.0]", + "[50.30000000000011, 2.4962420885410093, 2.975111274072989, 0.07175869925946894, -0.15910409238666695, -0.006120585851415273, 0.03812121609121235, 2.0, 0.0]", + "[50.35000000000011, 2.487056471450366, 2.973574832309108, 0.07116464108431889, -0.20831824904458043, -0.055334742509328766, -0.06187878390878771, 2.0, 0.0]", + "[50.400000000000105, 2.477870970984819, 2.9720385071703257, 0.0705708198838614, -0.1591040923866669, -0.0061205858514152695, 0.0381212160912123, 2.0, 0.0]", + "[50.45000000000011, 2.4711461778677344, 2.9729628893800037, 0.06997676367778063, -0.10988993572875339, 0.04309357080649823, -0.061878783908787725, 2.0, 0.0]", + "[50.500000000000114, 2.46442127006366, 2.9738871569026912, 0.06938294050828342, -0.15910409238666692, -0.006120585851415273, 0.03812121609121227, 2.0, 0.0]", + "[50.55000000000011, 2.457696475977539, 2.9748115381433333, 0.06878888627122066, -0.1098899357287534, 0.04309357080649823, -0.06187878390878778, 2.0, 0.0]", + "[50.60000000000011, 2.4509715691425042, 2.975735806635061, 0.068195061132697, -0.1591040923866669, -0.006120585851415283, 0.03812121609121222, 2.0, 0.0]", + "[50.65000000000011, 2.441785954959006, 2.9741993677783247, 0.06760100886467557, -0.2083182490445804, -0.05533474250932881, -0.061878783908787836, 2.0, 0.0]", + "[50.70000000000012, 2.432600451586307, 2.9726630397323883, 0.06700718175706974, -0.15910409238666687, -0.006120585851415311, 0.03812121609121216, 2.0, 0.0]", + "[50.750000000000114, 2.425875655562049, 2.9735874190348928, 0.06641313145817644, -0.10988993572875336, 0.04309357080649818, -0.06187878390878788, 2.0, 0.0]", + "[50.80000000000011, 2.4191507506651586, 2.974511689464765, 0.06581930238146816, -0.15910409238666684, -0.006120585851415332, 0.03812121609121215, 2.0, 0.0]", + "[50.850000000000115, 2.412425953671832, 2.975436067798201, 0.06522525405165945, -0.10988993572875337, 0.04309357080649817, -0.06187878390878789, 2.0, 0.0]", + "[50.90000000000012, 2.4057010497440148, 2.976360339197145, 0.06463142300585853, -0.15910409238666687, -0.006120585851415335, 0.03812121609121211, 2.0, 0.0]", + "[50.95000000000012, 2.396515438467754, 2.9748239032476467, 0.06403737664515699, -0.20831824904458035, -0.055334742509328835, -0.06187878390878795, 2.0, 0.0]", + "[51.000000000000114, 2.387329932187808, 2.9732875722944625, 0.06344354363021219, -0.1591040923866668, -0.006120585851415335, 0.038121216091212065, 2.0, 0.0]", + "[51.05000000000012, 2.380605081484922, 2.97421189691834, 0.0628496044347728, -0.10988993572875327, 0.043093570806498165, -0.06187878390878797, 2.0, 0.05000000000000001]" ] }, "type": "simtrace", @@ -1136,18 +1135,18 @@ "3": { "node_name": "3-0", "id": 3, - "start_line": 1136, + "start_line": 1135, "parent": { "name": "2-0", "index": 2, - "start_line": 741 + "start_line": 740 }, "child": {}, "agent": { "test": "<class 'dryvr_plus_plus.example.example_agent.quadrotor_agent.QuadrotorAgent'>" }, "init": { - "test": "[2.3811873213070296, 2.9696771514734457, 0.07126165073486489, -0.17405993068128048, 0.02341088215693004, 0.011808970642812014, 3, 0]" + "test": "[2.380605081484922, 2.97421189691834, 0.0628496044347728, -0.10988993572875327, 0.043093570806498165, -0.06187878390878797, 3, 0]" }, "mode": { "test": "[\"Follow_Waypoint\"]" @@ -1155,410 +1154,410 @@ "static": { "test": "[]" }, - "start_time": 51.1, + "start_time": 51.05, "trace": { "test": [ - "[51.1, 2.3811873213070296, 2.9696771514734457, 0.07126165073486489, -0.17405993068128048, 0.02341088215693004, 0.011808970642812014, 3.0, 0.0]", - "[51.15, 2.371253912707687, 2.972078107646571, 0.07435221742168921, -0.223274087339194, 0.07262503881484353, 0.111808970642812, 3.0, 0.0]", - "[51.2, 2.358859793754621, 2.9769397741734194, 0.07744254267698716, -0.27248824399710747, 0.12183919547275705, 0.011808970642811938, 3.0, 0.0]", - "[51.25, 2.3440049644481737, 2.984262151053649, 0.08053311960743435, -0.3217024006550209, 0.17105335213067055, 0.11180897064281195, 3.0, 0.0]", - "[51.300000000000004, 2.326689424788298, 2.9940452382873075, 0.08362343461970517, -0.3709165573129345, 0.22026750878858403, 0.011808970642811875, 3.0, 0.0]", - "[51.35, 2.3069131747753744, 3.0038281915794602, 0.08171374451119097, -0.42013071397084806, 0.1710533521306705, -0.08819102935718814, 3.0, 0.0]", - "[51.4, 2.284676218487087, 3.0136112797757395, 0.07980432851918304, -0.4693448706287616, 0.220267508788584, 0.011808970642811889, 3.0, 0.0]", - "[51.45, 2.25997855592327, 3.02339423618279, 0.07789464473994187, -0.5185590272866751, 0.17105335213067052, -0.08819102935718817, 3.0, 0.0]", - "[51.5, 2.232820187084199, 3.03317732126406, 0.07598522241843705, -0.5677731839445885, 0.22026750878858403, 0.011808970642811834, 3.0, 0.0]", - "[51.550000000000004, 2.205661943804226, 3.042960280786233, 0.07407554496892434, -0.5185590272866748, 0.17105335213067058, -0.0881910293571882, 3.0, 0.0]", - "[51.6, 2.180964406799427, 3.050282534033231, 0.07216611631753019, -0.4693448706287614, 0.12183919547275711, 0.011808970642811806, 3.0, 0.0]", - "[51.65, 2.1587275760699867, 3.0576049066088666, 0.0702564451980211, -0.42013071397084784, 0.17105335213067063, -0.08819102935718826, 3.0, 0.0]", - "[51.7, 2.1389514516156933, 3.0649271629711516, 0.06834701021656575, -0.37091655731293427, 0.12183919547275712, 0.01180897064281175, 3.0, 0.0]", - "[51.75, 2.1216360334367237, 3.072249532431467, 0.07143757207022386, -0.32170240065502076, 0.1710533521306706, 0.11180897064281176, 3.0, 0.0]", - "[51.800000000000004, 2.106781325611368, 3.0795717878306057, 0.07452790215891043, -0.27248824399710725, 0.12183919547275708, 0.011808970642811702, 3.0, 0.0]", - "[51.85, 2.0943873281392933, 3.086894162332024, 0.07261822712633637, -0.22327408733919374, 0.17105335213067058, -0.08819102935718834, 3.0, 0.0]", - "[51.9, 2.084454036942512, 3.0942164167683788, 0.07070879605824554, -0.1740599306812802, 0.12183919547275704, 0.011808970642811695, 3.0, 0.0]", - "[51.95, 2.076981452021202, 3.1015387881547696, 0.06879912735520405, -0.12484577402336672, 0.1710533521306705, -0.08819102935718834, 3.0, 0.0]", - "[52.0, 2.0719695733751435, 3.108861045706193, 0.06688968995749553, -0.07563161736545321, 0.12183919547275696, 0.011808970642811667, 3.0, 0.0]", - "[52.050000000000004, 2.0694184010044987, 3.116183413977458, 0.06998024939508246, -0.02641746070753973, 0.17105335213067044, 0.11180897064281167, 3.0, 0.0]", - "[52.1, 2.069327938987585, 3.123505670565528, 0.0730705818996025, 0.022796695950373782, 0.12183919547275689, 0.011808970642811618, 3.0, 0.0]", - "[52.15, 2.0692373602461043, 3.1308280438781653, 0.07616115158093258, -0.02641746070753972, 0.1710533521306704, 0.11180897064281164, 3.0, 0.0]", - "[52.2, 2.0691469032703225, 3.138150295425104, 0.07925147384219511, 0.022796695950373782, 0.12183919547275691, 0.011808970642811577, 3.0, 0.0]", - "[52.25, 2.069056319487992, 3.1454726737785905, 0.07734179098246333, -0.02641746070753972, 0.17105335213067044, -0.08819102935718848, 3.0, 0.0]", - "[52.300000000000004, 2.0689658634751082, 3.1527949243626305, 0.0754323677420298, 0.02279669595037378, 0.12183919547275694, 0.011808970642811528, 3.0, 0.0]", - "[52.35, 2.0688752828073356, 3.160117299601559, 0.07352269121088086, -0.026417460707539718, 0.17105335213067044, -0.08819102935718853, 3.0, 0.0]", - "[52.4, 2.0687848236797826, 3.1674395533002686, 0.07161326164163807, 0.022796695950373785, 0.1218391954727569, 0.0118089706428115, 3.0, 0.0]", - "[52.45, 2.0686942461267996, 3.174761925424408, 0.07470382890801824, -0.026417460707539715, 0.1710533521306704, 0.1118089706428115, 3.0, 0.0]", - "[52.5, 2.0686037879625974, 3.1820841781597675, 0.07779415358407711, 0.0227966959503738, 0.12183919547275689, 0.011808970642811466, 3.0, 0.0]", - "[52.550000000000004, 2.0685132053686046, 3.1894065553249167, 0.07588447313897292, -0.026417460707539697, 0.17105335213067038, -0.08819102935718856, 3.0, 0.0]", - "[52.6, 2.068422748167332, 3.1967288070973465, 0.0739750474838066, 0.0227966959503738, 0.12183919547275687, 0.011808970642811431, 3.0, 0.0]", - "[52.650000000000006, 2.068332168688004, 3.204051181147831, 0.0720653733675, -0.026417460707539708, 0.17105335213067036, -0.08819102935718862, 3.0, 0.0]", - "[52.7, 2.0682417083719584, 3.2113734360350334, 0.07015594138331675, 0.022796695950373796, 0.12183919547275684, 0.01180897064281139, 3.0, 0.0]", - "[52.75, 2.0681511320075177, 3.2186958069706306, 0.07324650623465374, -0.0264174607075397, 0.17105335213067033, 0.1118089706428114, 3.0, 0.0]", - "[52.800000000000004, 2.0680606726548443, 3.22601806089446, 0.07633683332560774, 0.02279669595037381, 0.12183919547275679, 0.011808970642811327, 3.0, 0.0]", - "[52.85, 2.0679700912492422, 3.2333404368712184, 0.07442715529523561, -0.02641746070753969, 0.17105335213067027, -0.0881910293571887, 3.0, 0.0]", - "[52.900000000000006, 2.0678796328595292, 3.240662689832087, 0.07251772722523622, 0.02279669595037382, 0.12183919547275682, 0.01180897064281132, 3.0, 0.0]", - "[52.95, 2.0677890545686926, 3.24798506269408, 0.07560829599088521, -0.026417460707539673, 0.17105335213067036, 0.11180897064281131, 3.0, 0.0]", - "[53.0, 2.067698597142323, 3.255307314691606, 0.07869861916771324, 0.022796695950373827, 0.12183919547275682, 0.011808970642811244, 3.0, 0.0]", - "[53.050000000000004, 2.0676080138105184, 3.262629692594567, 0.07678893722342137, -0.02641746070753967, 0.1710533521306703, -0.08819102935718881, 3.0, 0.0]", - "[53.1, 2.067517557347068, 3.2699519436291737, 0.07487951306746324, 0.022796695950373834, 0.12183919547275679, 0.011808970642811209, 3.0, 0.0]", - "[53.150000000000006, 2.0674269771299043, 3.2772743184174944, 0.0729698374519226, -0.026417460707539673, 0.1710533521306703, -0.08819102935718884, 3.0, 0.0]", - "[53.2, 2.067336517551704, 3.2845965725668513, 0.0710604069669945, 0.022796695950373834, 0.12183919547275682, 0.011808970642811153, 3.0, 0.0]", - "[53.25, 2.0672459404494044, 3.291918944240307, 0.07415097331761301, -0.02641746070753967, 0.17105335213067036, 0.11180897064281115, 3.0, 0.0]", - "[53.300000000000004, 2.0671554818345705, 3.2992411974262974, 0.07724129890932449, 0.022796695950373834, 0.1218391954727568, 0.011808970642811105, 3.0, 0.0]", - "[53.35, 2.0670648996911503, 3.306563574140874, 0.07533161937975417, -0.026417460707539676, 0.1710533521306703, -0.08819102935718892, 3.0, 0.0]", - "[53.4, 2.0669744420392653, 3.3138858263639155, 0.07342219280897444, 0.022796695950373824, 0.12183919547275678, 0.01180897064281105, 3.0, 0.0]", - "[53.45, 2.0668838630105872, 3.3212081999637495, 0.07651276307386991, -0.026417460707539694, 0.17105335213067027, 0.11180897064281106, 3.0, 0.0]", - "[53.5, 2.06679340632204, 3.3309912839171125, 0.0796030847514913, 0.022796695950373803, 0.22026750878858373, 0.011808970642811029, 3.0, 0.0]", - "[53.55, 2.0667028222524286, 3.3407742404894116, 0.0776934013080245, -0.026417460707539697, 0.17105335213067024, -0.08819102935718903, 3.0, 0.0]", - "[53.6, 2.066612366526801, 3.3480964907861956, 0.07578397865127456, 0.02279669595037381, 0.12183919547275676, 0.011808970642811, 3.0, 0.0]", - "[53.65, 2.0665217855718034, 3.35541886631235, 0.07387430153650051, -0.0264174607075397, 0.17105335213067027, -0.08819102935718909, 3.0, 0.0]", - "[53.7, 2.0664313267314487, 3.362741119723861, 0.07196487255082634, 0.022796695950373792, 0.12183919547275682, 0.011808970642810904, 3.0, 0.0]", - "[53.75, 2.0663407488912915, 3.3700634921351744, 0.07505544040072458, -0.02641746070753971, 0.17105335213067036, 0.1118089706428109, 3.0, 0.0]", - "[53.8, 2.0662502910142972, 3.377385744583325, 0.07814576449319455, 0.022796695950373792, 0.12183919547275684, 0.011808970642810834, 3.0, 0.0]", - "[53.85, 2.0661597081330596, 3.3847081220357196, 0.07623608346442623, -0.02641746070753971, 0.17105335213067036, -0.08819102935718923, 3.0, 0.0]", - "[53.9, 2.0660692512190026, 3.3920303735209325, 0.07432665839286531, 0.022796695950373792, 0.1218391954727569, 0.011808970642810765, 3.0, 0.0]", - "[53.95, 2.0659786714524837, 3.399352747858608, 0.07241698369300598, -0.026417460707539704, 0.17105335213067038, -0.08819102935718931, 3.0, 0.0]", - "[54.0, 2.0658882114236037, 3.4066750024586443, 0.07050755229232454, 0.0227966959503738, 0.12183919547275686, 0.011808970642810682, 3.0, 0.0]", - "[54.05, 2.06579763477202, 3.4139973736813842, 0.07359811772711809, -0.02641746070753971, 0.17105335213067038, 0.11180897064281067, 3.0, 0.0]", - "[54.1, 2.0657071757065215, 3.4213196273180393, 0.07668844423455169, 0.022796695950373796, 0.12183919547275691, 0.01180897064281062, 3.0, 0.0]", - "[54.15, 2.0656165940137106, 3.428642003582006, 0.07477876562059134, -0.02641746070753971, 0.1710533521306704, -0.08819102935718942, 3.0, 0.0]", - "[54.199999999999996, 2.06552613591118, 3.4359642562556933, 0.07286933813412709, 0.0227966959503738, 0.12183919547275693, 0.011808970642810585, 3.0, 0.0]", - "[54.25, 2.065435557333185, 3.4432866294048448, 0.07595990748326394, -0.026417460707539704, 0.17105335213067044, 0.11180897064281059, 3.0, 0.0]", - "[54.3, 2.065345100194007, 3.450608881115179, 0.07905023007653773, 0.02279669595037381, 0.12183919547275689, 0.011808970642810522, 3.0, 0.0]", - "[54.349999999999994, 2.0652545165749765, 3.4579312593053664, 0.07714054754862135, -0.026417460707539697, 0.17105335213067038, -0.08819102935718956, 3.0, 0.0]", - "[54.4, 2.065164060398725, 3.4652535100527744, 0.07523112397623258, 0.022796695950373806, 0.12183919547275684, 0.011808970642810446, 3.0, 0.0]", - "[54.449999999999996, 2.0650734798943864, 3.4725758851282693, 0.0733214477771719, -0.02641746070753969, 0.17105335213067033, -0.08819102935718959, 3.0, 0.0]", - "[54.5, 2.064983020603338, 3.479898138990474, 0.07141201787571602, 0.022796695950373813, 0.12183919547275679, 0.011808970642810418, 3.0, 0.0]", - "[54.55, 2.0648924432139077, 3.487220510951061, 0.07450258480976438, -0.026417460707539683, 0.1710533521306703, 0.11180897064281042, 3.0, 0.0]", - "[54.599999999999994, 2.064801984886233, 3.4945427638498914, 0.07759290981798622, 0.02279669595037382, 0.12183919547275676, 0.01180897064281037, 3.0, 0.0]", - "[54.65, 2.064711402455622, 3.501865140851659, 0.07568322970486285, -0.026417460707539687, 0.17105335213067024, -0.08819102935718967, 3.0, 0.0]", - "[54.699999999999996, 2.064620945090903, 3.5091873927875348, 0.07377380371758635, 0.022796695950373817, 0.12183919547275669, 0.011808970642810362, 3.0, 0.0]", - "[54.75, 2.06453036577508, 3.516509766674514, 0.07186412993351306, -0.026417460707539687, 0.17105335213067022, -0.08819102935718967, 3.0, 0.0]", - "[54.8, 2.064439905295471, 3.523832021725279, 0.06995469761698114, 0.02279669595037381, 0.12183919547275675, 0.0118089706428103, 3.0, 0.0]", - "[54.849999999999994, 2.0643493290946475, 3.5311543924972586, 0.07304526213585973, -0.026417460707539687, 0.1710533521306703, 0.11180897064281028, 3.0, 0.0]", - "[54.9, 2.0642588695784347, 3.5409374736229564, 0.07613558955911541, 0.022796695950373824, 0.22026750878858378, 0.01180897064281023, 3.0, 0.0]", - "[54.949999999999996, 2.064168288336283, 3.550720433022715, 0.07422591186086573, -0.026417460707539687, 0.1710533521306703, -0.08819102935718981, 3.0, 0.0]", - "[54.99999999999999, 2.0640778297830638, 3.5580426861470906, 0.07231648345863234, 0.02279669595037381, 0.12183919547275682, 0.011808970642810196, 3.0, 0.0]", - "[55.05, 2.06398725165579, 3.565365058845521, 0.07540705189193189, -0.026417460707539697, 0.17105335213067036, 0.11180897064281023, 3.0, 0.0]", - "[55.099999999999994, 2.063896794065938, 3.5726873110065287, 0.07849737540094492, 0.022796695950373803, 0.12183919547275689, 0.011808970642810168, 3.0, 0.0]", - "[55.14999999999999, 2.063806210897528, 3.580009688746095, 0.07658769378866083, -0.026417460707539708, 0.17105335213067036, -0.08819102935718987, 3.0, 0.0]", - "[55.199999999999996, 2.0637157542706213, 3.587331939944159, 0.07467826930056924, 0.022796695950373796, 0.12183919547275687, 0.011808970642810154, 3.0, 0.0]", - "[55.24999999999999, 2.0636251742169733, 3.5946543145689636, 0.07276859401728178, -0.0264174607075397, 0.17105335213067038, -0.08819102935718987, 3.0, 0.0]", - "[55.3, 2.0635347144752036, 3.60197656888189, 0.07085916319998828, 0.022796695950373803, 0.12183919547275689, 0.011808970642810113, 3.0, 0.0]", - "[55.349999999999994, 2.063444137536528, 3.6092989403917226, 0.07394972921813447, -0.026417460707539694, 0.1710533521306704, 0.11180897064281012, 3.0, 0.0]", - "[55.39999999999999, 2.063353678758146, 3.616621193741261, 0.07704005514216543, 0.02279669595037381, 0.1218391954727569, 0.011808970642810078, 3.0, 0.0]", - "[55.449999999999996, 2.063263096778193, 3.623943570292371, 0.07513037594474958, -0.026417460707539694, 0.17105335213067036, -0.08819102935718998, 3.0, 0.0]", - "[55.49999999999999, 2.0631726389627834, 3.6312658226789365, 0.07322094904169893, 0.022796695950373813, 0.12183919547275682, 0.01180897064281003, 3.0, 0.0]", - "[55.55, 2.0630820600976847, 3.6385881961151916, 0.07631151897421243, -0.026417460707539697, 0.1710533521306703, 0.11180897064281003, 3.0, 0.0]", - "[55.599999999999994, 2.0629916032456364, 3.645910447538397, 0.07940184098405756, 0.02279669595037381, 0.1218391954727568, 0.011808970642809967, 3.0, 0.0]", - "[55.64999999999999, 2.062901019339449, 3.653232826015741, 0.07749215787265756, -0.0264174607075397, 0.1710533521306703, -0.08819102935719009, 3.0, 0.0]", - "[55.699999999999996, 2.0628105634503324, 3.6605550764760144, 0.07558273488370873, 0.022796695950373806, 0.12183919547275679, 0.011808970642809925, 3.0, 0.0]", - "[55.74999999999999, 2.0627199826588787, 3.667877451838625, 0.07367305810124666, -0.026417460707539694, 0.17105335213067024, -0.08819102935719011, 3.0, 0.0]", - "[55.79999999999999, 2.0626295236549277, 3.6751997054137333, 0.07176362878315444, 0.02279669595037381, 0.12183919547275672, 0.011808970642809918, 3.0, 0.0]", - "[55.849999999999994, 2.062538945978418, 3.6825220776614, 0.07485419630053342, -0.026417460707539687, 0.17105335213067022, 0.11180897064280992, 3.0, 0.0]", - "[55.89999999999999, 2.0624484879378477, 3.6898443302731265, 0.07794452072537786, 0.022796695950373813, 0.12183919547275675, 0.01180897064280987, 3.0, 0.0]", - "[55.94999999999999, 2.062357905220108, 3.6971667075620234, 0.07603484002882782, -0.02641746070753969, 0.17105335213067024, -0.08819102935719017, 3.0, 0.0]", - "[55.99999999999999, 2.062267448142499, 3.704488959210789, 0.07412541462493864, 0.022796695950373824, 0.12183919547275675, 0.011808970642809849, 3.0, 0.0]", - "[56.04999999999999, 2.0621768685395847, 3.7118113333848597, 0.07221574025751257, -0.026417460707539676, 0.17105335213067024, -0.0881910293571902, 3.0, 0.0]", - "[56.099999999999994, 2.062086408347052, 3.7191335881485488, 0.07030630852429956, 0.02279669595037383, 0.12183919547275678, 0.011808970642809807, 3.0, 0.0]", - "[56.14999999999999, 2.0619958318591665, 3.7264559592075917, 0.07339687362646771, -0.026417460707539663, 0.17105335213067027, 0.11180897064280981, 3.0, 0.0]", - "[56.19999999999999, 2.0619053726300356, 3.7362390406203714, 0.07648720046639196, 0.02279669595037383, 0.2202675087885838, 0.011808970642809773, 3.0, 0.0]", - "[56.24999999999999, 2.0618147911007823, 3.7460219997330277, 0.07457752218476815, -0.026417460707539663, 0.17105335213067036, -0.08819102935719025, 3.0, 0.0]", - "[56.29999999999999, 2.061724332834648, 3.7533442525703187, 0.07266809436587242, 0.022796695950373844, 0.12183919547275684, 0.011808970642809752, 3.0, 0.0]", - "[56.349999999999994, 2.061633754420305, 3.760666625555818, 0.07575866338247897, -0.026417460707539645, 0.17105335213067036, 0.11180897064280973, 3.0, 0.0]", - "[56.39999999999999, 2.0615432971175442, 3.7679888774297354, 0.07884898630814163, 0.022796695950373858, 0.12183919547275686, 0.011808970642809662, 3.0, 0.0]", - "[56.44999999999999, 2.0614527136620215, 3.7753112554564154, 0.07693930411246158, -0.02641746070753965, 0.17105335213067036, -0.08819102935719039, 3.0, 0.0]", - "[56.49999999999999, 2.06136225732221, 3.7826335063673833, 0.07502988020772924, 0.022796695950373855, 0.12183919547275686, 0.011808970642809606, 3.0, 0.0]", - "[56.54999999999999, 2.0612716769814825, 3.7899558812792673, 0.07312020434111459, -0.02641746070753964, 0.17105335213067036, -0.08819102935719042, 3.0, 0.0]", - "[56.59999999999999, 2.061181217526775, 3.7972781353051315, 0.07121077410711668, 0.022796695950373855, 0.12183919547275689, 0.011808970642809585, 3.0, 0.0]", - "[56.64999999999999, 2.061090640301049, 3.8046005071020152, 0.07430134070853132, -0.026417460707539656, 0.17105335213067038, 0.11180897064280959, 3.0, 0.0]", - "[56.69999999999999, 2.0610001818097365, 3.8119227601644843, 0.07739166604925508, 0.02279669595037385, 0.12183919547275686, 0.011808970642809523, 3.0, 0.0]", - "[56.749999999999986, 2.060909599542693, 3.8192451370026834, 0.0754819862684913, -0.026417460707539645, 0.17105335213067036, -0.08819102935719053, 3.0, 0.0]", - "[56.79999999999999, 2.060819142014357, 3.8265673891021756, 0.07357255994875556, 0.02279669595037385, 0.12183919547275686, 0.01180897064280946, 3.0, 0.0]", - "[56.84999999999999, 2.060728562862199, 3.8338897628254895, 0.07166288649723673, -0.026417460707539652, 0.17105335213067036, -0.08819102935719059, 3.0, 0.0]", - "[56.89999999999999, 2.060638102218883, 3.841212018039962, 0.06975345384806125, 0.02279669595037385, 0.12183919547275689, 0.011808970642809391, 3.0, 0.0]", - "[56.94999999999999, 2.060547526181809, 3.8485343886481926, 0.07284401803421121, -0.026417460707539656, 0.17105335213067038, 0.1118089706428094, 3.0, 0.0]", - "[56.999999999999986, 2.060457066501907, 3.8558566428992513, 0.07593434579007274, 0.02279669595037385, 0.1218391954727569, 0.011808970642809356, 3.0, 0.0]", - "[57.04999999999999, 2.0603664854233843, 3.863179018548931, 0.0740246684243059, -0.026417460707539645, 0.17105335213067038, -0.08819102935719067, 3.0, 0.0]", - "[57.09999999999999, 2.0602760267064877, 3.870501271836984, 0.07211523968948882, 0.02279669595037385, 0.12183919547275689, 0.011808970642809322, 3.0, 0.0]", - "[57.14999999999999, 2.060185448742936, 3.8778236443716927, 0.07520580779011761, -0.026417460707539656, 0.1710533521306704, 0.11180897064280931, 3.0, 0.0]", - "[57.19999999999999, 2.060094990989426, 3.8851458966963595, 0.07829613163167616, 0.02279669595037384, 0.12183919547275691, 0.011808970642809252, 3.0, 0.0]", - "[57.249999999999986, 2.0600044079846085, 3.8924682742723333, 0.07638645035180236, -0.026417460707539656, 0.1710533521306704, -0.08819102935719078, 3.0, 0.0]", - "[57.29999999999999, 2.0599139511940616, 3.899790525634037, 0.07447702553120596, 0.022796695950373848, 0.12183919547275693, 0.011808970642809224, 3.0, 0.0]", - "[57.34999999999999, 2.0598233713040974, 3.9071129000951577, 0.0725673505805137, -0.02641746070753966, 0.1710533521306704, -0.08819102935719086, 3.0, 0.0]", - "[57.399999999999984, 2.0597329113986014, 3.914435154571811, 0.07065791943054037, 0.02279669595037384, 0.12183919547275689, 0.011808970642809141, 3.0, 0.0]", - "[57.44999999999999, 2.0596423346236907, 3.9217575259178776, 0.0737484851159258, -0.026417460707539663, 0.17105335213067036, 0.11180897064280915, 3.0, 0.0]", - "[57.499999999999986, 2.059551875681601, 3.9315406076176984, 0.07683881137260067, 0.02279669595037384, 0.22026750878858387, 0.011808970642809107, 3.0, 0.0]", - "[57.54999999999998, 2.0594612938652896, 3.941323566443298, 0.07492913250769495, -0.02641746070753966, 0.17105335213067036, -0.08819102935719095, 3.0, 0.0]", - "[57.59999999999999, 2.0593708358861984, 3.9486458189935454, 0.07301970527205241, 0.022796695950373848, 0.12183919547275684, 0.011808970642809072, 3.0, 0.0]", - "[57.649999999999984, 2.059280257184824, 3.9559681922660768, 0.07611027487188872, -0.026417460707539656, 0.17105335213067036, 0.11180897064280906, 3.0, 0.0]", - "[57.69999999999999, 2.059189800169112, 3.9632904438529453, 0.07920059721428829, 0.022796695950373855, 0.12183919547275684, 0.011808970642808995, 3.0, 0.0]", - "[57.749999999999986, 2.059099216426523, 3.9706128221666916, 0.07729091443531029, -0.026417460707539652, 0.17105335213067036, -0.08819102935719106, 3.0, 0.0]", - "[57.79999999999998, 2.0590087603737617, 3.9779350727906087, 0.07538149111384705, 0.02279669595037385, 0.12183919547275683, 0.011808970642808947, 3.0, 0.0]", - "[57.84999999999999, 2.0589181797459952, 3.9852574479895315, 0.07347181466398793, -0.026417460707539645, 0.17105335213067033, -0.08819102935719111, 3.0, 0.0]", - "[57.899999999999984, 2.058827720578315, 3.9925797017283684, 0.07156238501320986, 0.02279669595037385, 0.12183919547275683, 0.011808970642808891, 3.0, 0.0]", - "[57.94999999999999, 2.058737143065572, 3.999902073812268, 0.07465295219782363, -0.026417460707539652, 0.17105335213067036, 0.1118089706428089, 3.0, 0.0]", - "[57.999999999999986, 2.058646684861291, 4.007224326587704, 0.07774327695531863, 0.022796695950373844, 0.12183919547275686, 0.011808970642808864, 3.0, 0.0]", - "[58.04999999999998, 2.061016937010417, 4.01454670371295, 0.07583359659129522, 0.07201085260828735, 0.17105335213067038, -0.0881910293571912, 3.0, 0.0]", - "[58.09999999999999, 2.063387063846732, 4.021868955525386, 0.07392417085484257, 0.022796695950373844, 0.12183919547275687, 0.011808970642808808, 3.0, 0.0]", - "[58.149999999999984, 2.063296484407506, 4.029191329535771, 0.07201449682002056, -0.02641746070753967, 0.17105335213067038, -0.08819102935719128, 3.0, 0.0]", - "[58.19999999999998, 2.0632060240512438, 4.03651358446319, 0.0701050647541195, 0.02279669595037384, 0.12183919547275683, 0.011808970642808753, 3.0, 0.0]", - "[58.249999999999986, 2.0631154477271276, 4.043835955358464, 0.07319562952351925, -0.02641746070753966, 0.17105335213067033, 0.11180897064280876, 3.0, 0.0]", - "[58.29999999999998, 2.0630249883342855, 4.051158209322465, 0.07628595669609411, 0.022796695950373837, 0.1218391954727568, 0.011808970642808718, 3.0, 0.0]", - "[58.34999999999998, 2.0629344069686844, 4.058480585259222, 0.07437627874700177, -0.02641746070753967, 0.1710533521306703, -0.08819102935719134, 3.0, 0.0]", - "[58.399999999999984, 2.062843948538851, 4.065802838260213, 0.07246685059547987, 0.02279669595037382, 0.1218391954727568, 0.01180897064280867, 3.0, 0.0]", - "[58.44999999999998, 2.0627533702882475, 4.073125211081972, 0.07555741927937765, -0.026417460707539676, 0.17105335213067027, 0.11180897064280867, 3.0, 0.0]", - "[58.499999999999986, 2.062662912821807, 4.080447463119568, 0.0786477425376283, 0.02279669595037382, 0.1218391954727568, 0.011808970642808635, 3.0, 0.0]", - "[58.54999999999998, 2.0625723295299, 4.087769840982631, 0.07673806067440568, -0.026417460707539683, 0.1710533521306703, -0.08819102935719145, 3.0, 0.0]", - "[58.59999999999998, 2.062481873026427, 4.095092092057261, 0.07482863643712614, 0.02279669595037382, 0.12183919547275676, 0.011808970642808565, 3.0, 0.0]", - "[58.649999999999984, 2.062391292849403, 4.102414466805443, 0.07291896090314466, -0.02641746070753968, 0.17105335213067022, -0.08819102935719147, 3.0, 0.0]", - "[58.69999999999998, 2.0623008332309545, 4.1097367209950475, 0.07100953033643302, 0.02279669595037382, 0.12183919547275676, 0.011808970642808544, 3.0, 0.0]", - "[58.749999999999986, 2.0622102561690077, 4.117059092628151, 0.07410009660505675, -0.026417460707539683, 0.17105335213067024, 0.11180897064280856, 3.0, 0.0]", - "[58.79999999999998, 2.062119797513971, 4.124381345854343, 0.07719042227845817, 0.022796695950373824, 0.12183919547275676, 0.011808970642808496, 3.0, 0.0]", - "[58.84999999999998, 2.0620292154105924, 4.131703722528879, 0.07528074283024942, -0.026417460707539676, 0.17105335213067027, -0.08819102935719156, 3.0, 0.0]", - "[58.899999999999984, 2.061938757718551, 4.139025974792076, 0.07337131617787467, 0.02279669595037382, 0.1218391954727568, 0.011808970642808447, 3.0, 0.0]", - "[58.94999999999998, 2.0618481787301377, 4.146348348351646, 0.07646188636095494, -0.026417460707539687, 0.17105335213067033, 0.11180897064280845, 3.0, 0.0]", - "[58.99999999999998, 2.0617577220014818, 4.156131432264898, 0.07955220812007503, 0.02279669595037381, 0.2202675087885838, 0.011808970642808427, 3.0, 0.0]", - "[59.04999999999998, 2.0616671379718152, 4.165914388877142, 0.07764252475777339, -0.026417460707539683, 0.1710533521306703, -0.08819102935719161, 3.0, 0.0]", - "[59.09999999999998, 2.061576682206121, 4.173236639213993, 0.07573310201961037, 0.022796695950373824, 0.12183919547275676, 0.011808970642808406, 3.0, 0.0]", - "[59.14999999999998, 2.0614861012913015, 4.180559014699968, 0.07382342498647723, -0.026417460707539683, 0.17105335213067027, -0.08819102935719167, 3.0, 0.0]", - "[59.19999999999998, 2.061395642410662, 4.187881268151763, 0.07191399591894707, 0.022796695950373813, 0.12183919547275675, 0.01180897064280833, 3.0, 0.0]", - "[59.249999999999986, 2.0613050646108895, 4.195203640522692, 0.07500456368678655, -0.026417460707539694, 0.17105335213067027, 0.11180897064280834, 3.0, 0.0]", - "[59.29999999999998, 2.0612146066936536, 4.202525893011084, 0.07809488786102255, 0.02279669595037382, 0.12183919547275676, 0.011808970642808274, 3.0, 0.0]", - "[59.34999999999998, 2.061124023852501, 4.209848270423392, 0.07618520691370517, -0.026417460707539676, 0.17105335213067027, -0.08819102935719175, 3.0, 0.0]", - "[59.399999999999984, 2.0610335668982485, 4.217170521948802, 0.07427578176046964, 0.02279669595037384, 0.12183919547275676, 0.01180897064280828, 3.0, 0.0]", - "[59.44999999999999, 2.0609429871720293, 4.2244928962461765, 0.0723661071424959, -0.02641746070753966, 0.17105335213067024, -0.08819102935719178, 3.0, 0.0]", - "[59.499999999999986, 2.0608525271027522, 4.231815150886609, 0.07045667565972977, 0.022796695950373834, 0.12183919547275675, 0.011808970642808211, 3.0, 0.0]", - "[59.54999999999998, 2.0607619504916577, 4.239137522068862, 0.07354724101225114, -0.026417460707539656, 0.17105335213067024, 0.1118089706428082, 3.0, 0.0]", - "[59.59999999999999, 2.0606714913858033, 4.246459775745874, 0.0766375676016851, 0.022796695950373865, 0.12183919547275673, 0.011808970642808135, 3.0, 0.0]", - "[59.64999999999999, 2.060580909733204, 4.25378215196963, 0.07472788906943208, -0.026417460707539635, 0.17105335213067024, -0.08819102935719192, 3.0, 0.0]", - "[59.69999999999999, 2.0604904515903595, 4.26110440468363, 0.07281846150105313, 0.022796695950373876, 0.12183919547275673, 0.011808970642808087, 3.0, 0.0]", - "[59.749999999999986, 2.060399873052774, 4.268426777792372, 0.07590903076807973, -0.02641746070753963, 0.17105335213067027, 0.11180897064280809, 3.0, 0.0]", - "[59.79999999999999, 2.060309415873325, 4.275749029542976, 0.07899935344318129, 0.02279669595037386, 0.12183919547275675, 0.011808970642808059, 3.0, 0.0]", - "[59.849999999999994, 2.0602188322944155, 4.283071407693043, 0.0770896709967888, -0.02641746070753963, 0.17105335213067024, -0.08819102935719197, 3.0, 0.0]", - "[59.89999999999999, 2.060128376077937, 4.29039365848068, 0.07518024734266059, 0.02279669595037388, 0.1218391954727567, 0.011808970642808045, 3.0, 0.0]", - "[59.94999999999999, 2.0600377956139275, 4.297716033515846, 0.07327057122554274, -0.026417460707539617, 0.1710533521306702, -0.088191029357192, 3.0, 0.0]", - "[59.99999999999999, 2.059947336282457, 4.305038287418474, 0.07136114124195192, 0.022796695950373872, 0.12183919547275666, 0.01180897064280799, 3.0, 0.0]", - "[60.05, 2.0598567589335395, 4.31236065933855, 0.07445170809368429, -0.026417460707539635, 0.17105335213067016, 0.11180897064280798, 3.0, 0.0]", - "[60.099999999999994, 2.059766300565483, 4.319682912277763, 0.07754203318395951, 0.022796695950373872, 0.12183919547275661, 0.011808970642807948, 3.0, 0.0]", - "[60.14999999999999, 2.059675718175115, 4.327005289239286, 0.07563235315260669, -0.026417460707539624, 0.1710533521306701, -0.08819102935719209, 3.0, 0.0]", - "[60.199999999999996, 2.059585260770056, 4.334327541215501, 0.07372292708335963, 0.02279669595037389, 0.12183919547275657, 0.01180897064280792, 3.0, 0.0]", - "[60.25, 2.0594946814946686, 4.341649915062045, 0.07181325338144542, -0.026417460707539617, 0.17105335213067008, -0.08819102935719214, 3.0, 0.0]", - "[60.3, 2.0594042209745393, 4.348972170153331, 0.06990382098257651, 0.022796695950373886, 0.1218391954727566, 0.011808970642807864, 3.0, 0.0]", - "[60.349999999999994, 2.0593136448143188, 4.356294540884708, 0.07299438541895059, -0.026417460707539624, 0.1710533521306701, 0.11180897064280787, 3.0, 0.0]", - "[60.4, 2.059223185257622, 4.3660776219699216, 0.07608471292446681, 0.02279669595037388, 0.22026750878858364, 0.011808970642807795, 3.0, 0.0]", - "[60.45, 2.059132604055827, 4.375860581410038, 0.0741750353082191, -0.02641746070753962, 0.17105335213067013, -0.08819102935719222, 3.0, 0.0]", - "[60.5, 2.059042145462158, 4.383182834574862, 0.07226560682379445, 0.022796695950373886, 0.12183919547275657, 0.011808970642807781, 3.0, 0.0]", - "[60.55, 2.0589515673754195, 4.390505207232756, 0.07535617517472847, -0.026417460707539597, 0.17105335213067008, 0.11180897064280779, 3.0, 0.0]", - "[60.6, 2.0588611097451572, 4.3978274594341755, 0.07844649876585412, 0.022796695950373903, 0.12183919547275662, 0.011808970642807746, 3.0, 0.0]", - "[60.650000000000006, 2.058770526617024, 4.405149837133466, 0.07653681723541046, -0.026417460707539593, 0.1710533521306701, -0.08819102935719228, 3.0, 0.0]", - "[60.7, 2.0586800699497454, 4.412472088371902, 0.07462739266528609, 0.022796695950373896, 0.12183919547275657, 0.011808970642807698, 3.0, 0.0]", - "[60.75, 2.061050319557969, 4.419794462956245, 0.07271771746421281, 0.0720108526082874, 0.17105335213067005, -0.08819102935719236, 3.0, 0.0]", - "[60.800000000000004, 2.0634204489353007, 4.427116717309698, 0.0708082865645773, 0.0227966959503739, 0.12183919547275654, 0.01180897064280765, 3.0, 0.0]", - "[60.85000000000001, 2.0633298720372104, 4.434439088778944, 0.07389885250025674, -0.02641746070753961, 0.17105335213067005, 0.11180897064280768, 3.0, 0.0]", - "[60.900000000000006, 2.0632394132183633, 4.441761342168946, 0.07698917850650827, 0.022796695950373886, 0.1218391954727566, 0.011808970642807629, 3.0, 0.0]", - "[60.95, 2.063148831278744, 4.449083718679721, 0.0750794993910475, -0.026417460707539624, 0.17105335213067008, -0.08819102935719242, 3.0, 0.0]", - "[61.00000000000001, 2.0630583734229093, 4.456405971106712, 0.07317007240585571, 0.02279669595037389, 0.1218391954727566, 0.011808970642807615, 3.0, 0.0]", - "[61.05000000000001, 2.062967794598322, 4.4637283445024565, 0.07626064225605245, -0.02641746070753962, 0.1710533521306701, 0.11180897064280762, 3.0, 0.0]", - "[61.10000000000001, 2.0628773377058875, 4.471050595966047, 0.07935096434795791, 0.022796695950373876, 0.12183919547275665, 0.011808970642807573, 3.0, 0.0]", - "[61.150000000000006, 2.0627867538399496, 4.47837297440314, 0.07744128131834244, -0.026417460707539635, 0.17105335213067013, -0.0881910293571925, 3.0, 0.0]", - "[61.20000000000001, 2.0626962979104873, 4.485695224903758, 0.07553185824741539, 0.02279669595037387, 0.12183919547275665, 0.011808970642807483, 3.0, 0.0]", - "[61.250000000000014, 2.0626057171594683, 4.493017600225932, 0.07362218154711446, -0.026417460707539628, 0.17105335213067013, -0.08819102935719253, 3.0, 0.0]", - "[61.30000000000001, 2.0625152581149964, 4.500339853841559, 0.07171275214668812, 0.02279669595037387, 0.12183919547275665, 0.011808970642807469, 3.0, 0.0]", - "[61.35000000000001, 2.062424680479085, 4.507662226048625, 0.0748033195815699, -0.02641746070753963, 0.17105335213067016, 0.11180897064280748, 3.0, 0.0]", - "[61.40000000000001, 2.0623342223980323, 4.5149844787008355, 0.07789364408867248, 0.02279669595037387, 0.12183919547275662, 0.011808970642807448, 3.0, 0.0]", - "[61.45000000000002, 2.062243639720649, 4.522306855949377, 0.07598396347412298, -0.02641746070753963, 0.17105335213067013, -0.08819102935719261, 3.0, 0.0]", - "[61.500000000000014, 2.0621531826025947, 4.529629107638587, 0.07407453798805293, 0.022796695950373872, 0.12183919547275661, 0.011808970642807393, 3.0, 0.0]", - "[61.55000000000001, 2.062062603040208, 4.536951481772128, 0.07216486370297784, -0.026417460707539638, 0.17105335213067013, -0.08819102935719267, 3.0, 0.0]", - "[61.600000000000016, 2.0619721428070683, 4.544273736576426, 0.07025543188725311, 0.022796695950373855, 0.12183919547275665, 0.011808970642807337, 3.0, 0.0]", - "[61.65000000000002, 2.0618815663598644, 4.551596107594784, 0.0733459969067581, -0.026417460707539645, 0.17105335213067016, 0.11180897064280734, 3.0, 0.0]", - "[61.70000000000002, 2.061791107090161, 4.561379188966989, 0.0764363238291227, 0.022796695950373858, 0.22026750878858364, 0.011808970642807302, 3.0, 0.0]", - "[61.750000000000014, 2.061700525601363, 4.571162148120103, 0.07452664562970258, -0.02641746070753964, 0.17105335213067013, -0.08819102935719275, 3.0, 0.0]", - "[61.80000000000002, 2.0616100672946893, 4.578484400997934, 0.07261721772843208, 0.02279669595037385, 0.12183919547275661, 0.011808970642807226, 3.0, 0.0]", - "[61.85000000000002, 2.061519488920963, 4.585806773942815, 0.07570778666250601, -0.02641746070753965, 0.17105335213067008, 0.11180897064280723, 3.0, 0.0]", - "[61.90000000000002, 2.061429031577699, 4.593129025857237, 0.07879810967046975, 0.02279669595037386, 0.12183919547275654, 0.011808970642807178, 3.0, 0.0]", - "[61.95000000000002, 2.061338448162557, 4.600451403843535, 0.07688842755684151, -0.02641746070753963, 0.17105335213067005, -0.08819102935719286, 3.0, 0.0]", - "[62.00000000000002, 2.0612479917822784, 4.60777365479497, 0.074979003569883, 0.02279669595037388, 0.12183919547275654, 0.011808970642807157, 3.0, 0.0]", - "[62.050000000000026, 2.0611574114820987, 4.615096029666306, 0.07306932778565907, -0.026417460707539628, 0.17105335213067002, -0.08819102935719289, 3.0, 0.0]", - "[62.10000000000002, 2.061066951986767, 4.622418283732792, 0.07115989746911482, 0.022796695950373865, 0.12183919547275653, 0.011808970642807087, 3.0, 0.0]", - "[62.15000000000002, 2.060976374801737, 4.6297406554889795, 0.07425046398783637, -0.026417460707539645, 0.17105335213067, 0.11180897064280709, 3.0, 0.0]", - "[62.200000000000024, 2.060885916269834, 4.637062908592039, 0.07734078941103718, 0.02279669595037386, 0.12183919547275648, 0.011808970642807053, 3.0, 0.0]", - "[62.25000000000003, 2.060795334043267, 4.644385285389763, 0.07543110971251749, -0.026417460707539638, 0.17105335213066994, -0.088191029357193, 3.0, 0.0]", - "[62.300000000000026, 2.0607048764743756, 4.651707537529812, 0.07352168331037522, 0.02279669595037387, 0.1218391954727564, 0.011808970642807032, 3.0, 0.0]", - "[62.35000000000002, 2.0606142973628487, 4.659029911212496, 0.07161200994141609, -0.026417460707539624, 0.1710533521306699, -0.088191029357193, 3.0, 0.0]", - "[62.40000000000003, 2.060523836678831, 4.666352166467671, 0.06970257720953614, 0.022796695950373872, 0.12183919547275646, 0.01180897064280699, 3.0, 0.0]", - "[62.45000000000003, 2.0604332606825264, 4.673674537035131, 0.07279314131284527, -0.02641746070753963, 0.17105335213066994, 0.11180897064280701, 3.0, 0.0]", - "[62.50000000000003, 2.0603428009619544, 4.68099679132686, 0.07588346915134614, 0.022796695950373876, 0.12183919547275644, 0.011808970642806949, 3.0, 0.0]", - "[62.550000000000026, 2.060252219923995, 4.688319166935976, 0.07397379186800103, -0.02641746070753963, 0.17105335213066997, -0.08819102935719311, 3.0, 0.0]", - "[62.60000000000003, 2.06016176116646, 4.695641420264667, 0.07206436305061095, 0.02279669595037386, 0.1218391954727565, 0.011808970642806865, 3.0, 0.0]", - "[62.650000000000034, 2.0600711832436156, 4.702963792758668, 0.0751549310685239, -0.026417460707539635, 0.17105335213066997, 0.11180897064280687, 3.0, 0.0]", - "[62.70000000000003, 2.0599807254494995, 4.71028604512394, 0.07824525499258796, 0.022796695950373872, 0.12183919547275647, 0.01180897064280683, 3.0, 0.0]", - "[62.75000000000003, 2.0598901424851754, 4.717608422659421, 0.07633557379499309, -0.026417460707539617, 0.17105335213066997, -0.0881910293571932, 3.0, 0.0]", - "[62.80000000000003, 2.0597996856540575, 4.724930674061694, 0.0744261488919599, 0.022796695950373883, 0.12183919547275644, 0.011808970642806838, 3.0, 0.0]", - "[62.85000000000004, 2.059709105804737, 4.73225304848217, 0.07251647402385344, -0.026417460707539628, 0.17105335213066997, -0.0881910293571932, 3.0, 0.0]", - "[62.900000000000034, 2.059618645858527, 4.739575302999536, 0.07060704279115342, 0.022796695950373876, 0.12183919547275651, 0.011808970642806824, 3.0, 0.0]", - "[62.95000000000003, 2.059528069124395, 4.746897674304824, 0.07369760839367932, -0.026417460707539617, 0.17105335213067002, 0.11180897064280682, 3.0, 0.0]", - "[63.000000000000036, 2.059437610141622, 4.754219927858752, 0.07678793473301736, 0.022796695950373872, 0.12183919547275651, 0.011808970642806775, 3.0, 0.0]", - "[63.05000000000004, 2.059347028365892, 4.761542304205639, 0.07487825595057028, -0.02641746070753963, 0.17105335213067002, -0.08819102935719328, 3.0, 0.0]", - "[63.10000000000004, 2.059256570346144, 4.768864556796545, 0.07296882863231567, 0.022796695950373872, 0.12183919547275654, 0.011808970642806733, 3.0, 0.0]", - "[63.150000000000034, 2.0591659916854943, 4.776186930028352, 0.07605939814940192, -0.026417460707539638, 0.17105335213067005, 0.11180897064280673, 3.0, 0.0]", - "[63.20000000000004, 2.0590755346291565, 4.785970013613927, 0.07914972057434821, 0.02279669595037387, 0.2202675087885836, 0.011808970642806692, 3.0, 0.0]", - "[63.25000000000004, 2.0589849509270826, 4.795752970553764, 0.07724003787769368, -0.026417460707539635, 0.17105335213067008, -0.08819102935719336, 3.0, 0.0]", - "[63.30000000000004, 2.058894494833733, 4.803075221218269, 0.07533061447375843, 0.022796695950373858, 0.1218391954727566, 0.01180897064280663, 3.0, 0.0]", - "[63.35000000000004, 2.058803914246626, 4.810397596376533, 0.07342093810651579, -0.02641746070753965, 0.1710533521306701, -0.08819102935719345, 3.0, 0.0]", - "[63.40000000000004, 2.058713455038221, 4.817719850156096, 0.07151150837298446, 0.02279669595037385, 0.12183919547275658, 0.01180897064280656, 3.0, 0.0]", - "[63.450000000000045, 2.058622877566268, 4.825042222199206, 0.07460207547471595, -0.026417460707539666, 0.17105335213067008, 0.11180897064280657, 3.0, 0.0]", - "[63.50000000000004, 2.058532419321291, 4.832364475015339, 0.07769240031490242, 0.022796695950373848, 0.12183919547275657, 0.011808970642806497, 3.0, 0.0]", - "[63.55000000000004, 2.0609026714298233, 4.83968685209999, 0.07578272003336471, 0.07201085260828735, 0.17105335213067008, -0.08819102935719353, 3.0, 0.0]", - "[63.600000000000044, 2.063272798306803, 4.84700910395309, 0.07387329421428342, 0.022796695950373834, 0.12183919547275661, 0.011808970642806477, 3.0, 0.0]", - "[63.65000000000005, 2.063182218908309, 4.854331477922741, 0.07196362026222482, -0.02641746070753967, 0.17105335213067013, -0.08819102935719358, 3.0, 0.0]", - "[63.700000000000045, 2.0630917585112534, 4.861653732890954, 0.07005418811343289, 0.02279669595037384, 0.12183919547275662, 0.011808970642806435, 3.0, 0.0]", - "[63.75000000000004, 2.063001182227991, 4.868976103745373, 0.07314475279982165, -0.02641746070753966, 0.1710533521306701, 0.11180897064280645, 3.0, 0.0]", - "[63.80000000000005, 2.0629107227943826, 4.876298357750137, 0.07623508005522926, 0.022796695950373834, 0.12183919547275662, 0.0118089706428064, 3.0, 0.0]", - "[63.85000000000005, 2.062820141469452, 4.883620733646224, 0.07432540218877713, -0.026417460707539663, 0.1710533521306701, -0.08819102935719367, 3.0, 0.0]", - "[63.90000000000005, 2.062729682998882, 4.89094298668795, 0.07241597395448171, 0.022796695950373837, 0.12183919547275661, 0.011808970642806345, 3.0, 0.0]", - "[63.950000000000045, 2.0626391047890773, 4.898265359468911, 0.07550654255548014, -0.026417460707539676, 0.1710533521306701, 0.11180897064280637, 3.0, 0.0]", - "[64.00000000000006, 2.0625486472819294, 4.905587611547215, 0.07859686589644396, 0.022796695950373817, 0.12183919547275662, 0.011808970642806331, 3.0, 0.0]", - "[64.05000000000005, 2.0624580640306305, 4.912909989369671, 0.07668718411573396, -0.026417460707539676, 0.1710533521306701, -0.0881910293571937, 3.0, 0.0]", - "[64.10000000000005, 2.0623676074864816, 4.920232240484975, 0.07477775979580273, 0.022796695950373824, 0.12183919547275658, 0.01180897064280631, 3.0, 0.0]", - "[64.15000000000005, 2.062277027350197, 4.927554615192418, 0.07286808434460433, -0.026417460707539676, 0.1710533521306701, -0.08819102935719372, 3.0, 0.0]", - "[64.20000000000005, 2.062186567690946, 4.934876869422825, 0.07095865369498534, 0.022796695950373824, 0.12183919547275661, 0.011808970642806275, 3.0, 0.0]", - "[64.25000000000006, 2.0620959906698597, 4.942199241015069, 0.07404921988058441, -0.026417460707539676, 0.1710533521306701, 0.11180897064280629, 3.0, 0.0]", - "[64.30000000000005, 2.0620055319740493, 4.949521494282035, 0.07713954563683643, 0.02279669595037382, 0.1218391954727566, 0.011808970642806248, 3.0, 0.0]", - "[64.35000000000005, 2.0619149499113525, 4.956843870915887, 0.07522986627129043, -0.026417460707539663, 0.1710533521306701, -0.08819102935719378, 3.0, 0.0]", - "[64.40000000000006, 2.061824492178565, 4.964166123219831, 0.073320439536123, 0.022796695950373837, 0.12183919547275658, 0.011808970642806227, 3.0, 0.0]", - "[64.45000000000006, 2.0617339132309587, 4.971488496738594, 0.07641100963628777, -0.026417460707539663, 0.17105335213067008, 0.11180897064280623, 3.0, 0.0]", - "[64.50000000000006, 2.061643456461586, 4.981271580611131, 0.0795013314781416, 0.022796695950373848, 0.2202675087885836, 0.01180897064280615, 3.0, 0.0]", - "[64.55000000000005, 2.061552872472542, 4.991054537263997, 0.07759164819838102, -0.02641746070753965, 0.1710533521306701, -0.08819102935719389, 3.0, 0.0]", - "[64.60000000000005, 2.0614624166661577, 4.998376787641539, 0.07568222537753885, 0.022796695950373848, 0.12183919547275657, 0.011808970642806144, 3.0, 0.0]", - "[64.65000000000006, 2.06137183579209, 5.005699163086762, 0.07377254842721251, -0.026417460707539663, 0.17105335213067008, -0.08819102935719392, 3.0, 0.0]", - "[64.70000000000006, 2.061281376870638, 5.0130214165793685, 0.07186311927675458, 0.02279669595037382, 0.12183919547275658, 0.011808970642806088, 3.0, 0.0]", - "[64.75000000000006, 2.061190799111733, 5.02034378890943, 0.07495368696155211, -0.02641746070753969, 0.17105335213067008, 0.11180897064280612, 3.0, 0.0]", - "[64.80000000000007, 2.061100341153712, 5.027666041438605, 0.07804401121866045, 0.022796695950373813, 0.12183919547275655, 0.01180897064280606, 3.0, 0.0]", - "[64.85000000000007, 2.0610097583532556, 5.0349884188102205, 0.07613433035403264, -0.026417460707539694, 0.17105335213067005, -0.088191029357194, 3.0, 0.0]", - "[64.90000000000006, 2.060919301358246, 5.042310670376386, 0.07422490511798113, 0.02279669595037382, 0.12183919547275653, 0.011808970642806005, 3.0, 0.0]", - "[64.95000000000006, 2.0608287216728427, 5.0496330446329445, 0.07231523058294262, -0.02641746070753968, 0.17105335213067005, -0.08819102935719403, 3.0, 0.0]", - "[65.00000000000006, 2.060738261562695, 5.056955299314251, 0.07040579901712839, 0.022796695950373827, 0.12183919547275658, 0.011808970642805977, 3.0, 0.0]", - "[65.05000000000007, 2.0606476849925244, 5.064277670455576, 0.0734963642864952, -0.02641746070753968, 0.17105335213067008, 0.11180897064280598, 3.0, 0.0]", - "[65.10000000000007, 2.060557225845824, 5.071599924173435, 0.07658669095892512, 0.022796695950373824, 0.12183919547275655, 0.011808970642805929, 3.0, 0.0]", - "[65.15000000000006, 2.0604666442339865, 5.078922300356427, 0.07467701250949675, -0.026417460707539683, 0.17105335213067002, -0.08819102935719414, 3.0, 0.0]", - "[65.20000000000007, 2.060376186050322, 5.086244553111247, 0.07276758485817508, 0.02279669595037383, 0.12183919547275651, 0.011808970642805894, 3.0, 0.0]", - "[65.25000000000007, 2.0602856075536113, 5.093566926179115, 0.0758581540421473, -0.026417460707539663, 0.17105335213066997, 0.1118089706428059, 3.0, 0.0]", - "[65.30000000000007, 2.0601951503333704, 5.100889177970513, 0.07894847680013745, 0.02279669595037383, 0.12183919547275647, 0.011808970642805859, 3.0, 0.0]", - "[65.35000000000007, 2.0601045667951663, 5.1082115560798735, 0.07703879443645496, -0.026417460707539666, 0.17105335213066997, -0.0881910293571942, 3.0, 0.0]", - "[65.40000000000006, 2.0600141105379213, 5.115533806908274, 0.0751293706994934, 0.022796695950373834, 0.12183919547275648, 0.011808970642805824, 3.0, 0.0]", - "[65.45000000000007, 2.0599235301147343, 5.122856181902615, 0.07321969466532549, -0.026417460707539666, 0.17105335213066997, -0.08819102935719422, 3.0, 0.0]", - "[65.50000000000007, 2.0598330707423864, 5.130178435846121, 0.07131026459867443, 0.022796695950373837, 0.12183919547275647, 0.011808970642805769, 3.0, 0.0]", - "[65.55000000000007, 2.0597424934343955, 5.137500807725266, 0.07440083136724235, -0.02641746070753967, 0.17105335213066997, 0.11180897064280579, 3.0, 0.0]", - "[65.60000000000008, 2.0596520350254868, 5.144823060705331, 0.07749115654052677, 0.022796695950373834, 0.12183919547275643, 0.011808970642805706, 3.0, 0.0]", - "[65.65000000000008, 2.0595614526758883, 5.152145437626085, 0.07558147659201567, -0.02641746070753967, 0.1710533521306699, -0.08819102935719433, 3.0, 0.0]", - "[65.70000000000007, 2.059470995230002, 5.159467689643129, 0.07367205043981154, 0.022796695950373837, 0.1218391954727564, 0.011808970642805672, 3.0, 0.0]", - "[65.75000000000007, 2.0593804159954945, 5.1667900634487935, 0.07176237682096334, -0.026417460707539673, 0.1710533521306699, -0.08819102935719439, 3.0, 0.0]", - "[65.80000000000007, 2.059289955434434, 5.17411231858101, 0.0698529443389253, 0.022796695950373834, 0.12183919547275644, 0.01180897064280563, 3.0, 0.0]", - "[65.85000000000008, 2.0591993793151926, 5.181434689271407, 0.07294350869203307, -0.02641746070753967, 0.17105335213066997, 0.11180897064280565, 3.0, 0.0]", - "[65.90000000000008, 2.0591089197175894, 5.191217770315714, 0.07603383628067029, 0.02279669595037383, 0.22026750878858348, 0.01180897064280561, 3.0, 0.0]", - "[65.95000000000007, 2.0590183385566263, 5.201000729796661, 0.07412415874738869, -0.02641746070753967, 0.17105335213066997, -0.08819102935719442, 3.0, 0.0]", - "[66.00000000000009, 2.0589278799220723, 5.208322983002371, 0.0722147301798882, 0.02279669595037382, 0.12183919547275646, 0.011808970642805575, 3.0, 0.0]", - "[66.05000000000008, 2.0588373018762693, 5.215645355619331, 0.07530529844764473, -0.026417460707539676, 0.17105335213066994, 0.1118089706428056, 3.0, 0.0]", - "[66.10000000000008, 2.0587468442051455, 5.22296760786161, 0.07839562212179634, 0.022796695950373817, 0.12183919547275643, 0.011808970642805554, 3.0, 0.0]", - "[66.15000000000008, 2.0586562611177923, 5.230289985520119, 0.0764859406742153, -0.02641746070753968, 0.1710533521306699, -0.0881910293571945, 3.0, 0.0]", - "[66.20000000000007, 2.058565804409678, 5.237612236799389, 0.07457651602111588, 0.022796695950373817, 0.12183919547275641, 0.011808970642805491, 3.0, 0.0]", - "[66.25000000000009, 2.0609360539770143, 5.244934611342843, 0.07266684090312386, 0.07201085260828731, 0.1710533521306699, -0.08819102935719456, 3.0, 0.0]", - "[66.30000000000008, 2.0633061833952833, 5.25225686573723, 0.07075740992030638, 0.0227966959503738, 0.12183919547275637, 0.011808970642805457, 3.0, 0.0]", - "[66.35000000000008, 2.0632156065381757, 5.259579237165494, 0.07384797577270878, -0.0264174607075397, 0.17105335213066986, 0.11180897064280546, 3.0, 0.0]", - "[66.40000000000009, 2.0631251476784156, 5.26690149059641, 0.07693830186209538, 0.0227966959503738, 0.12183919547275633, 0.011808970642805443, 3.0, 0.0]", - "[66.45000000000009, 2.0630345657796347, 5.274223867066348, 0.07502862282961639, -0.026417460707539697, 0.17105335213066986, -0.08819102935719461, 3.0, 0.0]", - "[66.50000000000009, 2.062944107882911, 5.281546119534229, 0.07311919576133756, 0.022796695950373803, 0.12183919547275639, 0.011808970642805394, 3.0, 0.0]", - "[66.55000000000008, 2.0628535290992627, 5.288868492889033, 0.0762097655283477, -0.0264174607075397, 0.1710533521306699, 0.11180897064280537, 3.0, 0.0]", - "[66.60000000000008, 2.062763072165962, 5.296190744393489, 0.07930008770329137, 0.022796695950373806, 0.1218391954727564, 0.011808970642805332, 3.0, 0.0]", - "[66.65000000000009, 2.062672488340812, 5.303513122789795, 0.07739040475655423, -0.02641746070753969, 0.1710533521306699, -0.0881910293571947, 3.0, 0.0]", - "[66.70000000000009, 2.062582032370508, 5.310835373331253, 0.07548098160263886, 0.022796695950373813, 0.12183919547275643, 0.011808970642805325, 3.0, 0.0]", - "[66.75000000000009, 2.062491451660382, 5.318157748612537, 0.07357130498543027, -0.026417460707539683, 0.1710533521306699, -0.08819102935719472, 3.0, 0.0]", - "[66.8000000000001, 2.0624009925749696, 5.325480002269106, 0.07166187550181315, 0.02279669595037381, 0.1218391954727564, 0.011808970642805283, 3.0, 0.0]", - "[66.8500000000001, 2.0623104149800473, 5.332802374435184, 0.07475244285341102, -0.02641746070753969, 0.17105335213066988, 0.11180897064280529, 3.0, 0.0]", - "[66.90000000000009, 2.0622199568580752, 5.340124627128312, 0.07784276744365831, 0.02279669595037381, 0.12183919547275639, 0.011808970642805242, 3.0, 0.0]", - "[66.95000000000009, 2.0621293742215374, 5.347447004336008, 0.07593308691210342, -0.02641746070753969, 0.17105335213066988, -0.0881910293571948, 3.0, 0.0]", - "[67.00000000000009, 2.062038917062588, 5.354769256066114, 0.0740236613429357, 0.02279669595037381, 0.12183919547275641, 0.0118089706428052, 3.0, 0.0]", - "[67.0500000000001, 2.061948337541146, 5.362091630158714, 0.07211398714105559, -0.026417460707539694, 0.1710533521306699, -0.08819102935719483, 3.0, 0.0]", - "[67.1000000000001, 2.0618578772670166, 5.369413885004, 0.07020455524204372, 0.022796695950373813, 0.12183919547275644, 0.011808970642805158, 3.0, 0.0]", - "[67.15000000000009, 2.0617673008608444, 5.376736255981328, 0.0732951201781746, -0.026417460707539687, 0.1710533521306699, 0.11180897064280515, 3.0, 0.0]", - "[67.2000000000001, 2.0616768415501734, 5.386519337312566, 0.07638544718378289, 0.022796695950373824, 0.22026750878858342, 0.011808970642805082, 3.0, 0.0]", - "[67.2500000000001, 2.061586260102275, 5.396302296506578, 0.07447576906746735, -0.026417460707539673, 0.17105335213066994, -0.08819102935719497, 3.0, 0.0]", - "[67.3000000000001, 2.0614958017546536, 5.4036245494253565, 0.0725663410829942, 0.022796695950373837, 0.12183919547275644, 0.011808970642805061, 3.0, 0.0]", - "[67.3500000000001, 2.0614052234219202, 5.410946922329244, 0.07565690993377451, -0.02641746070753967, 0.1710533521306699, 0.11180897064280507, 3.0, 0.0]", - "[67.40000000000009, 2.061314766037731, 5.418269174284589, 0.07874723302489578, 0.022796695950373834, 0.1218391954727564, 0.01180897064280502, 3.0, 0.0]", - "[67.4500000000001, 2.0612241826634423, 5.425591552230035, 0.07683755099427839, -0.026417460707539666, 0.1710533521306699, -0.08819102935719503, 3.0, 0.0]", - "[67.5000000000001, 2.0611337262422613, 5.432913803222373, 0.07492812692420842, 0.022796695950373848, 0.12183919547275641, 0.011808970642804971, 3.0, 0.0]", - "[67.5500000000001, 2.061043145983031, 5.44023617805276, 0.0730184512231911, -0.02641746070753966, 0.17105335213066994, -0.08819102935719508, 3.0, 0.0]", - "[67.60000000000011, 2.060952686446707, 5.447558432160241, 0.07110902082335017, 0.022796695950373848, 0.12183919547275643, 0.011808970642804936, 3.0, 0.0]", - "[67.6500000000001, 2.0608621093027124, 5.454880803875392, 0.0741995872586899, -0.02641746070753966, 0.1710533521306699, 0.11180897064280496, 3.0, 0.0]", - "[67.7000000000001, 2.060771650729837, 5.4622030570194235, 0.07728991276514482, 0.02279669595037385, 0.1218391954727564, 0.011808970642804888, 3.0, 0.0]", - "[67.7500000000001, 2.060681068544176, 5.4695254337762425, 0.07538023314974142, -0.026417460707539663, 0.17105335213066988, -0.0881910293571952, 3.0, 0.0]", - "[67.8000000000001, 2.0605906109343333, 5.476847685957242, 0.07347080666438852, 0.022796695950373848, 0.12183919547275636, 0.011808970642804818, 3.0, 0.0]", - "[67.85000000000011, 2.0605000318638016, 5.484170059598931, 0.07156113337872912, -0.026417460707539656, 0.17105335213066986, -0.08819102935719522, 3.0, 0.0]", - "[67.9000000000001, 2.060409571138746, 5.491492314895141, 0.06965170056346515, 0.022796695950373848, 0.12183919547275635, 0.011808970642804797, 3.0, 0.0]", - "[67.9500000000001, 2.0603189951835166, 5.498814685421526, 0.07274226458331069, -0.026417460707539666, 0.17105335213066986, 0.11180897064280482, 3.0, 0.0]", - "[68.00000000000011, 2.0602285354219276, 5.506136939754274, 0.07583259250515549, 0.02279669595037384, 0.12183919547275632, 0.011808970642804721, 3.0, 0.0]", - "[68.05000000000011, 2.0601379544249214, 5.513459315322438, 0.07392291530502482, -0.026417460707539666, 0.17105335213066983, -0.08819102935719533, 3.0, 0.0]", - "[68.10000000000011, 2.06004749562639, 5.520781568692126, 0.07201348640433188, 0.022796695950373834, 0.12183919547275632, 0.011808970642804659, 3.0, 0.0]", - "[68.1500000000001, 2.0599569177445844, 5.528103941145089, 0.07510405433885843, -0.026417460707539673, 0.17105335213066986, 0.11180897064280465, 3.0, 0.0]", - "[68.2000000000001, 2.0598664599094927, 5.535426193551338, 0.07819437834618351, 0.022796695950373827, 0.12183919547275636, 0.01180897064280459, 3.0, 0.0]", - "[68.25000000000011, 2.059775876986078, 5.542748571045909, 0.07628469723171442, -0.02641746070753967, 0.17105335213066986, -0.08819102935719544, 3.0, 0.0]", - "[68.30000000000011, 2.0596854201140062, 5.550070822489137, 0.07437527224546288, 0.022796695950373834, 0.12183919547275633, 0.011808970642804575, 3.0, 0.0]", - "[68.35000000000011, 2.059594840305684, 5.557393196868614, 0.07246559746066215, -0.02641746070753966, 0.17105335213066983, -0.08819102935719547, 3.0, 0.0]", - "[68.40000000000012, 2.059504380318435, 5.564715451427019, 0.07055616614457359, 0.022796695950373844, 0.12183919547275635, 0.011808970642804534, 3.0, 0.0]", - "[68.45000000000012, 2.0594138036253806, 5.5720378226912315, 0.07364673166363274, -0.026417460707539652, 0.17105335213066986, 0.11180897064280454, 3.0, 0.0]", - "[68.50000000000011, 2.059323344601589, 5.57936007628618, 0.07673705808631986, 0.02279669595037385, 0.12183919547275639, 0.011808970642804485, 3.0, 0.0]", - "[68.55000000000011, 2.0592327628668157, 5.586682452592108, 0.07482737938709479, -0.026417460707539652, 0.17105335213066986, -0.08819102935719558, 3.0, 0.0]", - "[68.60000000000011, 2.059142304806068, 5.594004705224012, 0.0729179519855314, 0.02279669595037385, 0.1218391954727564, 0.011808970642804437, 3.0, 0.0]", - "[68.65000000000012, 2.0590517261864587, 5.601327078414778, 0.07600852141922679, -0.026417460707539638, 0.1710533521306699, 0.11180897064280446, 3.0, 0.0]", - "[68.70000000000012, 2.0589612690891417, 5.611110161959373, 0.07909884392744078, 0.022796695950373858, 0.22026750878858342, 0.011808970642804444, 3.0, 0.0]", - "[68.75000000000011, 2.0588706854279826, 5.620893118940126, 0.07718916131392287, -0.026417460707539628, 0.1710533521306699, -0.08819102935719558, 3.0, 0.0]", - "[68.80000000000013, 2.058780229293674, 5.628215369645593, 0.0752797378267588, 0.022796695950373886, 0.1218391954727564, 0.01180897064280445, 3.0, 0.0]", - "[68.85000000000012, 2.0586896487475697, 5.6355377447628525, 0.07337006154283056, -0.02641746070753961, 0.17105335213066988, -0.08819102935719558, 3.0, 0.0]", - "[68.90000000000012, 2.058599189498122, 5.642859998583456, 0.07146063172590372, 0.022796695950373893, 0.1218391954727564, 0.011808970642804416, 3.0, 0.0]", - "[68.95000000000012, 2.0585086120672496, 5.650182370585488, 0.07455119874416302, -0.0264174607075396, 0.1710533521306699, 0.11180897064280443, 3.0, 0.0]", - "[69.00000000000011, 2.058418153781249, 5.657504623442644, 0.07764152366770632, 0.022796695950373903, 0.12183919547275637, 0.011808970642804374, 3.0, 0.0]", - "[69.05000000000013, 2.060788405848819, 5.664827000486332, 0.07573184346940096, 0.0720108526082874, 0.17105335213066986, -0.08819102935719567, 3.0, 0.0]", - "[69.10000000000012, 2.063158532766803, 5.672149252380436, 0.07382241756700232, 0.0227966959503739, 0.12183919547275635, 0.01180897064280434, 3.0, 0.0]", - "[69.15000000000012, 2.0630679534093517, 5.679471626309043, 0.07191274369834143, -0.026417460707539597, 0.17105335213066983, -0.0881910293571957, 3.0, 0.0]", - "[69.20000000000013, 2.062977492971215, 5.686793881318338, 0.07000331146607586, 0.022796695950373903, 0.12183919547275632, 0.011808970642804305, 3.0, 0.0]", - "[69.25000000000013, 2.062886916729068, 5.694116252131641, 0.07309387606891916, -0.02641746070753959, 0.1710533521306698, 0.11180897064280429, 3.0, 0.0]", - "[69.30000000000013, 2.062796457254397, 5.701438506177469, 0.07618420340776394, 0.022796695950373907, 0.12183919547275628, 0.011808970642804235, 3.0, 0.0]", - "[69.35000000000012, 2.0627058759704724, 5.708760882032551, 0.07427452562463191, -0.0264174607075396, 0.17105335213066983, -0.0881910293571958, 3.0, 0.0]", - "[69.40000000000012, 2.0626154174588573, 5.716083135115321, 0.07236509730693673, 0.022796695950373893, 0.12183919547275633, 0.0118089706428042, 3.0, 0.0]", - "[69.45000000000013, 2.062524839290134, 5.723405507855202, 0.07545566582445996, -0.02641746070753961, 0.17105335213066986, 0.1118089706428042, 3.0, 0.0]", - "[69.50000000000013, 2.0624343817419613, 5.730727759974533, 0.07854598924878554, 0.02279669595037389, 0.12183919547275632, 0.011808970642804173, 3.0, 0.0]", - "[69.55000000000013, 2.0623437985316273, 5.738050137756024, 0.07663630755131497, -0.02641746070753961, 0.1710533521306698, -0.08819102935719586, 3.0, 0.0]", - "[69.60000000000014, 2.0622533419464726, 5.745372388912337, 0.07472688314806085, 0.022796695950373883, 0.12183919547275632, 0.011808970642804145, 3.0, 0.0]", - "[69.65000000000013, 2.062162761851235, 5.752694763578733, 0.07281720778026413, -0.026417460707539624, 0.1710533521306698, -0.08819102935719592, 3.0, 0.0]", - "[69.70000000000013, 2.062072302150902, 5.760017017850223, 0.07090777704716868, 0.022796695950373883, 0.12183919547275629, 0.011808970642804062, 3.0, 0.0]", - "[69.75000000000013, 2.061981725170933, 5.767339389401348, 0.07399834314922063, -0.026417460707539628, 0.17105335213066977, 0.11180897064280407, 3.0, 0.0]", - "[69.80000000000013, 2.061891266434058, 5.774661642709381, 0.07708866898891317, 0.022796695950373883, 0.12183919547275625, 0.011808970642804, 3.0, 0.0]", - "[69.85000000000014, 2.0618006844123684, 5.781984019302225, 0.07517898970669257, -0.026417460707539617, 0.17105335213066977, -0.08819102935719605, 3.0, 0.0]", - "[69.90000000000013, 2.0617102266385348, 5.789306271647215, 0.07326956288812142, 0.022796695950373886, 0.12183919547275626, 0.011808970642803951, 3.0, 0.0]", - "[69.95000000000013, 2.06161964773201, 5.796628645124896, 0.07636013290480828, -0.026417460707539617, 0.17105335213066977, 0.11180897064280396, 3.0, 0.0]", - "[70.00000000000014, 2.0615291909216094, 5.806411728956406, 0.07945045483002841, 0.022796695950373886, 0.22026750878858328, 0.011808970642803895, 3.0, 0.0]", - "[70.05000000000014, 2.0614386069735344, 5.816194685650243, 0.07754077163351528, -0.026417460707539607, 0.1710533521306698, -0.08819102935719614, 3.0, 0.0]", - "[70.10000000000014, 2.06134815112614, 5.823516936068794, 0.07563134872934237, 0.02279669595037389, 0.12183919547275632, 0.01180897064280384, 3.0, 0.0]", - "[70.15000000000013, 2.0612575702931215, 5.8308393114729675, 0.0737216718624241, -0.026417460707539614, 0.1710533521306698, -0.0881910293571962, 3.0, 0.0]", - "[70.20000000000013, 2.061167111330586, 5.8381615650066605, 0.07181224262848473, 0.0227966959503739, 0.12183919547275629, 0.011808970642803826, 3.0, 0.0]", - "[70.25000000000014, 2.0610765336128005, 5.845483937295603, 0.07490281022973141, -0.026417460707539604, 0.1710533521306698, 0.11180897064280382, 3.0, 0.0]", - "[70.30000000000014, 2.060986075613713, 5.852806189865846, 0.07799313457028592, 0.022796695950373896, 0.12183919547275632, 0.011808970642803777, 3.0, 0.0]", - "[70.35000000000014, 2.060895492854267, 5.8601285671964485, 0.07608345378899126, -0.026417460707539604, 0.17105335213066986, -0.08819102935719625, 3.0, 0.0]", - "[70.40000000000015, 2.060805035818209, 5.867450818803663, 0.07417402846952975, 0.022796695950373893, 0.12183919547275632, 0.011808970642803784, 3.0, 0.0]", - "[70.45000000000014, 2.0607144561738915, 5.874773193019137, 0.07226435401797385, -0.0264174607075396, 0.1710533521306698, -0.08819102935719625, 3.0, 0.0]", - "[70.50000000000014, 2.0606239960226236, 5.882095447741563, 0.07035492236860819, 0.0227966959503739, 0.12183919547275626, 0.011808970642803729, 3.0, 0.0]", - "[70.55000000000014, 2.060533419493604, 5.889417818841739, 0.07344548755435848, -0.026417460707539597, 0.17105335213066972, 0.11180897064280373, 3.0, 0.0]", - "[70.60000000000014, 2.0604429603058003, 5.896740072600699, 0.07653581431030651, 0.02279669595037391, 0.12183919547275618, 0.011808970642803666, 3.0, 0.0]", - "[70.65000000000015, 2.060352378735013, 5.904062448742643, 0.0746261359442899, -0.026417460707539586, 0.1710533521306697, -0.08819102935719636, 3.0, 0.0]", - "[70.70000000000014, 2.060261920510263, 5.911384701538549, 0.07271670820948431, 0.022796695950373903, 0.12183919547275618, 0.011808970642803632, 3.0, 0.0]", - "[70.75000000000014, 2.060171342054671, 5.918707074565295, 0.07580727730990423, -0.026417460707539597, 0.1710533521306697, 0.11180897064280362, 3.0, 0.0]", - "[70.80000000000015, 2.06008088479336, 5.926029326397762, 0.07889760015134352, 0.022796695950373907, 0.12183919547275623, 0.011808970642803597, 3.0, 0.0]", - "[70.85000000000015, 2.0599903012961693, 5.933351704466109, 0.07698791787099901, -0.026417460707539593, 0.17105335213066974, -0.08819102935719647, 3.0, 0.0]", - "[70.90000000000015, 2.059899844997873, 5.94067395533556, 0.07507849405062388, 0.022796695950373907, 0.12183919547275625, 0.011808970642803528, 3.0, 0.0]", - "[70.95000000000014, 2.0598092646157724, 5.947996330288817, 0.07316881809994101, -0.026417460707539597, 0.17105335213066974, -0.08819102935719653, 3.0, 0.0]", - "[71.00000000000014, 2.059718805202304, 5.95531858427344, 0.07125938794973707, 0.022796695950373896, 0.12183919547275623, 0.011808970642803479, 3.0, 0.0]", - "[71.05000000000015, 2.059628227935465, 5.962640956111435, 0.07434995463468798, -0.026417460707539614, 0.17105335213066974, 0.11180897064280348, 3.0, 0.0]", - "[71.10000000000015, 2.059537769485453, 5.969963209132604, 0.07744027989149235, 0.022796695950373886, 0.12183919547275626, 0.011808970642803444, 3.0, 0.0]" + "[51.05, 2.380605081484922, 2.97421189691834, 0.0628496044347728, -0.10988993572875327, 0.043093570806498165, -0.06187878390878797, 3.0, 0.0]", + "[51.099999999999994, 2.3738801794952233, 2.9775969806619265, 0.06225576945083867, -0.15910409238666678, 0.09230772746441167, 0.03812121609121205, 3.0, 0.0]", + "[51.15, 2.364694570157091, 2.983442771753946, 0.06666193348250975, -0.2083182490445803, 0.14152188412232514, 0.13812121609121206, 3.0, 0.0]", + "[51.199999999999996, 2.3530482493916867, 2.9917492742732366, 0.0710678837564208, -0.2575324057024938, 0.19073604078023865, 0.038121216091211975, 3.0, 0.0]", + "[51.25, 2.3389412171994284, 3.0000556644051146, 0.07047382672763822, -0.30674656236040737, 0.1415218841223252, -0.06187878390878807, 3.0, 0.0]", + "[51.3, 2.3223734776588953, 3.0083621700337435, 0.06988000438082355, -0.35596071901832094, 0.19073604078023865, 0.03812121609121194, 3.0, 0.0]", + "[51.349999999999994, 2.303345030769912, 3.016668561134688, 0.06928594932112207, -0.4051748756762344, 0.14152188412232514, -0.06187878390878813, 3.0, 0.0]", + "[51.4, 2.2818558765326853, 3.02497506579422, 0.06869212500516364, -0.4543890323341479, 0.19073604078023862, 0.038121216091211885, 3.0, 0.0]", + "[51.449999999999996, 2.257906014947041, 3.0332814578642955, 0.06809807191467449, -0.5036031889920615, 0.1415218841223251, -0.06187878390878818, 3.0, 0.0]", + "[51.5, 2.2314954460131844, 3.0415879615546655, 0.0675042456294418, -0.552817345649975, 0.1907360407802386, 0.038121216091211815, 3.0, 0.0]", + "[51.55, 2.205084987730426, 3.0498943545939374, 0.06691019450829581, -0.5036031889920617, 0.14152188412232503, -0.06187878390878824, 3.0, 0.0]", + "[51.599999999999994, 2.181135236795863, 3.0582008573150947, 0.06631636625368419, -0.45438903233414807, 0.19073604078023848, 0.038121216091211774, 3.0, 0.0]", + "[51.65, 2.1596461932096895, 3.066507251323573, 0.06572231710190449, -0.4051748756762345, 0.14152188412232491, -0.06187878390878828, 3.0, 0.0]", + "[51.699999999999996, 2.1406178569717356, 3.0748137530755466, 0.06512848687797423, -0.35596071901832105, 0.19073604078023845, 0.03812121609121172, 3.0, 0.0]", + "[51.75, 2.12405022808219, 3.083120148053188, 0.0645344396954712, -0.30674656236040754, 0.14152188412232497, -0.06187878390878833, 3.0, 0.0]", + "[51.8, 2.109943306540887, 3.091426648836022, 0.06394060750231315, -0.2575324057024941, 0.19073604078023843, 0.03812121609121166, 3.0, 0.0]", + "[51.849999999999994, 2.0982970923480138, 3.0997330447827816, 0.06834677432475171, -0.2083182490445806, 0.14152188412232494, 0.13812121609121167, 3.0, 0.0]", + "[51.9, 2.089111589582075, 3.108039548675188, 0.07275272180858139, -0.15910409238666715, 0.1907360407802384, 0.03812121609121163, 3.0, 0.0]", + "[51.949999999999996, 2.082386798242625, 3.1163459374343163, 0.07215866199046074, -0.10988993572875361, 0.14152188412232486, -0.06187878390878843, 3.0, 0.0]", + "[52.0, 2.078122714251517, 3.122191618845103, 0.07156484243312032, -0.06067577907084009, 0.09230772746441139, 0.03812121609121158, 3.0, 0.0]", + "[52.05, 2.0763193376089566, 3.1280374175293044, 0.07097078458374562, -0.011461622412926586, 0.14152188412232486, -0.061878783908788475, 3.0, 0.0]", + "[52.099999999999994, 2.074515844661856, 3.133883099908966, 0.07037696305771372, -0.06067577907084008, 0.09230772746441136, 0.03812121609121151, 3.0, 0.0]", + "[52.15, 2.0727124670504287, 3.1397288976243014, 0.06978290717701312, -0.01146162241292658, 0.1415218841223249, -0.061878783908788544, 3.0, 0.0]", + "[52.199999999999996, 2.0709089750722027, 3.1480354026879973, 0.06918908368229004, -0.06067577907084007, 0.19073604078023837, 0.038121216091211454, 3.0, 0.0]", + "[52.25, 2.0691055964918945, 3.1563417943537755, 0.06859502977029348, -0.011461622412926566, 0.1415218841223249, -0.0618787839087886, 3.0, 0.0]", + "[52.3, 2.0673021054825536, 3.1646482984485873, 0.06800120430685945, -0.06067577907084006, 0.19073604078023845, 0.03812121609121141, 3.0, 0.0]", + "[52.349999999999994, 2.0654987259333493, 3.172954691083261, 0.06740715236359819, -0.011461622412926559, 0.14152188412232497, -0.061878783908788634, 3.0, 0.0]", + "[52.4, 2.066156053732493, 3.178800376369588, 0.06681332493141129, 0.03775253424498693, 0.09230772746441152, 0.03812121609121136, 3.0, 0.0]", + "[52.449999999999996, 2.06681327200931, 3.1846461711782412, 0.06621927495690244, -0.011461622412926576, 0.14152188412232505, -0.06187878390878868, 3.0, 0.0]", + "[52.5, 2.0650097829377754, 3.1929526733352462, 0.06562544555596926, -0.060675779070840076, 0.19073604078023854, 0.03812121609121133, 3.0, 0.0]", + "[52.55, 2.0632064014507407, 3.201259067907751, 0.06503139755025532, -0.011461622412926569, 0.14152188412232505, -0.061878783908788725, 3.0, 0.0]", + "[52.599999999999994, 2.0638637273120364, 3.2071047551319256, 0.06443756618048646, 0.037752534244986924, 0.09230772746441152, 0.038121216091211274, 3.0, 0.0]", + "[52.65, 2.064520947526725, 3.212950548002707, 0.06884373382648509, -0.011461622412926576, 0.14152188412232503, 0.13812121609121128, 3.0, 0.0]", + "[52.699999999999996, 2.0651782764977105, 3.221257052300455, 0.07324968048668586, 0.037752534244986924, 0.19073604078023848, 0.03812121609121124, 3.0, 0.0]", + "[52.75, 2.0658354895246873, 3.229563440654194, 0.07265561984484037, -0.01146162241292658, 0.14152188412232497, -0.06187878390878882, 3.0, 0.0]", + "[52.8, 2.06649282160482, 3.23786994806109, 0.07206180111134831, 0.03775253424498691, 0.19073604078023845, 0.038121216091211156, 3.0, 0.0]", + "[52.85, 2.067150035600592, 3.2461763373836243, 0.07146774243803214, -0.011461622412926583, 0.14152188412232494, -0.06187878390878888, 3.0, 0.0]", + "[52.9, 2.067807366711918, 3.2520220193577676, 0.07087392173598836, 0.037752534244986924, 0.09230772746441143, 0.038121216091211135, 3.0, 0.0]", + "[52.949999999999996, 2.0684645816765146, 3.257867817478641, 0.07027986503126273, -0.011461622412926569, 0.14152188412232491, -0.06187878390878892, 3.0, 0.0]", + "[53.0, 2.0666610892927353, 3.2661743229478892, 0.06968604236059706, -0.06067577907084007, 0.1907360407802384, 0.038121216091211094, 3.0, 0.0]", + "[53.05, 2.064857711117978, 3.2744807142081163, 0.06909198762454816, -0.011461622412926576, 0.1415218841223249, -0.06187878390878893, 3.0, 0.0]", + "[53.099999999999994, 2.0655150402915736, 3.2827872187084743, 0.06849816298515894, 0.03775253424498692, 0.19073604078023834, 0.03812121609121105, 3.0, 0.0]", + "[53.15, 2.066172257193923, 3.2910936109375863, 0.06790411021782118, -0.011461622412926583, 0.14152188412232483, -0.06187878390878899, 3.0, 0.0]", + "[53.199999999999996, 2.0668295853986423, 3.2969392958183366, 0.06731028360973819, 0.03775253424498691, 0.09230772746441132, 0.03812121609121101, 3.0, 0.0]", + "[53.25, 2.0674868032698845, 3.302785091032563, 0.06671623281112936, -0.011461622412926586, 0.14152188412232483, -0.06187878390878904, 3.0, 0.0]", + "[53.3, 2.065683313792779, 3.311091593595138, 0.06612240423428967, -0.06067577907084007, 0.19073604078023831, 0.038121216091210955, 3.0, 0.0]", + "[53.349999999999994, 2.0638799327113118, 3.319397987762075, 0.06552835540448709, -0.011461622412926569, 0.1415218841223248, -0.0618787839087891, 3.0, 0.0]", + "[53.4, 2.0645372589781728, 3.3277044893556984, 0.06493452485879951, 0.03775253424498694, 0.19073604078023831, 0.03812121609121093, 3.0, 0.0]", + "[53.449999999999996, 2.065194478787295, 3.336010884491584, 0.06434047799783632, -0.01146162241292658, 0.14152188412232486, -0.061878783908789134, 3.0, 0.0]", + "[53.5, 2.065851804085215, 3.341856572279134, 0.06374664548332301, 0.03775253424498692, 0.09230772746441138, 0.03812121609121086, 3.0, 0.0]", + "[53.55, 2.0665090248632936, 3.3477023645865254, 0.0681528119845497, -0.01146162241292658, 0.14152188412232486, 0.13812121609121086, 3.0, 0.0]", + "[53.599999999999994, 2.0671663532709723, 3.3560088683209663, 0.07255875978935333, 0.037752534244986924, 0.19073604078023834, 0.03812121609121081, 3.0, 0.0]", + "[53.65, 2.0678235668611626, 3.36431525723792, 0.07196470029192256, -0.011461622412926573, 0.14152188412232486, -0.06187878390878924, 3.0, 0.0]", + "[53.699999999999996, 2.0660200731029663, 3.3726217640815856, 0.07137088041398508, -0.06067577907084007, 0.19073604078023843, 0.03812121609121075, 3.0, 0.0]", + "[53.74999999999999, 2.0642166963026356, 3.3809281539673868, 0.07077682288518877, -0.011461622412926562, 0.14152188412232497, -0.06187878390878931, 3.0, 0.0]", + "[53.8, 2.064874026850663, 3.386773836504829, 0.070183001038557, 0.037752534244986945, 0.09230772746441146, 0.0381212160912107, 3.0, 0.0]", + "[53.849999999999994, 2.065531242378574, 3.3926196340623878, 0.0695889454784484, -0.011461622412926559, 0.14152188412232491, -0.061878783908789314, 3.0, 0.0]", + "[53.89999999999999, 2.0661885719577344, 3.4009261389683108, 0.06899512166314091, 0.03775253424498695, 0.19073604078023837, 0.03812121609121069, 3.0, 0.0]", + "[53.949999999999996, 2.0668457884545215, 3.4092325307918605, 0.06840106807172547, -0.011461622412926559, 0.14152188412232486, -0.06187878390878935, 3.0, 0.0]", + "[53.99999999999999, 2.06504229760295, 3.417539034728902, 0.06780724228771359, -0.06067577907084007, 0.19073604078023837, 0.03812121609121068, 3.0, 0.0]", + "[54.05, 2.06323891789596, 3.425845427521362, 0.06721319066506366, -0.011461622412926552, 0.1415218841223249, -0.06187878390878938, 3.0, 0.0]", + "[54.099999999999994, 2.063896245537302, 3.43169111296549, 0.0666193629122337, 0.037752534244986945, 0.09230772746441143, 0.038121216091210636, 3.0, 0.0]", + "[54.14999999999999, 2.0645534639719356, 3.4375369076163262, 0.06602531325839792, -0.011461622412926562, 0.14152188412232494, -0.06187878390878943, 3.0, 0.0]", + "[54.199999999999996, 2.065210790644347, 3.4458434096155006, 0.06543148353676323, 0.037752534244986924, 0.1907360407802384, 0.038121216091210566, 3.0, 0.0]", + "[54.24999999999999, 2.0658680100479194, 3.4541498043458363, 0.0648374358517496, -0.01146162241292658, 0.1415218841223249, -0.06187878390878948, 3.0, 0.0]", + "[54.3, 2.0665253357513858, 3.462456305376065, 0.06424360416128164, 0.037752534244986924, 0.1907360407802384, 0.03812121609121051, 3.0, 0.0]", + "[54.349999999999994, 2.0671825561239148, 3.470762701075357, 0.06364955844512589, -0.011461622412926573, 0.14152188412232491, -0.06187878390878954, 3.0, 0.0]", + "[54.39999999999999, 2.065379069148121, 3.4790692011366207, 0.06305572478578227, -0.06067577907084007, 0.19073604078023837, 0.038121216091210455, 3.0, 0.0]", + "[54.449999999999996, 2.0635756855653082, 3.4873755978049035, 0.06746189014213137, -0.011461622412926566, 0.1415218841223249, 0.13812121609121045, 3.0, 0.0]", + "[54.49999999999999, 2.064233013409605, 3.495682100975964, 0.07186783909168996, 0.03775253424498694, 0.1907360407802384, 0.03812121609121045, 3.0, 0.0]", + "[54.54999999999999, 2.0648902275630987, 3.503988490456219, 0.07127378073885267, -0.011461622412926552, 0.1415218841223249, -0.061878783908789606, 3.0, 0.0]", + "[54.599999999999994, 2.0655475585166876, 3.5098341725881, 0.0706799597162957, 0.03775253424498695, 0.09230772746441139, 0.0381212160912104, 3.0, 0.0]", + "[54.64999999999999, 2.066204773639039, 3.515679970551219, 0.07008590333211544, -0.011461622412926552, 0.1415218841223249, -0.061878783908789654, 3.0, 0.0]", + "[54.69999999999999, 2.0668621036237558, 3.5215256536519717, 0.06949208034087383, 0.03775253424498696, 0.09230772746441138, 0.03812121609121036, 3.0, 0.0]", + "[54.74999999999999, 2.067519319714991, 3.5273714506462066, 0.06889802592540348, -0.011461622412926548, 0.1415218841223249, -0.06187878390878971, 3.0, 0.0]", + "[54.79999999999999, 2.0657158284578747, 3.535677954988793, 0.06830420096543342, -0.060675779070840055, 0.1907360407802384, 0.0381212160912103, 3.0, 0.0]", + "[54.849999999999994, 2.063912449156428, 3.54398434737571, 0.06771014851874481, -0.011461622412926541, 0.14152188412232494, -0.06187878390878975, 3.0, 0.0]", + "[54.89999999999999, 2.064569777203311, 3.552290850749356, 0.06711632158994785, 0.037752534244986966, 0.19073604078023843, 0.03812121609121025, 3.0, 0.0]", + "[54.94999999999999, 2.065226995232402, 3.560597244105209, 0.06652227111207384, -0.011461622412926527, 0.14152188412232497, -0.06187878390878979, 3.0, 0.0]", + "[54.99999999999999, 2.065884322310357, 3.5664429301127227, 0.06592844221447959, 0.03775253424498697, 0.09230772746441149, 0.03812121609121022, 3.0, 0.0]", + "[55.04999999999999, 2.0665415413083896, 3.5722887242001606, 0.06533439370543377, -0.011461622412926531, 0.141521884122325, -0.061878783908789835, 3.0, 0.0]", + "[55.099999999999994, 2.064738052958095, 3.580595225635925, 0.06474056283898758, -0.060675779070840034, 0.19073604078023848, 0.03812121609121017, 3.0, 0.0]", + "[55.14999999999999, 2.062934670749793, 3.5889016209296964, 0.06914673098825458, -0.01146162241292652, 0.14152188412232494, 0.13812121609121017, 3.0, 0.0]", + "[55.19999999999999, 2.0635919999685357, 3.5972081254752024, 0.07355267714502699, 0.03775253424498698, 0.19073604078023845, 0.0381212160912101, 3.0, 0.0]", + "[55.24999999999999, 2.064249212747654, 3.605514513581083, 0.07295861599954764, -0.011461622412926514, 0.141521884122325, -0.06187878390878995, 3.0, 0.0]", + "[55.29999999999999, 2.064906545075626, 3.611360194338581, 0.0723647977696476, 0.03775253424498698, 0.09230772746441152, 0.03812121609121005, 3.0, 0.0]", + "[55.34999999999999, 2.0655637588235827, 3.617205993676095, 0.0717707385927862, -0.011461622412926534, 0.14152188412232503, -0.06187878390879003, 3.0, 0.0]", + "[55.39999999999999, 2.0662210901827023, 3.6255125003619764, 0.0711769183942406, 0.037752534244986966, 0.19073604078023854, 0.03812121609121, 3.0, 0.0]", + "[55.44999999999999, 2.0668783048995203, 3.6338188904055566, 0.07058286118604268, -0.011461622412926538, 0.14152188412232503, -0.06187878390879004, 3.0, 0.0]", + "[55.499999999999986, 2.065074812267975, 3.642125396122572, 0.06998903901882188, -0.060675779070840055, 0.19073604078023856, 0.03812121609120998, 3.0, 0.0]", + "[55.54999999999999, 2.0632714343409657, 3.650431787135051, 0.06939498377936339, -0.011461622412926566, 0.14152188412232508, -0.06187878390879006, 3.0, 0.0]", + "[55.59999999999999, 2.0639287637622927, 3.656277470799194, 0.06880115964334765, 0.037752534244986924, 0.0923077274644116, 0.03812121609120993, 3.0, 0.0]", + "[55.64999999999999, 2.064585980416931, 3.6621232672300263, 0.06820710637267564, -0.011461622412926573, 0.14152188412232508, -0.0618787839087901, 3.0, 0.0]", + "[55.69999999999999, 2.0652433088693423, 3.670429771009201, 0.06761328026788714, 0.037752534244986924, 0.1907360407802386, 0.038121216091209914, 3.0, 0.0]", + "[55.749999999999986, 2.0659005264929036, 3.6787361639595244, 0.06701922896600572, -0.01146162241292658, 0.14152188412232508, -0.06187878390879014, 3.0, 0.0]", + "[55.79999999999999, 2.066557853976385, 3.6870426667697687, 0.06642540089241517, 0.037752534244986924, 0.1907360407802386, 0.03812121609120986, 3.0, 0.0]", + "[55.84999999999999, 2.0672150725688874, 3.695349060689034, 0.06583135155936014, -0.01146162241292658, 0.14152188412232508, -0.06187878390879018, 3.0, 0.0]", + "[55.89999999999999, 2.0654115838130624, 3.703655562530329, 0.06523752151692563, -0.06067577907084009, 0.19073604078023854, 0.03812121609120983, 3.0, 0.0]", + "[55.94999999999999, 2.0636082020102897, 3.7119619574185707, 0.06464347415276944, -0.011461622412926583, 0.14152188412232503, -0.06187878390879021, 3.0, 0.0]", + "[55.999999999999986, 2.064265527555822, 3.7178076449585085, 0.06404964214138965, 0.037752534244986924, 0.09230772746441152, 0.03812121609120979, 3.0, 0.0]", + "[56.04999999999999, 2.0649227480862997, 3.7236534375135006, 0.06845580914572598, -0.01146162241292658, 0.14152188412232503, 0.1381212160912098, 3.0, 0.0]", + "[56.09999999999999, 2.0655800767416572, 3.7319599414956204, 0.07286175644726249, 0.03775253424498691, 0.19073604078023856, 0.03812121609120977, 3.0, 0.0]", + "[56.149999999999984, 2.066237290084083, 3.740266330164809, 0.07226769644638896, -0.0114616224129266, 0.14152188412232508, -0.06187878390879029, 3.0, 0.0]", + "[56.19999999999999, 2.066894621848734, 3.7461120114856272, 0.07167387707185856, 0.03775253424498691, 0.09230772746441153, 0.03812121609120972, 3.0, 0.0]", + "[56.249999999999986, 2.0675518361600242, 3.751957810259807, 0.07107981903965421, -0.01146162241292658, 0.14152188412232503, -0.06187878390879032, 3.0, 0.0]", + "[56.29999999999998, 2.0657483431229577, 3.7602643163823437, 0.07048599769642895, -0.06067577907084007, 0.1907360407802386, 0.03812121609120968, 3.0, 0.0]", + "[56.34999999999999, 2.0639449656014706, 3.7685707069893004, 0.06989194163297673, -0.011461622412926555, 0.14152188412232508, -0.06187878390879039, 3.0, 0.0]", + "[56.399999999999984, 2.064602295428316, 3.776877212142908, 0.06929811832095029, 0.03775253424498695, 0.19073604078023862, 0.03812121609120961, 3.0, 0.0]", + "[56.44999999999999, 2.0652595116774313, 3.785183603718786, 0.068704064226283, -0.011461622412926562, 0.1415218841223251, -0.061878783908790445, 3.0, 0.0]", + "[56.499999999999986, 2.0659168405353667, 3.79102928794632, 0.06811023894549269, 0.03775253424498693, 0.0923077274644116, 0.03812121609120955, 3.0, 0.0]", + "[56.54999999999998, 2.0665740577534075, 3.7968750838137493, 0.06751618681961949, -0.01146162241292658, 0.14152188412232514, -0.061878783908790515, 3.0, 0.0]", + "[56.59999999999999, 2.0647705676231163, 3.80518158702951, 0.06692235957001198, -0.06067577907084008, 0.1907360407802386, 0.0381212160912095, 3.0, 0.0]", + "[56.649999999999984, 2.06296718719482, 3.8134879805432753, 0.06632830941300748, -0.011461622412926593, 0.14152188412232508, -0.06187878390879054, 3.0, 0.0]", + "[56.69999999999999, 2.063624514114835, 3.821794482790052, 0.06573448019448795, 0.037752534244986924, 0.19073604078023856, 0.03812121609120947, 3.0, 0.0]", + "[56.749999999999986, 2.0642817332708154, 3.830100877272795, 0.06514043200638359, -0.011461622412926573, 0.14152188412232503, -0.0618787839087906, 3.0, 0.0]", + "[56.79999999999998, 2.0649390592218615, 3.8359465644072195, 0.06454660081898084, 0.03775253424498693, 0.09230772746441153, 0.038121216091209414, 3.0, 0.0]", + "[56.84999999999999, 2.0655962793468254, 3.8417923573677255, 0.06895276864729513, -0.011461622412926573, 0.14152188412232505, 0.1381212160912094, 3.0, 0.0]", + "[56.899999999999984, 2.066253608407697, 3.8500988617553595, 0.07335871512485324, 0.03775253424498694, 0.19073604078023856, 0.038121216091209366, 3.0, 0.0]", + "[56.94999999999998, 2.066910821344609, 3.858405250019033, 0.07276465430000086, -0.011461622412926569, 0.14152188412232505, -0.061878783908790695, 3.0, 0.0]", + "[56.999999999999986, 2.065107326933152, 3.8667117575159597, 0.07217083574944579, -0.060675779070840055, 0.19073604078023854, 0.0381212160912093, 3.0, 0.0]", + "[57.04999999999998, 2.0633039507860644, 3.8750181467485176, 0.07157677689330182, -0.011461622412926555, 0.14152188412232505, -0.06187878390879074, 3.0, 0.0]", + "[57.09999999999998, 2.0639612819873165, 3.883324653276532, 0.0709829563739794, 0.037752534244986945, 0.1907360407802386, 0.038121216091209276, 3.0, 0.0]", + "[57.149999999999984, 2.0646184968620145, 3.8916310434779926, 0.0703888994865837, -0.011461622412926552, 0.1415218841223251, -0.06187878390879076, 3.0, 0.0]", + "[57.19999999999998, 2.065275827094375, 3.8974767263311016, 0.06979507699853683, 0.03775253424498695, 0.09230772746441161, 0.03812121609120925, 3.0, 0.0]", + "[57.249999999999986, 2.0659330429379787, 3.9033225235729674, 0.06920102207989595, -0.011461622412926548, 0.14152188412232508, -0.06187878390879079, 3.0, 0.0]", + "[57.29999999999998, 2.066590372201422, 3.911629028163173, 0.06860719762307102, 0.03775253424498695, 0.19073604078023854, 0.03812121609120922, 3.0, 0.0]", + "[57.34999999999998, 2.0672475890139514, 3.9199354203024654, 0.06801314467322636, -0.011461622412926555, 0.14152188412232505, -0.061878783908790834, 3.0, 0.0]", + "[57.399999999999984, 2.065444098478148, 3.9282419239237383, 0.06741931824759344, -0.06067577907084007, 0.19073604078023856, 0.03812121609120919, 3.0, 0.0]", + "[57.44999999999998, 2.0636407184553645, 3.9365483170319924, 0.06682526726661477, -0.011461622412926559, 0.14152188412232508, -0.06187878390879088, 3.0, 0.0]", + "[57.499999999999986, 2.064298045780891, 3.9423940027919366, 0.06623143887206635, 0.03775253424498694, 0.0923077274644116, 0.03812121609120914, 3.0, 0.0]", + "[57.54999999999998, 2.064955264531364, 3.948239797126934, 0.06563738985999494, -0.011461622412926555, 0.1415218841223251, -0.0618787839087909, 3.0, 0.0]", + "[57.59999999999998, 2.065612590887915, 3.9565462988102476, 0.06504355949655274, 0.03775253424498696, 0.19073604078023862, 0.03812121609120911, 3.0, 0.0]", + "[57.649999999999984, 2.0662698106073707, 3.9648526938564657, 0.06444951245339295, -0.011461622412926541, 0.1415218841223251, -0.061878783908790945, 3.0, 0.0]", + "[57.69999999999998, 2.066927135994933, 3.9731591945707905, 0.06385568012102778, 0.037752534244986966, 0.1907360407802386, 0.038121216091209054, 3.0, 0.0]", + "[57.74999999999998, 2.0675843566833887, 3.981465590586009, 0.0632616350468133, -0.011461622412926548, 0.14152188412232505, -0.061878783908791, 3.0, 0.0]", + "[57.79999999999998, 2.0682416811019433, 3.987311279252924, 0.06266780074548724, 0.037752534244986966, 0.0923077274644116, 0.03812121609120901, 3.0, 0.0]", + "[57.84999999999998, 2.0688989027594182, 3.993157070680918, 0.06707396545983603, -0.011461622412926538, 0.14152188412232508, 0.13812121609120903, 3.0, 0.0]", + "[57.89999999999998, 2.0695562302879034, 4.001463573536166, 0.07147991505110475, 0.037752534244986966, 0.19073604078023856, 0.03812121609120896, 3.0, 0.0]", + "[57.94999999999998, 2.070213444757061, 4.0097699633320865, 0.0708858573396777, -0.01146162241292652, 0.14152188412232505, -0.06187878390879108, 3.0, 0.0]", + "[57.99999999999998, 2.06840995187787, 4.018076469296748, 0.07029203567565788, -0.06067577907084003, 0.19073604078023856, 0.03812121609120893, 3.0, 0.0]", + "[58.04999999999998, 2.0666065741984943, 4.0263828600615925, 0.06969797993302425, -0.011461622412926534, 0.1415218841223251, -0.06187878390879111, 3.0, 0.0]", + "[58.09999999999998, 2.0672639038674414, 4.032228543478115, 0.06910415630015658, 0.037752534244986966, 0.09230772746441165, 0.03812121609120889, 3.0, 0.0]", + "[58.14999999999998, 2.06792112027447, 4.038074340156556, 0.06851010252635893, -0.011461622412926524, 0.14152188412232514, -0.06187878390879115, 3.0, 0.0]", + "[58.19999999999998, 2.066117629333169, 4.046380844183327, 0.06791627692467234, -0.060675779070840034, 0.19073604078023865, 0.03812121609120886, 3.0, 0.0]", + "[58.24999999999998, 2.0643142497158835, 4.054687236886083, 0.06732222511974688, -0.011461622412926538, 0.14152188412232514, -0.06187878390879118, 3.0, 0.0]", + "[58.29999999999998, 2.064971577446907, 4.062993739943869, 0.06672839754914309, 0.03775253424498695, 0.19073604078023862, 0.03812121609120882, 3.0, 0.0]", + "[58.34999999999998, 2.065628795791879, 4.071300133615605, 0.0661343477131209, -0.011461622412926555, 0.14152188412232508, -0.061878783908791236, 3.0, 0.0]", + "[58.39999999999998, 2.0662861225539313, 4.077145819939021, 0.0655405181736327, 0.03775253424498694, 0.09230772746441157, 0.038121216091208776, 3.0, 0.0]", + "[58.44999999999998, 2.0669433418678866, 4.082991613710536, 0.06494647030652165, -0.011461622412926566, 0.1415218841223251, -0.06187878390879129, 3.0, 0.0]", + "[58.49999999999998, 2.0651398538335335, 4.091298114830358, 0.06435263879810263, -0.06067577907084007, 0.1907360407802386, 0.03812121609120872, 3.0, 0.0]", + "[58.549999999999976, 2.06333647130927, 4.099604510440093, 0.06875880630535615, -0.011461622412926573, 0.14152188412232505, 0.13812121609120873, 3.0, 0.0]", + "[58.59999999999998, 2.0639938002121747, 4.10791101466976, 0.07316475310389202, 0.03775253424498693, 0.1907360407802386, 0.03812121609120859, 3.0, 0.0]", + "[58.64999999999998, 2.064651013306993, 4.116217403091341, 0.07257069259989564, -0.011461622412926569, 0.14152188412232503, -0.06187878390879147, 3.0, 0.0]", + "[58.699999999999974, 2.0653083453192407, 4.122063084164566, 0.07197687372846323, 0.03775253424498694, 0.09230772746441157, 0.038121216091208554, 3.0, 0.0]", + "[58.74999999999998, 2.065965559382945, 4.12790888318633, 0.07138281519318157, -0.011461622412926573, 0.14152188412232505, -0.06187878390879148, 3.0, 0.0]", + "[58.799999999999976, 2.066622890426294, 4.136215389556443, 0.07078899435301164, 0.03775253424498694, 0.1907360407802386, 0.038121216091208526, 3.0, 0.0]", + "[58.84999999999998, 2.067280105458905, 4.144521779915817, 0.07019493778648608, -0.011461622412926586, 0.14152188412232508, -0.06187878390879153, 3.0, 0.0]", + "[58.89999999999998, 2.065476613143175, 4.152828285317017, 0.06960111497754787, -0.06067577907084009, 0.19073604078023856, 0.03812121609120847, 3.0, 0.0]", + "[58.949999999999974, 2.0636732349003286, 4.161134676645332, 0.069007060379852, -0.011461622412926597, 0.14152188412232508, -0.06187878390879156, 3.0, 0.0]", + "[58.99999999999998, 2.064330564005796, 4.166980360625334, 0.06841323560203122, 0.037752534244986896, 0.09230772746441161, 0.03812121609120844, 3.0, 0.0]", + "[59.049999999999976, 2.0649877809763133, 4.172826156740286, 0.06781918297320584, -0.0114616224129266, 0.14152188412232514, -0.06187878390879161, 3.0, 0.0]", + "[59.09999999999998, 2.0656451091128267, 4.181132660203561, 0.06722535622653182, 0.0377525342449869, 0.19073604078023867, 0.0381212160912084, 3.0, 0.0]", + "[59.14999999999998, 2.0663023270523073, 4.189439053469805, 0.06663130556657793, -0.0114616224129266, 0.14152188412232516, -0.06187878390879165, 3.0, 0.0]", + "[59.199999999999974, 2.0669596542198505, 4.1977455559641115, 0.06603747685102067, 0.037752534244986896, 0.1907360407802387, 0.03812121609120836, 3.0, 0.0]", + "[59.24999999999998, 2.0676168731283115, 4.206051950199335, 0.06544342815997241, -0.011461622412926607, 0.14152188412232516, -0.06187878390879168, 3.0, 0.0]", + "[59.29999999999998, 2.0658133846884636, 4.214358451724653, 0.06484959747549383, -0.060675779070840104, 0.19073604078023865, 0.03812121609120833, 3.0, 0.0]", + "[59.34999999999998, 2.0640100025696966, 4.2226648469288905, 0.06925576580668914, -0.011461622412926607, 0.14152188412232514, 0.1381212160912083, 3.0, 0.0]", + "[59.39999999999998, 2.064667331878093, 4.23097135156405, 0.07366171178129234, 0.03775253424498689, 0.19073604078023862, 0.038121216091208256, 3.0, 0.0]", + "[59.44999999999998, 2.0653245445674253, 4.239277739580144, 0.07306765045337259, -0.011461622412926621, 0.14152188412232514, -0.061878783908791805, 3.0, 0.0]", + "[59.499999999999986, 2.0659818769851586, 4.245123420247883, 0.07247383240586197, 0.03775253424498689, 0.0923077274644116, 0.03812121609120822, 3.0, 0.0]", + "[59.54999999999998, 2.0666390906433767, 4.250969219675136, 0.07187977304665681, -0.011461622412926625, 0.14152188412232508, -0.06187878390879185, 3.0, 0.0]", + "[59.59999999999998, 2.067296422092212, 4.256814901311769, 0.07128595303040933, 0.03775253424498688, 0.09230772746441156, 0.038121216091208165, 3.0, 0.0]", + "[59.649999999999984, 2.0679536367193383, 4.2626606997701115, 0.07069189563996442, -0.011461622412926618, 0.14152188412232505, -0.06187878390879188, 3.0, 0.0]", + "[59.69999999999999, 2.0661501439981267, 4.270967205576793, 0.07009807365494006, -0.060675779070840125, 0.19073604078023856, 0.03812121609120814, 3.0, 0.0]", + "[59.749999999999986, 2.064346766160762, 4.279273596499626, 0.06950401823332909, -0.011461622412926621, 0.14152188412232503, -0.0618787839087919, 3.0, 0.0]", + "[59.79999999999998, 2.0650040956717115, 4.287580101337338, 0.06891019427942198, 0.03775253424498689, 0.19073604078023856, 0.038121216091208124, 3.0, 0.0]", + "[59.84999999999999, 2.065661312236744, 4.295886493229132, 0.06831614082667632, -0.011461622412926621, 0.14152188412232503, -0.06187878390879193, 3.0, 0.0]", + "[59.89999999999999, 2.066318640778744, 4.301732177772601, 0.06772231490392618, 0.03775253424498688, 0.09230772746441152, 0.03812121609120808, 3.0, 0.0]", + "[59.94999999999999, 2.066975858312738, 4.307577973324077, 0.06712826342005011, -0.011461622412926621, 0.14152188412232497, -0.061878783908791986, 3.0, 0.0]", + "[59.999999999999986, 2.0651723684984167, 4.315884476223868, 0.06653443552841079, -0.06067577907084012, 0.19073604078023845, 0.038121216091208, 3.0, 0.0]", + "[60.04999999999999, 2.063368987754132, 4.324190870053623, 0.06594038601347502, -0.011461622412926625, 0.14152188412232491, -0.061878783908792034, 3.0, 0.0]", + "[60.099999999999994, 2.064026314358141, 4.332497371984395, 0.06534655615285248, 0.037752534244986875, 0.19073604078023843, 0.03812121609120796, 3.0, 0.0]", + "[60.14999999999999, 2.0646835338301455, 4.3408037667831625, 0.06475250860688696, -0.011461622412926635, 0.1415218841223249, -0.06187878390879207, 3.0, 0.0]", + "[60.19999999999999, 2.0653408594651514, 4.346649454233626, 0.06415867677731212, 0.037752534244986855, 0.09230772746441138, 0.03812121609120793, 3.0, 0.0]", + "[60.24999999999999, 2.06599807990617, 4.3524952468780755, 0.06856484396342152, -0.011461622412926635, 0.1415218841223249, 0.13812121609120792, 3.0, 0.0]", + "[60.3, 2.0666554086510907, 4.36080175094976, 0.07297079108297184, 0.037752534244986855, 0.19073604078023843, 0.0381212160912079, 3.0, 0.0]", + "[60.349999999999994, 2.0673126219038362, 4.369108139529268, 0.07237673089987409, -0.011461622412926652, 0.14152188412232494, -0.06187878390879214, 3.0, 0.0]", + "[60.39999999999999, 2.065509127808234, 4.377414646710339, 0.07178291170752353, -0.06067577907084015, 0.19073604078023843, 0.03812121609120786, 3.0, 0.0]", + "[60.449999999999996, 2.063705751345272, 4.385721036258771, 0.07118885349321614, -0.011461622412926638, 0.14152188412232486, -0.06187878390879221, 3.0, 0.0]", + "[60.5, 2.0643630822306296, 4.391566718458884, 0.07059503233201878, 0.037752534244986855, 0.09230772746441131, 0.03812121609120779, 3.0, 0.0]", + "[60.55, 2.0650202974212424, 4.397412516353739, 0.07000097608654214, -0.011461622412926635, 0.1415218841223248, -0.06187878390879227, 3.0, 0.0]", + "[60.599999999999994, 2.065677627337668, 4.405719021596927, 0.06940715295653502, 0.03775253424498688, 0.1907360407802383, 0.03812121609120772, 3.0, 0.0]", + "[60.65, 2.066334843497222, 4.414025413083245, 0.06881309867988676, -0.011461622412926621, 0.14152188412232486, -0.06187878390879232, 3.0, 0.0]", + "[60.7, 2.066992172444699, 4.422331917357483, 0.06821927358103916, 0.03775253424498688, 0.19073604078023831, 0.03812121609120768, 3.0, 0.0]", + "[60.75, 2.067649389573214, 4.43063830981276, 0.06762522127325393, -0.011461622412926625, 0.1415218841223248, -0.06187878390879236, 3.0, 0.0]", + "[60.8, 2.0658458993534112, 4.438944813118033, 0.06703139420552745, -0.06067577907084012, 0.19073604078023831, 0.03812121609120764, 3.0, 0.0]", + "[60.85, 2.06404251901461, 4.447251206542304, 0.06643734386667682, -0.011461622412926628, 0.14152188412232483, -0.0618787839087924, 3.0, 0.0]", + "[60.900000000000006, 2.0646998460241024, 4.453096892618282, 0.0658435148299684, 0.03775253424498687, 0.09230772746441135, 0.03812121609120758, 3.0, 0.0]", + "[60.95, 2.065357065090624, 4.45894268663723, 0.06524946646008915, -0.011461622412926628, 0.14152188412232486, -0.06187878390879246, 3.0, 0.0]", + "[61.0, 2.0660143911311115, 4.467249188004481, 0.06465563545442518, 0.03775253424498687, 0.19073604078023834, 0.03812121609120754, 3.0, 0.0]", + "[61.050000000000004, 2.066671611166647, 4.475555583366779, 0.06406158905351937, -0.011461622412926632, 0.14152188412232483, -0.06187878390879251, 3.0, 0.0]", + "[61.10000000000001, 2.0673289362381144, 4.48140127138078, 0.06346775607887054, 0.03775253424498687, 0.09230772746441131, 0.038121216091207485, 3.0, 0.0]", + "[61.150000000000006, 2.06798615724268, 4.487247063461683, 0.0678739221198885, -0.01146162241292661, 0.1415218841223248, 0.13812121609120748, 3.0, 0.0]", + "[61.2, 2.068643485424106, 4.495553566969873, 0.07227987038442293, 0.03775253424498689, 0.19073604078023831, 0.03812121609120745, 3.0, 0.0]", + "[61.25000000000001, 2.0693006992402876, 4.503859956112818, 0.07168581134618883, -0.011461622412926607, 0.14152188412232483, -0.061878783908792596, 3.0, 0.0]", + "[61.30000000000001, 2.0674972057081282, 4.512166462730445, 0.07109199100895756, -0.060675779070840104, 0.19073604078023834, 0.03812121609120742, 3.0, 0.0]", + "[61.35000000000001, 2.065693828681713, 4.52047285284233, 0.07049793393955003, -0.011461622412926604, 0.1415218841223248, -0.061878783908792624, 3.0, 0.0]", + "[61.400000000000006, 2.066351159003611, 4.526318535605902, 0.06990411163343761, 0.037752534244986896, 0.09230772746441127, 0.03812121609120739, 3.0, 0.0]", + "[61.45000000000001, 2.0670083747576933, 4.53216433293729, 0.06931005653289553, -0.01146162241292661, 0.14152188412232478, -0.061878783908792666, 3.0, 0.0]", + "[61.500000000000014, 2.065204883163453, 4.5404708376170015, 0.06871623225793837, -0.06067577907084011, 0.19073604078023823, 0.03812121609120733, 3.0, 0.0]", + "[61.55000000000001, 2.0634015041991005, 4.5487772296668245, 0.06812217912629587, -0.011461622412926614, 0.14152188412232475, -0.06187878390879271, 3.0, 0.0]", + "[61.60000000000001, 2.0640588325830485, 4.557083733377534, 0.06752835288239258, 0.037752534244986896, 0.19073604078023823, 0.038121216091207305, 3.0, 0.0]", + "[61.65000000000001, 2.064716050275101, 4.565390126396348, 0.06693430171967996, -0.011461622412926607, 0.14152188412232472, -0.061878783908792735, 3.0, 0.0]", + "[61.70000000000002, 2.0653733776900673, 4.571235812066853, 0.06634047350686786, 0.03775253424498688, 0.09230772746441122, 0.03812121609120726, 3.0, 0.0]", + "[61.750000000000014, 2.066030596351113, 4.5770816064912765, 0.06574642431308872, -0.011461622412926635, 0.1415218841223247, -0.06187878390879281, 3.0, 0.0]", + "[61.80000000000001, 2.0666879227970765, 4.585388108264002, 0.06515259413132546, 0.03775253424498687, 0.19073604078023823, 0.03812121609120721, 3.0, 0.0]", + "[61.850000000000016, 2.0673451424271345, 4.593694503220822, 0.0645585469065155, -0.011461622412926635, 0.14152188412232475, -0.061878783908792846, 3.0, 0.0]", + "[61.90000000000002, 2.0655416547088956, 4.60200100402453, 0.06396471475577156, -0.06067577907084014, 0.19073604078023826, 0.038121216091207166, 3.0, 0.0]", + "[61.95000000000002, 2.0637382718685036, 4.610307399950393, 0.0683708816206715, -0.011461622412926632, 0.14152188412232475, 0.13812121609120717, 3.0, 0.0]", + "[62.000000000000014, 2.0643956004553687, 4.618613903864021, 0.07277682906137954, 0.03775253424498687, 0.19073604078023823, 0.03812121609120713, 3.0, 0.0]", + "[62.05000000000002, 2.0650528138661266, 4.626920292601541, 0.07218276919935165, -0.011461622412926618, 0.14152188412232472, -0.061878783908792936, 3.0, 0.0]", + "[62.10000000000002, 2.0657101455624174, 4.632765973990721, 0.07158894968591649, 0.037752534244986896, 0.09230772746441121, 0.038121216091207076, 3.0, 0.0]", + "[62.15000000000002, 2.066367359942095, 4.638611772696514, 0.07099489179267131, -0.0114616224129266, 0.1415218841223247, -0.061878783908792985, 3.0, 0.0]", + "[62.20000000000002, 2.0645638669734416, 4.64691827875064, 0.07040107031043362, -0.0606757790708401, 0.19073604078023818, 0.03812121609120703, 3.0, 0.0]", + "[62.25000000000002, 2.062760489383513, 4.655224669426038, 0.06980701438604886, -0.011461622412926604, 0.14152188412232466, -0.061878783908793, 3.0, 0.0]", + "[62.300000000000026, 2.063417819141892, 4.6610703527531285, 0.06921319093490119, 0.03775253424498691, 0.09230772746441115, 0.038121216091207014, 3.0, 0.0]", + "[62.35000000000002, 2.0640750354595023, 4.666916149520988, 0.06861913697941086, -0.011461622412926593, 0.1415218841223246, -0.06187878390879303, 3.0, 0.0]", + "[62.40000000000002, 2.0647323642489166, 4.675222653637164, 0.0680253115593893, 0.0377525342449869, 0.19073604078023812, 0.03812121609120697, 3.0, 0.0]", + "[62.450000000000024, 2.065389581535501, 4.683529046250509, 0.06743125957279135, -0.011461622412926607, 0.14152188412232464, -0.06187878390879307, 3.0, 0.0]", + "[62.50000000000003, 2.066046909355935, 4.691835549397705, 0.06683743218386543, 0.037752534244986896, 0.19073604078023815, 0.038121216091206944, 3.0, 0.0]", + "[62.550000000000026, 2.0667041276115095, 4.700141942980041, 0.0662433821661934, -0.01146162241292659, 0.1415218841223246, -0.06187878390879308, 3.0, 0.0]", + "[62.60000000000002, 2.0649006385187803, 4.708448445158241, 0.06564955280832671, -0.0606757790708401, 0.19073604078023812, 0.038121216091206916, 3.0, 0.0]", + "[62.65000000000003, 2.06309725705289, 4.716754839709601, 0.0650555047596483, -0.011461622412926593, 0.14152188412232464, -0.06187878390879314, 3.0, 0.0]", + "[62.70000000000003, 2.063754582935282, 4.722600526912681, 0.06446167343274356, 0.03775253424498691, 0.09230772746441115, 0.038121216091206875, 3.0, 0.0]", + "[62.75000000000003, 2.0644118031289205, 4.728446319804512, 0.06886784112151484, -0.011461622412926586, 0.1415218841223247, 0.1381212160912069, 3.0, 0.0]", + "[62.800000000000026, 2.0650691321212515, 4.736752824123604, 0.07327378773834367, 0.03775253424498691, 0.19073604078023815, 0.03812121609120687, 3.0, 0.0]", + "[62.85000000000003, 2.065726345126555, 4.745059212455669, 0.0726797270524579, -0.011461622412926607, 0.14152188412232466, -0.06187878390879319, 3.0, 0.0]", + "[62.900000000000034, 2.066383677228301, 4.7533657198841786, 0.07208590836288134, 0.03775253424498689, 0.19073604078023818, 0.038121216091206805, 3.0, 0.0]", + "[62.95000000000003, 2.0670408912025193, 4.761672109185161, 0.07149184964577031, -0.011461622412926607, 0.1415218841223247, -0.06187878390879325, 3.0, 0.0]", + "[63.00000000000003, 2.0676982223353417, 4.767517791137809, 0.0708980289874027, 0.03775253424498688, 0.09230772746441122, 0.03812121609120675, 3.0, 0.0]", + "[63.05000000000003, 2.0683554372784974, 4.773363589280125, 0.07030397223910854, -0.01146162241292661, 0.14152188412232466, -0.061878783908793276, 3.0, 0.0]", + "[63.10000000000004, 2.066551944873329, 4.781670094770765, 0.06971014961190512, -0.060675779070840125, 0.19073604078023815, 0.038121216091206736, 3.0, 0.0]", + "[63.150000000000034, 2.064748566719907, 4.789976486009656, 0.06911609483250337, -0.01146162241292661, 0.1415218841223246, -0.06187878390879332, 3.0, 0.0]", + "[63.20000000000003, 2.065405895914785, 4.7982829905312965, 0.06852227023635933, 0.03775253424498687, 0.19073604078023812, 0.038121216091206694, 3.0, 0.0]", + "[63.250000000000036, 2.0660631127959035, 4.806589382739178, 0.06792821742588023, -0.011461622412926632, 0.14152188412232458, -0.06187878390879335, 3.0, 0.0]", + "[63.30000000000004, 2.0667204410218045, 4.812435067598746, 0.0673343908608364, 0.03775253424498688, 0.09230772746441109, 0.03812121609120667, 3.0, 0.0]", + "[63.35000000000004, 2.0673776588719117, 4.818280862834109, 0.06674034001928125, -0.011461622412926607, 0.14152188412232458, -0.06187878390879339, 3.0, 0.0]", + "[63.400000000000034, 2.0655741693737157, 4.826587365417774, 0.06614651148529616, -0.0606757790708401, 0.1907360407802381, 0.03812121609120664, 3.0, 0.0]", + "[63.45000000000004, 2.0637707883132936, 4.834893759563668, 0.06555246261273283, -0.011461622412926583, 0.14152188412232458, -0.0618787839087934, 3.0, 0.0]", + "[63.50000000000004, 2.0644281146011534, 4.843200261178289, 0.06495863210971356, 0.037752534244986924, 0.19073604078023804, 0.03812121609120661, 3.0, 0.0]", + "[63.55000000000004, 2.0650853343893196, 4.8515066562932185, 0.06436458520617094, -0.011461622412926566, 0.1415218841223245, -0.061878783908793436, 3.0, 0.0]", + "[63.60000000000004, 2.065742659708152, 4.857352344059857, 0.06377075273414948, 0.03775253424498694, 0.09230772746441097, 0.03812121609120658, 3.0, 0.0]", + "[63.65000000000004, 2.0663998804653576, 4.86319813638812, 0.06817691927778798, -0.011461622412926566, 0.14152188412232447, 0.13812121609120662, 3.0, 0.0]", + "[63.700000000000045, 2.067057208894169, 4.871504640143695, 0.07258286703965107, 0.037752534244986924, 0.19073604078023798, 0.03812121609120655, 3.0, 0.0]", + "[63.75000000000004, 2.067714422462937, 4.879811029039225, 0.07198880749868886, -0.01146162241292659, 0.1415218841223245, -0.06187878390879351, 3.0, 0.0]", + "[63.80000000000004, 2.065910928683371, 4.88811753590426, 0.07139498766417358, -0.0606757790708401, 0.190736040780238, 0.038121216091206486, 3.0, 0.0]", + "[63.850000000000044, 2.064107551904358, 4.896423925768743, 0.07080093009206063, -0.011461622412926597, 0.1415218841223245, -0.06187878390879354, 3.0, 0.0]", + "[63.90000000000005, 2.0647648824736526, 4.902269608284919, 0.07020710828864155, 0.03775253424498691, 0.09230772746441097, 0.03812121609120647, 3.0, 0.0]", + "[63.950000000000045, 2.065422097980343, 4.908115405863697, 0.06961305268541465, -0.0114616224129266, 0.14152188412232447, -0.06187878390879357, 3.0, 0.0]", + "[64.00000000000004, 2.066079427580678, 4.916421910790795, 0.06901922891313214, 0.037752534244986896, 0.190736040780238, 0.03812121609120642, 3.0, 0.0]", + "[64.05000000000004, 2.0667366440563373, 4.924728302593217, 0.06842517527878739, -0.011461622412926597, 0.14152188412232453, -0.06187878390879362, 3.0, 0.0]", + "[64.10000000000005, 2.0649331531836843, 4.93303480655134, 0.06783134953761055, -0.0606757790708401, 0.190736040780238, 0.03812121609120638, 3.0, 0.0]", + "[64.15000000000005, 2.0631297734977294, 4.941341199322762, 0.0672372978722165, -0.011461622412926586, 0.1415218841223245, -0.06187878390879368, 3.0, 0.0]", + "[64.20000000000005, 2.063787101160064, 4.947186884745898, 0.06664347016204109, 0.03775253424498692, 0.09230772746441099, 0.038121216091206334, 3.0, 0.0]", + "[64.25000000000006, 2.0644443195737447, 4.953032679417686, 0.0660494204656322, -0.011461622412926586, 0.1415218841223245, -0.061878783908793734, 3.0, 0.0]", + "[64.30000000000005, 2.0651016462670695, 4.961339181437772, 0.06545559078649009, 0.03775253424498692, 0.19073604078023804, 0.038121216091206264, 3.0, 0.0]", + "[64.35000000000005, 2.065758865649771, 4.969645576147235, 0.06486154305906604, -0.011461622412926586, 0.14152188412232453, -0.061878783908793804, 3.0, 0.0]", + "[64.40000000000005, 2.0664161913740697, 4.977952077198295, 0.06426771141092752, 0.037752534244986924, 0.1907360407802381, 0.03812121609120621, 3.0, 0.0]", + "[64.45000000000005, 2.067073411725805, 4.986258472876793, 0.06367366565252017, -0.01146162241292659, 0.1415218841223246, -0.06187878390879383, 3.0, 0.0]", + "[64.50000000000006, 2.0677307364810633, 4.992104161207006, 0.06307983203535135, 0.03775253424498692, 0.09230772746441107, 0.03812121609120617, 3.0, 0.0]", + "[64.55000000000005, 2.0683879578018503, 4.997949952971688, 0.06748599743382712, -0.011461622412926593, 0.14152188412232458, 0.13812121609120617, 3.0, 0.0]", + "[64.60000000000005, 2.0690452856671255, 5.006256456163727, 0.07189194634075854, 0.03775253424498691, 0.19073604078023812, 0.03812121609120612, 3.0, 0.0]", + "[64.65000000000006, 2.0697024997993765, 5.014562845622739, 0.07129788794475857, -0.0114616224129266, 0.14152188412232458, -0.06187878390879393, 3.0, 0.0]", + "[64.70000000000006, 2.0678990065833003, 5.022869351924284, 0.07070406696526671, -0.06067577907084011, 0.1907360407802381, 0.03812121609120607, 3.0, 0.0]", + "[64.75000000000006, 2.066095629240789, 5.031175742352266, 0.07011001053814689, -0.011461622412926597, 0.14152188412232458, -0.061878783908793984, 3.0, 0.0]", + "[64.80000000000005, 2.0667529592465788, 5.037021425431947, 0.06951618758972203, 0.03775253424498692, 0.09230772746441107, 0.03812121609120604, 3.0, 0.0]", + "[64.85000000000005, 2.0674101753167826, 5.042867222447215, 0.06892213313151803, -0.011461622412926583, 0.14152188412232455, -0.06187878390879398, 3.0, 0.0]", + "[64.90000000000006, 2.065606684038675, 5.051173726810793, 0.06832830821419938, -0.06067577907084008, 0.1907360407802381, 0.038121216091206014, 3.0, 0.0]", + "[64.95000000000006, 2.0638033047581765, 5.059480119176762, 0.06773425572494345, -0.011461622412926573, 0.14152188412232464, -0.061878783908794026, 3.0, 0.0]", + "[65.00000000000006, 2.064460632825968, 5.067786622571315, 0.06714042883863082, 0.037752534244986924, 0.1907360407802381, 0.03812121609120596, 3.0, 0.0]", + "[65.05000000000007, 2.0651178508341888, 5.076093015906299, 0.06654637831835226, -0.011461622412926573, 0.14152188412232455, -0.06187878390879411, 3.0, 0.0]", + "[65.10000000000007, 2.065775177932975, 5.081938701892983, 0.06595254946308376, 0.037752534244986924, 0.0923077274644111, 0.03812121609120589, 3.0, 0.0]", + "[65.15000000000006, 2.066432396910212, 5.087784496001217, 0.0653585009117839, -0.011461622412926576, 0.14152188412232464, -0.06187878390879418, 3.0, 0.0]", + "[65.20000000000006, 2.064628908539157, 5.0960909974577415, 0.06476467008752074, -0.06067577907084007, 0.19073604078023815, 0.038121216091205834, 3.0, 0.0]", + "[65.25000000000006, 2.0628255263515793, 5.104397392730788, 0.06917083827889814, -0.011461622412926555, 0.14152188412232464, 0.13812121609120584, 3.0, 0.0]", + "[65.30000000000007, 2.06348285559127, 5.112703897297242, 0.07357678439310826, 0.03775253424498696, 0.1907360407802381, 0.038121216091205785, 3.0, 0.0]", + "[65.35000000000007, 2.0641400683491913, 5.121010285381925, 0.07298272320455793, -0.011461622412926548, 0.14152188412232455, -0.061878783908794276, 3.0, 0.0]", + "[65.40000000000006, 2.064797400698314, 5.126855966118272, 0.07238890501763583, 0.03775253424498696, 0.09230772746441107, 0.03812121609120571, 3.0, 0.0]", + "[65.45000000000007, 2.065454614425161, 5.132701765476895, 0.07179484579788109, -0.011461622412926541, 0.14152188412232455, -0.06187878390879436, 3.0, 0.0]", + "[65.50000000000007, 2.066111945805349, 5.141008272183845, 0.071201025642145, 0.037752534244986966, 0.190736040780238, 0.03812121609120566, 3.0, 0.0]", + "[65.55000000000007, 2.066769160501141, 5.149314662206397, 0.07060696839122335, -0.011461622412926541, 0.1415218841223245, -0.06187878390879438, 3.0, 0.0]", + "[65.60000000000007, 2.0649656678486115, 5.157621167944394, 0.0700131462666416, -0.06067577907084004, 0.19073604078023798, 0.03812121609120561, 3.0, 0.0]", + "[65.65000000000006, 2.0631622899425466, 5.165927558935929, 0.06941909098462574, -0.011461622412926538, 0.14152188412232447, -0.06187878390879443, 3.0, 0.0]", + "[65.70000000000007, 2.0638196193847778, 5.1717732425791665, 0.06882526689108669, 0.03775253424498696, 0.09230772746441099, 0.038121216091205584, 3.0, 0.0]", + "[65.75000000000007, 2.064476836018547, 5.177619039030868, 0.06823121357801142, -0.011461622412926548, 0.14152188412232447, -0.06187878390879447, 3.0, 0.0]", + "[65.80000000000007, 2.0651341644917913, 5.185925542830876, 0.0676373875155535, 0.03775253424498695, 0.19073604078023795, 0.03812121609120554, 3.0, 0.0]", + "[65.85000000000008, 2.065791382094557, 5.1942319357604045, 0.06704333617141557, -0.011461622412926545, 0.14152188412232447, -0.06187878390879447, 3.0, 0.0]", + "[65.90000000000008, 2.0664487095987987, 5.202538438591411, 0.0664495081400083, 0.03775253424498695, 0.19073604078023795, 0.03812121609120554, 3.0, 0.0]", + "[65.95000000000007, 2.0671059281705766, 5.210844832489951, 0.06585545876484034, -0.011461622412926548, 0.14152188412232444, -0.06187878390879451, 3.0, 0.0]", + "[66.00000000000007, 2.0653024393940598, 5.219151334351936, 0.06526162876444914, -0.06067577907084007, 0.19073604078023795, 0.03812121609120549, 3.0, 0.0]", + "[66.05000000000007, 2.063499057611945, 5.227457729219521, 0.06466758135831642, -0.011461622412926559, 0.14152188412232447, -0.06187878390879457, 3.0, 0.0]", + "[66.10000000000008, 2.064156383178103, 5.233303416738831, 0.06407374938884701, 0.03775253424498694, 0.09230772746441097, 0.038121216091205445, 3.0, 0.0]", + "[66.15000000000008, 2.064813603687985, 5.23914920931442, 0.06847991643503318, -0.011461622412926573, 0.1415218841223245, 0.13812121609120545, 3.0, 0.0]", + "[66.20000000000007, 2.0654709323641383, 5.247455713317335, 0.07288586369431388, 0.037752534244986924, 0.19073604078023804, 0.03812121609120544, 3.0, 0.0]", + "[66.25000000000009, 2.066128145685545, 5.255762101965505, 0.0722918036507306, -0.011461622412926597, 0.14152188412232453, -0.06187878390879461, 3.0, 0.0]", + "[66.30000000000008, 2.066785477471175, 5.261607783265345, 0.07169798431882761, 0.03775253424498692, 0.09230772746441104, 0.03812121609120542, 3.0, 0.0]", + "[66.35000000000008, 2.0674426917615234, 5.267453582060464, 0.0711039262440708, -0.01146162241292659, 0.14152188412232453, -0.06187878390879462, 3.0, 0.0]", + "[66.40000000000008, 2.0656391987035505, 5.275760088203907, 0.0705101049433237, -0.06067577907084008, 0.19073604078023806, 0.03812121609120539, 3.0, 0.0]", + "[66.45000000000007, 2.063835821202931, 5.284066478789997, 0.06991604883746926, -0.011461622412926576, 0.1415218841223245, -0.06187878390879465, 3.0, 0.0]", + "[66.50000000000009, 2.0644931510506086, 5.2923729839644365, 0.06932222556777, 0.037752534244986924, 0.19073604078023804, 0.03812121609120536, 3.0, 0.0]", + "[66.55000000000008, 2.0651503672789286, 5.300679375519519, 0.06872817143084772, -0.011461622412926569, 0.14152188412232455, -0.061878783908794664, 3.0, 0.0]", + "[66.60000000000008, 2.065807696157625, 5.306525059726295, 0.06813434619224101, 0.037752534244986945, 0.09230772746441099, 0.03812121609120535, 3.0, 0.0]", + "[66.65000000000009, 2.0664649133549373, 5.312370855614452, 0.06754029402424928, -0.011461622412926552, 0.1415218841223245, -0.061878783908794706, 3.0, 0.0]", + "[66.70000000000009, 2.0646614232039493, 5.32067735885091, 0.06694646681669582, -0.06067577907084007, 0.190736040780238, 0.03812121609120532, 3.0, 0.0]", + "[66.75000000000009, 2.062858042796318, 5.328983752344011, 0.06635241661770283, -0.011461622412926562, 0.14152188412232447, -0.061878783908794734, 3.0, 0.0]", + "[66.80000000000008, 2.0635153697369653, 5.337290254611421, 0.06575858744110691, 0.03775253424498694, 0.19073604078023798, 0.03812121609120525, 3.0, 0.0]", + "[66.85000000000008, 2.064172588872345, 5.3455966490735625, 0.0651645392111412, -0.011461622412926573, 0.14152188412232447, -0.0618787839087948, 3.0, 0.0]", + "[66.90000000000009, 2.064829914843962, 5.351442336187415, 0.06457070806553816, 0.03775253424498693, 0.09230772746441093, 0.038121216091205196, 3.0, 0.0]", + "[66.95000000000009, 2.0654871349483814, 5.357288129168467, 0.06897687593559564, -0.011461622412926576, 0.14152188412232444, 0.1381212160912052, 3.0, 0.0]", + "[67.00000000000009, 2.0661444640299833, 5.3655946335768325, 0.07338282237103058, 0.03775253424498693, 0.19073604078023795, 0.03812121609120519, 3.0, 0.0]", + "[67.0500000000001, 2.0668016769459547, 5.3739010218195675, 0.07278876150363031, -0.011461622412926566, 0.14152188412232447, -0.061878783908794845, 3.0, 0.0]", + "[67.1000000000001, 2.064998182513597, 5.382207529337397, 0.07219494299554645, -0.060675779070840076, 0.19073604078023798, 0.03812121609120517, 3.0, 0.0]", + "[67.15000000000009, 2.063194806387374, 5.39051391854909, 0.07160088409700524, -0.011461622412926583, 0.14152188412232447, -0.0618787839087949, 3.0, 0.0]", + "[67.20000000000009, 2.063852137609455, 5.396359600412477, 0.07100706362000689, 0.03775253424498694, 0.09230772746441095, 0.0381212160912051, 3.0, 0.0]", + "[67.25000000000009, 2.06450935246336, 5.4022053986440435, 0.07041300669035976, -0.011461622412926552, 0.14152188412232444, -0.06187878390879493, 3.0, 0.0]", + "[67.3000000000001, 2.065166682716479, 5.410511904223925, 0.06981918424449247, 0.037752534244986945, 0.19073604078023798, 0.038121216091205085, 3.0, 0.0]", + "[67.3500000000001, 2.0658238985393553, 5.418818295373564, 0.06922512928373323, -0.011461622412926562, 0.14152188412232447, -0.061878783908794956, 3.0, 0.0]", + "[67.40000000000009, 2.0664812278234974, 5.427124799984468, 0.0686313048689657, 0.037752534244986945, 0.19073604078023798, 0.03812121609120506, 3.0, 0.0]", + "[67.4500000000001, 2.067138444615361, 5.435431192103095, 0.06803725187712767, -0.011461622412926566, 0.14152188412232447, -0.06187878390879498, 3.0, 0.0]", + "[67.5000000000001, 2.065334954058922, 5.443737695745003, 0.06744342549342468, -0.06067577907084006, 0.19073604078023798, 0.03812121609120503, 3.0, 0.0]", + "[67.5500000000001, 2.0635315740567437, 5.452044088832652, 0.06684937447057702, -0.011461622412926555, 0.1415218841223245, -0.06187878390879501, 3.0, 0.0]", + "[67.6000000000001, 2.064188901402845, 5.457889774572019, 0.06625554611783717, 0.03775253424498695, 0.092307727464411, 0.038121216091205, 3.0, 0.0]", + "[67.65000000000009, 2.064846120132769, 5.463735568927565, 0.0656614970640122, -0.011461622412926545, 0.14152188412232453, -0.06187878390879504, 3.0, 0.0]", + "[67.7000000000001, 2.065503446509841, 5.472042070631402, 0.0650676667422689, 0.037752534244986966, 0.19073604078023806, 0.038121216091204974, 3.0, 0.0]", + "[67.7500000000001, 2.066160666208802, 5.4803484656571255, 0.06447361965746543, -0.011461622412926531, 0.14152188412232458, -0.06187878390879507, 3.0, 0.0]", + "[67.8000000000001, 2.0668179916168326, 5.486194153334566, 0.06387978736668919, 0.03775253424498697, 0.0923077274644111, 0.038121216091204946, 3.0, 0.0]", + "[67.85000000000011, 2.0674752122848474, 5.492039945752023, 0.06828595409155909, -0.011461622412926531, 0.14152188412232455, 0.13812121609120495, 3.0, 0.0]", + "[67.9000000000001, 2.0681325408028988, 5.500346449596836, 0.07269190167209379, 0.03775253424498697, 0.19073604078023806, 0.0381212160912049, 3.0, 0.0]", + "[67.9500000000001, 2.068789754282374, 5.508652838403072, 0.07209784194969449, -0.01146162241292652, 0.14152188412232455, -0.061878783908795164, 3.0, 0.0]", + "[68.0000000000001, 2.0669862604135245, 5.5169593453573915, 0.0715040222965967, -0.06067577907084002, 0.19073604078023806, 0.038121216091204835, 3.0, 0.0]", + "[68.0500000000001, 2.065182883723786, 5.5252657351326, 0.07090996454308458, -0.011461622412926534, 0.14152188412232458, -0.0618787839087952, 3.0, 0.0]", + "[68.10000000000011, 2.0658402143823453, 5.53111141755951, 0.07031614292104581, 0.03775253424498695, 0.0923077274644111, 0.038121216091204786, 3.0, 0.0]", + "[68.1500000000001, 2.066497429799779, 5.536957215227546, 0.06972208713645506, -0.011461622412926566, 0.1415218841223246, -0.061878783908795254, 3.0, 0.0]", + "[68.2000000000001, 2.064693937868904, 5.545263720243893, 0.0691282635455194, -0.060675779070840076, 0.19073604078023812, 0.03812121609120475, 3.0, 0.0]", + "[68.25000000000011, 2.0628905592411737, 5.553570111957093, 0.06853420972988136, -0.011461622412926569, 0.1415218841223246, -0.0618787839087953, 3.0, 0.0]", + "[68.30000000000011, 2.0635478879617293, 5.561876616004411, 0.0679403841699456, 0.03775253424498694, 0.1907360407802381, 0.038121216091204724, 3.0, 0.0]", + "[68.35000000000011, 2.0642051053171855, 5.570183008686629, 0.0673463323232893, -0.011461622412926576, 0.14152188412232455, -0.06187878390879533, 3.0, 0.0]", + "[68.4000000000001, 2.0648624330687357, 5.5760286940205495, 0.06675250479439498, 0.03775253424498694, 0.09230772746441102, 0.03812121609120468, 3.0, 0.0]", + "[68.4500000000001, 2.065519651393208, 5.581874488781547, 0.06615845491671922, -0.01146162241292658, 0.1415218841223245, -0.06187878390879536, 3.0, 0.0]", + "[68.50000000000011, 2.0661769781757346, 5.590180990890836, 0.06556462541882918, 0.03775253424498691, 0.190736040780238, 0.03812121609120463, 3.0, 0.0]", + "[68.55000000000011, 2.06683419746924, 5.598487385511106, 0.0649705775101672, -0.011461622412926593, 0.14152188412232453, -0.061878783908795414, 3.0, 0.0]", + "[68.60000000000011, 2.0650307094144607, 5.606793886651353, 0.06437674604325183, -0.0606757790708401, 0.19073604078023798, 0.038121216091204585, 3.0, 0.0]", + "[68.65000000000012, 2.063227326910599, 5.615100282240686, 0.06878291359195943, -0.0114616224129266, 0.1415218841223245, 0.1381212160912046, 3.0, 0.0]", + "[68.70000000000012, 2.063884655834061, 5.623406786490911, 0.0731888603487246, 0.037752534244986896, 0.19073604078023798, 0.03812121609120459, 3.0, 0.0]", + "[68.75000000000011, 2.0645418689081465, 5.631713174891759, 0.07259479980260068, -0.011461622412926597, 0.1415218841223245, -0.06187878390879545, 3.0, 0.0]", + "[68.80000000000011, 2.0651992009410947, 5.637558855944281, 0.07200098097323208, 0.03775253424498691, 0.092307727464411, 0.03812121609120456, 3.0, 0.0]", + "[68.85000000000011, 2.065856414984127, 5.64340465498672, 0.07140692239594468, -0.01146162241292659, 0.1415218841223245, -0.06187878390879552, 3.0, 0.0]", + "[68.90000000000012, 2.066513746048121, 5.6517111613774755, 0.07081310159772268, 0.0377525342449869, 0.19073604078023795, 0.03812121609120449, 3.0, 0.0]", + "[68.95000000000012, 2.0671709610601177, 5.660017551716235, 0.07021904498930785, -0.0114616224129266, 0.14152188412232444, -0.061878783908795566, 3.0, 0.0]", + "[69.00000000000011, 2.065367468723802, 5.6683240571380225, 0.06962522222220072, -0.0606757790708401, 0.19073604078023793, 0.03812121609120444, 3.0, 0.0]", + "[69.05000000000013, 2.0635640905015133, 5.676630448445781, 0.0690311675827297, -0.011461622412926607, 0.14152188412232444, -0.061878783908795594, 3.0, 0.0]", + "[69.10000000000012, 2.064221419627513, 5.6824761324052515, 0.06843734284662858, 0.03775253424498689, 0.09230772746441096, 0.03812121609120439, 3.0, 0.0]", + "[69.15000000000012, 2.0648786365775234, 5.688321928540712, 0.06784329017613411, -0.011461622412926604, 0.14152188412232447, -0.06187878390879565, 3.0, 0.0]", + "[69.20000000000012, 2.0655359647345186, 5.69662843202447, 0.06724946347107877, 0.037752534244986896, 0.19073604078023795, 0.03812121609120436, 3.0, 0.0]", + "[69.25000000000011, 2.066193182653543, 5.704934825270255, 0.06665541276955698, -0.011461622412926604, 0.14152188412232442, -0.06187878390879568, 3.0, 0.0]", + "[69.30000000000013, 2.0668505098415197, 5.713241327784995, 0.06606158409551707, 0.037752534244986896, 0.19073604078023795, 0.03812121609120432, 3.0, 0.0]", + "[69.35000000000012, 2.0675077287295727, 5.721547721999812, 0.06546753536299976, -0.0114616224129266, 0.14152188412232444, -0.06187878390879574, 3.0, 0.0]", + "[69.40000000000012, 2.0681650549485133, 5.72739340886634, 0.06487370471994212, 0.03775253424498691, 0.09230772746441099, 0.03812121609120426, 3.0, 0.0]", + "[69.45000000000013, 2.0688222748056115, 5.733239202094711, 0.06927987309254113, -0.011461622412926586, 0.14152188412232447, 0.13812121609120426, 3.0, 0.0]", + "[69.50000000000013, 2.0694796041345507, 5.741545706750413, 0.07368581902540146, 0.03775253424498691, 0.19073604078023795, 0.038121216091204196, 3.0, 0.0]", + "[69.55000000000013, 2.0701368168031666, 5.749852094745792, 0.07309175765538949, -0.01146162241292658, 0.14152188412232447, -0.06187878390879584, 3.0, 0.0]", + "[69.60000000000012, 2.068333322123456, 5.758158602510973, 0.07249793964990936, -0.06067577907084009, 0.19073604078023804, 0.03812121609120419, 3.0, 0.0]", + "[69.65000000000012, 2.0665299462445827, 5.766464991475314, 0.07190388024877062, -0.011461622412926576, 0.14152188412232455, -0.061878783908795885, 3.0, 0.0]", + "[69.70000000000013, 2.0671872777140097, 5.772310673091358, 0.07131006027436194, 0.037752534244986924, 0.09230772746441107, 0.03812121609120413, 3.0, 0.0]", + "[69.75000000000013, 2.067844492320572, 5.778156471570267, 0.07071600284213024, -0.011461622412926576, 0.14152188412232458, -0.061878783908795906, 3.0, 0.0]", + "[69.80000000000013, 2.0660409995788203, 5.786462977397488, 0.07012218089884076, -0.06067577907084008, 0.19073604078023806, 0.0381212160912041, 3.0, 0.0]", + "[69.85000000000014, 2.0642376217619702, 5.794769368299808, 0.06952812543554739, -0.011461622412926583, 0.1415218841223246, -0.06187878390879594, 3.0, 0.0]", + "[69.90000000000013, 2.064894951293408, 5.803075873158009, 0.06893430152327053, 0.037752534244986924, 0.19073604078023815, 0.03812121609120407, 3.0, 0.0]", + "[69.95000000000013, 2.065552167837976, 5.811382265029341, 0.06834024802894462, -0.011461622412926583, 0.1415218841223246, -0.06187878390879598, 3.0, 0.0]", + "[70.00000000000013, 2.066209496400415, 5.817227949552372, 0.06774642214772501, 0.03775253424498691, 0.09230772746441109, 0.038121216091204016, 3.0, 0.0]", + "[70.05000000000013, 2.0668667139139933, 5.823073745124262, 0.06715237062236365, -0.011461622412926573, 0.14152188412232458, -0.061878783908795996, 3.0, 0.0]", + "[70.10000000000014, 2.0650632240792777, 5.831380248044448, 0.0665585427721644, -0.06067577907084007, 0.19073604078023812, 0.03812121609120401, 3.0, 0.0]", + "[70.15000000000013, 2.0632598433553655, 5.839686641853831, 0.065964493215834, -0.011461622412926569, 0.14152188412232458, -0.06187878390879604, 3.0, 0.0]", + "[70.20000000000013, 2.063917169979725, 5.847993143804952, 0.0653706633965608, 0.03775253424498693, 0.1907360407802381, 0.03812121609120396, 3.0, 0.0]", + "[70.25000000000014, 2.0645743894314, 5.856299538583391, 0.06477661580928916, -0.011461622412926576, 0.14152188412232458, -0.061878783908796094, 3.0, 0.0]", + "[70.30000000000014, 2.0652317150867137, 5.862145226013547, 0.06418278402097732, 0.03775253424498693, 0.09230772746441107, 0.03812121609120392, 3.0, 0.0]", + "[70.35000000000014, 2.065888935507446, 5.867991018678285, 0.06858895124831013, -0.01146162241292658, 0.14152188412232458, 0.13812121609120395, 3.0, 0.0]", + "[70.40000000000013, 2.0665462642727874, 5.87629752277039, 0.07299489832636608, 0.03775253424498694, 0.19073604078023812, 0.0381212160912039, 3.0, 0.0]", + "[70.45000000000013, 2.067203477504964, 5.884603911329329, 0.07240083810147042, -0.011461622412926552, 0.14152188412232458, -0.06187878390879614, 3.0, 0.0]", + "[70.50000000000014, 2.0653999833888173, 5.8929104185309455, 0.07180701895086407, -0.060675779070840055, 0.19073604078023806, 0.03812121609120386, 3.0, 0.0]", + "[70.55000000000014, 2.0635966069463736, 5.901216808058858, 0.071212960694864, -0.011461622412926545, 0.14152188412232455, -0.0618787839087962, 3.0, 0.0]", + "[70.60000000000014, 2.064253937852226, 5.907062490238476, 0.070619139575308, 0.03775253424498695, 0.09230772746441109, 0.03812121609120381, 3.0, 0.0]", + "[70.65000000000015, 2.0649111530223685, 5.912908288153804, 0.07002508328823671, -0.011461622412926545, 0.14152188412232458, -0.06187878390879622, 3.0, 0.0]", + "[70.70000000000014, 2.065568482959241, 5.921214793417438, 0.06943126019977758, 0.037752534244986966, 0.19073604078023804, 0.038121216091203794, 3.0, 0.0]", + "[70.75000000000014, 2.066225699098372, 5.929521184883331, 0.0688372058816283, -0.011461622412926534, 0.14152188412232453, -0.06187878390879623, 3.0, 0.0]", + "[70.80000000000014, 2.0668830280662505, 5.937827689177973, 0.06824338082423483, 0.03775253424498698, 0.19073604078023806, 0.03812121609120378, 3.0, 0.0]", + "[70.85000000000014, 2.0675402451743863, 5.946134081612871, 0.06764932847504021, -0.011461622412926534, 0.14152188412232458, -0.06187878390879629, 3.0, 0.0]", + "[70.90000000000015, 2.0657367549342265, 5.954440584938502, 0.06705550144867851, -0.06067577907084004, 0.19073604078023812, 0.038121216091203725, 3.0, 0.0]", + "[70.95000000000014, 2.0639333746157607, 5.9627469783424365, 0.06646145106850584, -0.011461622412926541, 0.14152188412232466, -0.061878783908796316, 3.0, 0.0]", + "[71.00000000000014, 2.0645907016455687, 5.9685926643981, 0.06586762207307689, 0.03775253424498695, 0.09230772746441115, 0.0381212160912037, 3.0, 0.0]", + "[71.05000000000015, 2.065247920691794, 5.974438458437344, 0.06527357366195687, -0.011461622412926552, 0.14152188412232466, -0.06187878390879637, 3.0, 0.0]" ] }, "type": "simtrace", @@ -1567,24 +1566,24 @@ "4": { "node_name": "2-1", "id": 4, - "start_line": 1567, + "start_line": 1566, "parent": { "name": "1-0", "index": 1, - "start_line": 346 + "start_line": 345 }, "child": { "3-1": { "name": "3-1", "index": 5, - "start_line": 1945 + "start_line": 1943 } }, "agent": { "test": "<class 'dryvr_plus_plus.example.example_agent.quadrotor_agent.QuadrotorAgent'>" }, "init": { - "test": "[5.061314967232464, 2.6195223991382175, 0.07488189729947217, 0.022796695950373973, 0.12183919547275654, 0.01180897064281973, 4, 0]" + "test": "[5.06616176792077, 2.621157491399954, 0.06548003583816284, -0.011461622412926323, 0.14152188412232508, -0.061878783908780585, 4, 0]" }, "mode": { "test": "[\"Follow_Waypoint\"]" @@ -1592,351 +1591,350 @@ "static": { "test": "[]" }, - "start_time": 33.2, + "start_time": 33.15, "trace": { "test": [ - "[33.2, 5.061314967232464, 2.6195223991382175, 0.07488189729947217, 0.022796695950373973, 0.12183919547275654, 0.01180897064281973, 4.0, 0.0]", - "[33.25, 5.063685217052528, 2.626844773934401, 0.07297222166795439, 0.07201085260828746, 0.17105335213067, -0.08819102935718032, 4.0, 0.0]", - "[33.300000000000004, 5.068516173147558, 2.6366278550055515, 0.07106279119814307, 0.12122500926620099, 0.22026750878858348, 0.011808970642819674, 4.0, 0.0]", - "[33.35, 5.075807835517733, 2.648871642351845, 0.06915312189748876, 0.17043916592411448, 0.269481665446497, -0.08819102935718037, 4.0, 0.0]", - "[33.400000000000006, 5.085560204162832, 2.663576135973061, 0.06724368509672568, 0.21965332258202797, 0.31869582210441055, 0.011808970642819647, 4.0, 0.0]", - "[33.45, 5.09531246150085, 2.680741335869364, 0.07033424513059483, 0.17043916592411446, 0.36790997876232406, 0.11180897064281967, 4.0, 0.0]", - "[33.5, 5.1050648311097095, 2.7003672461201336, 0.07342457703734007, 0.21965332258202797, 0.41712413542023774, 0.011808970642819598, 4.0, 0.0]", - "[33.550000000000004, 5.1148170834048186, 2.7224538667251372, 0.07151490382088667, 0.17043916592411446, 0.46633829207815136, -0.08819102935718043, 4.0, 0.0]", - "[33.6, 5.122108629424956, 2.7470011936051133, 0.069605470936021, 0.121225009266201, 0.515552448736065, 0.011808970642819563, 4.0, 0.0]", - "[33.650000000000006, 5.12940029060657, 2.7740092267602208, 0.0726960348858805, 0.1704391659241145, 0.5647666053939784, 0.11180897064281958, 4.0, 0.0]", - "[33.7, 5.136691835662877, 2.80347797026982, 0.07578636287658434, 0.12122500926620103, 0.6139807620518918, 0.011808970642819501, 4.0, 0.0]", - "[33.75, 5.143983501887453, 2.8329465926111497, 0.07387668574403546, 0.1704391659241145, 0.564766605393978, -0.08819102935718054, 4.0, 0.0]", - "[33.800000000000004, 5.151275045980295, 2.8599545086774847, 0.07196725677531056, 0.12122500926620106, 0.5155524487360647, 0.011808970642819452, 4.0, 0.0]", - "[33.85, 5.158566709089215, 2.8845017184686763, 0.07505782464133247, 0.17043916592411457, 0.46633829207815125, 0.11180897064281944, 4.0, 0.0]", - "[33.900000000000006, 5.165858252218224, 2.9065882179053864, 0.07814814871588982, 0.12122500926620106, 0.4171241354202378, 0.01180897064281939, 4.0, 0.0]", - "[33.95, 5.173149920370062, 2.9262140069878693, 0.07623846766726342, 0.17043916592411454, 0.3679099787623243, -0.08819102935718065, 4.0, 0.0]", - "[34.0, 5.180441462535677, 2.9433790897953935, 0.07432904261454237, 0.12122500926620103, 0.3186958221044108, 0.01180897064281937, 4.0, 0.0]", - "[34.050000000000004, 5.187733127571806, 2.9580834663277975, 0.07741961439652362, 0.17043916592411457, 0.2694816654464973, 0.11180897064281936, 4.0, 0.0]", - "[34.1, 5.195024668773651, 2.970327132505761, 0.08050993455521095, 0.12122500926620107, 0.22026750878858384, 0.01180897064281932, 4.0, 0.0]", - "[34.150000000000006, 5.202316338852596, 2.9801100883295555, 0.07860024959083053, 0.1704391659241146, 0.17105335213067033, -0.08819102935718073, 4.0, 0.0]", - "[34.2, 5.209607879091128, 2.987432337878415, 0.07669082845381608, 0.12122500926620103, 0.12183919547275676, 0.011808970642819258, 4.0, 0.0]", - "[34.25, 5.216899546054328, 2.992293881152165, 0.07478114982043296, 0.1704391659241145, 0.07262503881484328, -0.08819102935718079, 4.0, 0.0]", - "[34.300000000000004, 5.224191089408678, 2.9946947181510524, 0.07287172235227589, 0.12122500926620103, 0.023410882156929776, 0.011808970642819244, 4.0, 0.0]", - "[34.35, 5.231482753255982, 2.994634848874905, 0.07596229171864394, 0.1704391659241145, -0.02580327450098372, 0.11180897064281925, 4.0, 0.0]", - "[34.400000000000006, 5.238774295646652, 2.9921142692443206, 0.07905261429294722, 0.12122500926620101, -0.07501743115889724, 0.011808970642819203, 4.0, 0.0]", - "[34.45, 5.246065964536767, 2.989593816113179, 0.07714293174419452, 0.17043916592411457, -0.025803274500983717, -0.08819102935718087, 4.0, 0.0]", - "[34.5, 5.255818339701746, 2.987073235519356, 0.07523350819141017, 0.21965332258202805, -0.07501743115889722, 0.011808970642819105, 4.0, 0.0]", - "[34.550000000000004, 5.265570590519919, 2.984552779272342, 0.07332383197391226, 0.17043916592411448, -0.02580327450098372, -0.08819102935718098, 4.0, 0.0]", - "[34.6, 5.272862135063266, 2.982032201794435, 0.07141440208978903, 0.12122500926620101, -0.07501743115889721, 0.011808970642819036, 4.0, 0.0]", - "[34.650000000000006, 5.280153797721539, 2.979511742431453, 0.06950473220373844, 0.1704391659241145, -0.025803274500983693, -0.08819102935718101, 4.0, 0.0]", - "[34.7, 5.287445345380897, 2.979451989343251, 0.06759529598808318, 0.12122500926620101, 0.0234108821569298, 0.01180897064281898, 4.0, 0.0]", - "[34.75, 5.294737004923115, 2.9793921243721884, 0.07068585660679474, 0.17043916592411454, -0.025803274500983714, 0.111808970642819, 4.0, 0.0]", - "[34.800000000000004, 5.3020285516187755, 2.9793323722476823, 0.07377618792856447, 0.12122500926620106, 0.023410882156929783, 0.01180897064281896, 4.0, 0.0]", - "[34.85, 5.309320216204018, 2.979272502233595, 0.07686675879437821, 0.17043916592411457, -0.02580327450098372, 0.11180897064281897, 4.0, 0.0]", - "[34.900000000000006, 5.316611757856767, 2.979212755152003, 0.07995707986927164, 0.12122500926620107, 0.023410882156929786, 0.011808970642818918, 4.0, 0.0]", - "[34.95, 5.323903427484793, 2.979152880095136, 0.07804739582113339, 0.1704391659241146, -0.02580327450098373, -0.08819102935718115, 4.0, 0.0]", - "[35.00000000000001, 5.331194968174297, 2.979093133976788, 0.0761379737677725, 0.12122500926620108, 0.023410882156929783, 0.01180897064281887, 4.0, 0.0]", - "[35.050000000000004, 5.338486634686484, 2.979033262035757, 0.07422829605081403, 0.1704391659241146, -0.02580327450098372, -0.08819102935718118, 4.0, 0.0]", - "[35.1, 5.345778178491871, 2.978973512801528, 0.07231886766618109, 0.12122500926620107, 0.023410882156929783, 0.011808970642818842, 4.0, 0.0]", - "[35.150000000000006, 5.353069841888122, 2.9789136439764334, 0.07540943611603884, 0.17043916592411457, -0.02580327450098373, 0.11180897064281886, 4.0, 0.0]", - "[35.2, 5.360361384729834, 2.978853895705879, 0.07849975960682729, 0.12122500926620107, 0.023410882156929762, 0.011808970642818828, 4.0, 0.0]", - "[35.25, 5.367653053168931, 2.9787940218379383, 0.07659007797451231, 0.17043916592411457, -0.02580327450098374, -0.08819102935718123, 4.0, 0.0]", - "[35.300000000000004, 5.374944595047381, 2.9787342745306438, 0.07468065350528878, 0.12122500926620103, 0.02341088215692976, 0.011808970642818759, 4.0, 0.0]", - "[35.35, 5.382236260370599, 2.9786744037785824, 0.07277097820423904, 0.17043916592411454, -0.025803274500983728, -0.08819102935718126, 4.0, 0.0]", - "[35.400000000000006, 5.3895278053649704, 2.978614653355366, 0.07086154740366049, 0.12122500926620104, 0.023410882156929783, 0.011808970642818745, 4.0, 0.0]", - "[35.45, 5.396819467572213, 2.978554785719281, 0.07395211343752892, 0.17043916592411457, -0.025803274500983728, 0.11180897064281875, 4.0, 0.0]", - "[35.5, 5.4065718401339335, 2.9784950362597478, 0.07704243934424752, 0.21965332258202808, 0.023410882156929772, 0.011808970642818696, 4.0, 0.0]", - "[35.550000000000004, 5.416324089476192, 2.978435163580751, 0.07513276012778981, 0.1704391659241146, -0.02580327450098372, -0.08819102935718137, 4.0, 0.0]", - "[35.6, 5.423615632543603, 2.978375415084496, 0.07322333324267327, 0.12122500926620117, 0.023410882156929776, 0.01180897064281862, 4.0, 0.0]", - "[35.650000000000006, 5.430907296677837, 2.9783155455214176, 0.07631390319206648, 0.17043916592411465, -0.025803274500983717, 0.11180897064281861, 4.0, 0.0]", - "[35.7, 5.438198838781576, 2.978255797988835, 0.07940422518334413, 0.12122500926620115, 0.023410882156929793, 0.011808970642818557, 4.0, 0.0]", - "[35.75, 5.445490507958629, 2.9781959233829376, 0.07749454205154868, 0.17043916592411465, -0.025803274500983717, -0.08819102935718148, 4.0, 0.0]", - "[35.800000000000004, 5.452782049099114, 2.9781361768136074, 0.07558511908182029, 0.12122500926620114, 0.023410882156929772, 0.011808970642818523, 4.0, 0.0]", - "[35.85, 5.4600737151603065, 2.978076305323573, 0.07367544228125596, 0.17043916592411468, -0.02580327450098373, -0.08819102935718151, 4.0, 0.0]", - "[35.9, 5.4673652594167, 2.9780165556383364, 0.0717660129802061, 0.12122500926620117, 0.023410882156929786, 0.011808970642818488, 4.0, 0.0]", - "[35.95, 5.474656922361932, 2.9779566872642613, 0.07485658051362214, 0.17043916592411473, -0.02580327450098373, 0.1118089706428185, 4.0, 0.0]", - "[36.0, 5.481948465654645, 2.977896938542705, 0.07794690492081746, 0.12122500926620122, 0.02341088215692978, 0.01180897064281846, 4.0, 0.0]", - "[36.05, 5.489240133642759, 2.9778370651257475, 0.07603722420486946, 0.1704391659241147, -0.025803274500983728, -0.0881910293571816, 4.0, 0.0]", - "[36.1, 5.496531675972203, 2.9777773173674604, 0.07412779881925534, 0.12122500926620124, 0.023410882156929776, 0.011808970642818398, 4.0, 0.0]", - "[36.15, 5.503823340844414, 2.9777174470664054, 0.07221812443462182, 0.17043916592411473, -0.025803274500983738, -0.08819102935718168, 4.0, 0.0]", - "[36.2, 5.511114886289803, 2.9776576961921717, 0.07030869271760519, 0.12122500926620125, 0.023410882156929765, 0.011808970642818314, 4.0, 0.0]", - "[36.25, 5.518406548046018, 2.9775978290071157, 0.0733992578350117, 0.17043916592411482, -0.025803274500983745, 0.11180897064281833, 4.0, 0.0]", - "[36.3, 5.525698092527721, 2.9775380790965693, 0.07648958465815871, 0.12122500926620135, 0.02341088215692975, 0.011808970642818266, 4.0, 0.0]", - "[36.35, 5.532989759326878, 2.977478206868568, 0.07457990635809382, 0.17043916592411484, -0.02580327450098376, -0.08819102935718179, 4.0, 0.0]", - "[36.4, 5.540281302845297, 2.977418457921305, 0.07267047855655936, 0.1212250092662013, 0.023410882156929755, 0.011808970642818217, 4.0, 0.0]", - "[36.45, 5.54757296652851, 2.977358588809247, 0.07576104758951034, 0.1704391659241148, -0.025803274500983745, 0.11180897064281822, 4.0, 0.0]", - "[36.5, 5.554864509083251, 2.9772988408256618, 0.07885137049719608, 0.1212250092662013, 0.02341088215692975, 0.01180897064281821, 4.0, 0.0]", - "[36.55, 5.562156177809321, 2.9772389666707473, 0.07694168828176967, 0.17043916592411482, -0.025803274500983745, -0.08819102935718184, 4.0, 0.0]", - "[36.6, 5.569447719400802, 2.977179219650423, 0.07503226439564922, 0.12122500926620133, 0.02341088215692976, 0.011808970642818162, 4.0, 0.0]", - "[36.65, 5.576739385010987, 2.977119348611395, 0.0731225885115021, 0.17043916592411484, -0.025803274500983745, -0.08819102935718187, 4.0, 0.0]", - "[36.699999999999996, 5.5840309297183985, 2.9770595984751407, 0.07121315829401378, 0.12122500926620133, 0.023410882156929755, 0.011808970642818134, 4.0, 0.0]", - "[36.75, 5.5913225922126015, 2.976999730552095, 0.07430372491096794, 0.17043916592411487, -0.025803274500983745, 0.11180897064281814, 4.0, 0.0]", - "[36.8, 5.601074965061288, 2.9769399813795254, 0.07739405023459235, 0.21965332258202835, 0.02341088215692975, 0.011808970642818106, 4.0, 0.0]", - "[36.849999999999994, 5.610827214116578, 2.9768801084135608, 0.07548437043503313, 0.1704391659241148, -0.025803274500983745, -0.08819102935718193, 4.0, 0.0]", - "[36.9, 5.618118756897025, 2.97682036020427, 0.07357494413301031, 0.12122500926620133, 0.023410882156929762, 0.01180897064281805, 4.0, 0.0]", - "[36.949999999999996, 5.625410421318222, 2.9767604903542297, 0.07666551466549232, 0.17043916592411487, -0.02580327450098374, 0.11180897064281806, 4.0, 0.0]", - "[37.0, 5.632701963134995, 2.9767007431086134, 0.07975583607367216, 0.12122500926620136, 0.023410882156929762, 0.011808970642818016, 4.0, 0.0]", - "[37.05, 5.639993632599019, 2.9766408682157457, 0.07784615235877079, 0.17043916592411487, -0.02580327450098374, -0.08819102935718201, 4.0, 0.0]", - "[37.099999999999994, 5.647285173452538, 2.976581121933382, 0.07593672997214031, 0.12122500926620133, 0.02341088215692976, 0.011808970642817981, 4.0, 0.0]", - "[37.15, 5.6545768398006935, 2.976521250156383, 0.07402705258848341, 0.17043916592411484, -0.025803274500983738, -0.08819102935718204, 4.0, 0.0]", - "[37.199999999999996, 5.661868383770127, 2.9764615007581074, 0.0721176238705194, 0.12122500926620135, 0.023410882156929765, 0.011808970642817967, 4.0, 0.0]", - "[37.25, 5.6691600470023165, 2.976401632097074, 0.07520819198701711, 0.17043916592411487, -0.025803274500983745, 0.11180897064281797, 4.0, 0.0]", - "[37.3, 5.676451590008066, 2.9763418836624798, 0.07829851581112286, 0.12122500926620138, 0.02341088215692976, 0.011808970642817919, 4.0, 0.0]", - "[37.349999999999994, 5.683743258283146, 2.9762820099585556, 0.07638883451207827, 0.17043916592411487, -0.025803274500983738, -0.08819102935718212, 4.0, 0.0]", - "[37.4, 5.69103480032563, 2.97622226248723, 0.07447940970955355, 0.1212250092662014, 0.02341088215692976, 0.011808970642817912, 4.0, 0.0]", - "[37.449999999999996, 5.6983264654848025, 2.976162391899214, 0.07256973474183526, 0.1704391659241149, -0.025803274500983752, -0.08819102935718212, 4.0, 0.0]", - "[37.49999999999999, 5.705618010643236, 2.976102641311938, 0.07066030360789746, 0.1212250092662014, 0.02341088215692975, 0.011808970642817898, 4.0, 0.0]", - "[37.55, 5.712909672686406, 2.9760427738399255, 0.07375086930837929, 0.1704391659241149, -0.02580327450098375, 0.11180897064281789, 4.0, 0.0]", - "[37.599999999999994, 5.720201216881151, 2.975983024216338, 0.07684119554844408, 0.12122500926620139, 0.023410882156929755, 0.011808970642817843, 4.0, 0.0]", - "[37.64999999999999, 5.727492883967272, 2.975923151701375, 0.07493151666529095, 0.17043916592411487, -0.025803274500983752, -0.08819102935718223, 4.0, 0.0]", - "[37.699999999999996, 5.734784427198732, 2.975863403041071, 0.07302208944683831, 0.12122500926620138, 0.023410882156929744, 0.01180897064281776, 4.0, 0.0]", - "[37.74999999999999, 5.742076091168903, 2.975803533642055, 0.07611265906286717, 0.17043916592411487, -0.025803274500983752, 0.11180897064281775, 4.0, 0.0]", - "[37.8, 5.751828465493532, 2.975743785945431, 0.07920298138746752, 0.21965332258202835, 0.023410882156929737, 0.011808970642817704, 4.0, 0.0]", - "[37.849999999999994, 5.761580713072909, 2.975683911503552, 0.07729329858894658, 0.17043916592411482, -0.025803274500983756, -0.08819102935718234, 4.0, 0.0]", - "[37.89999999999999, 5.768872254377428, 2.9756241647701893, 0.07538387528591596, 0.12122500926620133, 0.023410882156929748, 0.011808970642817655, 4.0, 0.0]", - "[37.949999999999996, 5.776163920274574, 2.9755642934442, 0.07347419881868368, 0.17043916592411482, -0.02580327450098375, -0.08819102935718237, 4.0, 0.0]", - "[37.99999999999999, 5.783455464695027, 2.9755045435949037, 0.07156476918427446, 0.12122500926620129, 0.023410882156929755, 0.011808970642817662, 4.0, 0.0]", - "[38.05, 5.790747127476187, 2.9754446753849018, 0.07465533638430415, 0.1704391659241148, -0.025803274500983752, 0.11180897064281767, 4.0, 0.0]", - "[38.099999999999994, 5.798038670932953, 2.9753849264992924, 0.07774566112484602, 0.12122500926620128, 0.023410882156929748, 0.0118089706428176, 4.0, 0.0]", - "[38.14999999999999, 5.8053303387570345, 2.9753250532463658, 0.07583598074220078, 0.17043916592411476, -0.025803274500983745, -0.08819102935718243, 4.0, 0.0]", - "[38.199999999999996, 5.812621881250524, 2.9752653053240317, 0.07392655502325526, 0.12122500926620125, 0.023410882156929755, 0.011808970642817551, 4.0, 0.0]", - "[38.24999999999999, 5.819913545958675, 2.9752054351870365, 0.07201688097198129, 0.17043916592411473, -0.02580327450098374, -0.08819102935718248, 4.0, 0.0]", - "[38.29999999999999, 5.827205091568139, 2.9751456841487287, 0.07010744892157933, 0.12122500926620121, 0.023410882156929772, 0.011808970642817523, 4.0, 0.0]", - "[38.349999999999994, 5.834496753160267, 2.975085817127757, 0.07319801370557501, 0.17043916592411468, -0.025803274500983728, 0.1118089706428175, 4.0, 0.0]", - "[38.39999999999999, 5.841788297806037, 2.975026067053143, 0.07628834086209521, 0.12122500926620111, 0.023410882156929772, 0.011808970642817433, 4.0, 0.0]", - "[38.44999999999999, 5.849079964441148, 2.9749661949891877, 0.07437866289536202, 0.17043916592411457, -0.02580327450098372, -0.0881910293571826, 4.0, 0.0]", - "[38.49999999999999, 5.856371508123627, 2.9749064458778656, 0.07246923476046885, 0.12122500926620106, 0.023410882156929783, 0.011808970642817412, 4.0, 0.0]", - "[38.54999999999999, 5.86366317164277, 2.9748465769298797, 0.07555980346003445, 0.1704391659241146, -0.025803274500983724, 0.11180897064281742, 4.0, 0.0]", - "[38.599999999999994, 5.870954714361565, 2.9747868287822405, 0.07865012670106622, 0.12122500926620108, 0.02341088215692978, 0.011808970642817336, 4.0, 0.0]", - "[38.64999999999999, 5.878246382923603, 2.974726954791358, 0.07674044481894259, 0.1704391659241146, -0.025803274500983717, -0.0881910293571827, 4.0, 0.0]", - "[38.69999999999999, 5.885537924679131, 2.9746672076069873, 0.07483102059949107, 0.1212250092662011, 0.02341088215692978, 0.011808970642817301, 4.0, 0.0]", - "[38.74999999999999, 5.892829590125254, 2.9746073367320194, 0.0729213450487028, 0.1704391659241146, -0.025803274500983714, -0.08819102935718273, 4.0, 0.0]", - "[38.79999999999999, 5.900121134996739, 2.9745475864316933, 0.07101191449783015, 0.12122500926620108, 0.023410882156929783, 0.011808970642817287, 4.0, 0.0]", - "[38.849999999999994, 5.907412797326856, 2.9744877186727314, 0.07410248078137471, 0.17043916592411457, -0.025803274500983714, 0.11180897064281728, 4.0, 0.0]", - "[38.89999999999999, 5.914704341234647, 2.9744279693360967, 0.07719280643837148, 0.121225009266201, 0.0234108821569298, 0.011808970642817197, 4.0, 0.0]", - "[38.94999999999999, 5.92199600860772, 2.974368096534179, 0.07528312697214622, 0.17043916592411448, -0.02580327450098371, -0.08819102935718284, 4.0, 0.0]", - "[38.99999999999999, 5.929287551552229, 2.9743083481608266, 0.07337370033676055, 0.12122500926620097, 0.0234108821569298, 0.011808970642817163, 4.0, 0.0]", - "[39.04999999999999, 5.936579215809351, 2.9742484784748604, 0.0764642705358537, 0.17043916592411448, -0.02580327450098369, 0.11180897064281717, 4.0, 0.0]", - "[39.09999999999999, 5.946331590420935, 2.974188731065189, 0.07955459227738407, 0.219653322582028, 0.023410882156929807, 0.011808970642817114, 4.0, 0.0]", - "[39.14999999999999, 5.956083837713357, 2.9741288563363546, 0.07764490889578878, 0.17043916592411446, -0.025803274500983693, -0.08819102935718293, 4.0, 0.0]", - "[39.19999999999999, 5.963375378730923, 2.9740691098899457, 0.07573548617582679, 0.12122500926620094, 0.023410882156929803, 0.011808970642817065, 4.0, 0.0]", - "[39.249999999999986, 5.970667044915021, 2.9740092382770063, 0.0738258091255288, 0.17043916592411446, -0.025803274500983693, -0.08819102935718295, 4.0, 0.0]", - "[39.29999999999999, 5.977958589048526, 2.973949488714659, 0.07191638007418076, 0.12122500926620096, 0.023410882156929807, 0.011808970642817038, 4.0, 0.0]", - "[39.34999999999999, 5.985250252116633, 2.9738896202177094, 0.07500694785726948, 0.17043916592411446, -0.025803274500983697, 0.11180897064281706, 4.0, 0.0]", - "[39.39999999999999, 5.99254179528645, 2.97382987161905, 0.07809727201474742, 0.12122500926620097, 0.02341088215692981, 0.011808970642817017, 4.0, 0.0]", - "[39.44999999999999, 5.999833463397484, 2.973769998079172, 0.07618759104903457, 0.17043916592411446, -0.025803274500983697, -0.08819102935718304, 4.0, 0.0]", - "[39.499999999999986, 6.007125005604023, 2.9737102504437876, 0.07427816591315177, 0.12122500926620096, 0.02341088215692981, 0.011808970642816996, 4.0, 0.0]", - "[39.54999999999999, 6.014416670599123, 2.973650380019844, 0.07236849127881745, 0.17043916592411448, -0.025803274500983697, -0.08819102935718307, 4.0, 0.0]", - "[39.59999999999999, 6.021708215921641, 2.973590629268484, 0.07045905981147188, 0.12122500926620094, 0.023410882156929803, 0.01180897064281694, 4.0, 0.0]", - "[39.64999999999999, 6.028999877800715, 2.9735307619605678, 0.07354962517852238, 0.17043916592411446, -0.025803274500983707, 0.11180897064281695, 4.0, 0.0]", - "[39.69999999999999, 6.036291422159536, 2.973471012172902, 0.07663995175198368, 0.12122500926620097, 0.023410882156929796, 0.01180897064281692, 4.0, 0.0]", - "[39.749999999999986, 6.043583089081598, 2.9734111398219976, 0.07473027320218871, 0.17043916592411448, -0.0258032745009837, -0.08819102935718312, 4.0, 0.0]", - "[39.79999999999999, 6.05087463247713, 2.973351390997623, 0.07282084565035302, 0.12122500926620097, 0.02341088215692981, 0.011808970642816871, 4.0, 0.0]", - "[39.84999999999999, 6.0581662962832175, 2.973291521762692, 0.07591141493297424, 0.17043916592411448, -0.025803274500983683, 0.11180897064281689, 4.0, 0.0]", - "[39.899999999999984, 6.065457838715064, 2.9732317739020018, 0.07900173759094589, 0.12122500926620094, 0.023410882156929817, 0.01180897064281683, 4.0, 0.0]", - "[39.94999999999999, 6.072749507564052, 2.9731718996241714, 0.0770920551257589, 0.17043916592411446, -0.025803274500983693, -0.08819102935718326, 4.0, 0.0]", - "[39.999999999999986, 6.08004104903263, 2.973112152726748, 0.07518263148936617, 0.12122500926620097, 0.023410882156929803, 0.011808970642816746, 4.0, 0.0]", - "[40.04999999999998, 6.087332714765702, 2.973052281564833, 0.07327295535552127, 0.17043916592411446, -0.02580327450098369, -0.08819102935718329, 4.0, 0.0]", - "[40.09999999999999, 6.09462425935024, 2.972992531551452, 0.0713635253877015, 0.12122500926620089, 0.023410882156929814, 0.011808970642816705, 4.0, 0.0]", - "[40.149999999999984, 6.1019159219673025, 2.9729326635055466, 0.07445409225429765, 0.1704391659241144, -0.02580327450098369, 0.1118089706428167, 4.0, 0.0]", - "[40.19999999999999, 6.111668294938866, 2.972872914455858, 0.0775444173282391, 0.21965332258202788, 0.023410882156929807, 0.011808970642816663, 4.0, 0.0]", - "[40.249999999999986, 6.121420543871256, 2.972813041366991, 0.075634737278954, 0.1704391659241144, -0.025803274500983703, -0.0881910293571834, 4.0, 0.0]", - "[40.29999999999998, 6.128712086528818, 2.972753293280586, 0.07372531122662586, 0.12122500926620089, 0.023410882156929807, 0.01180897064281658, 4.0, 0.0]", - "[40.34999999999999, 6.136003751072886, 2.9726934233076743, 0.07681588200877457, 0.1704391659241144, -0.025803274500983697, 0.11180897064281659, 4.0, 0.0]", - "[40.399999999999984, 6.143295292766767, 2.972633676184951, 0.07990620316724485, 0.12122500926620088, 0.0234108821569298, 0.011808970642816538, 4.0, 0.0]", - "[40.44999999999999, 6.150586962353706, 2.972573801169168, 0.07799651920258843, 0.17043916592411437, -0.025803274500983693, -0.08819102935718351, 4.0, 0.0]", - "[40.499999999999986, 6.157878503084326, 2.9725140550097033, 0.07608709706568091, 0.12122500926620085, 0.023410882156929814, 0.01180897064281651, 4.0, 0.0]", - "[40.54999999999998, 6.165170169555366, 2.9724541831098192, 0.07417741943233032, 0.17043916592411434, -0.02580327450098369, -0.08819102935718354, 4.0, 0.0]", - "[40.59999999999999, 6.172461713401929, 2.972394433834414, 0.07226799096403137, 0.12122500926620086, 0.023410882156929814, 0.011808970642816469, 4.0, 0.0]", - "[40.649999999999984, 6.1797533767569774, 2.9723345650505224, 0.07535855933016809, 0.17043916592411437, -0.025803274500983693, 0.11180897064281645, 4.0, 0.0]", - "[40.69999999999998, 6.187044919639852, 2.972274816738807, 0.07844888290459469, 0.12122500926620089, 0.02341088215692981, 0.011808970642816365, 4.0, 0.0]", - "[40.749999999999986, 6.1943365880378325, 2.972214942911984, 0.0765392013558284, 0.1704391659241144, -0.025803274500983693, -0.08819102935718368, 4.0, 0.0]", - "[40.79999999999998, 6.201628129957431, 2.9721551955635426, 0.07462977680299528, 0.12122500926620092, 0.023410882156929807, 0.011808970642816337, 4.0, 0.0]", - "[40.84999999999998, 6.208919795239473, 2.9720953248526563, 0.07272010158561262, 0.1704391659241144, -0.025803274500983683, -0.0881910293571837, 4.0, 0.0]", - "[40.899999999999984, 6.216211340275049, 2.972035574388237, 0.07081067070131238, 0.12122500926620092, 0.023410882156929817, 0.011808970642816274, 4.0, 0.0]", - "[40.94999999999998, 6.223503002441063, 2.971975706793379, 0.07390123665140756, 0.1704391659241144, -0.025803274500983683, 0.11180897064281628, 4.0, 0.0]", - "[40.999999999999986, 6.230794546512942, 2.971915957292655, 0.07699156264182144, 0.12122500926620092, 0.023410882156929835, 0.011808970642816212, 4.0, 0.0]", - "[41.04999999999998, 6.238086213721946, 2.9718560846548088, 0.0750818835089777, 0.17043916592411443, -0.025803274500983672, -0.08819102935718381, 4.0, 0.0]", - "[41.09999999999998, 6.245377756830536, 2.9717963361173743, 0.07317245654018753, 0.12122500926620089, 0.02341088215692983, 0.011808970642816191, 4.0, 0.0]", - "[41.149999999999984, 6.252669420923565, 2.971736466595502, 0.07626302640585336, 0.1704391659241144, -0.025803274500983672, 0.1118089706428162, 4.0, 0.0]", - "[41.19999999999998, 6.259960963068471, 2.971676719021754, 0.07935334848077738, 0.12122500926620092, 0.02341088215692983, 0.01180897064281615, 4.0, 0.0]", - "[41.249999999999986, 6.267252632204401, 2.97161684445698, 0.07744366543254097, 0.17043916592411446, -0.02580327450098368, -0.08819102935718393, 4.0, 0.0]", - "[41.29999999999998, 6.2745441733860385, 2.9715570978464982, 0.0755342423791941, 0.12122500926620096, 0.02341088215692982, 0.011808970642816101, 4.0, 0.0]", - "[41.34999999999998, 6.28183583940605, 2.9714972263976427, 0.07362456566230444, 0.17043916592411443, -0.02580327450098368, -0.08819102935718395, 4.0, 0.0]", - "[41.399999999999984, 6.289127383703649, 2.9714374766711997, 0.07171513627752664, 0.12122500926620089, 0.02341088215692983, 0.011808970642816045, 4.0, 0.0]", - "[41.44999999999999, 6.29641904660765, 2.971377608338355, 0.07480570372716427, 0.17043916592411437, -0.02580327450098366, 0.11180897064281606, 4.0, 0.0]", - "[41.499999999999986, 6.306171419866154, 2.9713178595756062, 0.07789602821806181, 0.2196533225820279, 0.023410882156929838, 0.01180897064281601, 4.0, 0.0]", - "[41.54999999999998, 6.315923668511603, 2.9712579861998, 0.07598634758573194, 0.17043916592411434, -0.02580327450098366, -0.08819102935718401, 4.0, 0.0]", - "[41.59999999999999, 6.323215210882226, 2.9711982384003326, 0.07407692211644537, 0.12122500926620086, 0.02341088215692984, 0.011808970642815997, 4.0, 0.0]", - "[41.64999999999999, 6.330506875713234, 2.9711383681404824, 0.07216724781553732, 0.17043916592411434, -0.025803274500983665, -0.08819102935718406, 4.0, 0.0]", - "[41.69999999999999, 6.337798421199854, 2.9710786172250194, 0.07025781601474498, 0.12122500926620083, 0.023410882156929838, 0.011808970642815969, 4.0, 0.0]", - "[41.749999999999986, 6.345090082914814, 2.971018750081216, 0.07334838104832823, 0.1704391659241143, -0.025803274500983648, 0.11180897064281597, 4.0, 0.0]", - "[41.79999999999999, 6.352381627437733, 2.970959000129452, 0.07643870795522656, 0.12122500926620079, 0.023410882156929852, 0.011808970642815893, 4.0, 0.0]", - "[41.849999999999994, 6.359673294195711, 2.9708991279426296, 0.07452902973883517, 0.1704391659241143, -0.02580327450098364, -0.08819102935718415, 4.0, 0.0]", - "[41.89999999999999, 6.366964837755335, 2.970839378954162, 0.07261960185357443, 0.12122500926620076, 0.023410882156929866, 0.011808970642815858, 4.0, 0.0]", - "[41.94999999999999, 6.374256501397322, 2.9707795098833336, 0.07571017080274912, 0.1704391659241143, -0.02580327450098364, 0.11180897064281586, 4.0, 0.0]", - "[41.99999999999999, 6.3815480439932575, 2.9707197618585557, 0.07880049379413565, 0.1212250092662008, 0.02341088215692986, 0.011808970642815816, 4.0, 0.0]", - "[42.05, 6.388839712678176, 2.970659887744795, 0.07689081166232861, 0.1704391659241143, -0.025803274500983648, -0.08819102935718426, 4.0, 0.0]", - "[42.099999999999994, 6.396131254310835, 2.9706001406832905, 0.07498138769253342, 0.12122500926620078, 0.023410882156929852, 0.011808970642815733, 4.0, 0.0]", - "[42.14999999999999, 6.403422919879816, 2.970540269685468, 0.07307171189211326, 0.1704391659241143, -0.025803274500983638, -0.08819102935718429, 4.0, 0.0]", - "[42.199999999999996, 6.410714464628456, 2.9704805195079835, 0.07116228159084842, 0.12122500926620075, 0.02341088215692986, 0.01180897064281572, 4.0, 0.0]", - "[42.25, 6.418006127081408, 2.97042065162619, 0.07425284812397917, 0.17043916592411423, -0.02580327450098364, 0.11180897064281572, 4.0, 0.0]", - "[42.3, 6.42529767086635, 2.9703609024124025, 0.07734317353135606, 0.12122500926620074, 0.023410882156929876, 0.011808970642815643, 4.0, 0.0]", - "[42.349999999999994, 6.432589338362289, 2.9703010294876195, 0.07543349381547519, 0.17043916592411423, -0.02580327450098363, -0.0881910293571844, 4.0, 0.0]", - "[42.4, 6.439880881183945, 2.970241281237121, 0.07352406742971977, 0.12122500926620072, 0.023410882156929883, 0.011808970642815622, 4.0, 0.0]", - "[42.45, 6.447172545563911, 2.9701814114283134, 0.07661463787842028, 0.17043916592411423, -0.025803274500983624, 0.11180897064281564, 4.0, 0.0]", - "[42.5, 6.454464087421879, 2.9701216641415007, 0.07970495937030783, 0.12122500926620078, 0.02341088215692988, 0.011808970642815594, 4.0, 0.0]", - "[42.55, 6.461755756844748, 2.9700617892897894, 0.07779527573903464, 0.1704391659241143, -0.02580327450098363, -0.08819102935718445, 4.0, 0.0]", - "[42.6, 6.469047297739451, 2.9700020429662417, 0.07588585326872195, 0.12122500926620079, 0.023410882156929866, 0.011808970642815539, 4.0, 0.0]", - "[42.650000000000006, 6.476338964046398, 2.9699421712304517, 0.07397617596879831, 0.17043916592411434, -0.025803274500983624, -0.08819102935718448, 4.0, 0.0]", - "[42.7, 6.483630508057063, 2.969882421790943, 0.07206674716705253, 0.12122500926620083, 0.023410882156929883, 0.011808970642815532, 4.0, 0.0]", - "[42.75, 6.4909221712479965, 2.9698225531711637, 0.07515731519972255, 0.17043916592411434, -0.025803274500983627, 0.11180897064281556, 4.0, 0.0]", - "[42.800000000000004, 6.500674544793436, 2.9697628046953493, 0.0782476391075865, 0.2196533225820278, 0.023410882156929873, 0.011808970642815518, 4.0, 0.0]", - "[42.85000000000001, 6.510426793151951, 2.969702931032608, 0.07633795789222343, 0.17043916592411434, -0.025803274500983624, -0.08819102935718454, 4.0, 0.0]", - "[42.900000000000006, 6.5177183352356405, 2.969643183520075, 0.07442853300596781, 0.12122500926620086, 0.02341088215692987, 0.01180897064281547, 4.0, 0.0]", - "[42.95, 6.525010000353582, 2.9695833129732914, 0.0725188581220286, 0.17043916592411434, -0.025803274500983627, -0.08819102935718456, 4.0, 0.0]", - "[43.00000000000001, 6.532301545553271, 2.9695235623447616, 0.07060942690426587, 0.12122500926620085, 0.02341088215692988, 0.011808970642815456, 4.0, 0.0]", - "[43.05000000000001, 6.539593207555163, 2.9694636949140243, 0.07369999252087944, 0.17043916592411432, -0.025803274500983617, 0.11180897064281545, 4.0, 0.0]", - "[43.10000000000001, 6.546884751791151, 2.9694039452491947, 0.0767903188447468, 0.1212250092662008, 0.023410882156929887, 0.011808970642815407, 4.0, 0.0]", - "[43.150000000000006, 6.554176418836065, 2.9693440727754394, 0.07488064004532524, 0.17043916592411432, -0.02580327450098361, -0.08819102935718465, 4.0, 0.0]", - "[43.20000000000001, 6.561467962108757, 2.969284324073904, 0.07297121274309294, 0.1212250092662008, 0.023410882156929887, 0.011808970642815358, 4.0, 0.0]", - "[43.250000000000014, 6.568759626037674, 2.9692244547161417, 0.07606178227529663, 0.17043916592411432, -0.025803274500983606, 0.11180897064281536, 4.0, 0.0]", - "[43.30000000000001, 6.576051168346676, 2.969164706978297, 0.07915210468365332, 0.1212250092662008, 0.023410882156929894, 0.011808970642815296, 4.0, 0.0]", - "[43.35000000000001, 6.5833428373185265, 2.9691048325776026, 0.07724242196881705, 0.17043916592411432, -0.025803274500983606, -0.08819102935718476, 4.0, 0.0]", - "[43.40000000000001, 6.590634378664256, 2.969045085803031, 0.07533299858204917, 0.12122500926620079, 0.023410882156929904, 0.011808970642815261, 4.0, 0.0]", - "[43.45000000000002, 6.597926044520168, 2.9689852145182765, 0.07342332219860125, 0.17043916592411434, -0.025803274500983603, -0.08819102935718479, 4.0, 0.0]", - "[43.500000000000014, 6.605217588981876, 2.9689254646277248, 0.07151389248036276, 0.12122500926620083, 0.0234108821569299, 0.011808970642815213, 4.0, 0.0]", - "[43.55000000000001, 6.612509251721757, 2.9688655964589996, 0.07460445959652075, 0.17043916592411432, -0.02580327450098359, 0.1118089706428152, 4.0, 0.0]", - "[43.600000000000016, 6.619800795219767, 2.968805847532145, 0.07769478442086997, 0.12122500926620086, 0.02341088215692992, 0.011808970642815143, 4.0, 0.0]", - "[43.65000000000002, 6.627092463002639, 2.9687459743204294, 0.0757851041219626, 0.17043916592411437, -0.02580327450098358, -0.08819102935718492, 4.0, 0.0]", - "[43.70000000000002, 6.634384005537364, 2.968686226356862, 0.07387567831923217, 0.12122500926620092, 0.023410882156929918, 0.011808970642815067, 4.0, 0.0]", - "[43.750000000000014, 6.6416756702042585, 2.968626356261123, 0.07196600435178746, 0.17043916592411443, -0.025803274500983582, -0.08819102935718498, 4.0, 0.0]", - "[43.80000000000002, 6.648967215854998, 2.96856660518154, 0.07005657221751406, 0.12122500926620093, 0.023410882156929918, 0.011808970642815025, 4.0, 0.0]", - "[43.85000000000002, 6.656258877405831, 2.968506738201865, 0.07314713691759847, 0.1704391659241144, -0.02580327450098358, 0.11180897064281503, 4.0, 0.0]", - "[43.90000000000002, 6.666011249311207, 2.968446988085985, 0.07623746415796942, 0.2196533225820279, 0.02341088215692992, 0.01180897064281497, 4.0, 0.0]", - "[43.95000000000002, 6.67576349930974, 2.9683871160632633, 0.07432778627502003, 0.1704391659241144, -0.02580327450098358, -0.08819102935718509, 4.0, 0.0]", - "[44.00000000000002, 6.683055043033475, 2.9683273669106867, 0.07241835805630005, 0.12122500926620088, 0.023410882156929918, 0.011808970642814928, 4.0, 0.0]", - "[44.050000000000026, 6.690346706511342, 2.968267498003975, 0.0755089266719967, 0.17043916592411437, -0.025803274500983586, 0.11180897064281495, 4.0, 0.0]", - "[44.10000000000002, 6.697638249271381, 2.9682077498150923, 0.07859924999683356, 0.12122500926620092, 0.023410882156929918, 0.01180897064281488, 4.0, 0.0]", - "[44.15000000000002, 6.70492991779221, 2.9706087119804567, 0.07668956819844615, 0.17043916592411446, 0.07262503881484345, -0.08819102935718517, 4.0, 0.0]", - "[44.200000000000024, 6.71222145958896, 2.9730095474217455, 0.07478014389522879, 0.12122500926620092, 0.023410882156929935, 0.011808970642814817, 4.0, 0.0]", - "[44.25000000000003, 6.719513124993847, 2.972949676588016, 0.07287046842823584, 0.1704391659241144, -0.025803274500983554, -0.0881910293571852, 4.0, 0.0]", - "[44.300000000000026, 6.726804669906591, 2.9728899262464292, 0.07096103779352364, 0.12122500926620088, 0.023410882156929946, 0.011808970642814831, 4.0, 0.0]", - "[44.35000000000002, 6.734096332195429, 2.9728300585287486, 0.07405160399318689, 0.17043916592411434, -0.02580327450098356, 0.11180897064281484, 4.0, 0.0]", - "[44.40000000000003, 6.741387876144471, 2.972770309150862, 0.07714192973400119, 0.12122500926620086, 0.02341088215692994, 0.011808970642814796, 4.0, 0.0]", - "[44.45000000000003, 6.74867954347633, 2.9727104363901597, 0.07523225035152453, 0.17043916592411437, -0.025803274500983558, -0.08819102935718523, 4.0, 0.0]", - "[44.50000000000003, 6.755971086462077, 2.972650687975569, 0.07332282363234387, 0.12122500926620086, 0.023410882156929942, 0.011808970642814783, 4.0, 0.0]", - "[44.550000000000026, 6.7632627506779395, 2.972590818330864, 0.07641339374759802, 0.17043916592411437, -0.02580327450098356, 0.11180897064281478, 4.0, 0.0]", - "[44.60000000000003, 6.7705542926999955, 2.972531070879964, 0.07950371557290047, 0.12122500926620089, 0.023410882156929942, 0.011808970642814741, 4.0, 0.0]", - "[44.650000000000034, 6.777845961958793, 2.9724711961923234, 0.07759403227500743, 0.1704391659241144, -0.02580327450098356, -0.08819102935718531, 4.0, 0.0]", - "[44.70000000000003, 6.785137503017576, 2.9724114497046954, 0.07568460947129252, 0.12122500926620086, 0.023410882156929935, 0.011808970642814692, 4.0, 0.0]", - "[44.75000000000003, 6.792429169160432, 2.9723515781329968, 0.07377493250479306, 0.17043916592411434, -0.02580327450098356, -0.08819102935718534, 4.0, 0.0]", - "[44.80000000000003, 6.799720713335199, 2.972291828529387, 0.07186550336960304, 0.12122500926620083, 0.023410882156929946, 0.011808970642814637, 4.0, 0.0]", - "[44.85000000000004, 6.807012376362023, 2.97223196007372, 0.07495607106880872, 0.17043916592411434, -0.025803274500983558, 0.11180897064281464, 4.0, 0.0]", - "[44.900000000000034, 6.816764749743365, 2.9721722114338087, 0.07804639531010704, 0.21965332258202785, 0.02341088215692995, 0.011808970642814602, 4.0, 0.0]", - "[44.95000000000003, 6.826516998265958, 2.9721123379351484, 0.07613671442814539, 0.1704391659241144, -0.025803274500983537, -0.08819102935718542, 4.0, 0.0]", - "[45.000000000000036, 6.833808540513738, 2.9720525902585253, 0.07422728920846709, 0.12122500926620089, 0.023410882156929966, 0.011808970642814581, 4.0, 0.0]", - "[45.05000000000004, 6.841100205467577, 2.9719927198758427, 0.07231761465797147, 0.17043916592411437, -0.025803274500983544, -0.08819102935718548, 4.0, 0.0]", - "[45.10000000000004, 6.848391750831374, 2.9719329690832015, 0.07040818310674614, 0.12122500926620083, 0.023410882156929956, 0.011808970642814554, 4.0, 0.0]", - "[45.150000000000034, 6.855683412669149, 2.9718731018165845, 0.07349874838987804, 0.17043916592411432, -0.025803274500983537, 0.11180897064281456, 4.0, 0.0]", - "[45.20000000000004, 6.862974957069242, 2.9718133519876475, 0.07658907504719856, 0.1212250092662008, 0.02341088215692997, 0.011808970642814512, 4.0, 0.0]", - "[45.25000000000004, 6.870266623950063, 2.9717534796779823, 0.0746793965811986, 0.1704391659241143, -0.02580327450098353, -0.08819102935718554, 4.0, 0.0]", - "[45.30000000000004, 6.877558167386855, 2.971693730812347, 0.07276996894552475, 0.12122500926620083, 0.023410882156929966, 0.011808970642814443, 4.0, 0.0]", - "[45.35000000000004, 6.884849831151664, 2.9716338616186957, 0.07586053814426688, 0.17043916592411434, -0.02580327450098354, 0.11180897064281445, 4.0, 0.0]", - "[45.40000000000004, 6.892141373624761, 2.971574113716756, 0.07895086088605525, 0.1212250092662008, 0.023410882156929956, 0.011808970642814366, 4.0, 0.0]", - "[45.450000000000045, 6.899433042432531, 2.9715142394801406, 0.07704117850461763, 0.17043916592411432, -0.025803274500983547, -0.0881910293571857, 4.0, 0.0]", - "[45.50000000000004, 6.906724583942351, 2.9714544925414788, 0.07513175478443018, 0.12122500926620082, 0.023410882156929953, 0.01180897064281429, 4.0, 0.0]", - "[45.55000000000004, 6.914016249634162, 2.9713946214208242, 0.0732220787344227, 0.17043916592411434, -0.025803274500983554, -0.08819102935718576, 4.0, 0.0]", - "[45.600000000000044, 6.921307794259981, 2.9713348713661634, 0.07131264868272481, 0.12122500926620083, 0.023410882156929942, 0.011808970642814234, 4.0, 0.0]", - "[45.65000000000005, 6.928599456835744, 2.9712750033615567, 0.07440321546540435, 0.17043916592411434, -0.02580327450098356, 0.11180897064281425, 4.0, 0.0]", - "[45.700000000000045, 6.93589100049786, 2.9712152542705974, 0.07749354062320359, 0.12122500926620082, 0.023410882156929953, 0.011808970642814186, 4.0, 0.0]", - "[45.75000000000004, 6.943182668116643, 2.971155381222971, 0.07558386065771466, 0.17043916592411434, -0.02580327450098355, -0.08819102935718587, 4.0, 0.0]", - "[45.80000000000005, 6.950474210815467, 2.9710956330953047, 0.07367443452154586, 0.12122500926620082, 0.023410882156929953, 0.01180897064281411, 4.0, 0.0]", - "[45.85000000000005, 6.9577658753182545, 2.971035763163674, 0.07176476088755941, 0.17043916592411432, -0.02580327450098356, -0.08819102935718598, 4.0, 0.0]", - "[45.90000000000005, 6.965057421133112, 2.970976011919973, 0.06985532841980972, 0.12122500926620082, 0.02341088215692995, 0.011808970642814026, 4.0, 0.0]", - "[45.950000000000045, 6.972349082519818, 2.9709161451044244, 0.07294589278639967, 0.17043916592411432, -0.025803274500983554, 0.11180897064281403, 4.0, 0.0]", - "[46.00000000000005, 6.9796406273709675, 2.9708563948244313, 0.07603622036023802, 0.12122500926620079, 0.02341088215692996, 0.011808970642813964, 4.0, 0.0]", - "[46.050000000000054, 6.986932293800746, 2.970796522965809, 0.07412654281072736, 0.17043916592411426, -0.025803274500983547, -0.08819102935718612, 4.0, 0.0]", - "[46.10000000000005, 6.994223837688589, 2.9707367736491226, 0.07221711425854843, 0.12122500926620078, 0.02341088215692996, 0.011808970642813901, 4.0, 0.0]", - "[46.15000000000005, 7.001515501002336, 2.9706769049065302, 0.07530768254076733, 0.17043916592411426, -0.025803274500983544, 0.11180897064281389, 4.0, 0.0]", - "[46.20000000000005, 7.011267874670604, 2.9706171565535437, 0.07839800619905388, 0.21965332258202774, 0.02341088215692997, 0.011808970642813839, 4.0, 0.0]", - "[46.25000000000006, 7.021020122906276, 2.9705572827679605, 0.07648832473408362, 0.17043916592411423, -0.025803274500983533, -0.0881910293571862, 4.0, 0.0]", - "[46.300000000000054, 7.028311664867133, 2.97049753537826, 0.07457890009741362, 0.12122500926620075, 0.023410882156929977, 0.011808970642813804, 4.0, 0.0]", - "[46.35000000000005, 7.035603330107895, 2.970437664708653, 0.07266922496390761, 0.17043916592411423, -0.02580327450098352, -0.08819102935718626, 4.0, 0.0]", - "[46.400000000000055, 7.0428948751847695, 2.9703779142029356, 0.07075979399569284, 0.12122500926620076, 0.023410882156929977, 0.011808970642813735, 4.0, 0.0]", - "[46.45000000000006, 7.050186537309468, 2.9703180466493935, 0.0738503598618376, 0.17043916592411423, -0.025803274500983523, 0.11180897064281373, 4.0, 0.0]", - "[46.50000000000006, 7.057478081422636, 2.9702582971073817, 0.07694068593614704, 0.12122500926620078, 0.023410882156929977, 0.011808970642813686, 4.0, 0.0]", - "[46.550000000000054, 7.064769748590381, 2.970198424510793, 0.07503100688713947, 0.1704391659241143, -0.02580327450098352, -0.08819102935718637, 4.0, 0.0]", - "[46.60000000000006, 7.07206129174025, 2.97013867593208, 0.07312157983447333, 0.12122500926620075, 0.023410882156929987, 0.011808970642813638, 4.0, 0.0]", - "[46.65000000000006, 7.079352955791982, 2.970078806451505, 0.0762121496162254, 0.17043916592411426, -0.02580327450098351, 0.11180897064281364, 4.0, 0.0]", - "[46.70000000000006, 7.086644497978155, 2.9700190588364874, 0.07930247177500548, 0.12122500926620075, 0.023410882156929994, 0.011808970642813603, 4.0, 0.0]", - "[46.75000000000006, 7.093936167072849, 2.9699591843129522, 0.07739278881056294, 0.1704391659241143, -0.025803274500983527, -0.08819102935718648, 4.0, 0.0]", - "[46.80000000000006, 7.101227708295746, 2.9698994376612107, 0.07548336567338036, 0.12122500926620078, 0.02341088215692997, 0.011808970642813499, 4.0, 0.0]", - "[46.850000000000065, 7.10851937427448, 2.9698395662536328, 0.07357368904036579, 0.17043916592411432, -0.025803274500983547, -0.08819102935718659, 4.0, 0.0]", - "[46.90000000000006, 7.115810918613377, 2.969779816485893, 0.07166425957167531, 0.1212250092662008, 0.023410882156929963, 0.011808970642813388, 4.0, 0.0]", - "[46.95000000000006, 7.123102581476064, 2.9697199481943626, 0.07475482693736468, 0.1704391659241143, -0.02580327450098354, 0.1118089706428134, 4.0, 0.0]", - "[47.000000000000064, 7.130394124851258, 2.9696601993903253, 0.07784515151215603, 0.12122500926620078, 0.023410882156929966, 0.011808970642813325, 4.0, 0.0]", - "[47.05000000000007, 7.137685792756961, 2.969600326055779, 0.07593547096366297, 0.1704391659241143, -0.025803274500983547, -0.08819102935718676, 4.0, 0.0]", - "[47.100000000000065, 7.144977335168864, 2.9695405782150326, 0.07402604541049851, 0.12122500926620075, 0.02341088215692996, 0.011808970642813235, 4.0, 0.0]", - "[47.15000000000006, 7.152268999958572, 2.96948070799648, 0.07211637119350525, 0.17043916592411423, -0.025803274500983544, -0.08819102935718681, 4.0, 0.0]", - "[47.20000000000007, 7.1595605454865066, 2.9694209570397017, 0.07020693930876294, 0.12122500926620071, 0.023410882156929963, 0.011808970642813194, 4.0, 0.0]", - "[47.25000000000007, 7.166852207160136, 2.9693610899372294, 0.07329750425836297, 0.1704391659241142, -0.02580327450098354, 0.1118089706428132, 4.0, 0.0]", - "[47.30000000000007, 7.176604579188321, 2.969301339944159, 0.0763878312491935, 0.21965332258202774, 0.023410882156929973, 0.011808970642813145, 4.0, 0.0]", - "[47.350000000000065, 7.186356829064032, 2.9692414677986148, 0.07447815311667791, 0.17043916592411426, -0.025803274500983523, -0.0881910293571869, 4.0, 0.0]", - "[47.40000000000007, 7.193648372664953, 2.9691817187688505, 0.07256872514750538, 0.12122500926620075, 0.023410882156929977, 0.011808970642813096, 4.0, 0.0]", - "[47.450000000000074, 7.200940036265625, 2.969121849739335, 0.0756592940127331, 0.17043916592411426, -0.025803274500983527, 0.11180897064281309, 4.0, 0.0]", - "[47.50000000000007, 7.208231578902848, 2.9690621016732694, 0.07874961708801267, 0.12122500926620078, 0.02341088215692997, 0.01180897064281302, 4.0, 0.0]", - "[47.55000000000007, 7.215523247546506, 2.9690022276007664, 0.07683993504004058, 0.17043916592411426, -0.02580327450098353, -0.08819102935718703, 4.0, 0.0]", - "[47.60000000000007, 7.222814789220446, 2.9689424804979847, 0.07493051098637142, 0.12122500926620078, 0.023410882156929977, 0.011808970642812971, 4.0, 0.0]", - "[47.65000000000008, 7.230106454748129, 2.968882609541458, 0.07302083526986194, 0.1704391659241143, -0.025803274500983523, -0.08819102935718709, 4.0, 0.0]", - "[47.700000000000074, 7.237397999538082, 2.9688228593226613, 0.0711114048846513, 0.1212250092662008, 0.02341088215692998, 0.011808970642812937, 4.0, 0.0]", - "[47.75000000000007, 7.244689661949703, 2.968762991482198, 0.07420197133380307, 0.1704391659241143, -0.025803274500983523, 0.11180897064281295, 4.0, 0.0]", - "[47.800000000000075, 7.251981205775952, 2.9687032422271065, 0.07729229682510799, 0.12122500926620075, 0.023410882156929977, 0.011808970642812881, 4.0, 0.0]", - "[47.85000000000008, 7.259272873230614, 2.9686433693436, 0.07538261719310023, 0.17043916592411423, -0.02580327450098353, -0.08819102935718717, 4.0, 0.0]", - "[47.90000000000008, 7.266564416093566, 2.968583621051806, 0.07347319072343485, 0.12122500926620078, 0.023410882156929977, 0.011808970642812833, 4.0, 0.0]", - "[47.950000000000074, 7.273856080432218, 2.9685237512843115, 0.07656376108819048, 0.1704391659241143, -0.025803274500983527, 0.11180897064281284, 4.0, 0.0]", - "[48.00000000000008, 7.281147622331473, 2.9684640039562127, 0.07965408266396944, 0.12122500926620079, 0.023410882156929973, 0.011808970642812805, 4.0, 0.0]", - "[48.05000000000008, 7.288439291713081, 2.970864966982359, 0.07774439911653004, 0.17043916592411432, 0.07262503881484349, -0.08819102935718728, 4.0, 0.0]", - "[48.10000000000008, 7.295730832649052, 2.9732658015628672, 0.0758349765623626, 0.1212250092662008, 0.023410882156929984, 0.011808970642812722, 4.0, 0.0]", - "[48.15000000000008, 7.30302249891472, 2.973205929868356, 0.07392529934631498, 0.17043916592411426, -0.025803274500983516, -0.08819102935718731, 4.0, 0.0]", - "[48.20000000000008, 7.310314042966682, 2.973146180387551, 0.07201587046065598, 0.12122500926620076, 0.023410882156929994, 0.011808970642812715, 4.0, 0.0]", - "[48.250000000000085, 7.317605706116303, 2.9730863118090864, 0.07510643840937752, 0.17043916592411426, -0.025803274500983513, 0.11180897064281273, 4.0, 0.0]", - "[48.30000000000008, 7.324897249204563, 2.973026563291984, 0.07819676240113566, 0.12122500926620072, 0.02341088215692999, 0.011808970642812687, 4.0, 0.0]", - "[48.35000000000008, 7.332188917397203, 2.972966689670503, 0.07628708126960984, 0.1704391659241142, -0.02580327450098351, -0.08819102935718734, 4.0, 0.0]", - "[48.400000000000084, 7.3394804595221705, 2.9729069421166905, 0.07437765629947636, 0.1212250092662007, 0.023410882156929987, 0.011808970642812666, 4.0, 0.0]", - "[48.45000000000009, 7.346772124598814, 2.9728470716112034, 0.07246798149945159, 0.17043916592411423, -0.025803274500983516, -0.08819102935718737, 4.0, 0.0]", - "[48.500000000000085, 7.354063669839815, 2.9727873209413582, 0.0705585501977395, 0.12122500926620072, 0.023410882156929987, 0.011808970642812652, 4.0, 0.0]", - "[48.55000000000008, 7.361355331800378, 2.9727274535519523, 0.07364911573037068, 0.17043916592411423, -0.025803274500983527, 0.11180897064281267, 4.0, 0.0]", - "[48.60000000000009, 7.371107704115496, 2.972667703845816, 0.07673944213816944, 0.21965332258202774, 0.023410882156929977, 0.011808970642812604, 4.0, 0.0]", - "[48.65000000000009, 7.380859953704275, 2.9726078314133386, 0.074829763422623, 0.1704391659241143, -0.02580327450098352, -0.08819102935718742, 4.0, 0.0]", - "[48.70000000000009, 7.388151497018263, 2.9725480826705075, 0.07292033603647975, 0.12122500926620082, 0.02341088215692999, 0.011808970642812583, 4.0, 0.0]", - "[48.750000000000085, 7.3954431609058675, 2.9724882133540595, 0.07601090548473752, 0.17043916592411432, -0.02580327450098351, 0.11180897064281259, 4.0, 0.0]", - "[48.80000000000009, 7.402734703256157, 2.9724284655749282, 0.07910122797698618, 0.12122500926620083, 0.02341088215692998, 0.011808970642812534, 4.0, 0.0]", - "[48.850000000000094, 7.410026372186752, 2.9723685912154916, 0.07719154534598374, 0.17043916592411434, -0.02580327450098352, -0.0881910293571875, 4.0, 0.0]", - "[48.90000000000009, 7.417317913573759, 2.972308844399642, 0.07528212187534325, 0.12122500926620083, 0.023410882156929973, 0.0118089706428125, 4.0, 0.0]", - "[48.95000000000009, 7.424609579388373, 2.9722489731561836, 0.07337244557580452, 0.17043916592411437, -0.02580327450098353, -0.08819102935718756, 4.0, 0.0]", - "[49.00000000000009, 7.431901123891394, 2.9721892232243197, 0.07146301577362196, 0.12122500926620086, 0.02341088215692997, 0.011808970642812416, 4.0, 0.0]", - "[49.0500000000001, 7.439192786589947, 2.9721293550969228, 0.0745535828058028, 0.17043916592411437, -0.02580327450098353, 0.11180897064281242, 4.0, 0.0]", - "[49.100000000000094, 7.446484330129263, 2.972069606128765, 0.07764390771407811, 0.12122500926620085, 0.023410882156929973, 0.011808970642812354, 4.0, 0.0]", - "[49.15000000000009, 7.453775997870859, 2.972009732958326, 0.07573422749904175, 0.17043916592411434, -0.025803274500983527, -0.0881910293571877, 4.0, 0.0]", - "[49.200000000000095, 7.461067540446877, 2.971949984953464, 0.07382480161240361, 0.12122500926620085, 0.023410882156929977, 0.011808970642812305, 4.0, 0.0]", - "[49.2500000000001, 7.468359205072461, 2.971890114899036, 0.07191512772890118, 0.17043916592411432, -0.02580327450098353, -0.08819102935718776, 4.0, 0.0]", - "[49.3000000000001, 7.475650750764528, 2.9718303637781247, 0.07000569551065258, 0.12122500926620082, 0.02341088215692996, 0.01180897064281225, 4.0, 0.0]", - "[49.350000000000094, 7.482942412274016, 2.9717704968397936, 0.07309626012673055, 0.17043916592411432, -0.02580327450098353, 0.11180897064281226, 4.0, 0.0]", - "[49.4000000000001, 7.490233957002373, 2.9717107466825943, 0.07618658745105969, 0.12122500926620082, 0.023410882156929966, 0.011808970642812215, 4.0, 0.0]", - "[49.4500000000001, 7.4975256235549566, 2.971650874701167, 0.07427690965201775, 0.17043916592411434, -0.025803274500983537, -0.08819102935718784, 4.0, 0.0]", - "[49.5000000000001, 7.5048171673200015, 2.9715911255072776, 0.07236748134935432, 0.12122500926620085, 0.023410882156929963, 0.011808970642812167, 4.0, 0.0]", - "[49.5500000000001, 7.512108830756539, 2.971531256641896, 0.07545804988107482, 0.17043916592411434, -0.02580327450098354, 0.11180897064281217, 4.0, 0.0]", - "[49.6000000000001, 7.521861204547607, 2.97147150841171, 0.07854837328983737, 0.2196533225820278, 0.023410882156929953, 0.01180897064281216, 4.0, 0.0]", - "[49.650000000000105, 7.531613452660467, 2.9714116345033137, 0.07663869157532004, 0.17043916592411426, -0.025803274500983554, -0.0881910293571879, 4.0, 0.0]", - "[49.7000000000001, 7.5389049944985205, 2.9713518872364157, 0.07472926718818025, 0.12122500926620074, 0.023410882156929956, 0.011808970642812111, 4.0, 0.0]", - "[49.7500000000001, 7.54619665986208, 2.9712920164440124, 0.07281959180515854, 0.17043916592411423, -0.02580327450098354, -0.08819102935718795, 4.0, 0.0]", - "[49.800000000000104, 7.553488204816164, 2.9712322660610853, 0.07091016108644468, 0.12122500926620078, 0.023410882156929963, 0.011808970642812083, 4.0, 0.0]", - "[49.85000000000011, 7.560779867063647, 2.9711723983847604, 0.0740007272020775, 0.1704391659241143, -0.025803274500983533, 0.11180897064281209, 4.0, 0.0]", - "[49.900000000000105, 7.568071411054022, 2.9711126489655424, 0.07709105302687795, 0.12122500926620075, 0.023410882156929977, 0.011808970642812028, 4.0, 0.0]", - "[49.9500000000001, 7.5753630783445685, 2.9710527762461494, 0.07518137372833956, 0.17043916592411423, -0.02580327450098353, -0.08819102935718803, 4.0, 0.0]", - "[50.00000000000011, 7.582654621371642, 2.970993027790233, 0.07327194692518858, 0.1212250092662007, 0.023410882156929963, 0.011808970642811972, 4.0, 0.0]", - "[50.05000000000011, 7.589946285546164, 2.9709331581868677, 0.07636251695644214, 0.1704391659241142, -0.025803274500983537, 0.11180897064281198, 4.0, 0.0]", - "[50.10000000000011, 7.597237827609536, 2.9708734106946513, 0.07945283886569864, 0.1212250092662007, 0.02341088215692997, 0.011808970642811924, 4.0, 0.0]", - "[50.150000000000105, 7.60452949682704, 2.9708135360483023, 0.07754315565170947, 0.17043916592411418, -0.025803274500983537, -0.08819102935718812, 4.0, 0.0]", - "[50.20000000000011, 7.611821037927133, 2.970753789519366, 0.07563373276405709, 0.12122500926620063, 0.023410882156929977, 0.011808970642811896, 4.0, 0.0]", - "[50.250000000000114, 7.619112642306889, 2.9706939797107648, 0.07372418129619768, 0.17043916592411412, -0.025803274500983513, -0.08819102935718813, 4.0, 0.05000000000000001]" + "[33.15, 5.06616176792077, 2.621157491399954, 0.06548003583816284, -0.011461622412926323, 0.14152188412232508, -0.061878783908780585, 4.0, 0.0]", + "[33.199999999999996, 5.066819094152128, 2.6294639929580734, 0.06488620522033496, 0.03775253424498719, 0.1907360407802386, 0.03812121609121942, 4.0, 0.0]", + "[33.25, 5.0699371277319045, 2.640231201864612, 0.06429215843171014, 0.0869666909029007, 0.2399501974381521, -0.061878783908780655, 4.0, 0.0]", + "[33.3, 5.075515868659927, 2.6534591181193976, 0.06369832584468117, 0.13618084756081417, 0.28916435409606556, 0.03812121609121936, 4.0, 0.0]", + "[33.35, 5.0835553169363745, 2.669147741722608, 0.06310428102524639, 0.18539500421872765, 0.33837851075397907, -0.06187878390878069, 4.0, 0.0]", + "[33.4, 5.091594661733545, 2.6872970726740717, 0.06251044646904153, 0.1361808475608141, 0.38759266741189263, 0.03812121609121932, 4.0, 0.0]", + "[33.449999999999996, 5.09963410904088, 2.707907110973961, 0.06191640361878019, 0.18539500421872762, 0.4368068240698061, -0.061878783908780724, 4.0, 0.0]", + "[33.5, 5.107673454807162, 2.730977856622106, 0.06132256709340591, 0.1361808475608141, 0.48602098072771965, 0.038121216091219295, 4.0, 0.0]", + "[33.55, 5.115712901145383, 2.756509309618674, 0.06572872958361442, 0.18539500421872762, 0.5352351373856332, 0.1381212160912193, 4.0, 0.0]", + "[33.6, 5.123752243800997, 2.784501474043277, 0.07013468139743352, 0.1361808475608141, 0.5844492940435466, 0.03812121609121923, 4.0, 0.0]", + "[33.65, 5.131791697329235, 2.814954349895651, 0.06954062590669795, 0.18539500421872765, 0.6336634507014601, -0.06187878390878083, 4.0, 0.0]", + "[33.699999999999996, 5.139831036874558, 2.8454071117651107, 0.06894680202191286, 0.13618084756081414, 0.5844492940435467, 0.03812121609121916, 4.0, 0.0]", + "[33.75, 5.147870489433807, 2.8733991662860787, 0.06835274850009919, 0.18539500421872768, 0.5352351373856333, -0.06187878390878091, 4.0, 0.0]", + "[33.8, 5.155909829948143, 2.89893051345876, 0.06775892264634169, 0.13618084756081422, 0.4860209807277199, 0.03812121609121907, 4.0, 0.0]", + "[33.85, 5.163949281538348, 2.9220011532829835, 0.06716487109356668, 0.18539500421872773, 0.4368068240698065, -0.06187878390878098, 4.0, 0.0]", + "[33.9, 5.171988623021756, 2.9426110857589447, 0.06657104327071658, 0.13618084756081422, 0.38759266741189297, 0.038121216091219046, 4.0, 0.0]", + "[33.949999999999996, 5.180028073642861, 2.960760310886476, 0.0709772144634655, 0.18539500421872773, 0.3383785107539795, 0.13812121609121905, 4.0, 0.0]", + "[34.0, 5.188067412015641, 2.9764488245860186, 0.07538315757484026, 0.13618084756081425, 0.289164354096066, 0.038121216091219004, 4.0, 0.0]", + "[34.05, 5.196106869826634, 2.98967662685787, 0.07478909338182348, 0.18539500421872773, 0.2399501974381525, -0.06187878390878105, 4.0, 0.0]", + "[34.1, 5.204146205089254, 3.000443721781461, 0.07419527819921415, 0.13618084756081428, 0.19073604078023904, 0.03812121609121896, 4.0, 0.0]", + "[34.15, 5.212185661931166, 3.008750109356601, 0.07360121597530576, 0.18539500421872776, 0.14152188412232555, -0.06187878390878112, 4.0, 0.0]", + "[34.199999999999996, 5.220224998162889, 3.014595789583503, 0.07300739882354264, 0.13618084756081422, 0.09230772746441203, 0.03812121609121888, 4.0, 0.0]", + "[34.25, 5.228264454035674, 3.017980762461978, 0.07241333856883665, 0.1853950042187278, 0.04309357080649853, -0.06187878390878117, 4.0, 0.0]", + "[34.3, 5.2363037912365415, 3.018905027992235, 0.07181951944783205, 0.13618084756081433, -0.0061205858514149815, 0.03812121609121882, 4.0, 0.0]", + "[34.35, 5.244343246140161, 3.017368586174086, 0.07122546116241049, 0.18539500421872782, -0.05533474250932848, -0.06187878390878122, 4.0, 0.0]", + "[34.4, 5.2523825843102125, 3.0133714370077347, 0.07063164007208729, 0.1361808475608143, -0.104548899167242, 0.03812121609121878, 4.0, 0.0]", + "[34.449999999999996, 5.260422038244631, 3.006913580492997, 0.07003758375602294, 0.18539500421872784, -0.15376305582515548, -0.06187878390878126, 4.0, 0.0]", + "[34.5, 5.2684613773839, 3.000455838773407, 0.06944376069631232, 0.13618084756081436, -0.104548899167242, 0.03812121609121875, 4.0, 0.0]", + "[34.55, 5.276500830349088, 2.996458804402192, 0.06884970634965829, 0.18539500421872784, -0.05533474250932849, -0.0618787839087813, 4.0, 0.0]", + "[34.6, 5.284540170457582, 2.992461657174283, 0.06825588132054593, 0.13618084756081436, -0.104548899167242, 0.0381212160912187, 4.0, 0.0]", + "[34.65, 5.2925796224535455, 2.9884646218338444, 0.067661828943292, 0.18539500421872784, -0.05533474250932849, -0.061878783908781355, 4.0, 0.0]", + "[34.7, 5.300618963531267, 2.9869282938415944, 0.06706800194477526, 0.13618084756081433, -0.006120585851414985, 0.03812121609121863, 4.0, 0.0]", + "[34.75, 5.306197597260611, 2.9853918559003247, 0.06647395153692523, 0.08696669090290084, -0.05533474250932849, -0.06187878390878141, 4.0, 0.0]", + "[34.8, 5.31177633996975, 2.983855526938852, 0.06588012256900917, 0.13618084756081433, -0.006120585851414992, 0.0381212160912186, 4.0, 0.0]", + "[34.85, 5.31981579002726, 2.9823190899668135, 0.06528607413057194, 0.18539500421872787, -0.0553347425093285, -0.061878783908781466, 4.0, 0.0]", + "[34.9, 5.327855133043435, 2.9807827600361096, 0.06469224319324003, 0.1361808475608144, -0.006120585851415002, 0.03812121609121853, 4.0, 0.0]", + "[34.95, 5.335894582131708, 2.9792463240333076, 0.06909841127137367, 0.1853950042187279, -0.0553347425093285, 0.13812121609121852, 4.0, 0.0]", + "[35.0, 5.343933922037295, 2.9777099972131893, 0.07350435749731524, 0.1361808475608144, -0.006120585851414988, 0.038121216091218484, 4.0, 0.0]", + "[35.05, 5.351973378315503, 2.9761735540204515, 0.07291029641881705, 0.18539500421872793, -0.0553347425093285, -0.06187878390878159, 4.0, 0.0]", + "[35.1, 5.360012715110961, 2.9746372303104645, 0.0723164781215808, 0.13618084756081442, -0.006120585851415002, 0.03812121609121842, 4.0, 0.0]", + "[35.15, 5.368052170419987, 2.97556161394888, 0.07172241901239729, 0.18539500421872795, 0.043093570806498505, -0.06187878390878162, 4.0, 0.0]", + "[35.2, 5.376091508184623, 2.9764858800429033, 0.07112859874585437, 0.1361808475608145, -0.006120585851415002, 0.03812121609121838, 4.0, 0.0]", + "[35.25, 5.381670138600856, 2.974949438788523, 0.07053454160597668, 0.08696669090290096, -0.0553347425093285, -0.061878783908781675, 4.0, 0.0]", + "[35.3, 5.387248884623114, 2.9734131131401695, 0.06994071937010549, 0.13618084756081442, -0.006120585851414995, 0.038121216091218324, 4.0, 0.0]", + "[35.35, 5.395288337993762, 2.9743374948402055, 0.0693466641995841, 0.18539500421872793, 0.043093570806498505, -0.061878783908781716, 4.0, 0.0]", + "[35.4, 5.403327677696782, 2.9752617628726146, 0.06875283999436599, 0.13618084756081442, -0.006120585851414999, 0.038121216091218296, 4.0, 0.0]", + "[35.449999999999996, 5.411367130098233, 2.976186143603454, 0.0681587867931894, 0.18539500421872795, 0.043093570806498505, -0.06187878390878173, 4.0, 0.0]", + "[35.5, 5.419406470770452, 2.977110412605063, 0.06756496061861987, 0.13618084756081447, -0.006120585851414999, 0.03812121609121828, 4.0, 0.0]", + "[35.55, 5.427445922202698, 2.9780347923666963, 0.06697090938680772, 0.18539500421872795, 0.04309357080649849, -0.06187878390878176, 4.0, 0.0]", + "[35.599999999999994, 5.435485263844128, 2.9789590623375153, 0.0663770812428673, 0.13618084756081444, -0.006120585851414999, 0.03812121609121824, 4.0, 0.0]", + "[35.65, 5.44106389813718, 2.9774226249599556, 0.06578303198043883, 0.08696669090290093, -0.0553347425093285, -0.06187878390878181, 4.0, 0.0]", + "[35.699999999999996, 5.4466426402826045, 2.9758862954347713, 0.06518920186709615, 0.1361808475608144, -0.006120585851414999, 0.038121216091218185, 4.0, 0.0]", + "[35.75, 5.454682089776396, 2.976810673257953, 0.06459515457409425, 0.18539500421872784, 0.043093570806498505, -0.061878783908781855, 4.0, 0.0]", + "[35.8, 5.4627214333562835, 2.9777349451672293, 0.0640013224913321, 0.13618084756081436, -0.006120585851414992, 0.03812121609121816, 4.0, 0.0]", + "[35.849999999999994, 5.470760881880843, 2.9761985097281407, 0.06840748942403632, 0.1853950042187279, -0.0553347425093285, 0.13812121609121816, 4.0, 0.0]", + "[35.9, 5.478800222350119, 2.9746621823443347, 0.07281343679535628, 0.1361808475608144, -0.006120585851414985, 0.03812121609121811, 4.0, 0.0]", + "[35.949999999999996, 5.486839678064669, 2.9755865663882717, 0.07221937686217714, 0.18539500421872787, 0.043093570806498525, -0.06187878390878195, 4.0, 0.0]", + "[36.0, 5.494879015423783, 2.9765108320767744, 0.07162555741962914, 0.13618084756081436, -0.006120585851414978, 0.03812121609121805, 4.0, 0.0]", + "[36.05, 5.502918470169155, 2.9774352151515355, 0.07103149945575428, 0.18539500421872787, 0.043093570806498525, -0.061878783908782, 4.0, 0.0]", + "[36.099999999999994, 5.510957808497449, 2.9783594818092167, 0.07043767804389504, 0.1361808475608144, -0.006120585851414978, 0.038121216091218005, 4.0, 0.0]", + "[36.15, 5.516536439477344, 2.976823041118501, 0.06984362204934486, 0.08696669090290088, -0.055334742509328474, -0.06187878390878205, 4.0, 0.0]", + "[36.199999999999996, 5.5221151849359345, 2.975286714906481, 0.06924979866813945, 0.1361808475608144, -0.006120585851414988, 0.03812121609121795, 4.0, 0.0]", + "[36.24999999999999, 5.530154637742909, 2.9762110960428454, 0.0686557446429626, 0.1853950042187279, 0.04309357080649851, -0.061878783908782105, 4.0, 0.0]", + "[36.3, 5.538193978009606, 2.9771353646389302, 0.06806191929239283, 0.13618084756081444, -0.006120585851414992, 0.038121216091217894, 4.0, 0.0]", + "[36.349999999999994, 5.546233429847378, 2.9780597448060893, 0.06746786723657854, 0.18539500421872795, 0.043093570806498505, -0.061878783908782146, 4.0, 0.0]", + "[36.39999999999999, 5.554272771083282, 2.978984014371383, 0.06687403991663987, 0.13618084756081447, -0.006120585851414988, 0.038121216091217866, 4.0, 0.0]", + "[36.449999999999996, 5.562312221951837, 2.977447576588297, 0.06627998983020722, 0.18539500421872798, -0.05533474250932849, -0.06187878390878219, 4.0, 0.0]", + "[36.49999999999999, 5.570351564156963, 2.9759112474686398, 0.06568616054086986, 0.13618084756081447, -0.006120585851414968, 0.038121216091217824, 4.0, 0.0]", + "[36.55, 5.578391014056286, 2.9768356256973503, 0.06509211242385882, 0.18539500421872793, 0.04309357080649853, -0.061878783908782216, 4.0, 0.0]", + "[36.599999999999994, 5.586430357230645, 2.9777598972010977, 0.0644982811651054, 0.13618084756081444, -0.006120585851414985, 0.0381212160912178, 4.0, 0.0]", + "[36.64999999999999, 5.592008993056639, 2.9762234613564784, 0.06390423501751186, 0.08696669090290095, -0.055334742509328474, -0.06187878390878226, 4.0, 0.0]", + "[36.699999999999996, 5.597587733669121, 2.9746871302983493, 0.06331040178932393, 0.13618084756081447, -0.006120585851414978, 0.038121216091217755, 4.0, 0.0]", + "[36.74999999999999, 5.605627181629959, 2.9756115065885753, 0.06271635761118764, 0.185395004218728, 0.04309357080649852, -0.0618787839087823, 4.0, 0.0]", + "[36.8, 5.613666526742808, 2.9765357800308125, 0.062122522413548785, 0.1361808475608145, -0.006120585851414992, 0.03812121609121771, 4.0, 0.0]", + "[36.849999999999994, 5.621705973734397, 2.974999346124694, 0.06652868623135522, 0.18539500421872793, -0.05533474250932849, 0.13812121609121772, 4.0, 0.0]", + "[36.89999999999999, 5.629745315736591, 2.973463017207971, 0.07093463671746474, 0.13618084756081442, -0.006120585851414988, 0.03812121609121765, 4.0, 0.0]", + "[36.949999999999996, 5.637784769918286, 2.9743873997190535, 0.07034057989894774, 0.18539500421872793, 0.04309357080649851, -0.061878783908782396, 4.0, 0.0]", + "[36.99999999999999, 5.6458241088102605, 2.9753116669404167, 0.06974675734172417, 0.13618084756081444, -0.006120585851414988, 0.03812121609121763, 4.0, 0.0]", + "[37.04999999999999, 5.653863562022759, 2.976236048482305, 0.06915270249254836, 0.18539500421872793, 0.04309357080649851, -0.0618787839087824, 4.0, 0.0]", + "[37.099999999999994, 5.661902901883931, 2.9771603166728657, 0.06855887796597711, 0.1361808475608144, -0.006120585851414999, 0.038121216091217595, 4.0, 0.0]", + "[37.14999999999999, 5.667481534396717, 2.97562387751504, 0.0679648250861619, 0.08696669090290092, -0.0553347425093285, -0.06187878390878244, 4.0, 0.0]", + "[37.19999999999999, 5.673060278322411, 2.974087549770123, 0.06737099859021028, 0.13618084756081442, -0.006120585851414999, 0.038121216091217575, 4.0, 0.0]", + "[37.24999999999999, 5.681099729596481, 2.97501192937358, 0.06677694767980095, 0.18539500421872793, 0.043093570806498505, -0.06187878390878248, 4.0, 0.0]", + "[37.29999999999999, 5.689139071396089, 2.9759361995025775, 0.06618311921445155, 0.13618084756081444, -0.006120585851415013, 0.03812121609121753, 4.0, 0.0]", + "[37.349999999999994, 5.697178521700937, 2.976860578136813, 0.06558907027343905, 0.18539500421872795, 0.04309357080649849, -0.06187878390878251, 4.0, 0.0]", + "[37.39999999999999, 5.70521786446977, 2.9777848492350345, 0.06499523983868691, 0.13618084756081442, -0.006120585851415009, 0.038121216091217505, 4.0, 0.0]", + "[37.44999999999999, 5.710796499890236, 2.976248412984889, 0.06440119286708948, 0.0869666909029009, -0.05533474250932852, -0.061878783908782556, 4.0, 0.0]", + "[37.49999999999999, 5.716375240908244, 2.9747120823322852, 0.06380736046290514, 0.1361808475608144, -0.006120585851415027, 0.03812121609121745, 4.0, 0.0]", + "[37.54999999999999, 5.724414689274609, 2.975636459028039, 0.0632133154607628, 0.18539500421872787, 0.04309357080649849, -0.06187878390878261, 4.0, 0.0]", + "[37.599999999999994, 5.732454033981929, 2.976560732064748, 0.0626194810871299, 0.13618084756081436, -0.006120585851415002, 0.03812121609121741, 4.0, 0.0]", + "[37.64999999999999, 5.740493481379047, 2.9750242977531007, 0.06702564572894491, 0.1853950042187279, -0.0553347425093285, 0.13812121609121744, 4.0, 0.0]", + "[37.69999999999999, 5.748532822975716, 2.973487969241902, 0.07143159539105491, 0.1361808475608144, -0.006120585851414985, 0.03812121609121737, 4.0, 0.0]", + "[37.74999999999999, 5.756572277562929, 2.974412352158503, 0.07083753774855002, 0.18539500421872793, 0.04309357080649853, -0.0618787839087827, 4.0, 0.0]", + "[37.79999999999999, 5.764611616049385, 2.9753366189743478, 0.0702437160153141, 0.13618084756081442, -0.006120585851414964, 0.038121216091217304, 4.0, 0.0]", + "[37.84999999999999, 5.772651069667404, 2.9762610009217556, 0.06964966034214803, 0.18539500421872795, 0.04309357080649853, -0.06187878390878274, 4.0, 0.0]", + "[37.89999999999999, 5.780690409123058, 2.9771852687067972, 0.06905583663956683, 0.13618084756081442, -0.0061205858514149745, 0.03812121609121727, 4.0, 0.0]", + "[37.94999999999999, 5.786269041230322, 2.975648829143451, 0.06846178293575894, 0.08696669090290092, -0.055334742509328474, -0.06187878390878276, 4.0, 0.0]", + "[37.999999999999986, 5.791847785561539, 2.974112501804056, 0.06786795726379963, 0.1361808475608144, -0.006120585851414964, 0.03812121609121724, 4.0, 0.0]", + "[38.04999999999999, 5.799887237241131, 2.975036881813036, 0.06727390552939552, 0.18539500421872795, 0.04309357080649853, -0.06187878390878281, 4.0, 0.0]", + "[38.09999999999999, 5.807926578635219, 2.975961151536511, 0.06668007788804074, 0.1361808475608145, -0.006120585851414968, 0.038121216091217186, 4.0, 0.0]", + "[38.14999999999999, 5.815966029345589, 2.9768855305762694, 0.06608602812303091, 0.18539500421872798, 0.04309357080649853, -0.061878783908782854, 4.0, 0.0]", + "[38.19999999999999, 5.8240053717089, 2.9778098012689678, 0.06549219851227603, 0.1361808475608145, -0.0061205858514149745, 0.038121216091217144, 4.0, 0.0]", + "[38.249999999999986, 5.83204482145004, 2.9762733646132977, 0.0648981507166786, 0.185395004218728, -0.05533474250932847, -0.06187878390878291, 4.0, 0.0]", + "[38.29999999999999, 5.8400841647825885, 2.974737034366219, 0.0643043191364953, 0.1361808475608145, -0.006120585851414978, 0.0381212160912171, 4.0, 0.0]", + "[38.34999999999999, 5.848123613554481, 2.9756614114674997, 0.06371027331034804, 0.185395004218728, 0.04309357080649852, -0.06187878390878294, 4.0, 0.0]", + "[38.39999999999999, 5.856162957856275, 2.9765856840986817, 0.06311643976071996, 0.13618084756081447, -0.006120585851414985, 0.03812121609121709, 4.0, 0.0]", + "[38.44999999999999, 5.8642024056589195, 2.9750492493815064, 0.06752260522654246, 0.18539500421872795, -0.0553347425093285, 0.1381212160912171, 4.0, 0.0]", + "[38.499999999999986, 5.872241746850063, 2.9735129212758316, 0.0719285540646541, 0.13618084756081447, -0.006120585851414992, 0.038121216091217054, 4.0, 0.0]", + "[38.54999999999999, 5.880281201842794, 2.9744373045979513, 0.0713344955981626, 0.18539500421872798, 0.0430935708064985, -0.061878783908782986, 4.0, 0.0]", + "[38.59999999999999, 5.888320539923732, 2.9753615710082775, 0.07074067468891312, 0.1361808475608145, -0.006120585851415002, 0.03812121609121702, 4.0, 0.0]", + "[38.649999999999984, 5.893899170656275, 2.9738251300702085, 0.07014661819175803, 0.08696669090290099, -0.055334742509328495, -0.061878783908783035, 4.0, 0.0]", + "[38.69999999999999, 5.899477916362217, 2.972288804105537, 0.06955279531315105, 0.13618084756081447, -0.0061205858514149815, 0.03812121609121699, 4.0, 0.0]", + "[38.749999999999986, 5.9075173694165395, 2.9732131854892483, 0.06895874078538021, 0.18539500421872798, 0.04309357080649852, -0.061878783908783035, 4.0, 0.0]", + "[38.79999999999998, 5.915556709435893, 2.9741374538379888, 0.06836491593739812, 0.1361808475608145, -0.006120585851414985, 0.038121216091216964, 4.0, 0.0]", + "[38.84999999999999, 5.923596161521004, 2.97506183425249, 0.06777086337900043, 0.18539500421872795, 0.04309357080649853, -0.06187878390878309, 4.0, 0.0]", + "[38.899999999999984, 5.931635502509569, 2.975986103570443, 0.06717703656163916, 0.13618084756081444, -0.0061205858514149745, 0.03812121609121691, 4.0, 0.0]", + "[38.94999999999999, 5.937214136149757, 2.97444966554002, 0.06658298597263312, 0.08696669090290096, -0.05533474250932848, -0.06187878390878312, 4.0, 0.0]", + "[38.999999999999986, 5.942792878948047, 2.9729133366676956, 0.06598915718586186, 0.1361808475608145, -0.006120585851414964, 0.038121216091216895, 4.0, 0.0]", + "[39.04999999999998, 5.950832329094699, 2.9738377151437363, 0.06539510856628987, 0.185395004218728, 0.04309357080649853, -0.061878783908783146, 4.0, 0.0]", + "[39.09999999999999, 5.958871672021728, 2.9747619864001558, 0.06480127781009204, 0.13618084756081456, -0.006120585851414964, 0.03812121609121684, 4.0, 0.0]", + "[39.149999999999984, 5.966911121199144, 2.9756863639069606, 0.06420723115994624, 0.185395004218728, 0.04309357080649852, -0.0618787839087832, 4.0, 0.0]", + "[39.19999999999999, 5.9749504650954135, 2.9766106361326186, 0.06361339843431676, 0.1361808475608145, -0.006120585851414992, 0.0381212160912168, 4.0, 0.0]", + "[39.249999999999986, 5.982989913303583, 2.9750742010099174, 0.06801956472414067, 0.18539500421872798, -0.05533474250932848, 0.1381212160912168, 4.0, 0.0]", + "[39.29999999999998, 5.991029254089207, 2.973537873309763, 0.0724255127382612, 0.13618084756081447, -0.006120585851414985, 0.03812121609121675, 4.0, 0.0]", + "[39.34999999999999, 5.999068709487451, 2.974462257037396, 0.07183145344779152, 0.18539500421872795, 0.04309357080649852, -0.06187878390878331, 4.0, 0.0]", + "[39.399999999999984, 6.007108047162875, 2.975386523042208, 0.07123763336252019, 0.13618084756081444, -0.006120585851414985, 0.038121216091216686, 4.0, 0.0]", + "[39.44999999999998, 6.012686677489902, 2.973850081698624, 0.07064357604138417, 0.08696669090290096, -0.055334742509328474, -0.061878783908783354, 4.0, 0.0]", + "[39.499999999999986, 6.018265423601359, 2.9723137561394686, 0.07004975398675792, 0.13618084756081447, -0.006120585851414971, 0.038121216091216666, 4.0, 0.0]", + "[39.54999999999998, 6.0263048770611976, 2.973238137928696, 0.06945569863500371, 0.18539500421872795, 0.04309357080649853, -0.06187878390878338, 4.0, 0.0]", + "[39.59999999999998, 6.0343442166750325, 2.9741624058719203, 0.06886187461100507, 0.13618084756081444, -0.006120585851414947, 0.038121216091216596, 4.0, 0.0]", + "[39.649999999999984, 6.042383669165663, 2.9750867866919393, 0.06826782122862109, 0.18539500421872795, 0.04309357080649855, -0.061878783908783465, 4.0, 0.0]", + "[39.69999999999998, 6.05042300974871, 2.9760110556043755, 0.06767399523524618, 0.13618084756081444, -0.006120585851414943, 0.03812121609121652, 4.0, 0.0]", + "[39.749999999999986, 6.058462461270121, 2.9769354354551765, 0.06707994382225084, 0.18539500421872798, 0.04309357080649855, -0.06187878390878352, 4.0, 0.0]", + "[39.79999999999998, 6.066501802822388, 2.9778597053368325, 0.06648611585948143, 0.13618084756081444, -0.00612058585141495, 0.03812121609121649, 4.0, 0.0]", + "[39.84999999999998, 6.072080437026283, 2.9763232678701166, 0.0658920664158929, 0.08696669090290099, -0.055334742509328454, -0.06187878390878355, 4.0, 0.0]", + "[39.899999999999984, 6.077659179260861, 2.9747869384340824, 0.0652982364836991, 0.13618084756081447, -0.006120585851414954, 0.03812121609121645, 4.0, 0.0]", + "[39.94999999999998, 6.0856986288438, 2.9757113163464086, 0.06470418900955832, 0.18539500421872798, 0.043093570806498546, -0.06187878390878359, 4.0, 0.0]", + "[39.999999999999986, 6.093737972334548, 2.9766355881665447, 0.06411035710792394, 0.1361808475608145, -0.006120585851414957, 0.03812121609121642, 4.0, 0.0]", + "[40.04999999999998, 6.101777420948243, 2.97509915263832, 0.06851652422174587, 0.18539500421872804, -0.05533474250932846, 0.13812121609121641, 4.0, 0.0]", + "[40.09999999999998, 6.109816761328349, 2.9735628253436834, 0.07292247141187919, 0.13618084756081453, -0.006120585851414968, 0.03812121609121636, 4.0, 0.0]", + "[40.149999999999984, 6.117856217132105, 2.9744872094768287, 0.07232841129743595, 0.18539500421872798, 0.04309357080649853, -0.0618787839087837, 4.0, 0.0]", + "[40.19999999999998, 6.1258955544020175, 2.975411475076129, 0.07173459203613827, 0.1361808475608145, -0.006120585851414968, 0.0381212160912163, 4.0, 0.0]", + "[40.24999999999998, 6.133935009236586, 2.9763358582400845, 0.07114053389102566, 0.18539500421872807, 0.04309357080649853, -0.06187878390878374, 4.0, 0.0]", + "[40.29999999999998, 6.141974347475691, 2.9772601248085775, 0.07054671266039095, 0.13618084756081456, -0.006120585851414961, 0.038121216091216256, 4.0, 0.0]", + "[40.34999999999998, 6.147552978366405, 2.975723684028679, 0.06995265648462819, 0.08696669090290104, -0.055334742509328474, -0.061878783908783784, 4.0, 0.0]", + "[40.39999999999998, 6.153131723914173, 2.9741873579058358, 0.06935883328462322, 0.13618084756081453, -0.006120585851414978, 0.038121216091216215, 4.0, 0.0]", + "[40.44999999999998, 6.16117117681032, 2.9751117391313717, 0.06876477907825689, 0.18539500421872807, 0.04309357080649852, -0.06187878390878384, 4.0, 0.0]", + "[40.49999999999998, 6.1692105169878495, 2.9760360076382915, 0.06817095390886446, 0.1361808475608145, -0.006120585851414988, 0.03812121609121616, 4.0, 0.0]", + "[40.54999999999998, 6.177249968914781, 2.97696038789461, 0.06757690167188367, 0.18539500421872804, 0.043093570806498505, -0.06187878390878388, 4.0, 0.0]", + "[40.59999999999998, 6.185289310061532, 2.9778846573707485, 0.06698307453309993, 0.13618084756081453, -0.006120585851414992, 0.038121216091216104, 4.0, 0.0]", + "[40.64999999999998, 6.190867943859909, 2.9763482194985134, 0.06638902426552275, 0.086966690902901, -0.055334742509328474, -0.06187878390878394, 4.0, 0.0]", + "[40.69999999999998, 6.196446686500004, 2.974811890467998, 0.06579519515731762, 0.13618084756081453, -0.006120585851414971, 0.038121216091216076, 4.0, 0.0]", + "[40.74999999999998, 6.204486136488463, 2.9757362687858455, 0.06520114685918536, 0.18539500421872807, 0.04309357080649853, -0.061878783908783964, 4.0, 0.0]", + "[40.79999999999998, 6.2125254795736895, 2.9766605402004607, 0.06460731578154268, 0.13618084756081453, -0.00612058585141495, 0.03812121609121602, 4.0, 0.0]", + "[40.84999999999998, 6.220564928592906, 2.9775849175490663, 0.06401326945284763, 0.18539500421872798, 0.04309357080649855, -0.061878783908784006, 4.0, 0.0]", + "[40.89999999999998, 6.228604272647377, 2.978509189932926, 0.06341943640576249, 0.13618084756081453, -0.006120585851414943, 0.03812121609121599, 4.0, 0.0]", + "[40.94999999999998, 6.236643720697345, 2.976972754968429, 0.06782560237412497, 0.18539500421872804, -0.05533474250932844, 0.138121216091216, 4.0, 0.0]", + "[40.99999999999998, 6.244683061641157, 2.975436427110087, 0.07223155070967117, 0.13618084756081456, -0.006120585851414933, 0.03812121609121596, 4.0, 0.0]", + "[41.049999999999976, 6.252722516881234, 2.976360810679554, 0.07163749174058627, 0.18539500421872807, 0.043093570806498574, -0.061878783908784096, 4.0, 0.0]", + "[41.09999999999998, 6.26076185471483, 2.9772850768425356, 0.07104367133392411, 0.13618084756081458, -0.006120585851414936, 0.03812121609121592, 4.0, 0.0]", + "[41.14999999999998, 6.266340485200029, 2.975748635657125, 0.07044961433418578, 0.0869666909029011, -0.05533474250932844, -0.06187878390878411, 4.0, 0.0]", + "[41.199999999999974, 6.2719192311533085, 2.9742123099397935, 0.0698557919581564, 0.1361808475608146, -0.006120585851414943, 0.03812121609121591, 4.0, 0.0]", + "[41.24999999999998, 6.27995868445497, 2.975136691570843, 0.06926173692781165, 0.18539500421872807, 0.04309357080649857, -0.061878783908784145, 4.0, 0.0]", + "[41.29999999999998, 6.2879980242269875, 2.9760609596722487, 0.06866791258239793, 0.13618084756081458, -0.006120585851414936, 0.03812121609121587, 4.0, 0.0]", + "[41.34999999999998, 6.296037476559435, 2.9769853403340836, 0.06807385952143538, 0.18539500421872815, 0.04309357080649859, -0.061878783908784186, 4.0, 0.0]", + "[41.39999999999998, 6.304076817300669, 2.9779096094047075, 0.06748003320663368, 0.13618084756081467, -0.006120585851414912, 0.03812121609121581, 4.0, 0.0]", + "[41.44999999999998, 6.312116268663892, 2.9763731711269563, 0.06688598211507135, 0.18539500421872812, -0.055334742509328405, -0.0618787839087842, 4.0, 0.0]", + "[41.499999999999986, 6.320155610374358, 2.97483684250196, 0.06629215383085257, 0.13618084756081464, -0.006120585851414891, 0.038121216091215826, 4.0, 0.0]", + "[41.54999999999998, 6.328195060768337, 2.9757612212253264, 0.06569810470872992, 0.18539500421872812, 0.043093570806498595, -0.06187878390878424, 4.0, 0.0]", + "[41.59999999999998, 6.336234403448044, 2.9766854922344215, 0.06510427445507785, 0.13618084756081458, -0.006120585851414912, 0.03812121609121577, 4.0, 0.0]", + "[41.649999999999984, 6.341813038779388, 2.975149055895153, 0.0645102273023892, 0.08696669090290106, -0.05533474250932842, -0.061878783908784284, 4.0, 0.0]", + "[41.69999999999999, 6.347391779886514, 2.9736127253316678, 0.0639163950792868, 0.13618084756081456, -0.006120585851414916, 0.03812121609121573, 4.0, 0.0]", + "[41.749999999999986, 6.355431228341991, 2.9745371021165363, 0.06332234989607063, 0.1853950042187281, 0.04309357080649858, -0.06187878390878431, 4.0, 0.0]", + "[41.79999999999998, 6.3634705729602015, 2.975461375064136, 0.06272851570350244, 0.13618084756081453, -0.006120585851414926, 0.038121216091215715, 4.0, 0.0]", + "[41.84999999999999, 6.371510020446424, 2.973924940663383, 0.067134680526374, 0.185395004218728, -0.05533474250932843, 0.13812121609121572, 4.0, 0.0]", + "[41.89999999999999, 6.379549361953959, 2.9723886122413177, 0.07154063000737051, 0.13618084756081456, -0.0061205858514149225, 0.03812121609121568, 4.0, 0.0]", + "[41.94999999999999, 6.387588816630338, 2.9733129952470847, 0.07094657218368804, 0.18539500421872804, 0.043093570806498574, -0.06187878390878435, 4.0, 0.0]", + "[41.999999999999986, 6.3956281550276355, 2.974237261973769, 0.07035275063161828, 0.13618084756081456, -0.006120585851414916, 0.03812121609121566, 4.0, 0.0]", + "[42.04999999999999, 6.40366760873481, 2.975161644010332, 0.06975869477729625, 0.185395004218728, 0.043093570806498574, -0.06187878390878438, 4.0, 0.0]", + "[42.099999999999994, 6.411706948101313, 2.9760859117062246, 0.06916487125586009, 0.1361808475608145, -0.0061205858514149225, 0.03812121609121563, 4.0, 0.0]", + "[42.14999999999999, 6.417285580119434, 2.9745494720537335, 0.06857081737091694, 0.08696669090290096, -0.05533474250932842, -0.06187878390878441, 4.0, 0.0]", + "[42.19999999999999, 6.4228643245397885, 2.9730131448034776, 0.06797699188008278, 0.13618084756081447, -0.006120585851414905, 0.038121216091215604, 4.0, 0.0]", + "[42.24999999999999, 6.430903776308514, 2.9739375249015914, 0.06738293996456243, 0.18539500421872798, 0.04309357080649859, -0.06187878390878444, 4.0, 0.0]", + "[42.3, 6.438943117613471, 2.9748617945359372, 0.06678911250431392, 0.1361808475608145, -0.006120585851414902, 0.03812121609121556, 4.0, 0.0]", + "[42.349999999999994, 6.446982568412968, 2.9757861736648215, 0.06619506255820665, 0.18539500421872804, 0.0430935708064986, -0.06187878390878449, 4.0, 0.0]", + "[42.39999999999999, 6.455021910687156, 2.9767104442684, 0.06560123312853958, 0.13618084756081458, -0.006120585851414881, 0.03812121609121549, 4.0, 0.0]", + "[42.449999999999996, 6.463061360517414, 2.9776348224280453, 0.06500718515186271, 0.1853950042187281, 0.043093570806498616, -0.06187878390878455, 4.0, 0.0]", + "[42.5, 6.471100703760845, 2.978559094000865, 0.06441335375276001, 0.13618084756081458, -0.006120585851414884, 0.038121216091215465, 4.0, 0.0]", + "[42.55, 6.476679339655917, 2.9770226582253247, 0.06381930774553048, 0.08696669090290107, -0.05533474250932837, -0.06187878390878456, 4.0, 0.0]", + "[42.599999999999994, 6.482258080199311, 2.975486327098109, 0.06322547437696471, 0.13618084756081456, -0.006120585851414874, 0.038121216091215465, 4.0, 0.0]", + "[42.65, 6.490297528091055, 2.9764107033192424, 0.06263143033921982, 0.18539500421872807, 0.043093570806498616, -0.06187878390878456, 4.0, 0.0]", + "[42.7, 6.4983368732730025, 2.977334976830578, 0.062037595001175824, 0.13618084756081458, -0.006120585851414895, 0.03812121609121545, 4.0, 0.0]", + "[42.75, 6.506376320195486, 2.9757985429935645, 0.06644375867856339, 0.18539500421872807, -0.05533474250932839, 0.13812121609121547, 4.0, 0.0]", + "[42.8, 6.5144156622667415, 2.974262214007781, 0.0708497093050006, 0.13618084756081453, -0.006120585851414877, 0.0381212160912154, 4.0, 0.0]", + "[42.85, 6.522455116379427, 2.975186596449853, 0.07025565262670778, 0.18539500421872795, 0.04309357080649862, -0.061878783908784644, 4.0, 0.0]", + "[42.900000000000006, 6.5304944553404205, 2.976110863740234, 0.06966182992924284, 0.13618084756081447, -0.006120585851414881, 0.03812121609121537, 4.0, 0.0]", + "[42.95, 6.538533908483893, 2.9770352452130946, 0.06906777522032521, 0.18539500421872798, 0.043093570806498616, -0.061878783908784686, 4.0, 0.0]", + "[43.0, 6.5465732484141, 2.9779595134726904, 0.06847395055347927, 0.13618084756081447, -0.006120585851414884, 0.038121216091215326, 4.0, 0.0]", + "[43.050000000000004, 6.55215188099593, 2.9764230743839075, 0.06787989781395488, 0.08696669090290098, -0.05533474250932839, -0.06187878390878474, 4.0, 0.0]", + "[43.10000000000001, 6.557730624852574, 2.974886746569941, 0.06728607117769736, 0.1361808475608145, -0.006120585851414895, 0.03812121609121526, 4.0, 0.0]", + "[43.150000000000006, 6.565770076057585, 2.975811126104341, 0.06669202040760872, 0.18539500421872804, 0.043093570806498616, -0.0618787839087848, 4.0, 0.0]", + "[43.2, 6.573809417926258, 2.9767353963024026, 0.06609819180192343, 0.1361808475608145, -0.006120585851414888, 0.0381212160912152, 4.0, 0.0]", + "[43.25000000000001, 6.581848868162032, 2.9776597748675657, 0.06550414300126153, 0.185395004218728, 0.04309357080649863, -0.06187878390878485, 4.0, 0.0]", + "[43.30000000000001, 6.589888210999945, 2.978584046034867, 0.0649103124261443, 0.13618084756081456, -0.00612058585141486, 0.03812121609121516, 4.0, 0.0]", + "[43.35000000000001, 6.595466846489496, 2.9770476098538077, 0.06431626559492606, 0.08696669090290103, -0.05533474250932836, -0.06187878390878488, 4.0, 0.0]", + "[43.400000000000006, 6.601045587438413, 2.975511279132111, 0.06372243305034928, 0.13618084756081456, -0.006120585851414867, 0.03812121609121513, 4.0, 0.0]", + "[43.45000000000001, 6.609085035735679, 2.976435655758765, 0.06312838818861238, 0.185395004218728, 0.04309357080649864, -0.061878783908784915, 4.0, 0.0]", + "[43.500000000000014, 6.617124380512107, 2.97735992886458, 0.06253455367456082, 0.13618084756081453, -0.00612058585141486, 0.03812121609121509, 4.0, 0.0]", + "[43.55000000000001, 6.6251638278401135, 2.9758234946220457, 0.06694071817594408, 0.18539500421872807, -0.05533474250932838, 0.1381212160912151, 4.0, 0.0]", + "[43.60000000000001, 6.633203169505851, 2.9742871660417776, 0.0713466679783983, 0.13618084756081458, -0.006120585851414888, 0.03812121609121503, 4.0, 0.0]", + "[43.65000000000001, 6.641242624024044, 2.975211548889359, 0.07075261047613832, 0.18539500421872812, 0.0430935708064986, -0.06187878390878502, 4.0, 0.0]", + "[43.70000000000002, 6.649281962579527, 2.9761358157742315, 0.07015878860264105, 0.1361808475608146, -0.006120585851414909, 0.03812121609121499, 4.0, 0.0]", + "[43.750000000000014, 6.657321416128509, 2.9770601976526034, 0.06956473306975251, 0.1853950042187281, 0.0430935708064986, -0.06187878390878506, 4.0, 0.0]", + "[43.80000000000001, 6.6653607556532055, 2.9779844655066885, 0.06897090922687804, 0.13618084756081458, -0.006120585851414909, 0.03812121609121495, 4.0, 0.0]", + "[43.850000000000016, 6.670939387829523, 2.976448026012394, 0.0683768556633789, 0.08696669090290107, -0.05533474250932842, -0.0618787839087851, 4.0, 0.0]", + "[43.90000000000002, 6.6765181320916795, 2.9749116986039392, 0.06778302985109634, 0.13618084756081456, -0.006120585851414916, 0.038121216091214896, 4.0, 0.0]", + "[43.95000000000002, 6.684557583702203, 2.975836078543853, 0.0671889782570296, 0.18539500421872807, 0.043093570806498595, -0.06187878390878516, 4.0, 0.0]", + "[44.000000000000014, 6.692596925165362, 2.976760348336402, 0.06659515047532297, 0.1361808475608145, -0.006120585851414909, 0.038121216091214855, 4.0, 0.0]", + "[44.05000000000002, 6.700636375806653, 2.977684727307081, 0.06600110085067913, 0.185395004218728, 0.043093570806498595, -0.0618787839087852, 4.0, 0.0]", + "[44.10000000000002, 6.708675718239049, 2.9786089980688657, 0.06540727109954433, 0.13618084756081453, -0.006120585851414888, 0.0381212160912148, 4.0, 0.0]", + "[44.15000000000002, 6.7167151679110955, 2.9770725614822893, 0.06481322344434036, 0.185395004218728, -0.05533474250932838, -0.06187878390878524, 4.0, 0.0]", + "[44.20000000000002, 6.724754511312743, 2.975536231166111, 0.06421939172375046, 0.1361808475608145, -0.006120585851414884, 0.038121216091214744, 4.0, 0.0]", + "[44.25000000000002, 6.732793960015529, 2.9764606081982854, 0.06362534603802271, 0.18539500421872798, 0.04309357080649862, -0.06187878390878531, 4.0, 0.0]", + "[44.300000000000026, 6.7408333043864355, 2.97738488089858, 0.06303151234796246, 0.13618084756081444, -0.0061205858514148705, 0.03812121609121469, 4.0, 0.0]", + "[44.35000000000002, 6.748872752119962, 2.9758484462505224, 0.06743767767334018, 0.18539500421872795, -0.05533474250932838, 0.1381212160912147, 4.0, 0.0]", + "[44.40000000000002, 6.756912093380186, 2.9743121180757703, 0.07184362665181261, 0.13618084756081442, -0.006120585851414881, 0.038121216091214605, 4.0, 0.0]", + "[44.450000000000024, 6.764951548303887, 2.97523650132886, 0.07124956832558667, 0.18539500421872795, 0.04309357080649863, -0.06187878390878546, 4.0, 0.0]", + "[44.50000000000003, 6.772990886453863, 2.9761607678082247, 0.07065574727605581, 0.13618084756081444, -0.006120585851414867, 0.03812121609121455, 4.0, 0.0]", + "[44.550000000000026, 6.778569517255452, 2.974624326939202, 0.07006169091919749, 0.0869666909029009, -0.055334742509328384, -0.061878783908785505, 4.0, 0.0]", + "[44.60000000000002, 6.784148262892339, 2.973088000905479, 0.06946786790027927, 0.13618084756081442, -0.006120585851414874, 0.03812121609121451, 4.0, 0.0]", + "[44.65000000000003, 6.7921877158776045, 2.97401238222013, 0.06887381351283382, 0.1853950042187279, 0.04309357080649863, -0.06187878390878553, 4.0, 0.0]", + "[44.70000000000003, 6.8002270559660225, 2.9749366506379373, 0.06827998852451185, 0.13618084756081436, -0.0061205858514148635, 0.038121216091214466, 4.0, 0.0]", + "[44.75000000000003, 6.8082665079820615, 2.975861030983365, 0.06768593610646818, 0.1853950042187279, 0.043093570806498636, -0.061878783908785574, 4.0, 0.0]", + "[44.800000000000026, 6.816305849039708, 2.9767853003703992, 0.06709210914873898, 0.13618084756081442, -0.006120585851414874, 0.03812121609121444, 4.0, 0.0]", + "[44.85000000000003, 6.821884482748985, 2.975248862409064, 0.06649805870011441, 0.08696669090290095, -0.05533474250932839, -0.06187878390878563, 4.0, 0.0]", + "[44.900000000000034, 6.827463225478178, 2.9737125334676464, 0.06590422977294892, 0.1361808475608145, -0.006120585851414895, 0.03812121609121437, 4.0, 0.0]", + "[44.95000000000003, 6.83550267555573, 2.974636911874588, 0.06531018129378362, 0.185395004218728, 0.0430935708064986, -0.06187878390878567, 4.0, 0.0]", + "[45.00000000000003, 6.84354201855187, 2.9755611832001128, 0.06471635039716638, 0.13618084756081456, -0.006120585851414895, 0.03812121609121433, 4.0, 0.0]", + "[45.05000000000003, 6.851581467660174, 2.9764855606378045, 0.06412230388745241, 0.1853950042187281, 0.04309357080649861, -0.06187878390878571, 4.0, 0.0]", + "[45.10000000000004, 6.859620811625561, 2.977409832932581, 0.06352847102137892, 0.13618084756081453, -0.006120585851414902, 0.0381212160912143, 4.0, 0.0]", + "[45.150000000000034, 6.867660259764609, 2.9758733978790044, 0.06793463717074674, 0.185395004218728, -0.055334742509328405, 0.1381212160912143, 4.0, 0.0]", + "[45.20000000000003, 6.875699600619317, 2.9743370701097653, 0.07234058532524251, 0.1361808475608145, -0.006120585851414905, 0.03812121609121422, 4.0, 0.0]", + "[45.250000000000036, 6.8837390559485225, 2.97526145376836, 0.07174652617505659, 0.18539500421872795, 0.04309357080649859, -0.061878783908785824, 4.0, 0.0]", + "[45.30000000000004, 6.891778393692992, 2.976185719842219, 0.07115270594948636, 0.13618084756081444, -0.006120585851414898, 0.03812121609121419, 4.0, 0.0]", + "[45.35000000000004, 6.897357024089073, 2.9746492785676892, 0.070558648768664, 0.08696669090290093, -0.05533474250932839, -0.06187878390878585, 4.0, 0.0]", + "[45.400000000000034, 6.902935770131467, 2.9731129529394726, 0.06996482657371024, 0.13618084756081444, -0.006120585851414888, 0.03812121609121416, 4.0, 0.0]", + "[45.45000000000004, 6.9109752235222395, 2.974037334659633, 0.06937077136229718, 0.1853950042187279, 0.0430935708064986, -0.06187878390878588, 4.0, 0.0]", + "[45.50000000000004, 6.91901456320515, 2.974961602671932, 0.0687769471979435, 0.13618084756081436, -0.006120585851414891, 0.03812121609121412, 4.0, 0.0]", + "[45.55000000000004, 6.927054015626698, 2.9758859834228697, 0.06818289395592811, 0.18539500421872784, 0.043093570806498616, -0.061878783908785935, 4.0, 0.0]", + "[45.60000000000004, 6.9350933562788315, 2.976810252404393, 0.06758906782217125, 0.13618084756081433, -0.006120585851414898, 0.03812121609121408, 4.0, 0.0]", + "[45.65000000000004, 6.9406719895825955, 2.975273814037545, 0.06699501654957092, 0.08696669090290088, -0.05533474250932839, -0.06187878390878595, 4.0, 0.0]", + "[45.700000000000045, 6.946250732717303, 2.97373748550164, 0.06640118844638161, 0.13618084756081436, -0.006120585851414898, 0.038121216091214036, 4.0, 0.0]", + "[45.75000000000004, 6.954290183200371, 2.974661864314095, 0.06580713914323692, 0.18539500421872782, 0.0430935708064986, -0.06187878390878602, 4.0, 0.0]", + "[45.80000000000004, 6.962329525790992, 2.9755861352341055, 0.06521330907059968, 0.13618084756081433, -0.006120585851414902, 0.03812121609121398, 4.0, 0.0]", + "[45.850000000000044, 6.970368975304813, 2.976510513077314, 0.06461926173690229, 0.18539500421872782, 0.0430935708064986, -0.061878783908786046, 4.0, 0.0]", + "[45.90000000000005, 6.978408318864683, 2.9774347849665737, 0.0640254296948128, 0.13618084756081436, -0.006120585851414898, 0.03812121609121395, 4.0, 0.0]", + "[45.950000000000045, 6.98644776740925, 2.9758983495074784, 0.06843159666816798, 0.18539500421872784, -0.05533474250932839, 0.13812121609121394, 4.0, 0.0]", + "[46.00000000000004, 6.994487107858447, 2.9743620221437514, 0.07283754399869016, 0.13618084756081433, -0.006120585851414881, 0.038121216091213904, 4.0, 0.0]", + "[46.05000000000005, 7.002526563593153, 2.9752864062078492, 0.07224348402454775, 0.18539500421872787, 0.04309357080649863, -0.06187878390878617, 4.0, 0.0]", + "[46.10000000000005, 7.010565900932119, 2.9762106718762054, 0.07164966462293473, 0.1361808475608144, -0.006120585851414884, 0.03812121609121384, 4.0, 0.0]", + "[46.15000000000005, 7.016144530922696, 2.9746742301961704, 0.07105560661815166, 0.08696669090290085, -0.05533474250932839, -0.06187878390878621, 4.0, 0.0]", + "[46.200000000000045, 7.0217232773705955, 2.9731379049734596, 0.07046178524715903, 0.13618084756081436, -0.006120585851414902, 0.038121216091213786, 4.0, 0.0]", + "[46.25000000000005, 7.0297627311668744, 2.9740622870991267, 0.06986772921178151, 0.18539500421872787, 0.0430935708064986, -0.061878783908786254, 4.0, 0.0]", + "[46.300000000000054, 7.037802070444275, 2.974986554705918, 0.06927390587139291, 0.1361808475608144, -0.006120585851414905, 0.03812121609121377, 4.0, 0.0]", + "[46.35000000000005, 7.045841523271333, 2.9759109358623648, 0.06867985180540893, 0.18539500421872793, 0.04309357080649861, -0.061878783908786296, 4.0, 0.0]", + "[46.40000000000005, 7.053880863517959, 2.9768352044383786, 0.06808602649562136, 0.1361808475608144, -0.006120585851414888, 0.03812121609121369, 4.0, 0.0]", + "[46.45000000000005, 7.061920315375788, 2.9777595846255966, 0.06749197439904825, 0.18539500421872787, 0.043093570806498616, -0.06187878390878635, 4.0, 0.0]", + "[46.50000000000006, 7.069959656591646, 2.978683854170843, 0.06689814711984453, 0.13618084756081433, -0.006120585851414884, 0.03812121609121366, 4.0, 0.0]", + "[46.550000000000054, 7.075538290459136, 2.9771474163677216, 0.06630409699269924, 0.08696669090290085, -0.05533474250932838, -0.06187878390878639, 4.0, 0.0]", + "[46.60000000000005, 7.081117033030115, 2.9756110872680885, 0.0657102677440509, 0.13618084756081433, -0.006120585851414874, 0.038121216091213606, 4.0, 0.0]", + "[46.650000000000055, 7.089156482949451, 2.9765354655168124, 0.0651162195863729, 0.18539500421872784, 0.043093570806498616, -0.061878783908786435, 4.0, 0.0]", + "[46.70000000000006, 7.097195826103806, 2.9774597370005567, 0.0645223883682647, 0.13618084756081433, -0.006120585851414881, 0.038121216091213564, 4.0, 0.0]", + "[46.75000000000006, 7.1052352750538885, 2.975923301135944, 0.06892855616560457, 0.1853950042187279, -0.055334742509328384, 0.13812121609121358, 4.0, 0.0]", + "[46.800000000000054, 7.113274615097576, 2.9743869741777273, 0.07333450267215624, 0.1361808475608144, -0.006120585851414884, 0.03812121609121356, 4.0, 0.0]", + "[46.85000000000006, 7.121314071237785, 2.975311358647327, 0.07274044187406074, 0.1853950042187279, 0.043093570806498636, -0.06187878390878652, 4.0, 0.0]", + "[46.90000000000006, 7.129353408171251, 2.976235623910181, 0.07214662329640156, 0.13618084756081444, -0.006120585851414877, 0.038121216091213495, 4.0, 0.0]", + "[46.95000000000006, 7.13739286334226, 2.977160007410578, 0.07155256446766108, 0.1853950042187279, 0.04309357080649861, -0.06187878390878657, 4.0, 0.0]", + "[47.00000000000006, 7.14543220124493, 2.9780842736426365, 0.07095874392064108, 0.1361808475608144, -0.006120585851414888, 0.03812121609121344, 4.0, 0.0]", + "[47.05000000000006, 7.151010831799211, 2.976547832526308, 0.07036468706127362, 0.08696669090290092, -0.0553347425093284, -0.06187878390878659, 4.0, 0.0]", + "[47.100000000000065, 7.156589577683403, 2.9750115067398877, 0.06977086454486099, 0.13618084756081444, -0.006120585851414902, 0.038121216091213425, 4.0, 0.0]", + "[47.15000000000006, 7.164629030915968, 2.9759358883018416, 0.0691768096549115, 0.18539500421872795, 0.0430935708064986, -0.06187878390878661, 4.0, 0.0]", + "[47.20000000000006, 7.172668370757085, 2.9768601564723474, 0.06858298516909017, 0.13618084756081447, -0.006120585851414895, 0.038121216091213384, 4.0, 0.0]", + "[47.250000000000064, 7.180707823020425, 2.9777845370650744, 0.0679889322485473, 0.18539500421872798, 0.043093570806498616, -0.06187878390878666, 4.0, 0.0]", + "[47.30000000000007, 7.188747163830773, 2.9787088062048093, 0.0673951057933141, 0.1361808475608145, -0.006120585851414888, 0.038121216091213356, 4.0, 0.0]", + "[47.350000000000065, 7.196786615124878, 2.9771723679961752, 0.06680105484219478, 0.18539500421872798, -0.05533474250932839, -0.061878783908786684, 4.0, 0.0]", + "[47.40000000000006, 7.204825956904467, 2.9756360393020547, 0.06620722641752172, 0.1361808475608145, -0.006120585851414891, 0.03812121609121333, 4.0, 0.0]", + "[47.45000000000007, 7.212865407229317, 2.9765604179562932, 0.0656131774358644, 0.18539500421872798, 0.0430935708064986, -0.06187878390878672, 4.0, 0.0]", + "[47.50000000000007, 7.220904749978157, 2.977484689034523, 0.06501934704173624, 0.13618084756081444, -0.006120585851414905, 0.038121216091213286, 4.0, 0.0]", + "[47.55000000000007, 7.226483385378639, 2.975948252764394, 0.06442530002953427, 0.08696669090290096, -0.055334742509328405, -0.061878783908786754, 4.0, 0.0]", + "[47.600000000000065, 7.232062126416622, 2.974411922131765, 0.06383146766593523, 0.13618084756081447, -0.006120585851414888, 0.03812121609121326, 4.0, 0.0]", + "[47.65000000000007, 7.240101574802952, 2.9753362988474827, 0.06323742262322544, 0.18539500421872793, 0.0430935708064986, -0.06187878390878677, 4.0, 0.0]", + "[47.700000000000074, 7.248140919490316, 2.9762605718642363, 0.06264358829014094, 0.13618084756081444, -0.006120585851414902, 0.038121216091213245, 4.0, 0.0]", + "[47.75000000000007, 7.25618036690738, 2.9747241375326423, 0.06704975297248626, 0.18539500421872795, -0.055334742509328405, 0.13812121609121325, 4.0, 0.0]", + "[47.80000000000007, 7.26421970848404, 2.9731878090414505, 0.0714557025939423, 0.13618084756081447, -0.006120585851414905, 0.038121216091213224, 4.0, 0.0]", + "[47.85000000000007, 7.272259163091329, 2.974112191978129, 0.07086164491064369, 0.18539500421872795, 0.0430935708064986, -0.06187878390878684, 4.0, 0.0]", + "[47.90000000000008, 7.280298501557721, 2.9750364587739075, 0.07026782321817775, 0.13618084756081444, -0.006120585851414898, 0.03812121609121316, 4.0, 0.0]", + "[47.950000000000074, 7.288337955195793, 2.975960840741369, 0.06967376750426407, 0.18539500421872793, 0.04309357080649861, -0.06187878390878691, 4.0, 0.0]", + "[48.00000000000007, 7.2963772946314025, 2.976885108506368, 0.06907994384240772, 0.13618084756081444, -0.006120585851414888, 0.03812121609121311, 4.0, 0.0]", + "[48.050000000000075, 7.3019559267186365, 2.9753486689229893, 0.06848589009789631, 0.08696669090290093, -0.0553347425093284, -0.061878783908786934, 4.0, 0.0]", + "[48.10000000000008, 7.307534671069874, 2.9738123416036157, 0.06789206446661951, 0.13618084756081444, -0.006120585851414905, 0.038121216091213064, 4.0, 0.0]", + "[48.15000000000008, 7.315574122769477, 2.974736721632607, 0.06729801269155249, 0.18539500421872795, 0.043093570806498595, -0.06187878390878699, 4.0, 0.0]", + "[48.200000000000074, 7.323613464143563, 2.97566099133608, 0.06670418509083972, 0.13618084756081444, -0.006120585851414919, 0.03812121609121301, 4.0, 0.0]", + "[48.25000000000008, 7.331652914873925, 2.9765853703958305, 0.06611013528520736, 0.18539500421872795, 0.04309357080649859, -0.061878783908787045, 4.0, 0.0]", + "[48.30000000000008, 7.339692257217251, 2.9775096410685475, 0.06551630571505493, 0.13618084756081444, -0.006120585851414912, 0.03812121609121295, 4.0, 0.0]", + "[48.35000000000008, 7.345270892212219, 2.975973204392904, 0.0649222578788736, 0.08696669090290096, -0.055334742509328405, -0.06187878390878709, 4.0, 0.0]", + "[48.40000000000008, 7.350849633655716, 2.97443687416579, 0.06432842633925441, 0.13618084756081444, -0.006120585851414912, 0.03812121609121291, 4.0, 0.0]", + "[48.45000000000008, 7.358889082447561, 2.9753612512870253, 0.06373438047256144, 0.18539500421872795, 0.04309357080649859, -0.061878783908787156, 4.0, 0.0]", + "[48.500000000000085, 7.366928426729408, 2.9762855238982615, 0.06314054696346082, 0.13618084756081444, -0.006120585851414905, 0.03812121609121284, 4.0, 0.0]", + "[48.55000000000008, 7.37496787455199, 2.9747490891611488, 0.0675467124697935, 0.185395004218728, -0.05533474250932842, 0.13812121609121283, 4.0, 0.0]", + "[48.60000000000008, 7.38300721572314, 2.973212761075468, 0.07195266126727669, 0.13618084756081456, -0.006120585851414916, 0.03812121609121278, 4.0, 0.0]", + "[48.650000000000084, 7.391046670735933, 2.974137144417648, 0.07135860276002322, 0.185395004218728, 0.043093570806498574, -0.06187878390878726, 4.0, 0.0]", + "[48.70000000000009, 7.3990860087968215, 2.9750614108079247, 0.07076478189151295, 0.13618084756081453, -0.006120585851414919, 0.038121216091212745, 4.0, 0.0]", + "[48.750000000000085, 7.407125462840399, 2.9759857931808913, 0.07017072535363984, 0.185395004218728, 0.043093570806498574, -0.061878783908787295, 4.0, 0.0]", + "[48.80000000000008, 7.415164801870503, 2.976910060540385, 0.06957690251574371, 0.1361808475608145, -0.006120585851414936, 0.038121216091212724, 4.0, 0.0]", + "[48.85000000000009, 7.420743433552228, 2.9753736205515, 0.06898284794726844, 0.086966690902901, -0.05533474250932845, -0.061878783908787316, 4.0, 0.0]", + "[48.90000000000009, 7.426322178308972, 2.973837293637634, 0.06838902313995611, 0.13618084756081453, -0.0061205858514149294, 0.03812121609121272, 4.0, 0.0]", + "[48.95000000000009, 7.434361630414083, 2.974761674072134, 0.06779497054092123, 0.185395004218728, 0.04309357080649857, -0.06187878390878732, 4.0, 0.0]", + "[49.000000000000085, 7.442400971382658, 2.975685943370098, 0.0672011437641771, 0.13618084756081453, -0.006120585851414947, 0.03812121609121269, 4.0, 0.0]", + "[49.05000000000009, 7.450440422518531, 2.9766103228353598, 0.0666070931345725, 0.185395004218728, 0.04309357080649856, -0.061878783908787365, 4.0, 0.0]", + "[49.100000000000094, 7.4584797644563485, 2.9775345931025643, 0.06601326438839315, 0.13618084756081447, -0.006120585851414954, 0.038121216091212634, 4.0, 0.0]", + "[49.15000000000009, 7.466519214622975, 2.97845897159858, 0.0654192157282352, 0.18539500421872795, 0.04309357080649855, -0.06187878390878742, 4.0, 0.0]", + "[49.20000000000009, 7.474558557530042, 2.979383242835034, 0.0648253850126044, 0.13618084756081447, -0.006120585851414954, 0.03812121609121258, 4.0, 0.0]", + "[49.25000000000009, 7.482598006727415, 2.9778468067231327, 0.0692315533124209, 0.185395004218728, -0.05533474250932846, 0.13812121609121258, 4.0, 0.0]", + "[49.3000000000001, 7.49063734652381, 2.976310480012211, 0.07363749931648472, 0.1361808475608145, -0.006120585851414957, 0.038121216091212516, 4.0, 0.0]", + "[49.350000000000094, 7.4962159748923805, 2.9747740367101705, 0.07304343801588964, 0.086966690902901, -0.05533474250932846, -0.06187878390878755, 4.0, 0.0]", + "[49.40000000000009, 7.501794722962288, 2.973237713109467, 0.07244961994071128, 0.1361808475608145, -0.006120585851414968, 0.038121216091212454, 4.0, 0.0]", + "[49.450000000000095, 7.509834178380578, 2.974162096857148, 0.07185556060950608, 0.185395004218728, 0.04309357080649853, -0.0618787839087876, 4.0, 0.0]", + "[49.5000000000001, 7.517873516035965, 2.9750863628419233, 0.07126174056494851, 0.13618084756081453, -0.0061205858514149745, 0.03812121609121241, 4.0, 0.0]", + "[49.5500000000001, 7.525912970485045, 2.9760107456203926, 0.07066768320311903, 0.185395004218728, 0.04309357080649853, -0.06187878390878765, 4.0, 0.0]", + "[49.600000000000094, 7.533952309109646, 2.976935012574383, 0.07007386118918014, 0.13618084756081456, -0.006120585851414968, 0.03812121609121236, 4.0, 0.0]", + "[49.6500000000001, 7.5419917625895065, 2.977859394383632, 0.06947980579674391, 0.18539500421872807, 0.04309357080649853, -0.061878783908787684, 4.0, 0.0]", + "[49.7000000000001, 7.550031102183329, 2.978783662306845, 0.06888598181340647, 0.13618084756081458, -0.006120585851414961, 0.0381212160912123, 4.0, 0.0]", + "[49.7500000000001, 7.555609734428778, 2.977247222881683, 0.06829192839038062, 0.0869666909029011, -0.05533474250932845, -0.06187878390878774, 4.0, 0.0]", + "[49.8000000000001, 7.561188478621797, 2.975710895404092, 0.06769810243761504, 0.1361808475608146, -0.006120585851414947, 0.03812121609121226, 4.0, 0.0]", + "[49.8500000000001, 7.569227930163179, 2.9766352752748633, 0.06710405098404087, 0.18539500421872812, 0.043093570806498546, -0.06187878390878777, 4.0, 0.0]", + "[49.900000000000105, 7.577267271695485, 2.9775595451365584, 0.06651022306183188, 0.13618084756081458, -0.006120585851414947, 0.038121216091212246, 4.0, 0.0]", + "[49.9500000000001, 7.585306722267623, 2.9784839240380854, 0.0659161735776999, 0.1853950042187281, 0.04309357080649855, -0.06187878390878781, 4.0, 0.0]", + "[50.0000000000001, 7.593346064769177, 2.979408194869028, 0.06532234368604392, 0.13618084756081456, -0.00612058585141494, 0.03812121609121219, 4.0, 0.0]", + "[50.050000000000104, 7.601385514372062, 2.9778717583516117, 0.06472829617137023, 0.1853950042187281, -0.05533474250932843, -0.06187878390878785, 4.0, 0.0]", + "[50.10000000000011, 7.609424857842876, 2.976335427966269, 0.06413446431024113, 0.1361808475608146, -0.0061205858514149225, 0.03812121609121216, 4.0, 0.0]", + "[50.150000000000105, 7.617464254137369, 2.97725975259015, 0.06354052511479333, 0.18539500421872815, 0.04309357080649858, -0.06187878390878786, 4.0, 0.05000000000000001]" ] }, "type": "simtrace", @@ -1945,18 +1943,18 @@ "5": { "node_name": "3-1", "id": 5, - "start_line": 1945, + "start_line": 1943, "parent": { "name": "2-1", "index": 4, - "start_line": 1567 + "start_line": 1566 }, "child": {}, "agent": { "test": "<class 'dryvr_plus_plus.example.example_agent.quadrotor_agent.QuadrotorAgent'>" }, "init": { - "test": "[7.619112642306889, 2.9706939797107648, 0.07372418129619768, 0.17043916592411412, -0.025803274500983513, -0.08819102935718813, 5, 0]" + "test": "[7.617464254137369, 2.97725975259015, 0.06354052511479333, 0.18539500421872815, 0.04309357080649858, -0.06187878390878786, 5, 0]" }, "mode": { "test": "[\"Follow_Waypoint\"]" @@ -1964,410 +1962,410 @@ "static": { "test": "[]" }, - "start_time": 50.25, + "start_time": 50.15, "trace": { "test": [ - "[50.25, 7.619112642306889, 2.9706939797107648, 0.07372418129619768, 0.17043916592411412, -0.025803274500983513, -0.08819102935718813, 5.0, 0.0]", - "[50.3, 7.628865014683297, 2.9681734019055135, 0.07181475207721628, 0.21965332258202763, -0.07501743115889703, 0.011808970642811889, 5.0, 0.0]", - "[50.35, 7.641078093334655, 2.9631921178253124, 0.06990508152612493, 0.26886747923994114, -0.12423158781681054, -0.08819102935718814, 5.0, 0.0]", - "[50.4, 7.655751878260741, 2.9557501274703837, 0.06799564597539959, 0.31808163589785476, -0.17344574447472402, 0.011808970642811882, 5.0, 0.0]", - "[50.45, 7.672886369461721, 2.9483082496527353, 0.06608598175616238, 0.3672957925557683, -0.12423158781681054, -0.08819102935718817, 5.0, 0.0]", - "[50.5, 7.692481566937393, 2.9408662624140107, 0.06417653987351186, 0.41650994921368173, -0.17344574447472405, 0.011808970642811847, 5.0, 0.0]", - "[50.55, 7.714537470687922, 2.930963568900429, 0.0672670948250281, 0.4657241058715953, -0.22265990113263753, 0.11180897064281187, 5.0, 0.0]", - "[50.6, 7.73905408479308, 2.921060982655376, 0.0703574318137953, 0.5149382625295087, -0.17344574447472402, 0.011808970642811827, 5.0, 0.0]", - "[50.65, 7.7660314092526335, 2.9136191067647164, 0.06844776367904058, 0.5641524191874222, -0.12423158781681051, -0.0881910293571882, 5.0, 0.0]", - "[50.7, 7.795469439986904, 2.906177117598976, 0.06653832571196093, 0.6133665758453356, -0.17344574447472402, 0.01180897064281182, 5.0, 0.0]", - "[50.75, 7.827368176996063, 2.8962744221583465, 0.06962888457911241, 0.6625807325032489, -0.22265990113263756, 0.11180897064281184, 5.0, 0.0]", - "[50.8, 7.861727624359802, 2.886371837840294, 0.07271921765233987, 0.7117948891611623, -0.17344574447472408, 0.011808970642811799, 5.0, 0.0]", - "[50.85, 7.89608695555784, 2.878929963876577, 0.07580978676680064, 0.6625807325032486, -0.1242315878168106, 0.11180897064281181, 5.0, 0.0]", - "[50.9, 7.927985576401403, 2.871487968704136, 0.07890010959293271, 0.6133665758453348, -0.17344574447472408, 0.01180897064281173, 5.0, 0.0]", - "[50.95, 7.957423486890754, 2.864046099783315, 0.0769904272959159, 0.5641524191874213, -0.1242315878168106, -0.08819102935718831, 5.0, 0.0]", - "[51.0, 7.984400691105299, 2.8566041036476495, 0.07508100349127579, 0.5149382625295078, -0.17344574447472413, 0.011808970642811709, 5.0, 0.0]", - "[51.05, 8.00891718904485, 2.849162231610839, 0.07317132752574755, 0.46572410587159435, -0.12423158781681062, -0.08819102935718837, 5.0, 0.0]", - "[51.1, 8.030972980709626, 2.8417202385911975, 0.07126189738954851, 0.41650994921368084, -0.17344574447472416, 0.01180897064281164, 5.0, 0.0]", - "[51.15, 8.050568066099448, 2.8342783634383197, 0.07435246408770955, 0.3672957925557673, -0.12423158781681067, 0.11180897064281164, 5.0, 0.0]", - "[51.2, 8.067702441134792, 2.826836369455034, 0.07744278933012735, 0.3180816358978538, -0.17344574447472416, 0.011808970642811605, 5.0, 0.0]", - "[51.25, 8.082376105815914, 2.819394499345067, 0.07553310944937605, 0.2688674792399404, -0.12423158781681065, -0.08819102935718845, 5.0, 0.0]", - "[51.3, 8.094589064222237, 2.8119525043985543, 0.07362368322845587, 0.21965332258202686, -0.1734457444747241, 0.01180897064281159, 5.0, 0.0]", - "[51.35, 8.10434131635357, 2.804510631172581, 0.07671425384196354, 0.17043916592411337, -0.12423158781681062, 0.11180897064281159, 5.0, 0.0]", - "[51.4, 8.111632858130482, 2.797068635262449, 0.07980457516915411, 0.12122500926619983, -0.17344574447472413, 0.011808970642811521, 5.0, 0.0]", - "[51.45, 8.116463689553248, 2.789626767079259, 0.07789489137331602, 0.07201085260828631, -0.12423158781681065, -0.08819102935718853, 5.0, 0.0]", - "[51.5, 8.118833814701183, 2.782184770205939, 0.07598546906754267, 0.0227966959503728, -0.17344574447472416, 0.011808970642811473, 5.0, 0.0]", - "[51.55, 8.118743233574099, 2.7747428989068084, 0.0740757916030974, -0.02641746070754069, -0.12423158781681062, -0.08819102935718856, 5.0, 0.0]", - "[51.6, 8.116191946172219, 2.767300905149465, 0.07216636296586021, -0.07563161736545419, -0.17344574447472413, 0.011808970642811431, 5.0, 0.0]", - "[51.65, 8.11117995249536, 2.7598590307343116, 0.07525693116303236, -0.12484577402336769, -0.12423158781681061, 0.11180897064281145, 5.0, 0.0]", - "[51.7, 8.103707248464074, 2.7524170360133544, 0.0783472549065503, -0.1740599306812812, -0.17344574447472413, 0.01180897064281139, 5.0, 0.0]", - "[51.75, 8.096234669781389, 2.7449751666409954, 0.07643757352702601, -0.12484577402336769, -0.12423158781681062, -0.08819102935718867, 5.0, 0.0]", - "[51.8, 8.091222797373527, 2.7375331709568482, 0.07452814880493074, -0.07563161736545418, -0.17344574447472413, 0.011808970642811348, 5.0, 0.0]", - "[51.85, 8.086210801769827, 2.7300912984685377, 0.07261847375682176, -0.12484577402336768, -0.12423158781681061, -0.0881910293571887, 5.0, 0.0]", - "[51.9, 8.081198926245978, 2.722649305900376, 0.0707090427032426, -0.07563161736545418, -0.1734457444747241, 0.01180897064281132, 5.0, 0.0]", - "[51.95, 8.078647756997103, 2.7152074302960347, 0.06879937398670666, -0.0264174607075407, -0.12423158781681062, -0.08819102935718873, 5.0, 0.0]", - "[52.0, 8.076096473900467, 2.707765440843937, 0.06688993660148819, -0.07563161736545419, -0.17344574447472413, 0.01180897064281125, 5.0, 0.0]", - "[52.050000000000004, 8.073545301535482, 2.700323562123492, 0.06998049605057984, -0.02641746070754071, -0.12423158781681062, 0.11180897064281123, 5.0, 0.0]", - "[52.1, 8.070994017475211, 2.692881571707757, 0.07307082854203176, -0.07563161736545422, -0.17344574447472416, 0.011808970642811174, 5.0, 0.0]", - "[52.15, 8.068442850153183, 2.685439698030267, 0.07116115591025954, -0.02641746070754072, -0.12423158781681065, -0.0881910293571889, 5.0, 0.0]", - "[52.2, 8.068352389105945, 2.6779977066512872, 0.06925172244033986, 0.022796695950372772, -0.1734457444747242, 0.011808970642811098, 5.0, 0.0]", - "[52.25, 8.068261813473253, 2.670555829857759, 0.07234228580480472, -0.026417460707540735, -0.12423158781681069, 0.11180897064281112, 5.0, 0.0]", - "[52.3, 8.06817135338963, 2.6631138375151666, 0.07543261438100521, 0.022796695950372772, -0.17344574447472422, 0.011808970642811077, 5.0, 0.0]", - "[52.35, 8.068080772714115, 2.6556719657644643, 0.0735229378341244, -0.02641746070754073, -0.12423158781681073, -0.08819102935718895, 5.0, 0.0]", - "[52.4, 8.067990313593697, 2.6482299724586644, 0.07161350827938054, 0.022796695950372765, -0.17344574447472422, 0.011808970642811056, 5.0, 0.0]", - "[52.45, 8.067899736034144, 2.640788097591996, 0.07470407555909901, -0.026417460707540735, -0.12423158781681073, 0.11180897064281106, 5.0, 0.0]", - "[52.5, 8.067809277877313, 2.633346103322608, 0.07779440022017696, 0.02279669595037278, -0.17344574447472427, 0.011808970642810994, 5.0, 0.0]", - "[52.55, 8.067718695275076, 2.6259042334986247, 0.07588471975832628, -0.026417460707540714, -0.12423158781681079, -0.08819102935718903, 5.0, 0.0]", - "[52.6, 8.067628238081413, 2.6184622382660705, 0.0739752941186232, 0.02279669595037278, -0.17344574447472433, 0.011808970642810994, 5.0, 0.0]", - "[52.65, 8.067537658595068, 2.6110203653261954, 0.07206561998806302, -0.026417460707540717, -0.12423158781681076, -0.08819102935718906, 5.0, 0.0]", - "[52.7, 8.067447198285477, 2.603578373209569, 0.07015618801699426, 0.02279669595037279, -0.17344574447472427, 0.011808970642810945, 5.0, 0.0]", - "[52.75, 8.06735662191511, 2.596136497153719, 0.07324675288037506, -0.026417460707540707, -0.12423158781681079, 0.11180897064281095, 5.0, 0.0]", - "[52.8, 8.067266162569103, 2.5886945040735068, 0.07633707995777932, 0.022796695950372793, -0.1734457444747243, 0.011808970642810883, 5.0, 0.0]", - "[52.85, 8.067175581156032, 2.5812526330603576, 0.0744274019122373, -0.02641746070754072, -0.12423158781681078, -0.08819102935718917, 5.0, 0.0]", - "[52.9, 8.0670851227732, 2.5738106390169704, 0.07251797385622215, 0.022796695950372783, -0.17344574447472427, 0.01180897064281082, 5.0, 0.0]", - "[52.949999999999996, 8.066994544476028, 2.5663687648879216, 0.07560854263473946, -0.02641746070754072, -0.12423158781681079, 0.11180897064281084, 5.0, 0.0]", - "[53.0, 8.066904087056754, 2.558926769880977, 0.07869886579714942, 0.02279669595037277, -0.17344574447472424, 0.011808970642810807, 5.0, 0.0]", - "[53.05, 8.066813503717036, 2.5514849007944775, 0.07678918383677752, -0.026417460707540735, -0.12423158781681075, -0.08819102935718923, 5.0, 0.0]", - "[53.099999999999994, 8.066723047260894, 2.544042904824403, 0.07487975969566867, 0.022796695950372772, -0.17344574447472427, 0.011808970642810765, 5.0, 0.0]", - "[53.15, 8.066632467036992, 2.536601032622086, 0.07297008406643854, -0.02641746070754074, -0.12423158781681079, -0.08819102935718931, 5.0, 0.0]", - "[53.199999999999996, 8.066542007464992, 2.529159039767868, 0.07106065359410796, 0.02279669595037277, -0.1734457444747243, 0.011808970642810723, 5.0, 0.0]", - "[53.25, 8.066451430356993, 2.5217171644496443, 0.0741512199562979, -0.026417460707540724, -0.12423158781681085, 0.11180897064281073, 5.0, 0.0]", - "[53.3, 8.06636097174855, 2.5142751706318696, 0.0772415455350254, 0.022796695950372776, -0.17344574447472438, 0.011808970642810675, 5.0, 0.0]", - "[53.349999999999994, 8.066270389597992, 2.5068333003562078, 0.07533186599095529, -0.026417460707540724, -0.12423158781681083, -0.0881910293571894, 5.0, 0.0]", - "[53.4, 8.066179931952684, 2.499391305575297, 0.07342243943354228, 0.022796695950372776, -0.17344574447472433, 0.011808970642810626, 5.0, 0.0]", - "[53.449999999999996, 8.066089352917954, 2.491949432183812, 0.07651300971073834, -0.026417460707540735, -0.12423158781681085, 0.11180897064281062, 5.0, 0.0]", - "[53.5, 8.065998896236175, 2.484507436439377, 0.07960333137461424, 0.022796695950372762, -0.17344574447472436, 0.011808970642810578, 5.0, 0.0]", - "[53.55, 8.065908312159047, 2.477065568090289, 0.07769364791587013, -0.02641746070754073, -0.12423158781681082, -0.08819102935718948, 5.0, 0.0]", - "[53.599999999999994, 8.065817856440358, 2.469623571382764, 0.07578422527321368, 0.022796695950372772, -0.17344574447472436, 0.011808970642810515, 5.0, 0.0]", - "[53.65, 8.065727275478963, 2.462181699917939, 0.07387454814544848, -0.026417460707540724, -0.12423158781681082, -0.0881910293571895, 5.0, 0.0]", - "[53.699999999999996, 8.065636816644492, 2.4547397063261935, 0.0719651191717282, 0.02279669595037278, -0.17344574447472433, 0.01180897064281048, 5.0, 0.0]", - "[53.74999999999999, 8.06554623879893, 2.4472978317455367, 0.07505568703260597, -0.026417460707540717, -0.12423158781681082, 0.11180897064281048, 5.0, 0.0]", - "[53.8, 8.06545578092798, 2.4398558371902697, 0.07814601111279232, 0.02279669595037278, -0.17344574447472433, 0.011808970642810411, 5.0, 0.0]", - "[53.849999999999994, 8.06536519804001, 2.432413967652022, 0.07623633007034535, -0.02641746070754073, -0.12423158781681079, -0.08819102935718967, 5.0, 0.0]", - "[53.89999999999999, 8.065274741132157, 2.424971972133658, 0.07432690501139066, 0.02279669595037277, -0.17344574447472424, 0.01180897064281032, 5.0, 0.0]", - "[53.949999999999996, 8.065184161359932, 2.4175300994796665, 0.07241723029993348, -0.026417460707540738, -0.12423158781681073, -0.08819102935718973, 5.0, 0.0]", - "[53.99999999999999, 8.065093701336291, 2.4100881070770868, 0.07050779890990275, 0.022796695950372762, -0.1734457444747242, 0.01180897064281028, 5.0, 0.0]", - "[54.05, 8.065003124679905, 2.402646231307258, 0.0735983643544591, -0.02641746070754074, -0.12423158781681069, 0.11180897064281028, 5.0, 0.0]", - "[54.099999999999994, 8.064912665619786, 2.3952042379411584, 0.07668869085095899, 0.02279669595037277, -0.17344574447472422, 0.011808970642810217, 5.0, 0.0]", - "[54.14999999999999, 8.064822083920978, 2.3877623672137487, 0.07477901222481224, -0.02641746070754073, -0.12423158781681069, -0.08819102935718984, 5.0, 0.0]", - "[54.199999999999996, 8.064731625823965, 2.380320372884546, 0.07286958474955627, 0.02279669595037278, -0.17344574447472422, 0.011808970642810196, 5.0, 0.0]", - "[54.24999999999999, 8.064641047240906, 2.3728784990413874, 0.07596015410898348, -0.026417460707540717, -0.1242315878168107, 0.11180897064281017, 5.0, 0.0]", - "[54.3, 8.064550590107377, 2.3654365037487017, 0.07905047669078341, 0.02279669595037278, -0.17344574447472422, 0.01180897064281014, 5.0, 0.0]", - "[54.349999999999994, 8.06446000648208, 2.357994634947782, 0.07714079415013204, -0.02641746070754073, -0.12423158781681067, -0.08819102935718992, 5.0, 0.0]", - "[54.39999999999999, 8.064369550311598, 2.3505526386920437, 0.07523137058947167, 0.022796695950372765, -0.1734457444747242, 0.011808970642810085, 5.0, 0.0]", - "[54.449999999999996, 8.064278969801952, 2.343110766775471, 0.07332169437962816, -0.02641746070754073, -0.12423158781681068, -0.08819102935718995, 5.0, 0.0]", - "[54.49999999999999, 8.064188510515775, 2.3356687736354322, 0.07141226448806796, 0.022796695950372765, -0.17344574447472416, 0.011808970642810057, 5.0, 0.0]", - "[54.54999999999999, 8.064097933121886, 2.3282268986031056, 0.07450283143118118, -0.026417460707540735, -0.12423158781681067, 0.11180897064281006, 5.0, 0.0]", - "[54.599999999999994, 8.064007474799189, 2.320784904499585, 0.0775931564292898, 0.02279669595037277, -0.17344574447472413, 0.011808970642810009, 5.0, 0.0]", - "[54.64999999999999, 8.063916892363052, 2.3133430345095056, 0.07568347630493692, -0.026417460707540738, -0.12423158781681062, -0.08819102935719003, 5.0, 0.0]", - "[54.69999999999999, 8.063826435003413, 2.305901039442928, 0.07377405032797857, 0.022796695950372755, -0.17344574447472413, 0.011808970642809953, 5.0, 0.0]", - "[54.74999999999999, 8.063735855682935, 2.2984591663371905, 0.0718643765344412, -0.02641746070754075, -0.12423158781681062, -0.08819102935719009, 5.0, 0.0]", - "[54.79999999999999, 8.063645395207594, 2.291017174386317, 0.06995494422657382, 0.022796695950372762, -0.17344574447472413, 0.011808970642809918, 5.0, 0.0]", - "[54.849999999999994, 8.06355481900287, 2.2835752981648203, 0.07304550875337013, -0.026417460707540735, -0.12423158781681069, 0.1118089706428099, 5.0, 0.0]", - "[54.89999999999999, 8.063464359491006, 2.2761333052504673, 0.0761358361677904, 0.022796695950372762, -0.1734457444747242, 0.011808970642809828, 5.0, 0.0]", - "[54.94999999999999, 8.063373778244031, 2.268691434071225, 0.07422615845973914, -0.02641746070754074, -0.12423158781681069, -0.0881910293571902, 5.0, 0.0]", - "[54.99999999999999, 8.06328331969523, 2.26124944019381, 0.07231673006647989, 0.02279669595037275, -0.17344574447472422, 0.011808970642809793, 5.0, 0.0]", - "[55.04999999999999, 8.063192741563915, 2.253807565898906, 0.07540729850798918, -0.026417460707540752, -0.12423158781681072, 0.11180897064280981, 5.0, 0.0]", - "[55.099999999999994, 8.063102283978552, 2.2463655710580537, 0.07849762200788678, 0.02279669595037275, -0.17344574447472422, 0.011808970642809731, 5.0, 0.0]", - "[55.14999999999999, 8.063011700805184, 2.238923701805204, 0.07658794038552906, -0.02641746070754076, -0.12423158781681073, -0.08819102935719031, 5.0, 0.0]", - "[55.19999999999999, 8.062921244182826, 2.2314817060013468, 0.07467851590667691, 0.02279669595037274, -0.17344574447472422, 0.01180897064280971, 5.0, 0.0]", - "[55.24999999999999, 8.062830664125013, 2.2240398336329403, 0.07276884061493019, -0.02641746070754076, -0.1242315878168107, -0.08819102935719034, 5.0, 0.0]", - "[55.29999999999999, 8.062740204387048, 2.2165978409446887, 0.07085940980536715, 0.02279669595037273, -0.17344574447472422, 0.011808970642809655, 5.0, 0.0]", - "[55.34999999999999, 8.062649627444902, 2.2091559654606168, 0.07394997583056451, -0.02641746070754077, -0.12423158781681072, 0.11180897064280967, 5.0, 0.0]", - "[55.39999999999999, 8.06255916867037, 2.2017139718089314, 0.07704030174677219, 0.022796695950372734, -0.17344574447472424, 0.011808970642809606, 5.0, 0.0]", - "[55.44999999999999, 8.062468586686167, 2.1942721013669177, 0.07513062254071855, -0.02641746070754077, -0.12423158781681073, -0.08819102935719045, 5.0, 0.0]", - "[55.499999999999986, 8.062378128874643, 2.1868301067522227, 0.07322119564556506, 0.022796695950372734, -0.17344574447472427, 0.011808970642809558, 5.0, 0.0]", - "[55.54999999999999, 8.062287550006, 2.17938823319465, 0.0763117655852852, -0.02641746070754077, -0.12423158781681075, 0.11180897064280956, 5.0, 0.0]", - "[55.59999999999999, 8.06219709315786, 2.171946237616568, 0.07940208758717937, 0.022796695950372717, -0.1734457444747242, 0.01180897064280955, 5.0, 0.0]", - "[55.64999999999999, 8.06210650924737, 2.1645043691008348, 0.0774924044670486, -0.026417460707540783, -0.1242315878168107, -0.0881910293571905, 5.0, 0.0]", - "[55.69999999999999, 8.062016053362179, 2.157062372559805, 0.075582981486082, 0.022796695950372727, -0.17344574447472422, 0.011808970642809502, 5.0, 0.0]", - "[55.749999999999986, 8.061925472567138, 2.1496205009286253, 0.07367330469633569, -0.026417460707540766, -0.12423158781681078, -0.08819102935719053, 5.0, 0.0]", - "[55.79999999999999, 8.061835013566451, 2.142178507503094, 0.07176387538487783, 0.022796695950372738, -0.1734457444747243, 0.011808970642809474, 5.0, 0.0]", - "[55.84999999999999, 8.06174443588697, 2.134736632756356, 0.07485444290828756, -0.026417460707540776, -0.12423158781681079, 0.11180897064280948, 5.0, 0.0]", - "[55.89999999999999, 8.061653977849666, 2.127294638367442, 0.07794476732649465, 0.02279669595037273, -0.17344574447472433, 0.011808970642809453, 5.0, 0.0]", - "[55.94999999999999, 8.06156339512835, 2.1198527686625406, 0.07603508662267593, -0.02641746070754078, -0.12423158781681087, -0.08819102935719061, 5.0, 0.0]", - "[55.999999999999986, 8.061472938053996, 2.112410773310676, 0.07412566122540261, 0.02279669595037272, -0.17344574447472436, 0.011808970642809391, 5.0, 0.0]", - "[56.04999999999999, 8.061382358448123, 2.1049689004903307, 0.07221598685196678, -0.026417460707540783, -0.12423158781681086, -0.08819102935719064, 5.0, 0.0]", - "[56.09999999999999, 8.06129189825827, 2.0975269082539643, 0.0703065551242016, 0.02279669595037272, -0.17344574447472433, 0.011808970642809377, 5.0, 0.0]", - "[56.149999999999984, 8.061201321767957, 2.0900850323180573, 0.07339712023129809, -0.026417460707540776, -0.1242315878168108, 0.11180897064280937, 5.0, 0.0]", - "[56.19999999999999, 8.061110862541485, 2.082643039118313, 0.07648744706582124, 0.02279669595037272, -0.17344574447472433, 0.011808970642809315, 5.0, 0.0]", - "[56.249999999999986, 8.061020281009338, 2.075201168224243, 0.0745777687783183, -0.026417460707540783, -0.1242315878168108, -0.08819102935719073, 5.0, 0.0]", - "[56.29999999999998, 8.06092982274582, 2.0677591740615453, 0.07266834096473487, 0.02279669595037272, -0.17344574447472433, 0.011808970642809266, 5.0, 0.0]", - "[56.34999999999999, 8.060839244329118, 2.0603173000520316, 0.075758909986138, -0.026417460707540776, -0.12423158781681079, 0.11180897064280929, 5.0, 0.0]", - "[56.399999999999984, 8.060748787028922, 2.0528753049260104, 0.07884923290659035, 0.02279669595037272, -0.17344574447472427, 0.011808970642809252, 5.0, 0.0]", - "[56.44999999999999, 8.060658203570627, 2.045433435958087, 0.07693955070528179, -0.02641746070754079, -0.12423158781681073, -0.08819102935719081, 5.0, 0.0]", - "[56.499999999999986, 8.060567747233312, 2.0379914398691823, 0.07503012680562667, 0.022796695950372717, -0.17344574447472424, 0.011808970642809183, 5.0, 0.0]", - "[56.54999999999998, 8.060477166890337, 2.0305495677859406, 0.07312045093444318, -0.026417460707540783, -0.12423158781681076, -0.08819102935719089, 5.0, 0.0]", - "[56.59999999999999, 8.06038670743765, 2.023107574812411, 0.07121102070454623, 0.022796695950372724, -0.17344574447472424, 0.011808970642809113, 5.0, 0.0]", - "[56.649999999999984, 8.060296130210116, 2.0156656996137268, 0.07430158730963261, -0.026417460707540776, -0.12423158781681073, 0.11180897064280912, 5.0, 0.0]", - "[56.69999999999999, 8.060205671720743, 2.00822370567688, 0.0773919126464103, 0.02279669595037272, -0.17344574447472422, 0.011808970642809072, 5.0, 0.0]", - "[56.749999999999986, 8.060115089451626, 2.000781835519779, 0.07548223286143352, -0.02641746070754078, -0.12423158781681068, -0.08819102935719098, 5.0, 0.0]", - "[56.79999999999998, 8.060024631925142, 1.9933398406200473, 0.0735728065454556, 0.022796695950372706, -0.1734457444747242, 0.011808970642809016, 5.0, 0.0]", - "[56.84999999999999, 8.059934052771338, 1.985897967347633, 0.0716631330905953, -0.026417460707540797, -0.12423158781681072, -0.08819102935719103, 5.0, 0.0]", - "[56.899999999999984, 8.059843592129479, 1.9784559755632731, 0.0697537004443815, 0.0227966959503727, -0.17344574447472424, 0.011808970642809002, 5.0, 0.0]", - "[56.94999999999998, 8.059753016091115, 1.9710140991754181, 0.07284426463314808, -0.026417460707540804, -0.1242315878168107, 0.11180897064280901, 5.0, 0.0]", - "[56.999999999999986, 8.05966255641257, 1.9635721064277472, 0.07593459238625479, 0.0227966959503727, -0.17344574447472416, 0.01180897064280894, 5.0, 0.0]", - "[57.04999999999998, 8.05957197533263, 1.9561302350814662, 0.07402491501761439, -0.0264174607075408, -0.12423158781681068, -0.08819102935719109, 5.0, 0.0]", - "[57.09999999999998, 8.05948151661697, 1.9486882413709097, 0.07211548628530956, 0.02279669595037272, -0.1734457444747242, 0.011808970642808926, 5.0, 0.0]", - "[57.149999999999984, 8.059390938652342, 1.9412463669093203, 0.07520605438812392, -0.02641746070754078, -0.12423158781681069, 0.11180897064280892, 5.0, 0.0]", - "[57.19999999999998, 8.05930048089993, 1.9338043722355154, 0.07829637822745103, 0.02279669595037271, -0.17344574447472422, 0.011808970642808912, 5.0, 0.0]", - "[57.249999999999986, 8.059209897894007, 1.9263625028152205, 0.07638669694533115, -0.026417460707540787, -0.12423158781681072, -0.08819102935719111, 5.0, 0.0]", - "[57.29999999999998, 8.059119441104402, 1.9189205071786097, 0.07447727212664398, 0.022796695950372706, -0.17344574447472422, 0.011808970642808878, 5.0, 0.0]", - "[57.34999999999998, 8.05902886121365, 1.911478634643147, 0.07256759717434466, -0.026417460707540794, -0.1242315878168107, -0.08819102935719114, 5.0, 0.0]", - "[57.399999999999984, 8.058938401308813, 1.9040366421217672, 0.07065816602570872, 0.02279669595037271, -0.17344574447472422, 0.011808970642808878, 5.0, 0.0]", - "[57.44999999999998, 8.058847824533364, 1.8965947664710006, 0.07374873171219254, -0.026417460707540797, -0.12423158781681067, 0.1118089706428089, 5.0, 0.0]", - "[57.499999999999986, 8.058757365591767, 1.8891527729863804, 0.07683905796786708, 0.022796695950372703, -0.1734457444747242, 0.011808970642808843, 5.0, 0.0]", - "[57.54999999999998, 8.058666783775037, 1.8817109023768923, 0.074929379102111, -0.02641746070754079, -0.12423158781681068, -0.0881910293571912, 5.0, 0.0]", - "[57.59999999999998, 8.058576325796242, 1.8742689079294683, 0.07301995186707384, 0.022796695950372706, -0.17344574447472416, 0.011808970642808801, 5.0, 0.0]", - "[57.649999999999984, 8.058485747094673, 1.8668270342048214, 0.0761105214673082, -0.0264174607075408, -0.12423158781681065, 0.11180897064280881, 5.0, 0.0]", - "[57.69999999999998, 8.058395290079044, 1.8593850387942294, 0.07920084380953153, 0.022796695950372703, -0.1734457444747241, 0.01180897064280876, 5.0, 0.0]", - "[57.74999999999998, 8.060765543416618, 1.8519431701105493, 0.0772911610306577, 0.07201085260828621, -0.1242315878168106, -0.08819102935719131, 5.0, 0.0]", - "[57.79999999999998, 8.063135669064566, 1.8445011737372414, 0.07538173770889162, 0.02279669595037271, -0.1734457444747241, 0.011808970642808697, 5.0, 0.0]", - "[57.84999999999998, 8.063045088437029, 1.8370593019385577, 0.07347206125950406, -0.026417460707540797, -0.1242315878168106, -0.08819102935719136, 5.0, 0.0]", - "[57.89999999999998, 8.062954629269047, 1.8296173086803216, 0.07156263160811284, 0.022796695950372703, -0.17344574447472408, 0.011808970642808642, 5.0, 0.0]", - "[57.94999999999998, 8.062864051756659, 1.8221754337664888, 0.07465319879199787, -0.026417460707540797, -0.12423158781681057, 0.11180897064280865, 5.0, 0.0]", - "[57.99999999999998, 8.062773593551832, 1.814733439545096, 0.07774352355059697, 0.022796695950372696, -0.17344574447472405, 0.0118089706428086, 5.0, 0.0]", - "[58.04999999999998, 8.062683010998507, 1.8072915696722034, 0.07583384318812637, -0.026417460707540807, -0.12423158781681054, -0.08819102935719147, 5.0, 0.0]", - "[58.09999999999998, 8.062592553756392, 1.7998495744880993, 0.07392441744997516, 0.02279669595037269, -0.17344574447472405, 0.01180897064280853, 5.0, 0.0]", - "[58.14999999999998, 8.062501974318057, 1.792407701500216, 0.07201474341696439, -0.026417460707540825, -0.12423158781681053, -0.0881910293571915, 5.0, 0.0]", - "[58.19999999999998, 8.062411513960885, 1.784965709431172, 0.07010531134921176, 0.02279669595037267, -0.173445744474724, 0.01180897064280851, 5.0, 0.0]", - "[58.24999999999998, 8.06232093763769, 1.7775238333281502, 0.07319587611674105, -0.026417460707540825, -0.12423158781681053, 0.11180897064280851, 5.0, 0.0]", - "[58.29999999999998, 8.06223047824366, 1.7700818402959604, 0.07628620329172432, 0.02279669595037268, -0.17344574447472408, 0.01180897064280844, 5.0, 0.0]", - "[58.34999999999998, 8.062139896879552, 1.76263996923385, 0.07437652534566777, -0.026417460707540835, -0.12423158781681054, -0.08819102935719164, 5.0, 0.0]", - "[58.39999999999998, 8.062049438448232, 1.755197975238954, 0.07246709719112272, 0.02279669595037267, -0.173445744474724, 0.011808970642808364, 5.0, 0.0]", - "[58.44999999999998, 8.061958860199102, 1.7477561010618685, 0.07555766587203078, -0.026417460707540828, -0.12423158781681051, 0.11180897064280837, 5.0, 0.0]", - "[58.499999999999986, 8.061868402730838, 1.740314106103913, 0.07864798913398138, 0.022796695950372675, -0.173445744474724, 0.011808970642808336, 5.0, 0.0]", - "[58.54999999999998, 8.061777819441154, 1.73287223696738, 0.07673830727527657, -0.026417460707540825, -0.12423158781681051, -0.08819102935719172, 5.0, 0.0]", - "[58.59999999999998, 8.061687362935496, 1.7254302410468214, 0.07482888303355392, 0.02279669595037269, -0.173445744474724, 0.011808970642808309, 5.0, 0.0]", - "[58.649999999999984, 8.061596782760612, 1.7179883687954887, 0.07291920750392081, -0.026417460707540807, -0.12423158781681046, -0.08819102935719175, 5.0, 0.0]", - "[58.69999999999999, 8.061506323140076, 1.7105463759898043, 0.07100977693297375, 0.022796695950372693, -0.17344574447472394, 0.01180897064280824, 5.0, 0.0]", - "[58.749999999999986, 8.061415746080154, 1.7031045006235122, 0.0741003431974912, -0.02641746070754081, -0.12423158781681046, 0.11180897064280826, 5.0, 0.0]", - "[58.79999999999998, 8.061325287422667, 1.695662506854783, 0.07719066887587414, 0.022796695950372686, -0.17344574447472397, 0.011808970642808204, 5.0, 0.0]", - "[58.84999999999999, 8.061234705322233, 1.6882206365290005, 0.07528098943364685, -0.02641746070754082, -0.12423158781681046, -0.08819102935719184, 5.0, 0.0]", - "[58.89999999999999, 8.061144247627336, 1.6807786417976773, 0.07337156277547387, 0.022796695950372682, -0.17344574447472397, 0.01180897064280817, 5.0, 0.0]", - "[58.94999999999999, 8.06105366864168, 1.6733367683571174, 0.07646213295295451, -0.026417460707540825, -0.12423158781681046, 0.11180897064280818, 5.0, 0.0]", - "[58.999999999999986, 8.060963211909732, 1.665894772662849, 0.07955245471876525, 0.02279669595037267, -0.17344574447472397, 0.011808970642808121, 5.0, 0.0]", - "[59.04999999999999, 8.060872627883969, 1.6584529042623926, 0.07764277136439848, -0.02641746070754082, -0.12423158781681048, -0.08819102935719192, 5.0, 0.0]", - "[59.099999999999994, 8.060782172114497, 1.6510109076056472, 0.0757333486185588, 0.022796695950372682, -0.17344574447472402, 0.011808970642808087, 5.0, 0.0]", - "[59.14999999999999, 8.06069159120332, 1.6435690360906086, 0.07382367159282271, -0.026417460707540807, -0.12423158781681048, -0.08819102935719195, 5.0, 0.0]", - "[59.19999999999999, 8.060601132319185, 1.6361270425485268, 0.07191424251818744, 0.022796695950372693, -0.173445744474724, 0.011808970642808059, 5.0, 0.0]", - "[59.24999999999999, 8.060510554522757, 1.6286851679187346, 0.07500481027922434, -0.02641746070754081, -0.12423158781681048, 0.11180897064280806, 5.0, 0.0]", - "[59.3, 8.060420096601549, 1.6212431734137278, 0.07809513446153755, 0.02279669595037269, -0.17344574447472397, 0.011808970642808024, 5.0, 0.0]", - "[59.349999999999994, 8.060329513765078, 1.6138013038239785, 0.07618545352373807, -0.026417460707540807, -0.12423158781681043, -0.088191029357192, 5.0, 0.0]", - "[59.39999999999999, 8.060239056806333, 1.606359308356509, 0.07427602836136712, 0.022796695950372703, -0.17344574447472394, 0.011808970642808031, 5.0, 0.0]", - "[59.449999999999996, 8.060148477084416, 1.5989174356522076, 0.07236635375213694, -0.026417460707540797, -0.12423158781681042, -0.08819102935719203, 5.0, 0.0]", - "[59.5, 8.060058017011034, 1.5914754432993738, 0.07045692226102662, 0.022796695950372703, -0.17344574447472394, 0.011808970642808003, 5.0, 0.0]", - "[59.55, 8.059967440403849, 1.5840335674803432, 0.07354748760560868, -0.0264174607075408, -0.12423158781681042, 0.11180897064280801, 5.0, 0.0]", - "[59.599999999999994, 8.05987698129337, 1.5765915741646048, 0.07663781420443946, 0.0227966959503727, -0.1734457444747239, 0.011808970642807975, 5.0, 0.0]", - "[59.65, 8.059786399646205, 1.5666888704961848, 0.07472813568322745, -0.026417460707540814, -0.22265990113263745, -0.08819102935719209, 5.0, 0.0]", - "[59.7, 8.059695941498118, 1.5567862903268452, 0.07281870810420042, 0.022796695950372696, -0.17344574447472397, 0.011808970642807934, 5.0, 0.0]", - "[59.75, 8.05960536296557, 1.5493444164331744, 0.0759092773609886, -0.026417460707540804, -0.12423158781681044, 0.11180897064280795, 5.0, 0.0]", - "[59.8, 8.05951490578021, 1.541902421192319, 0.07899960004810531, 0.022796695950372696, -0.17344574447472394, 0.011808970642807892, 5.0, 0.0]", - "[59.85, 8.05942432220819, 1.5344605523381165, 0.07708991761572237, -0.0264174607075408, -0.12423158781681048, -0.08819102935719214, 5.0, 0.0]", - "[59.900000000000006, 8.059333865985126, 1.5270185561349634, 0.07518049394821337, 0.022796695950372693, -0.173445744474724, 0.011808970642807864, 5.0, 0.0]", - "[59.95, 8.05924328552739, 1.5195766841664815, 0.07327081784384527, -0.0264174607075408, -0.12423158781681048, -0.08819102935719217, 5.0, 0.0]", - "[60.0, 8.059152826189957, 1.5121346910776985, 0.07136138784813637, 0.0227966959503727, -0.17344574447472397, 0.011808970642807837, 5.0, 0.0]", - "[60.050000000000004, 8.059062248846695, 1.504692815994746, 0.0744519546883807, -0.026417460707540804, -0.12423158781681048, 0.11180897064280784, 5.0, 0.0]", - "[60.10000000000001, 8.058971790472004, 1.4972508219432157, 0.07754227979212937, 0.022796695950372703, -0.17344574447472402, 0.011808970642807774, 5.0, 0.0]", - "[60.150000000000006, 8.05888120808936, 1.4898089518996391, 0.0756325997764772, -0.02641746070754081, -0.12423158781681053, -0.08819102935719228, 5.0, 0.0]", - "[60.2, 8.058790750676947, 1.4823669568858346, 0.07372317369228827, 0.0227966959503727, -0.17344574447472402, 0.011808970642807726, 5.0, 0.0]", - "[60.25000000000001, 8.058700171408537, 1.4749250837280237, 0.07181350000456045, -0.026417460707540814, -0.12423158781681048, -0.08819102935719234, 5.0, 0.0]", - "[60.30000000000001, 8.058609710881797, 1.467483091828548, 0.0699040675922557, 0.02279669595037267, -0.173445744474724, 0.011808970642807656, 5.0, 0.0]", - "[60.35000000000001, 8.05851913472782, 1.4600412155563045, 0.07299463201593745, -0.026417460707540828, -0.1242315878168105, 0.11180897064280768, 5.0, 0.0]", - "[60.400000000000006, 8.058428675163796, 1.4525992226941118, 0.07608495953634327, 0.02279669595037268, -0.173445744474724, 0.011808970642807594, 5.0, 0.0]", - "[60.45000000000001, 8.060798925952087, 1.4451573514611455, 0.07417528193745536, 0.07201085260828619, -0.12423158781681048, -0.08819102935719247, 5.0, 0.0]", - "[60.500000000000014, 8.063169054148899, 1.437715357636704, 0.0722658534365574, 0.022796695950372682, -0.173445744474724, 0.011808970642807518, 5.0, 0.0]", - "[60.55000000000001, 8.063078476069832, 1.4302734832895514, 0.07535642177190069, -0.02641746070754082, -0.1242315878168105, 0.11180897064280754, 5.0, 0.0]", - "[60.60000000000001, 8.062988018430627, 1.4228314885025424, 0.07844674538120412, 0.022796695950372668, -0.173445744474724, 0.011808970642807504, 5.0, 0.0]", - "[60.65000000000001, 8.06289743531286, 1.4153896191940885, 0.07653706387182974, -0.02641746070754083, -0.12423158781681048, -0.08819102935719256, 5.0, 0.0]", - "[60.70000000000002, 8.062806978635733, 1.4079476234450032, 0.0746276392816839, 0.02279669595037268, -0.173445744474724, 0.011808970642807469, 5.0, 0.0]", - "[60.750000000000014, 8.062716398631887, 1.4005057510226295, 0.07271796409959538, -0.026417460707540825, -0.1242315878168105, -0.08819102935719259, 5.0, 0.0]", - "[60.80000000000001, 8.062625938840734, 1.393063758387567, 0.07080853318195565, 0.02279669595037267, -0.173445744474724, 0.01180897064280742, 5.0, 0.0]", - "[60.850000000000016, 8.062535361951024, 1.385621882851058, 0.0738990991006032, -0.026417460707540828, -0.12423158781681047, 0.11180897064280743, 5.0, 0.0]", - "[60.90000000000002, 8.062444903122394, 1.3781798892534687, 0.07698942512673143, 0.022796695950372668, -0.173445744474724, 0.011808970642807393, 5.0, 0.0]", - "[60.95000000000002, 8.062354321194121, 1.3707380187555231, 0.07507974603432833, -0.02641746070754082, -0.12423158781681054, -0.08819102935719267, 5.0, 0.0]", - "[61.000000000000014, 8.062263863327534, 1.3632960241958951, 0.07317031902728208, 0.022796695950372682, -0.17344574447472408, 0.011808970642807337, 5.0, 0.0]", - "[61.05000000000002, 8.062173284513117, 1.355854150584093, 0.07626088885680982, -0.026417460707540825, -0.12423158781681057, 0.11180897064280734, 5.0, 0.0]", - "[61.10000000000002, 8.062082827608878, 1.3484121550621169, 0.07935121097270763, 0.022796695950372686, -0.17344574447472408, 0.01180897064280726, 5.0, 0.0]", - "[61.15000000000002, 8.061992243756569, 1.3409702864882065, 0.07744152797078846, -0.026417460707540818, -0.12423158781681057, -0.08819102935719278, 5.0, 0.0]", - "[61.20000000000002, 8.061901787814163, 1.333528290004394, 0.075532104873561, 0.022796695950372686, -0.17344574447472405, 0.011808970642807226, 5.0, 0.0]", - "[61.25000000000002, 8.061811207075406, 1.3260864183169292, 0.07362242819818465, -0.026417460707540828, -0.12423158781681057, -0.08819102935719286, 5.0, 0.0]", - "[61.300000000000026, 8.061720748019335, 1.3186444249467824, 0.07171299877418805, 0.022796695950372675, -0.17344574447472405, 0.011808970642807129, 5.0, 0.0]", - "[61.35000000000002, 8.06163017039437, 1.3112025501455298, 0.07480356618682962, -0.02641746070754083, -0.12423158781681055, 0.11180897064280715, 5.0, 0.0]", - "[61.40000000000002, 8.061539712300593, 1.3037605558130898, 0.07789389071978821, 0.022796695950372658, -0.17344574447472405, 0.011808970642807108, 5.0, 0.0]", - "[61.450000000000024, 8.06144912963792, 1.296318686049546, 0.07598421013512842, -0.02641746070754084, -0.12423158781681054, -0.08819102935719295, 5.0, 0.0]", - "[61.50000000000003, 8.061358672505925, 1.2888766907553224, 0.07407478462073333, 0.022796695950372665, -0.17344574447472402, 0.01180897064280706, 5.0, 0.0]", - "[61.550000000000026, 8.061268092956722, 1.2814348178783077, 0.0721651103624455, -0.02641746070754084, -0.12423158781681053, -0.088191029357193, 5.0, 0.0]", - "[61.60000000000002, 8.061177632711138, 1.2739928256976705, 0.070255678521443, 0.022796695950372665, -0.173445744474724, 0.011808970642807004, 5.0, 0.0]", - "[61.65000000000003, 8.061087056275644, 1.2665509497069434, 0.07334624351714875, -0.02641746070754085, -0.12423158781681047, 0.11180897064280701, 5.0, 0.0]", - "[61.70000000000003, 8.060996596992297, 1.2591089565640716, 0.07643657046723334, 0.022796695950372647, -0.17344574447472397, 0.011808970642806928, 5.0, 0.0]", - "[61.75000000000003, 8.060906015519302, 1.2516670856108527, 0.07452689229991674, -0.026417460707540846, -0.12423158781681044, -0.08819102935719311, 5.0, 0.0]", - "[61.800000000000026, 8.060815557197682, 1.244225091506255, 0.07261746436827775, 0.022796695950372654, -0.17344574447472397, 0.011808970642806893, 5.0, 0.0]", - "[61.85000000000003, 8.060724978838062, 1.236783217439657, 0.07570803327368887, -0.026417460707540846, -0.12423158781681043, 0.1118089706428069, 5.0, 0.0]", - "[61.900000000000034, 8.060634521478447, 1.2293412223730538, 0.07879835631487489, 0.02279669595037266, -0.17344574447472394, 0.011808970642806844, 5.0, 0.0]", - "[61.95000000000003, 8.060543938082153, 1.22189935334313, 0.07688867423954626, -0.02641746070754084, -0.12423158781681043, -0.0881910293571932, 5.0, 0.0]", - "[62.00000000000003, 8.060453481684005, 1.2144573573150577, 0.07497925021628411, 0.022796695950372665, -0.17344574447472394, 0.011808970642806796, 5.0, 0.0]", - "[62.05000000000003, 8.060362901400726, 1.2070154851721173, 0.07306957446640491, -0.026417460707540828, -0.12423158781681046, -0.08819102935719325, 5.0, 0.0]", - "[62.10000000000004, 8.060272441889442, 1.199573492257188, 0.07116014411743644, 0.02279669595037267, -0.17344574447472397, 0.011808970642806754, 5.0, 0.0]", - "[62.150000000000034, 8.060181864719443, 1.1921316170009677, 0.07425071060561272, -0.02641746070754083, -0.12423158781681047, 0.11180897064280676, 5.0, 0.0]", - "[62.20000000000003, 8.060091406170079, 1.1846896231241135, 0.07734103606429168, 0.022796695950372668, -0.173445744474724, 0.011808970642806692, 5.0, 0.0]", - "[62.250000000000036, 8.060000823963678, 1.1772477529042953, 0.07543135640675096, -0.02641746070754083, -0.12423158781681044, -0.08819102935719336, 5.0, 0.0]", - "[62.30000000000004, 8.059910366375702, 1.1698057580660535, 0.0735219299658298, 0.02279669595037267, -0.1734457444747239, 0.011808970642806671, 5.0, 0.0]", - "[62.35000000000004, 8.059819787282198, 1.1623638847333388, 0.07661250036244595, -0.026417460707540828, -0.12423158781681046, 0.11180897064280668, 5.0, 0.0]", - "[62.400000000000034, 8.05972933065587, 1.1549218889334518, 0.07970282191364599, 0.02279669595037267, -0.17344574447472397, 0.011808970642806615, 5.0, 0.0]", - "[62.45000000000004, 8.059638746526955, 1.1474800206361475, 0.07779313834968106, -0.026417460707540835, -0.12423158781681047, -0.08819102935719347, 5.0, 0.0]", - "[62.50000000000004, 8.059548290861699, 1.1400380238751848, 0.0758837158156052, 0.022796695950372668, -0.17344574447472397, 0.011808970642806532, 5.0, 0.0]", - "[62.55000000000004, 8.059457709845265, 1.132596152465402, 0.07397403857599634, -0.026417460707540835, -0.1242315878168104, -0.0881910293571935, 5.0, 0.0]", - "[62.60000000000004, 8.059367251067396, 1.1251541588170557, 0.07206460971728404, 0.02279669595037268, -0.17344574447472388, 0.011808970642806518, 5.0, 0.0]", - "[62.65000000000004, 8.059276673163724, 1.117712284294508, 0.07515517769623578, -0.026417460707540818, -0.1242315878168104, 0.11180897064280651, 5.0, 0.0]", - "[62.700000000000045, 8.059186215347387, 1.1102702896846266, 0.0782455016654511, 0.02279669595037268, -0.17344574447472388, 0.011808970642806435, 5.0, 0.0]", - "[62.75000000000004, 8.059095632408674, 1.1028284201971195, 0.07633582051990248, -0.026417460707540814, -0.12423158781681037, -0.08819102935719358, 5.0, 0.0]", - "[62.80000000000004, 8.059005175553297, 1.0953864246262777, 0.0744263955675776, 0.022796695950372682, -0.17344574447472394, 0.011808970642806407, 5.0, 0.0]", - "[62.850000000000044, 8.058914595726906, 1.087944552026449, 0.07251672074606501, -0.026417460707540814, -0.12423158781681043, -0.08819102935719361, 5.0, 0.0]", - "[62.90000000000005, 8.058824135759064, 1.0805025595680724, 0.07060728946941087, 0.022796695950372696, -0.17344574447472394, 0.011808970642806407, 5.0, 0.0]", - "[62.950000000000045, 8.058733559045296, 1.073060683855624, 0.07369785503056056, -0.026417460707540814, -0.12423158781681043, 0.11180897064280643, 5.0, 0.0]", - "[63.00000000000004, 8.058643100038864, 1.0656186904358351, 0.07678818141796707, 0.022796695950372693, -0.17344574447472394, 0.011808970642806373, 5.0, 0.0]", - "[63.05000000000005, 8.0610133513823, 1.0581768197580157, 0.0748785026910559, 0.07201085260828619, -0.1242315878168104, -0.0881910293571937, 5.0, 0.0]", - "[63.10000000000005, 8.063383479022932, 1.050734825377395, 0.07296907532027816, 0.02279669595037267, -0.17344574447472394, 0.011808970642806275, 5.0, 0.0]", - "[63.15000000000005, 8.06329290038668, 1.0432929515874285, 0.07605964478778807, -0.02641746070754083, -0.12423158781681042, 0.11180897064280629, 5.0, 0.0]", - "[63.200000000000045, 8.063202443302119, 1.0358509562457718, 0.07914996727008294, 0.02279669595037267, -0.17344574447472394, 0.011808970642806227, 5.0, 0.0]", - "[63.25000000000005, 8.063111859632526, 1.028409087489145, 0.07724028463943218, -0.026417460707540828, -0.12423158781681048, -0.0881910293571938, 5.0, 0.0]", - "[63.300000000000054, 8.063021403508381, 1.0209670911870752, 0.07533086117291633, 0.02279669595037266, -0.17344574447472394, 0.011808970642806185, 5.0, 0.0]", - "[63.35000000000005, 8.062930822950417, 1.0135252193188191, 0.0734211848648963, -0.026417460707540835, -0.12423158781681048, -0.08819102935719389, 5.0, 0.0]", - "[63.40000000000005, 8.062840363714482, 1.006083226128536, 0.07151175507542924, 0.022796695950372668, -0.17344574447472402, 0.011808970642806144, 5.0, 0.0]", - "[63.45000000000005, 8.06274978626848, 0.9986413511483241, 0.07460232212443635, -0.02641746070754083, -0.12423158781681055, 0.11180897064280615, 5.0, 0.0]", - "[63.50000000000006, 8.062659327993408, 0.9911993569971772, 0.07769264702577074, 0.022796695950372668, -0.17344574447472405, 0.011808970642806109, 5.0, 0.0]", - "[63.550000000000054, 8.06256874551463, 0.9837574870497376, 0.07578296681477466, -0.026417460707540842, -0.12423158781681053, -0.08819102935719397, 5.0, 0.0]", - "[63.60000000000005, 8.062478288199788, 0.9763154919383618, 0.0738735409288446, 0.022796695950372654, -0.17344574447472405, 0.011808970642806033, 5.0, 0.0]", - "[63.650000000000055, 8.06238770883241, 0.9688736188795216, 0.07196386704001415, -0.026417460707540842, -0.12423158781681054, -0.08819102935719403, 5.0, 0.0]", - "[63.70000000000006, 8.062297248406, 0.9614316268797117, 0.07005443483158229, 0.022796695950372668, -0.17344574447472405, 0.011808970642805977, 5.0, 0.0]", - "[63.75000000000006, 8.062206672150364, 0.9539897507091295, 0.07314499946183312, -0.02641746070754083, -0.1242315878168106, 0.11180897064280601, 5.0, 0.0]", - "[63.800000000000054, 8.062116212684623, 0.9465477577486503, 0.07623532678252777, 0.022796695950372686, -0.17344574447472416, 0.011808970642805942, 5.0, 0.0]", - "[63.85000000000006, 8.062025631396857, 0.9391058866102011, 0.07432564899158661, -0.02641746070754081, -0.12423158781681064, -0.08819102935719411, 5.0, 0.0]", - "[63.90000000000006, 8.061935172891136, 0.9316638926897033, 0.07241622068586888, 0.0227966959503727, -0.17344574447472413, 0.011808970642805922, 5.0, 0.0]", - "[63.95000000000006, 8.061844594714513, 0.9242220184401084, 0.07550678921944297, -0.026417460707540797, -0.12423158781681069, 0.11180897064280593, 5.0, 0.0]", - "[64.00000000000006, 8.061754137168935, 0.9167800235594702, 0.0785971126384983, 0.0227966959503727, -0.17344574447472422, 0.011808970642805845, 5.0, 0.0]", - "[64.05000000000007, 8.061663553961917, 0.9068773183312011, 0.07668743094777283, -0.026417460707540804, -0.22265990113263773, -0.0881910293571942, 5.0, 0.0]", - "[64.10000000000007, 8.06157309737548, 0.8969747397235076, 0.07477800654191097, 0.022796695950372703, -0.17344574447472422, 0.011808970642805838, 5.0, 0.0]", - "[64.15000000000006, 8.061482517279506, 0.889532867393259, 0.07286833117262953, -0.0264174607075408, -0.12423158781681073, -0.0881910293571942, 5.0, 0.0]", - "[64.20000000000006, 8.061392057582161, 0.8820908746643853, 0.07095890044560844, 0.022796695950372703, -0.17344574447472424, 0.011808970642805817, 5.0, 0.0]", - "[64.25000000000006, 8.061301480596995, 0.8746489992233328, 0.07404946655821734, -0.02641746070754079, -0.12423158781681078, 0.11180897064280582, 5.0, 0.0]", - "[64.30000000000007, 8.061211021859458, 0.8672070055346544, 0.0771397923992577, 0.022796695950372706, -0.17344574447472422, 0.011808970642805776, 5.0, 0.0]", - "[64.35000000000007, 8.061120439844979, 0.8597651351229167, 0.0752301131316851, -0.026417460707540787, -0.1242315878168107, -0.08819102935719425, 5.0, 0.0]", - "[64.40000000000006, 8.061029982066502, 0.852323140475173, 0.0733206863036839, 0.02279669595037271, -0.1734457444747242, 0.011808970642805727, 5.0, 0.0]", - "[64.45000000000007, 8.060939403162106, 0.8448812669533521, 0.07641125631604742, -0.026417460707540787, -0.1242315878168107, 0.11180897064280573, 5.0, 0.0]", - "[64.50000000000007, 8.060848946342729, 0.8374392713465109, 0.0795015782595046, 0.022796695950372713, -0.17344574447472424, 0.011808970642805679, 5.0, 0.0]", - "[64.55000000000007, 8.060758362411267, 0.8299974028517574, 0.07759189509674398, -0.02641746070754078, -0.12423158781681073, -0.08819102935719436, 5.0, 0.0]", - "[64.60000000000007, 8.060667906550174, 0.8225554062866335, 0.07568247216473596, 0.02279669595037272, -0.17344574447472424, 0.011808970642805672, 5.0, 0.0]", - "[64.65000000000006, 8.060577325727996, 0.8151135346825923, 0.07377279531984772, -0.026417460707540787, -0.12423158781681073, -0.08819102935719439, 5.0, 0.0]", - "[64.70000000000007, 8.060486866757415, 0.8076715412269531, 0.07186336606956739, 0.022796695950372724, -0.17344574447472422, 0.011808970642805644, 5.0, 0.0]", - "[64.75000000000007, 8.060396289044933, 0.8002296665132184, 0.0749539336600389, -0.026417460707540783, -0.12423158781681069, 0.11180897064280565, 5.0, 0.0]", - "[64.80000000000007, 8.060305831033027, 0.7927876720989048, 0.07804425802663569, 0.022796695950372734, -0.1734457444747242, 0.011808970642805582, 5.0, 0.0]", - "[64.85000000000008, 8.060215248294798, 0.7853458024109179, 0.07613457728844876, -0.02641746070754076, -0.12423158781681067, -0.08819102935719447, 5.0, 0.0]", - "[64.90000000000008, 8.060124791240709, 0.777903807038792, 0.07422515193234601, 0.022796695950372734, -0.1734457444747241, 0.011808970642805533, 5.0, 0.0]", - "[64.95000000000007, 8.0600342116113, 0.77046193424198, 0.07231547751109146, -0.026417460707540762, -0.12423158781681061, -0.08819102935719453, 5.0, 0.0]", - "[65.00000000000007, 8.059943751448177, 0.7630199419788855, 0.07040604583763636, 0.02279669595037274, -0.17344574447472413, 0.011808970642805464, 5.0, 0.0]", - "[65.05000000000007, 8.059853174928021, 0.7555780660728224, 0.07349661100537334, -0.026417460707540762, -0.12423158781681068, 0.11180897064280548, 5.0, 0.0]", - "[65.10000000000008, 8.059762715723075, 0.7481360728515531, 0.07658693779615919, 0.02279669595037274, -0.1734457444747242, 0.011808970642805415, 5.0, 0.0]", - "[65.15000000000008, 8.059672134178713, 0.7406942019696962, 0.07467725948383919, -0.026417460707540762, -0.12423158781681072, -0.08819102935719461, 5.0, 0.0]", - "[65.20000000000007, 8.059581675931017, 0.7332522077911722, 0.07276783170241356, 0.022796695950372738, -0.17344574447472422, 0.01180897064280538, 5.0, 0.0]", - "[65.25000000000009, 8.059491097494956, 0.7258103338010166, 0.07585840076315156, -0.026417460707540762, -0.12423158781681073, 0.11180897064280537, 5.0, 0.0]", - "[65.30000000000008, 8.059400640204341, 0.7183683386654156, 0.07894872366413887, 0.022796695950372727, -0.17344574447472422, 0.011808970642805332, 5.0, 0.0]", - "[65.35000000000008, 8.059310056747394, 0.7109264696961428, 0.07703904146557117, -0.02641746070754078, -0.12423158781681072, -0.0881910293571947, 5.0, 0.0]", - "[65.40000000000008, 8.059219600412813, 0.7034844736045086, 0.07512961757146261, 0.02279669595037272, -0.17344574447472422, 0.011808970642805311, 5.0, 0.0]", - "[65.45000000000007, 8.05912902006311, 0.6960426015279946, 0.07321994168660914, -0.026417460707540766, -0.12423158781681073, -0.08819102935719472, 5.0, 0.0]", - "[65.50000000000009, 8.059038560621063, 0.6886006085438218, 0.07131051147833882, 0.02279669595037274, -0.1734457444747242, 0.011808970642805297, 5.0, 0.0]", - "[65.55000000000008, 8.058947983379056, 0.6811587333596121, 0.0744010781128354, -0.02641746070754076, -0.12423158781681073, 0.11180897064280529, 5.0, 0.0]", - "[65.60000000000008, 8.058857524893316, 0.6737167394191353, 0.07749140344223804, 0.022796695950372745, -0.17344574447472424, 0.011808970642805242, 5.0, 0.0]", - "[65.65000000000009, 8.058766942632728, 0.6662748692535032, 0.07558172367459494, -0.026417460707540752, -0.12423158781681075, -0.08819102935719478, 5.0, 0.0]", - "[65.70000000000009, 8.058676485102145, 0.6588328743578669, 0.0736722973502961, 0.022796695950372738, -0.17344574447472422, 0.011808970642805228, 5.0, 0.0]", - "[65.75000000000009, 8.06104673385124, 0.6513910010857079, 0.07176262389491579, 0.07201085260828624, -0.12423158781681069, -0.08819102935719483, 5.0, 0.0]", - "[65.80000000000008, 8.063416864083614, 0.6439490092968275, 0.06985319125788851, 0.022796695950372738, -0.17344574447472422, 0.011808970642805172, 5.0, 0.0]", - "[65.85000000000008, 8.063326288036553, 0.6365071329176688, 0.07294375546432555, -0.02641746070754076, -0.12423158781681073, 0.11180897064280518, 5.0, 0.0]", - "[65.90000000000009, 8.063235828354575, 0.6290651401734281, 0.07603408322440267, 0.022796695950372734, -0.17344574447472424, 0.011808970642805137, 5.0, 0.0]", - "[65.95000000000009, 8.063145247291718, 0.6216232688100684, 0.07412440589046497, -0.026417460707540766, -0.1242315878168107, -0.08819102935719492, 5.0, 0.0]", - "[66.00000000000009, 8.063054788563827, 0.6141812751117428, 0.07221497713330698, 0.022796695950372755, -0.17344574447472422, 0.011808970642805103, 5.0, 0.0]", - "[66.0500000000001, 8.06296421060667, 0.6067394006426813, 0.07530554522093842, -0.026417460707540752, -0.1242315878168107, 0.11180897064280512, 5.0, 0.0]", - "[66.1000000000001, 8.062873752832274, 0.5992974059908618, 0.07839586910493797, 0.02279669595037275, -0.17344574447472416, 0.011808970642805054, 5.0, 0.0]", - "[66.15000000000009, 8.062783169864653, 0.5918555365322671, 0.07648618790064089, -0.026417460707540745, -0.12423158781681065, -0.08819102935719497, 5.0, 0.0]", - "[66.20000000000009, 8.062692713042242, 0.5844135409284607, 0.07457676301529784, 0.02279669595037276, -0.17344574447472413, 0.011808970642805033, 5.0, 0.0]", - "[66.25000000000009, 8.062602133178878, 0.5769716683656052, 0.07266708811865878, -0.026417460707540738, -0.12423158781681064, -0.088191029357195, 5.0, 0.0]", - "[66.3000000000001, 8.062511673251972, 0.5695296758662927, 0.07075765692518393, 0.02279669595037276, -0.17344574447472416, 0.011808970642805006, 5.0, 0.0]", - "[66.3500000000001, 8.062421096493352, 0.562087800198694, 0.07384822257746519, -0.026417460707540738, -0.12423158781681062, 0.11180897064280501, 5.0, 0.0]", - "[66.40000000000009, 8.062330637518377, 0.5546458067474532, 0.07693854890096344, 0.022796695950372762, -0.17344574447472416, 0.011808970642804915, 5.0, 0.0]", - "[66.4500000000001, 8.062240055753705, 0.5472039360859081, 0.07502887014098375, -0.026417460707540745, -0.12423158781681062, -0.08819102935719517, 5.0, 0.0]", - "[66.5000000000001, 8.062149597728911, 0.5397619416844859, 0.07311944281247333, 0.02279669595037277, -0.17344574447472413, 0.011808970642804867, 5.0, 0.0]", - "[66.5500000000001, 8.062059019067373, 0.532320067919807, 0.07621001233136525, -0.026417460707540745, -0.12423158781681065, 0.1118089706428049, 5.0, 0.0]", - "[66.6000000000001, 8.06196856199163, 0.5248780725693305, 0.07930033479573902, 0.022796695950372755, -0.17344574447472416, 0.011808970642804818, 5.0, 0.0]", - "[66.65000000000009, 8.061877978331866, 0.5174362038028797, 0.07739065218504981, -0.02641746070754074, -0.12423158781681068, -0.08819102935719522, 5.0, 0.0]", - "[66.7000000000001, 8.06178752220304, 0.5099942075054873, 0.07548122870902896, 0.022796695950372762, -0.1734457444747242, 0.011808970642804797, 5.0, 0.0]", - "[66.7500000000001, 8.061696941644641, 0.5025523356376693, 0.07357155240011795, -0.026417460707540735, -0.12423158781681073, -0.08819102935719525, 5.0, 0.0]", - "[66.8000000000001, 8.06160648241423, 0.495110342441862, 0.07166212262187563, 0.022796695950372755, -0.17344574447472424, 0.011808970642804742, 5.0, 0.0]", - "[66.85000000000011, 8.06151590495765, 0.4876684674722234, 0.07475268969236698, -0.026417460707540755, -0.1242315878168107, 0.11180897064280476, 5.0, 0.0]", - "[66.9000000000001, 8.061425446673542, 0.48022647333011426, 0.07784301461206529, 0.022796695950372745, -0.1734457444747242, 0.0118089706428047, 5.0, 0.0]", - "[66.9500000000001, 8.061334864226119, 0.47278460335132266, 0.07593333446477422, -0.026417460707540762, -0.12423158781681069, -0.08819102935719536, 5.0, 0.0]", - "[67.0000000000001, 8.061244406885706, 0.4653426082655181, 0.07402390852688463, 0.02279669595037274, -0.1734457444747242, 0.011808970642804659, 5.0, 0.0]", - "[67.0500000000001, 8.061153827538138, 0.4579007351868669, 0.07211423467830912, -0.02641746070754075, -0.12423158781681072, -0.08819102935719536, 5.0, 0.0]", - "[67.10000000000011, 8.061063367097663, 0.4504587432011284, 0.0702048024412849, 0.022796695950372762, -0.17344574447472422, 0.011808970642804631, 5.0, 0.0]", - "[67.1500000000001, 8.060972790850387, 0.4430168670221869, 0.07329536705455046, -0.026417460707540745, -0.12423158781681068, 0.11180897064280465, 5.0, 0.0]", - "[67.2000000000001, 8.06088233135251, 0.4355748740938478, 0.07638569444055149, 0.022796695950372755, -0.1734457444747242, 0.011808970642804596, 5.0, 0.0]", - "[67.25000000000011, 8.060791750124098, 0.428133002896044, 0.074476016770215, -0.026417460707540745, -0.12423158781681068, -0.08819102935719544, 5.0, 0.0]", - "[67.30000000000011, 8.06070129156553, 0.420691009028393, 0.07256658835711567, 0.022796695950372762, -0.1734457444747242, 0.011808970642804562, 5.0, 0.0]", - "[67.35000000000011, 8.060610713435251, 0.4132491347324544, 0.07565715679652177, -0.02641746070754073, -0.12423158781681068, 0.11180897064280454, 5.0, 0.0]", - "[67.4000000000001, 8.060520255813023, 0.4058071399284671, 0.07874748037132644, 0.02279669595037278, -0.17344574447472416, 0.011808970642804471, 5.0, 0.0]", - "[67.4500000000001, 8.06042967271736, 0.39836527059791305, 0.07683779890685864, -0.026417460707540728, -0.12423158781681068, -0.08819102935719558, 5.0, 0.0]", - "[67.50000000000011, 8.060339216027126, 0.39092327486192907, 0.07492837429009182, 0.02279669595037277, -0.17344574447472416, 0.011808970642804409, 5.0, 0.0]", - "[67.55000000000011, 8.060248636027397, 0.38348140243543866, 0.07301869911636764, -0.026417460707540735, -0.12423158781681069, -0.08819102935719567, 5.0, 0.0]", - "[67.60000000000011, 8.060158176241098, 0.3760394097955205, 0.07110926820859412, 0.022796695950372762, -0.17344574447472416, 0.01180897064280434, 5.0, 0.0]", - "[67.65000000000012, 8.060067599337582, 0.36859753427281794, 0.07419983415529509, -0.026417460707540738, -0.12423158781681065, 0.11180897064280435, 5.0, 0.0]", - "[67.70000000000012, 8.059977140480143, 0.3611555407040406, 0.07729016023996678, 0.02279669595037277, -0.17344574447472413, 0.01180897064280427, 5.0, 0.0]", - "[67.75000000000011, 8.059886558629684, 0.3537136701282832, 0.07538048130567196, -0.02641746070754075, -0.12423158781681061, -0.0881910293571958, 5.0, 0.0]", - "[67.80000000000011, 8.059796100695177, 0.3462716756365709, 0.07347105416062524, 0.02279669595037275, -0.1734457444747241, 0.011808970642804187, 5.0, 0.0]", - "[67.85000000000011, 8.059705521938767, 0.33882980196676254, 0.0765616238722879, -0.02641746070754075, -0.12423158781681057, 0.1118089706428042, 5.0, 0.0]", - "[67.90000000000012, 8.059615064920985, 0.3313878065583267, 0.07965194621889182, 0.02279669595037275, -0.17344574447472408, 0.011808970642804166, 5.0, 0.0]", - "[67.95000000000012, 8.059524481246186, 0.3239459378069045, 0.07774226357766532, -0.026417460707540762, -0.12423158781681057, -0.08819102935719592, 5.0, 0.0]", - "[68.00000000000011, 8.059434025136776, 0.31650394149009514, 0.07583284014109838, 0.022796695950372727, -0.17344574447472402, 0.01180897064280409, 5.0, 0.0]", - "[68.05000000000013, 8.059343444554473, 0.3090620696461805, 0.07392316378361762, -0.026417460707540783, -0.12423158781681051, -0.08819102935719594, 5.0, 0.0]", - "[68.10000000000012, 8.059252985352561, 0.3016200764218771, 0.0720137340632777, 0.022796695950372727, -0.17344574447472405, 0.011808970642804062, 5.0, 0.0]", - "[68.15000000000012, 8.059162407862786, 0.29417820148543233, 0.0751043012012166, -0.026417460707540755, -0.12423158781681054, 0.11180897064280404, 5.0, 0.0]", - "[68.20000000000012, 8.059071949560321, 0.2867362073616776, 0.07819462615821009, 0.02279669595037275, -0.17344574447472405, 0.011808970642803986, 5.0, 0.0]", - "[68.25000000000011, 8.058981367191848, 0.2768335029719478, 0.0762849461713426, -0.026417460707540745, -0.22265990113263753, -0.08819102935719605, 5.0, 0.0]", - "[68.30000000000013, 8.058890909766335, 0.26693092352517955, 0.07437552006053445, 0.022796695950372755, -0.17344574447472405, 0.011808970642803937, 5.0, 0.0]", - "[68.35000000000012, 8.0588003305103, 0.2594890503549975, 0.07246584639794387, -0.02641746070754075, -0.12423158781681055, -0.08819102935719611, 5.0, 0.0]", - "[68.40000000000012, 8.058709869981989, 0.2520470584570926, 0.07055641398244715, 0.022796695950372745, -0.17344574447472408, 0.011808970642803882, 5.0, 0.0]", - "[68.45000000000013, 8.058619293818763, 0.24460518219410216, 0.07364697842493066, -0.02641746070754076, -0.12423158781681054, 0.1118089706428039, 5.0, 0.0]", - "[68.50000000000013, 8.05852883415597, 0.2371631894306779, 0.07673730614602801, 0.02279669595037275, -0.17344574447472402, 0.011808970642803847, 5.0, 0.0]", - "[68.55000000000013, 8.060899084718027, 0.22972131797148027, 0.07482762900682702, 0.07201085260828624, -0.12423158781681051, -0.0881910293571962, 5.0, 0.0]", - "[68.60000000000012, 8.063269213133022, 0.22227932436522313, 0.07291820006259221, 0.022796695950372717, -0.17344574447472405, 0.01180897064280384, 5.0, 0.0]", - "[68.65000000000012, 8.063178635264261, 0.21483744980776404, 0.07600876797060568, -0.026417460707540787, -0.12423158781681057, 0.11180897064280385, 5.0, 0.0]", - "[68.70000000000013, 8.063088177258628, 0.20739545538717996, 0.07909909232446098, 0.02279669595037271, -0.1734457444747241, 0.011808970642803791, 5.0, 0.0]", - "[68.75000000000013, 8.062997594692897, 0.1999535855266958, 0.0771894119367771, -0.026417460707540787, -0.1242315878168106, -0.08819102935719625, 5.0, 0.0]", - "[68.80000000000013, 8.06290713746324, 0.19251159033013696, 0.07527998622393309, 0.022796695950372713, -0.17344574447472408, 0.01180897064280377, 5.0, 0.0]", - "[68.85000000000014, 8.062816558013354, 0.1850697173538047, 0.07337031216745209, -0.02641746070754078, -0.12423158781681057, -0.08819102935719628, 5.0, 0.0]", - "[68.90000000000013, 8.06272609766577, 0.17762772527517065, 0.07146088011918543, 0.022796695950372724, -0.1734457444747241, 0.011808970642803736, 5.0, 0.0]", - "[68.95000000000013, 8.062635521336176, 0.17018584917854468, 0.07455144489971081, -0.02641746070754077, -0.12423158781681062, 0.11180897064280373, 5.0, 0.0]", - "[69.00000000000013, 8.062545061694218, 0.16274385639428607, 0.07764177257847406, 0.022796695950372727, -0.17344574447472413, 0.011808970642803673, 5.0, 0.0]", - "[69.05000000000013, 8.062454480887336, 0.15530198477494989, 0.07573209576466425, -0.026417460707540776, -0.12423158781681064, -0.08819102935719636, 5.0, 0.0]", - "[69.10000000000014, 8.06236402186887, 0.1478599913671971, 0.07382266641708139, 0.02279669595037273, -0.17344574447472416, 0.011808970642803673, 5.0, 0.0]", - "[69.15000000000013, 8.062273444241583, 0.14041811656826658, 0.07191299606400287, -0.026417460707540773, -0.12423158781681062, -0.08819102935719639, 5.0, 0.0]", - "[69.20000000000013, 8.062182982033065, 0.1329761263505652, 0.07000356023444088, 0.022796695950372734, -0.17344574447472416, 0.011808970642803604, 5.0, 0.0]", - "[69.25000000000014, 8.062092407608226, 0.1255342483491857, 0.07309412114462961, -0.026417460707540762, -0.12423158781681065, 0.1118089706428036, 5.0, 0.0]", - "[69.30000000000014, 8.062001945835407, 0.11809225769578688, 0.07618445315316293, 0.022796695950372748, -0.17344574447472413, 0.011808970642803542, 5.0, 0.0]", - "[69.35000000000014, 8.061911367455428, 0.11065038364955036, 0.07427478127065845, -0.026417460707540752, -0.12423158781681064, -0.0881910293571965, 5.0, 0.0]", - "[69.40000000000013, 8.061820905894743, 0.10320839278401611, 0.0723653467574511, 0.022796695950372745, -0.1734457444747241, 0.011808970642803479, 5.0, 0.0]", - "[69.45000000000013, 8.061730330946798, 0.09576651530574197, 0.07545590873055627, -0.026417460707540752, -0.12423158781681062, 0.11180897064280348, 5.0, 0.0]", - "[69.50000000000014, 8.061639869243999, 0.08832452458232568, 0.07854624059681857, 0.02279669595037275, -0.1734457444747241, 0.01180897064280343, 5.0, 0.0]", - "[69.55000000000014, 8.061549291399396, 0.08088265000071235, 0.07663656980216527, -0.02641746070754076, -0.12423158781681061, -0.08819102935719661, 5.0, 0.0]", - "[69.60000000000014, 8.061458828965733, 0.0734406600081569, 0.07472713351512117, 0.022796695950372745, -0.17344574447472408, 0.01180897064280341, 5.0, 0.0]", - "[69.65000000000015, 8.061368255315058, 0.06599878123261535, 0.07281747124226029, -0.026417460707540762, -0.12423158781681055, -0.08819102935719664, 5.0, 0.0]", - "[69.70000000000014, 8.06127778842222, 0.05855679569923665, 0.0709080258944559, 0.02279669595037273, -0.17344574447472405, 0.011808970642803382, 5.0, 0.0]", - "[69.75000000000014, 8.061187219591318, 0.051114912103919045, 0.07399857543812227, -0.02641746070754077, -0.12423158781681054, 0.11180897064280337, 5.0, 0.0]", - "[69.80000000000014, 8.061096749658084, 0.04367292961093418, 0.07708892402809164, 0.022796695950372724, -0.17344574447472402, 0.011808970642803326, 5.0, 0.0]", - "[69.85000000000014, 8.061006183042918, 0.03623104379988247, 0.07517927605093469, -0.026417460707540787, -0.12423158781681054, -0.08819102935719672, 5.0, 0.0]", - "[69.90000000000015, 8.060915706852402, 0.028789067564181443, 0.07326981181084743, 0.02279669595037271, -0.17344574447472402, 0.011808970642803285, 5.0, 0.0]", - "[69.95000000000014, 8.060825150423591, 0.021347171566774778, 0.07636033615426677, -0.026417460707540794, -0.12423158781681048, 0.11180897064280329, 5.0, 0.0]", - "[70.00000000000014, 8.060734662086585, 0.013905207477561113, 0.07945072213951512, 0.02279669595037271, -0.17344574447472397, 0.011808970642803262, 5.0, 0.0]", - "[70.05000000000015, 8.060644121240031, 0.006463295897896897, 0.07754112652252099, -0.026417460707540807, -0.12423158781681043, -0.0881910293571968, 5.0, 0.0]", - "[70.10000000000015, 8.060553612690358, -0.000978647978646885, 0.07563159653070817, 0.022796695950372647, -0.17344574447472394, 0.011808970642803174, 5.0, 0.0]", - "[70.15000000000015, 8.060463091947426, -0.008420579661935238, 0.07372204176298479, -0.02641746070754085, -0.12423158781681043, -0.08819102935719689, 5.0, 0.0]", - "[70.20000000000014, 8.060372586432438, -0.01586252657316628, 0.07181251793746121, 0.022796695950372703, -0.17344574447472394, 0.011808970642803174, 5.0, 0.0]", - "[70.25000000000014, 8.060282043313618, -0.023304435880567076, 0.07490301523582885, -0.026417460707540807, -0.12423158781681043, 0.11180897064280315, 5.0, 0.0]" + "[50.15, 7.617464254137369, 2.97725975259015, 0.06354052511479333, 0.18539500421872815, 0.04309357080649858, -0.06187878390878786, 5.0, 0.0]", + "[50.199999999999996, 7.627964410119249, 2.978184025359531, 0.06294669128435297, 0.23460916087664166, -0.0061205858514149294, 0.038121216091212135, 5.0, 0.0]", + "[50.25, 7.640925273449476, 2.9766475907805643, 0.06235264770848459, 0.2838233175345552, -0.05533474250932843, -0.06187878390878793, 5.0, 0.0]", + "[50.3, 7.656346844127875, 2.972650448853427, 0.06175881190854402, 0.33303747419246876, -0.10454889916724194, 0.03812121609121208, 5.0, 0.0]", + "[50.35, 7.674229122154607, 2.966192599577956, 0.06116477030220309, 0.3822516308503822, -0.15376305582515545, -0.06187878390878796, 5.0, 0.0]", + "[50.4, 7.6945721075295, 2.957274042954323, 0.06057093253271569, 0.4314657875082958, -0.20297721248306896, 0.03812121609121205, 5.0, 0.0]", + "[50.449999999999996, 7.717375800252715, 2.9458947789823675, 0.05997689289594632, 0.4806799441662092, -0.2521913691409825, -0.061878783908788, 5.0, 0.0]", + "[50.5, 7.742640200324084, 2.9345156133883763, 0.05938305315687018, 0.5298941008241227, -0.202977212483069, 0.03812121609121201, 5.0, 0.0]", + "[50.55, 7.770365307743768, 2.9231363503857453, 0.06378921243315741, 0.5791082574820361, -0.2521913691409825, 0.138121216091212, 5.0, 0.0]", + "[50.6, 7.8005511265916425, 2.9117571879024693, 0.06819516746058144, 0.6283224141399495, -0.202977212483069, 0.03812121609121192, 5.0, 0.0]", + "[50.65, 7.833197656867436, 2.902838736847112, 0.06760111518315053, 0.677536570797863, -0.15376305582515545, -0.061878783908788114, 5.0, 0.0]", + "[50.699999999999996, 7.868304894491397, 2.8939201749717878, 0.06700728808476351, 0.7267507274557764, -0.20297721248306902, 0.038121216091211885, 5.0, 0.0]", + "[50.75, 7.903412022264667, 2.8850017229471545, 0.06641323777683934, 0.677536570797863, -0.15376305582515548, -0.061878783908788156, 5.0, 0.0]", + "[50.8, 7.936058442689769, 2.8760831620411063, 0.06581940870894451, 0.6283224141399496, -0.202977212483069, 0.03812121609121186, 5.0, 0.0]", + "[50.85, 7.9662441557665264, 2.8671647090471915, 0.07022557865647329, 0.579108257482036, -0.1537630558251555, 0.13812121609121186, 5.0, 0.0]", + "[50.9, 7.993969157415257, 2.8582461450305603, 0.07463152301298374, 0.5298941008241225, -0.20297721248306902, 0.03812121609121181, 5.0, 0.0]", + "[50.949999999999996, 8.019233447636259, 2.849327699226611, 0.07403746006502998, 0.480679944166209, -0.15376305582515554, -0.06187878390878825, 5.0, 0.0]", + "[51.0, 8.042037030509086, 2.842869960770836, 0.07344364363718145, 0.43146578750829556, -0.10454889916724207, 0.038121216091211774, 5.0, 0.0]", + "[51.05, 8.06237990603353, 2.8364121019615047, 0.07284958265865203, 0.38225163085038205, -0.1537630558251556, -0.06187878390878828, 5.0, 0.0]", + "[51.1, 8.080262074209799, 2.8299543625365002, 0.0722557642613927, 0.3330374741924685, -0.10454889916724208, 0.038121216091211746, 5.0, 0.0]", + "[51.15, 8.095683535037686, 2.8234965046964033, 0.07166170525228449, 0.283823317534555, -0.15376305582515556, -0.06187878390878832, 5.0, 0.0]", + "[51.199999999999996, 8.1086442885174, 2.8145779395081276, 0.07106788488560024, 0.2346091608766415, -0.20297721248306907, 0.03812121609121168, 5.0, 0.0]", + "[51.25, 8.119144334648746, 2.8056594907964603, 0.07047382784594289, 0.18539500421872795, -0.15376305582515554, -0.06187878390878838, 5.0, 0.0]", + "[51.3, 8.127183673431922, 2.799201749432962, 0.06988000550978901, 0.13618084756081444, -0.10454889916724203, 0.03812121609121165, 5.0, 0.0]", + "[51.35, 8.13276230486673, 2.792743893531369, 0.06928595043959462, 0.08696669090290092, -0.15376305582515554, -0.061878783908788405, 5.0, 0.0]", + "[51.4, 8.135880228953365, 2.7862861511986226, 0.06869212613399053, 0.0377525342449874, -0.10454889916724204, 0.03812121609121161, 5.0, 0.0]", + "[51.449999999999996, 8.136537445691637, 2.779828296266282, 0.06809807303325587, -0.011461622412926111, -0.15376305582515556, -0.06187878390878846, 5.0, 0.0]", + "[51.5, 8.134733955081733, 2.773370552964281, 0.06750424675818914, -0.06067577907083962, -0.10454889916724203, 0.038121216091211524, 5.0, 0.0]", + "[51.55, 8.130469757123471, 2.7669126990011996, 0.06691019562692656, -0.10988993572875311, -0.15376305582515554, -0.061878783908788544, 5.0, 0.0]", + "[51.6, 8.12374485181704, 2.760454954729939, 0.066316367382385, -0.15910409238666662, -0.10454889916724203, 0.03812121609121147, 5.0, 0.0]", + "[51.65, 8.11455923916225, 2.7539971017361218, 0.06572231822060638, -0.20831824904458016, -0.15376305582515554, -0.06187878390878858, 5.0, 0.0]", + "[51.7, 8.105373734260752, 2.7450785413941343, 0.06512848800657826, -0.15910409238666665, -0.20297721248306905, 0.03812121609121143, 5.0, 0.0]", + "[51.75, 8.098648936707594, 2.7361600878361583, 0.0645344408143079, -0.10988993572875312, -0.15376305582515554, -0.06187878390878864, 5.0, 0.0]", + "[51.8, 8.09192403333971, 2.7297023416263477, 0.06394060863075797, -0.15910409238666662, -0.10454889916724204, 0.03812121609121137, 5.0, 0.0]", + "[51.85, 8.085199234817274, 2.7232444905710893, 0.06834677546263387, -0.10988993572875311, -0.15376305582515554, 0.13812121609121136, 5.0, 0.0]", + "[51.9, 8.080935147722839, 2.71432592808783, 0.07275272293485686, -0.06067577907083961, -0.20297721248306902, 0.03812121609121131, 5.0, 0.0]", + "[51.95, 8.079131772056087, 2.7054074807504698, 0.07215866310269631, -0.011461622412926118, -0.1537630558251555, -0.06187878390878873, 5.0, 0.0]", + "[52.0, 8.077328278133372, 2.6989497407612837, 0.07156484355905683, -0.06067577907083963, -0.10454889916724203, 0.03812121609121129, 5.0, 0.0]", + "[52.05, 8.075524901497388, 2.6924918834853653, 0.07097078569632377, -0.011461622412926125, -0.15376305582515554, -0.06187878390878878, 5.0, 0.0]", + "[52.1, 8.073721408543898, 2.683573318861264, 0.07037696418327404, -0.06067577907083964, -0.20297721248306907, 0.03812121609121123, 5.0, 0.0]", + "[52.15, 8.071918030938669, 2.674654869585425, 0.06978290828997744, -0.011461622412926132, -0.15376305582515554, -0.06187878390878882, 5.0, 0.0]", + "[52.2, 8.07011453895443, 2.66819712765776, 0.06918908480747213, -0.06067577907083964, -0.104548899167242, 0.03812121609121119, 5.0, 0.0]", + "[52.25, 8.068311160379956, 2.661739272320329, 0.06859503088362096, -0.011461622412926146, -0.1537630558251555, -0.06187878390878885, 5.0, 0.0]", + "[52.3, 8.068968489153667, 2.6528207096347156, 0.06800120543168624, 0.03775253424498734, -0.20297721248306902, 0.03812121609121115, 5.0, 0.0]", + "[52.35, 8.069625706456097, 2.6439022584203804, 0.0674071534772889, -0.01146162241292617, -0.15376305582515554, -0.061878783908788905, 5.0, 0.0]", + "[52.4, 8.067822216410354, 2.6374445145542182, 0.06681332605588299, -0.06067577907083967, -0.10454889916724203, 0.03812121609121108, 5.0, 0.0]", + "[52.449999999999996, 8.066018835897374, 2.6309866611552932, 0.06621927607094859, -0.011461622412926156, -0.15376305582515554, -0.061878783908788974, 5.0, 0.0]", + "[52.5, 8.06667616273258, 2.6220681004081867, 0.06562544668009396, 0.03775253424498734, -0.20297721248306907, 0.038121216091211024, 5.0, 0.0]", + "[52.55, 8.067333381973524, 2.6131496472553377, 0.06503139866463159, -0.011461622412926167, -0.15376305582515556, -0.06187878390878903, 5.0, 0.0]", + "[52.599999999999994, 8.065529893866298, 2.6066919014506604, 0.0644375673042887, -0.06067577907083966, -0.10454889916724208, 0.03812121609121098, 5.0, 0.0]", + "[52.65, 8.063726511414796, 2.6002340499902568, 0.06884373495939107, -0.01146162241292616, -0.15376305582515556, 0.13812121609121097, 5.0, 0.0]", + "[52.699999999999996, 8.064383840391203, 2.5937763072960536, 0.07324968160857233, 0.03775253424498734, -0.10454889916724205, 0.03812121609121092, 5.0, 0.0]", + "[52.75, 8.0650410534117, 2.5873184486459415, 0.07265562095356361, -0.01146162241292616, -0.15376305582515554, -0.06187878390878914, 5.0, 0.0]", + "[52.8, 8.065698385498102, 2.578399882647635, 0.07206180223281057, 0.03775253424498734, -0.202977212483069, 0.03812121609121086, 5.0, 0.0]", + "[52.849999999999994, 8.066355599487819, 2.569481434746014, 0.07146774354719067, -0.01146162241292616, -0.15376305582515545, -0.061878783908789176, 5.0, 0.0]", + "[52.9, 8.067012930604989, 2.560562869716937, 0.07087392285702587, 0.03775253424498735, -0.20297721248306894, 0.03812121609121083, 5.0, 0.0]", + "[52.949999999999996, 8.067670145563937, 2.551644420846084, 0.07027986614082511, -0.011461622412926153, -0.15376305582515543, -0.06187878390878924, 5.0, 0.0]", + "[53.0, 8.065866653174703, 2.545186679323412, 0.06968604348124031, -0.06067577907083967, -0.1045488991672419, 0.038121216091210774, 5.0, 0.0]", + "[53.05, 8.06406327500523, 2.538728823580977, 0.06909198873444718, -0.011461622412926167, -0.15376305582515543, -0.061878783908789266, 5.0, 0.0]", + "[53.099999999999994, 8.064720604183952, 2.5298102604903523, 0.06849816410547296, 0.03775253424498734, -0.20297721248306894, 0.03812121609121075, 5.0, 0.0]", + "[53.15, 8.065377821081361, 2.520891809681038, 0.06790411132809686, -0.011461622412926167, -0.15376305582515548, -0.06187878390878932, 5.0, 0.0]", + "[53.199999999999996, 8.066035149290839, 2.514434066219906, 0.06731028472968513, 0.03775253424498734, -0.10454889916724198, 0.03812121609121069, 5.0, 0.0]", + "[53.24999999999999, 8.066692367157485, 2.50797621241594, 0.06671623392173492, -0.011461622412926156, -0.15376305582515548, -0.06187878390878934, 5.0, 0.0]", + "[53.3, 8.064888877675939, 2.5015184679855804, 0.06612240535391478, -0.06067577907083967, -0.10454889916724201, 0.038121216091210636, 5.0, 0.0]", + "[53.349999999999994, 8.063085496598765, 2.4950606151508463, 0.06552835651538227, -0.011461622412926167, -0.15376305582515556, -0.06187878390878942, 5.0, 0.0]", + "[53.39999999999999, 8.063742822869779, 2.4861420549679245, 0.06493452597814173, 0.03775253424498734, -0.20297721248306907, 0.03812121609121058, 5.0, 0.0]", + "[53.449999999999996, 8.064400042674901, 2.477223601250896, 0.0643404791090553, -0.011461622412926163, -0.1537630558251556, -0.06187878390878946, 5.0, 0.0]", + "[53.49999999999999, 8.06505736797666, 2.470765854882047, 0.06374664660235006, 0.03775253424498734, -0.10454889916724214, 0.03812121609121055, 5.0, 0.0]", + "[53.55, 8.065714588751034, 2.46430800398581, 0.06315260170271872, -0.011461622412926174, -0.15376305582515562, -0.06187878390878951, 5.0, 0.0]", + "[53.599999999999994, 8.066371913083552, 2.4553894457413867, 0.06255876722657386, 0.03775253424498731, -0.2029772124830691, 0.0381212160912105, 5.0, 0.0]", + "[53.64999999999999, 8.067029134827182, 2.446470990085851, 0.0669649317658616, -0.011461622412926194, -0.15376305582515556, 0.1381212160912105, 5.0, 0.0]", + "[53.699999999999996, 8.067686462270105, 2.4400132458581614, 0.07137088153098876, 0.0377525342449873, -0.10454889916724211, 0.038121216091210476, 5.0, 0.0]", + "[53.74999999999999, 8.068343676824155, 2.4335553887415995, 0.07077682399205644, -0.011461622412926222, -0.15376305582515562, -0.061878783908789585, 5.0, 0.0]", + "[53.8, 8.066540184030002, 2.4270976476238495, 0.07018300215524485, -0.060675779070839715, -0.10454889916724211, 0.03812121609121043, 5.0, 0.0]", + "[53.849999999999994, 8.064736806265461, 2.4206397914764834, 0.06958894658565522, -0.011461622412926212, -0.15376305582515562, -0.06187878390878963, 5.0, 0.0]", + "[53.89999999999999, 8.065394135849125, 2.411721227980916, 0.06899512277949786, 0.0377525342449873, -0.20297721248306913, 0.038121216091210365, 5.0, 0.0]", + "[53.949999999999996, 8.066051352341582, 2.402802777576555, 0.06840106917928533, -0.011461622412926187, -0.15376305582515565, -0.06187878390878967, 5.0, 0.0]", + "[53.99999999999999, 8.06670868095602, 2.3963450345203827, 0.06780724340372672, 0.03775253424498731, -0.10454889916724215, 0.03812121609121033, 5.0, 0.0]", + "[54.04999999999999, 8.067365898417698, 2.3898871803114448, 0.06721319177290053, -0.011461622412926191, -0.15376305582515565, -0.061878783908789724, 5.0, 0.0]", + "[54.099999999999994, 8.068023226062932, 2.380968618754308, 0.06661936402797632, 0.037752534244987306, -0.20297721248306913, 0.038121216091210275, 5.0, 0.0]", + "[54.14999999999999, 8.06868044449383, 2.3720501664115075, 0.06602531436654627, -0.011461622412926184, -0.15376305582515562, -0.061878783908789765, 5.0, 0.0]", + "[54.19999999999999, 8.066876955576538, 2.365592421416896, 0.06543148465220258, -0.060675779070839694, -0.10454889916724212, 0.03812121609121025, 5.0, 0.0]", + "[54.24999999999999, 8.065073573935122, 2.359134569146407, 0.06483743696017914, -0.011461622412926201, -0.1537630558251556, -0.06187878390878978, 5.0, 0.0]", + "[54.29999999999999, 8.065730899641904, 2.3502160095277205, 0.0642436052764476, 0.0377525342449873, -0.2029772124830691, 0.03812121609121023, 5.0, 0.0]", + "[54.349999999999994, 8.06638812001126, 2.3412975552464625, 0.06864977260817562, -0.011461622412926201, -0.15376305582515556, 0.13812121609121022, 5.0, 0.0]", + "[54.39999999999999, 8.067045448828312, 2.3348398123929033, 0.0730557195811587, 0.0377525342449873, -0.10454889916724211, 0.038121216091210226, 5.0, 0.0]", + "[54.44999999999999, 8.067702662008397, 2.3283819539023773, 0.0724616592504201, -0.011461622412926208, -0.15376305582515565, -0.06187878390878986, 5.0, 0.0]", + "[54.49999999999999, 8.065899167840266, 2.321924214158603, 0.07186784020544101, -0.06067577907083971, -0.10454889916724211, 0.03812121609121015, 5.0, 0.0]", + "[54.54999999999999, 8.064095791449724, 2.3154663566372427, 0.07127378184398347, -0.011461622412926191, -0.1537630558251556, -0.06187878390878992, 5.0, 0.0]", + "[54.599999999999994, 8.064753122407398, 2.306547791767668, 0.07067996082972001, 0.03775253424498731, -0.20297721248306907, 0.03812121609121008, 5.0, 0.0]", + "[54.64999999999999, 8.065410337525837, 2.297629342737329, 0.07008590443758371, -0.011461622412926194, -0.1537630558251556, -0.061878783908789974, 5.0, 0.0]", + "[54.69999999999999, 8.06606766751431, 2.2911716010551886, 0.06949208145396944, 0.0377525342449873, -0.10454889916724212, 0.03812121609121004, 5.0, 0.0]", + "[54.74999999999999, 8.066724883601939, 2.284713745472202, 0.06889802703116381, -0.011461622412926194, -0.1537630558251556, -0.06187878390878998, 5.0, 0.0]", + "[54.79999999999999, 8.067382212621233, 2.2757951825410037, 0.06830420207824464, 0.037752534244987326, -0.2029772124830691, 0.03812121609121004, 5.0, 0.0]", + "[54.84999999999999, 8.068039429678054, 2.2668767315722804, 0.06771014962477982, -0.011461622412926177, -0.15376305582515562, -0.06187878390879, 5.0, 0.0]", + "[54.89999999999999, 8.066235939386676, 2.2604189879517547, 0.06711632270249132, -0.06067577907083968, -0.1045488991672421, 0.03812121609121001, 5.0, 0.0]", + "[54.94999999999999, 8.06443255911936, 2.2539611343071626, 0.06652227221837809, -0.011461622412926167, -0.15376305582515556, -0.06187878390879004, 5.0, 0.0]", + "[54.999999999999986, 8.065089886200255, 2.245042573314361, 0.06592844332676148, 0.03775253424498734, -0.20297721248306907, 0.03812121609120997, 5.0, 0.0]", + "[55.04999999999999, 8.065747105195477, 2.236124120407233, 0.06533439481200999, -0.01146162241292615, -0.15376305582515556, -0.06187878390879006, 5.0, 0.0]", + "[55.09999999999999, 8.066404431307157, 2.2296663748483008, 0.06474056395100529, 0.037752534244987354, -0.10454889916724204, 0.03812121609120997, 5.0, 0.0]", + "[55.14999999999999, 8.067061651271592, 2.223208523142123, 0.0641465174056253, -0.01146162241292616, -0.15376305582515554, -0.06187878390879009, 5.0, 0.0]", + "[55.19999999999999, 8.065258163887819, 2.216750776613993, 0.0635526845752714, -0.06067577907083965, -0.10454889916724204, 0.038121216091209886, 5.0, 0.0]", + "[55.249999999999986, 8.06345478071289, 2.2102929258770185, 0.06795885076041337, -0.011461622412926167, -0.15376305582515556, 0.1381212160912099, 5.0, 0.0]", + "[55.29999999999999, 8.064112108965563, 2.2038351824590787, 0.07236479888018038, 0.03775253424498734, -0.10454889916724207, 0.03812121609120984, 5.0, 0.0]", + "[55.34999999999999, 8.064769322710156, 2.197377324533056, 0.07177073969647597, -0.011461622412926156, -0.15376305582515556, -0.061878783908790216, 5.0, 0.0]", + "[55.39999999999999, 8.065426654072503, 2.188458759258806, 0.07117691950448705, 0.03775253424498731, -0.20297721248306907, 0.038121216091209775, 5.0, 0.0]", + "[55.44999999999999, 8.066083868786254, 2.179540310633154, 0.07058286229005208, -0.011461622412926187, -0.15376305582515556, -0.06187878390879025, 5.0, 0.0]", + "[55.499999999999986, 8.066741199179422, 2.170621746328081, 0.06998904012875784, 0.03775253424498732, -0.20297721248306907, 0.03812121609120976, 5.0, 0.0]", + "[55.54999999999999, 8.067398414862351, 2.1617032967332483, 0.06939498488363578, -0.011461622412926174, -0.1537630558251556, -0.061878783908790265, 5.0, 0.0]", + "[55.59999999999999, 8.065594923197072, 2.155245554486626, 0.06880116075302763, -0.06067577907083967, -0.1045488991672421, 0.03812121609120972, 5.0, 0.0]", + "[55.649999999999984, 8.06379154430368, 2.1487876994681128, 0.06820710747719538, -0.01146162241292618, -0.1537630558251556, -0.06187878390879031, 5.0, 0.0]", + "[55.69999999999999, 8.06444887275851, 2.139869137101375, 0.06761328137732696, 0.03775253424498731, -0.2029772124830691, 0.03812121609120969, 5.0, 0.0]", + "[55.749999999999986, 8.065106090379782, 2.1309506855681972, 0.06701923007079502, -0.011461622412926198, -0.15376305582515562, -0.06187878390879036, 5.0, 0.0]", + "[55.79999999999998, 8.065763417865423, 2.1244929413832288, 0.06642540200159373, 0.037752534244987306, -0.10454889916724217, 0.038121216091209637, 5.0, 0.0]", + "[55.84999999999999, 8.066420636455875, 2.1180350883030696, 0.06583135266437207, -0.011461622412926208, -0.15376305582515568, -0.06187878390879043, 5.0, 0.0]", + "[55.899999999999984, 8.064617147698105, 2.111577343148935, 0.06523752262588871, -0.06067577907083971, -0.10454889916724215, 0.03812121609120958, 5.0, 0.0]", + "[55.94999999999999, 8.062813765897188, 2.1051194910379465, 0.06464347525795924, -0.011461622412926219, -0.15376305582515565, -0.06187878390879046, 5.0, 0.0]", + "[55.999999999999986, 8.063471091444494, 2.0962009315787378, 0.06404964325018006, 0.037752534244987285, -0.20297721248306907, 0.03812121609120956, 5.0, 0.0]", + "[56.04999999999998, 8.064128311973311, 2.0872824771380207, 0.0684558102578975, -0.011461622412926215, -0.15376305582515562, 0.13812121609120956, 5.0, 0.0]", + "[56.09999999999999, 8.064785640630628, 2.0808247341247257, 0.07286175755545622, 0.03775253424498729, -0.10454889916724214, 0.03812121609120952, 5.0, 0.0]", + "[56.149999999999984, 8.065442853970765, 2.074366875794253, 0.0722676975499342, -0.011461622412926212, -0.15376305582515565, -0.061878783908790536, 5.0, 0.0]", + "[56.19999999999999, 8.066100185737579, 2.0654483101155363, 0.07167387817979526, 0.037752534244987285, -0.20297721248306913, 0.03812121609120947, 5.0, 0.0]", + "[56.249999999999986, 8.066757400046846, 2.0565298618943637, 0.07107982014348267, -0.011461622412926222, -0.1537630558251556, -0.061878783908790556, 5.0, 0.0]", + "[56.29999999999998, 8.064953907007895, 2.050072121021414, 0.070485998804091, -0.060675779070839736, -0.10454889916724211, 0.038121216091209456, 5.0, 0.0]", + "[56.34999999999999, 8.063150529488203, 2.043614264629206, 0.06989194273699906, -0.011461622412926222, -0.15376305582515562, -0.0618787839087906, 5.0, 0.0]", + "[56.399999999999984, 8.063807859316746, 2.037156522787139, 0.06929811942842419, 0.03775253424498729, -0.10454889916724208, 0.03812121609120942, 5.0, 0.0]", + "[56.44999999999998, 8.064465075564272, 2.030698667364053, 0.06870406533052453, -0.011461622412926212, -0.15376305582515556, -0.06187878390879064, 5.0, 0.0]", + "[56.499999999999986, 8.065122404423693, 2.0217801045927266, 0.06811024005275475, 0.037752534244987285, -0.20297721248306905, 0.03812121609120937, 5.0, 0.0]", + "[56.54999999999998, 8.065779621640367, 2.0128616534641517, 0.06751618792409753, -0.011461622412926219, -0.1537630558251555, -0.06187878390879066, 5.0, 0.0]", + "[56.59999999999998, 8.066436949530624, 2.006403909683796, 0.06692236067704535, 0.0377525342449873, -0.10454889916724198, 0.03812121609120936, 5.0, 0.0]", + "[56.649999999999984, 8.06709416771645, 1.9999460561990072, 0.06632831051764142, -0.011461622412926198, -0.15376305582515545, -0.06187878390879068, 5.0, 0.0]", + "[56.69999999999998, 8.067751494637575, 1.9910274953659817, 0.06573448130137045, 0.03775253424498731, -0.20297721248306894, 0.03812121609120932, 5.0, 0.0]", + "[56.749999999999986, 8.068408713792552, 1.9821090422990981, 0.0651404331112307, -0.011461622412926205, -0.15376305582515543, -0.06187878390879072, 5.0, 0.0]", + "[56.79999999999998, 8.066605225599314, 1.9756512965804336, 0.06454660192565784, -0.06067577907083972, -0.10454889916724192, 0.03812121609120929, 5.0, 0.0]", + "[56.84999999999998, 8.064801843233882, 1.9691934450339634, 0.06895276975564286, -0.011461622412926212, -0.15376305582515545, 0.1381212160912093, 5.0, 0.0]", + "[56.899999999999984, 8.065459172295688, 1.9627357024251595, 0.07335871623129932, 0.0377525342449873, -0.10454889916724196, 0.03812121609120928, 5.0, 0.0]", + "[56.94999999999998, 8.066116385231554, 1.956277843690416, 0.07276465540432692, -0.011461622412926194, -0.15376305582515545, -0.06187878390879077, 5.0, 0.0]", + "[56.999999999999986, 8.066773717402658, 1.9473592776074118, 0.07217083685567433, 0.03775253424498731, -0.20297721248306896, 0.03812121609120922, 5.0, 0.0]", + "[57.04999999999998, 8.067430931307625, 1.9384408297905418, 0.07157677799784572, -0.011461622412926184, -0.15376305582515548, -0.061878783908790834, 5.0, 0.0]", + "[57.09999999999998, 8.065627437864352, 1.9319830893219074, 0.07098295747999699, -0.06067577907083971, -0.10454889916724194, 0.03812121609120918, 5.0, 0.0]", + "[57.149999999999984, 8.063824060748992, 1.9255252325253651, 0.07038890059132354, -0.011461622412926222, -0.15376305582515543, -0.061878783908790876, 5.0, 0.0]", + "[57.19999999999998, 8.064481390981891, 1.9166066683805645, 0.06979507810436592, 0.03775253424498727, -0.20297721248306894, 0.03812121609120912, 5.0, 0.0]", + "[57.24999999999998, 8.065138606825071, 1.907688218625483, 0.06920102318485828, -0.011461622412926233, -0.15376305582515543, -0.06187878390879093, 5.0, 0.0]", + "[57.29999999999998, 8.065795936088836, 1.9012304762186358, 0.06860719872868562, 0.03775253424498727, -0.10454889916724187, 0.03812121609120908, 5.0, 0.0]", + "[57.34999999999998, 8.066453152901126, 1.894772621360315, 0.06801314577835403, -0.011461622412926215, -0.15376305582515534, -0.06187878390879096, 5.0, 0.0]", + "[57.39999999999998, 8.0671104811958, 1.885854059153739, 0.06741931935304955, 0.0377525342449873, -0.20297721248306883, 0.038121216091209054, 5.0, 0.0]", + "[57.44999999999998, 8.067767698977212, 1.876935607460425, 0.06682526837190499, -0.011461622412926191, -0.15376305582515534, -0.06187878390879099, 5.0, 0.0]", + "[57.49999999999998, 8.06596420941039, 1.8704778631153438, 0.06623143997736602, -0.060675779070839694, -0.10454889916724185, 0.038121216091209026, 5.0, 0.0]", + "[57.54999999999998, 8.064160828418563, 1.8640200101952666, 0.06563739096542014, -0.011461622412926201, -0.15376305582515534, -0.06187878390879104, 5.0, 0.0]", + "[57.59999999999998, 8.064818154774992, 1.8551014499269367, 0.06504356060172355, 0.0377525342449873, -0.20297721248306883, 0.038121216091208984, 5.0, 0.0]", + "[57.64999999999998, 8.065475374494659, 1.8461829962953689, 0.06444951355898745, -0.011461622412926184, -0.15376305582515531, -0.061878783908791056, 5.0, 0.0]", + "[57.69999999999998, 8.066132699881933, 1.839725250012032, 0.06385568122603666, 0.03775253424498731, -0.10454889916724178, 0.03812121609120894, 5.0, 0.0]", + "[57.74999999999998, 8.066789920570734, 1.8332673990302197, 0.06326163615252113, -0.011461622412926208, -0.1537630558251553, -0.061878783908791105, 5.0, 0.0]", + "[57.79999999999998, 8.064986433911287, 1.8268096517777659, 0.06266780185038863, -0.06067577907083972, -0.10454889916724179, 0.038121216091208915, 5.0, 0.0]", + "[57.84999999999998, 8.063183050012075, 1.8203518017650748, 0.06707396656383258, -0.011461622412926226, -0.1537630558251553, 0.13812121609120892, 5.0, 0.0]", + "[57.89999999999998, 8.06384037753994, 1.8138940576223284, 0.07147991615636061, 0.03775253424498728, -0.10454889916724178, 0.038121216091208866, 5.0, 0.0]", + "[57.94999999999998, 8.06449759200994, 1.807436200421717, 0.07088585844664548, -0.011461622412926229, -0.1537630558251553, -0.06187878390879117, 5.0, 0.0]", + "[57.99999999999998, 8.06515492264693, 1.798517635872827, 0.07029203678077163, 0.03775253424498727, -0.20297721248306877, 0.03812121609120883, 5.0, 0.0]", + "[58.049999999999976, 8.065812138086, 1.7895991865218512, 0.06969798104014734, -0.011461622412926229, -0.15376305582515526, -0.06187878390879121, 5.0, 0.0]", + "[58.09999999999998, 8.066469467753885, 1.7806806229420626, 0.06910415740512156, 0.037752534244987264, -0.20297721248306877, 0.038121216091208804, 5.0, 0.0]", + "[58.14999999999998, 8.067126684162062, 1.7717621726219814, 0.06851010363365652, -0.011461622412926233, -0.15376305582515526, -0.061878783908791236, 5.0, 0.0]", + "[58.199999999999974, 8.065323193221987, 1.765304429650149, 0.06791627802947059, -0.06067577907083973, -0.1045488991672418, 0.038121216091208776, 5.0, 0.0]", + "[58.24999999999998, 8.063519813603437, 1.7588465753567963, 0.06732222622711741, -0.011461622412926229, -0.1537630558251553, -0.061878783908791264, 5.0, 0.0]", + "[58.29999999999998, 8.064177141333161, 1.7499280137151687, 0.06672839865387306, 0.03775253424498727, -0.20297721248306883, 0.038121216091208734, 5.0, 0.0]", + "[58.34999999999998, 8.064834359679507, 1.7410095614569183, 0.06613434882064273, -0.011461622412926243, -0.1537630558251553, -0.061878783908791334, 5.0, 0.0]", + "[58.39999999999998, 8.065491686440117, 1.7345518165469156, 0.06554051927821898, 0.03775253424498726, -0.1045488991672418, 0.038121216091208665, 5.0, 0.0]", + "[58.44999999999998, 8.066148905755556, 1.7280939641917423, 0.06494647141412219, -0.01146162241292626, -0.15376305582515534, -0.0618787839087914, 5.0, 0.0]", + "[58.499999999999986, 8.0668062315471, 1.721636218312672, 0.06435263990261575, 0.03775253424498724, -0.10454889916724186, 0.03812121609120858, 5.0, 0.0]", + "[58.54999999999998, 8.067463451831609, 1.7151783669265717, 0.06375859400761223, -0.011461622412926253, -0.15376305582515537, -0.06187878390879145, 5.0, 0.0]", + "[58.59999999999998, 8.068120776654075, 1.7062598081922011, 0.06316476052700845, 0.03775253424498724, -0.20297721248306885, 0.038121216091208554, 5.0, 0.0]", + "[58.649999999999984, 8.068777997907691, 1.6973413530266817, 0.06757092606197489, -0.01146162241292625, -0.15376305582515531, 0.13812121609120856, 5.0, 0.0]", + "[58.69999999999999, 8.069435325839542, 1.6908836092879238, 0.07197687483362457, 0.03775253424498725, -0.10454889916724183, 0.03812121609120855, 5.0, 0.0]", + "[58.749999999999986, 8.070092539905895, 1.6844257516836616, 0.0713828163037167, -0.011461622412926257, -0.15376305582515534, -0.06187878390879152, 5.0, 0.0]", + "[58.79999999999998, 8.06828904662394, 1.6779680110537116, 0.07078899545808591, -0.06067577907083975, -0.1045488991672419, 0.038121216091208485, 5.0, 0.0]", + "[58.84999999999999, 8.066485669347305, 1.6715101544184414, 0.07019493889710741, -0.011461622412926233, -0.1537630558251554, -0.06187878390879157, 5.0, 0.0]", + "[58.89999999999999, 8.067142999418975, 1.6625915904348696, 0.06960111608254263, 0.037752534244987264, -0.2029772124830689, 0.038121216091208415, 5.0, 0.0]", + "[58.94999999999999, 8.06780021542335, 1.6536731405185896, 0.06900706149058021, -0.011461622412926246, -0.1537630558251554, -0.061878783908791625, 5.0, 0.0]", + "[58.999999999999986, 8.06599672407946, 1.6472153979505748, 0.06841323670692548, -0.06067577907083975, -0.10454889916724189, 0.03812121609120838, 5.0, 0.0]", + "[59.04999999999999, 8.064193344864751, 1.6407575432533794, 0.06781918408398986, -0.011461622412926226, -0.1537630558251554, -0.06187878390879168, 5.0, 0.0]", + "[59.099999999999994, 8.064850672998338, 1.6318389812078853, 0.06722535733137629, 0.03775253424498727, -0.2029772124830689, 0.038121216091208304, 5.0, 0.0]", + "[59.14999999999999, 8.0655078909408, 1.62292052935352, 0.06663130667747841, -0.011461622412926226, -0.15376305582515543, -0.061878783908791736, 5.0, 0.0]", + "[59.19999999999999, 8.066165218105311, 1.6164627848474187, 0.06603747795575637, 0.037752534244987285, -0.1045488991672419, 0.038121216091208276, 5.0, 0.0]", + "[59.24999999999999, 8.066822437016826, 1.6100049320883192, 0.06544342927090673, -0.011461622412926215, -0.1537630558251554, -0.061878783908791785, 5.0, 0.0]", + "[59.3, 8.067479763212317, 1.6010863719809234, 0.06484959858020144, 0.037752534244987285, -0.2029772124830689, 0.03812121609120822, 5.0, 0.0]", + "[59.349999999999994, 8.068136983092886, 1.5921679181884516, 0.06925576690511238, -0.011461622412926229, -0.1537630558251554, 0.13812121609120823, 5.0, 0.0]", + "[59.39999999999999, 8.068794312397381, 1.5857101758223324, 0.07366171288764915, 0.037752534244987264, -0.10454889916724192, 0.03812121609120812, 5.0, 0.0]", + "[59.449999999999996, 8.069451525091553, 1.5792523168458916, 0.07306765156956274, -0.011461622412926236, -0.1537630558251554, -0.06187878390879193, 5.0, 0.0]", + "[59.5, 8.067648030437391, 1.5727945775881502, 0.07247383351217096, -0.060675779070839736, -0.10454889916724194, 0.03812121609120808, 5.0, 0.0]", + "[59.55, 8.065844654533, 1.566336719580638, 0.07187977416288369, -0.01146162241292624, -0.15376305582515545, -0.06187878390879196, 5.0, 0.0]", + "[59.599999999999994, 8.066501985976943, 1.5574181542247936, 0.0712859541366882, 0.03775253424498726, -0.20297721248306894, 0.03812121609120804, 5.0, 0.0]", + "[59.65, 8.067159200609025, 1.5484997056808096, 0.07069189675630884, -0.011461622412926253, -0.15376305582515548, -0.06187878390879199, 5.0, 0.0]", + "[59.7, 8.06535570789282, 1.5420419644851096, 0.07009807476110967, -0.06067577907083975, -0.10454889916724198, 0.038121216091208, 5.0, 0.0]", + "[59.75, 8.063552330050461, 1.5355841084155646, 0.0695040193496483, -0.011461622412926264, -0.15376305582515548, -0.06187878390879203, 5.0, 0.0]", + "[59.8, 8.06420965955643, 1.5266655449976911, 0.06891019538562136, 0.03775253424498723, -0.20297721248306896, 0.03812121609120797, 5.0, 0.0]", + "[59.85, 8.064866876126489, 1.5177470945157292, 0.0683161419430883, -0.011461622412926278, -0.15376305582515548, -0.06187878390879208, 5.0, 0.0]", + "[59.900000000000006, 8.06552420466342, 1.5112893513820502, 0.06772231601004093, 0.03775253424498721, -0.10454889916724203, 0.038121216091207916, 5.0, 0.0]", + "[59.95, 8.066181422202476, 1.504831497250493, 0.06712826453644599, -0.011461622412926288, -0.15376305582515554, -0.06187878390879211, 5.0, 0.0]", + "[60.0, 8.066838749770456, 1.4959129357706105, 0.06653443663454726, 0.037752534244987215, -0.20297721248306902, 0.03812121609120789, 5.0, 0.0]", + "[60.050000000000004, 8.067495968278513, 1.48699448335065, 0.06594038712990118, -0.011461622412926288, -0.1537630558251555, -0.06187878390879217, 5.0, 0.0]", + "[60.10000000000001, 8.065692479438285, 1.4805367382789725, 0.06534655725896459, -0.060675779070839805, -0.10454889916724204, 0.03812121609120783, 5.0, 0.0]", + "[60.150000000000006, 8.063889097719926, 1.4740788860854241, 0.0647525097232787, -0.011461622412926316, -0.15376305582515554, -0.0618787839087922, 5.0, 0.0]", + "[60.2, 8.064546423349896, 1.4651603265435529, 0.06415867788346408, 0.03775253424498718, -0.20297721248306905, 0.038121216091207805, 5.0, 0.0]", + "[60.25000000000001, 8.06520364379597, 1.4562418721855732, 0.06856484505929955, -0.01146162241292632, -0.15376305582515554, 0.13812121609120784, 5.0, 0.0]", + "[60.30000000000001, 8.065860972534525, 1.4497841292535198, 0.07297079219177748, 0.03775253424498719, -0.10454889916724205, 0.03812121609120781, 5.0, 0.0]", + "[60.35000000000001, 8.066518185795111, 1.4433262708434973, 0.07237673202461728, -0.011461622412926316, -0.15376305582515556, -0.06187878390879225, 5.0, 0.0]", + "[60.400000000000006, 8.064714691707335, 1.4368685310193696, 0.07178291281636417, -0.06067577907083981, -0.10454889916724208, 0.03812121609120775, 5.0, 0.0]", + "[60.45000000000001, 8.062911315236587, 1.4304106735782134, 0.0711888546178771, -0.011461622412926302, -0.1537630558251556, -0.061878783908792284, 5.0, 0.0]", + "[60.500000000000014, 8.063568646114202, 1.421492108788694, 0.07059503344094639, 0.03775253424498719, -0.2029772124830691, 0.03812121609120771, 5.0, 0.0]", + "[60.55000000000001, 8.064225861312588, 1.4125736596784022, 0.07000097721126726, -0.011461622412926323, -0.15376305582515562, -0.06187878390879235, 5.0, 0.0]", + "[60.60000000000001, 8.06488319122121, 1.4061159179164142, 0.06940715406540691, 0.03775253424498719, -0.1045488991672421, 0.038121216091207666, 5.0, 0.0]", + "[60.65000000000001, 8.065540407388532, 1.3996580624131267, 0.06881309980454448, -0.01146162241292632, -0.1537630558251556, -0.061878783908792374, 5.0, 0.0]", + "[60.70000000000002, 8.066197736328274, 1.3907394995614784, 0.0682192746899847, 0.03775253424498717, -0.20297721248306907, 0.03812121609120764, 5.0, 0.0]", + "[60.750000000000014, 8.06685495346454, 1.381821048513309, 0.06762522239794853, -0.011461622412926347, -0.15376305582515554, -0.06187878390879243, 5.0, 0.0]", + "[60.80000000000001, 8.065051463252503, 1.3753633048134426, 0.06703139531444427, -0.06067577907083983, -0.10454889916724203, 0.03812121609120757, 5.0, 0.0]", + "[60.850000000000016, 8.063248082906002, 1.3689054512480427, 0.06643734499124473, -0.01146162241292634, -0.1537630558251555, -0.06187878390879246, 5.0, 0.0]", + "[60.90000000000002, 8.063905409907857, 1.3599868903342849, 0.06584351593901588, 0.03775253424498717, -0.20297721248306905, 0.038121216091207555, 5.0, 0.0]", + "[60.95000000000002, 8.06456262898202, 1.351068437348218, 0.06524946758466299, -0.01146162241292632, -0.15376305582515554, -0.061878783908792485, 5.0, 0.0]", + "[61.000000000000014, 8.065219955014868, 1.3446106917104532, 0.06465563656347428, 0.037752534244987174, -0.10454889916724204, 0.03812121609120751, 5.0, 0.0]", + "[61.05000000000002, 8.065877175057988, 1.3381528400829605, 0.06406159017797752, -0.01146162241292632, -0.1537630558251555, -0.06187878390879253, 5.0, 0.0]", + "[61.10000000000002, 8.06653450012193, 1.331695093476293, 0.06346775718804051, 0.037752534244987174, -0.10454889916724205, 0.03812121609120747, 5.0, 0.0]", + "[61.15000000000002, 8.067191721133959, 1.3252372428177084, 0.06287371277130312, -0.011461622412926323, -0.15376305582515556, -0.06187878390879257, 5.0, 0.0]", + "[61.20000000000002, 8.067849045228993, 1.3163186848107709, 0.062279877812602115, 0.03775253424498719, -0.2029772124830691, 0.038121216091207444, 5.0, 0.0]", + "[61.25000000000002, 8.068506267209989, 1.307400228917872, 0.06668604186958081, -0.011461622412926316, -0.15376305582515562, 0.13812121609120745, 5.0, 0.0]", + "[61.300000000000026, 8.069163594413125, 1.3009424844503987, 0.07109199212193419, 0.03775253424498719, -0.10454889916724211, 0.03812121609120741, 5.0, 0.0]", + "[61.35000000000002, 8.069820809209713, 1.2944846275763753, 0.07049793507582477, -0.011461622412926316, -0.15376305582515562, -0.06187878390879264, 5.0, 0.0]", + "[61.40000000000002, 8.068017316657903, 1.2880268862162847, 0.069904112746594, -0.06067577907083982, -0.10454889916724214, 0.03812121609120736, 5.0, 0.0]", + "[61.450000000000024, 8.066213938651222, 1.2815690303110603, 0.06931005766902172, -0.01146162241292632, -0.15376305582515562, -0.06187878390879268, 5.0, 0.0]", + "[61.50000000000003, 8.066871267992942, 1.272650467057437, 0.06871623337124955, 0.03775253424498719, -0.20297721248306916, 0.03812121609120733, 5.0, 0.0]", + "[61.550000000000026, 8.067528484727214, 1.2637320164112638, 0.0681221802623832, -0.011461622412926295, -0.1537630558251557, -0.06187878390879271, 5.0, 0.0]", + "[61.60000000000002, 8.06572499411316, 1.2572742731134132, 0.06752835399574945, -0.060675779070839805, -0.10454889916724219, 0.038121216091207305, 5.0, 0.0]", + "[61.65000000000003, 8.063921614168715, 1.2508164191459572, 0.0669343028555973, -0.011461622412926309, -0.1537630558251557, -0.061878783908792735, 5.0, 0.0]", + "[61.70000000000003, 8.064578941572664, 1.2418978578301036, 0.06634047462040078, 0.037752534244987195, -0.2029772124830692, 0.03812121609120726, 5.0, 0.0]", + "[61.75000000000003, 8.065236160244712, 1.2329794052461538, 0.0657464254489713, -0.011461622412926302, -0.15376305582515576, -0.06187878390879278, 5.0, 0.0]", + "[61.800000000000026, 8.065893486679698, 1.226521660010527, 0.06515259524490111, 0.03775253424498719, -0.10454889916724229, 0.03812121609120722, 5.0, 0.0]", + "[61.85000000000003, 8.066550706320639, 1.220063807980856, 0.06455854804220242, -0.01146162241292632, -0.1537630558251558, -0.06187878390879284, 5.0, 0.0]", + "[61.900000000000034, 8.067208031786802, 1.2111452486027885, 0.06396471586954822, 0.03775253424498719, -0.2029772124830693, 0.038121216091207166, 5.0, 0.0]", + "[61.95000000000003, 8.067865252396642, 1.2022267940810463, 0.06837088271262791, -0.011461622412926326, -0.15376305582515581, 0.13812121609120717, 5.0, 0.0]", + "[62.00000000000003, 8.068522580970082, 1.1957690509838745, 0.07277683018061601, 0.037752534244987195, -0.10454889916724228, 0.0381212160912071, 5.0, 0.0]", + "[62.05000000000003, 8.06917979439733, 1.1893111927405082, 0.07218277035208961, -0.011461622412926312, -0.1537630558251558, -0.06187878390879297, 5.0, 0.0]", + "[62.10000000000004, 8.067376300476127, 1.1828534527498062, 0.07158895080536806, -0.06067577907083981, -0.10454889916724228, 0.03812121609120703, 5.0, 0.0]", + "[62.150000000000034, 8.065572923838884, 1.1763955954751437, 0.07099489294518477, -0.011461622412926305, -0.1537630558251558, -0.06187878390879302, 5.0, 0.0]", + "[62.20000000000003, 8.06623025455009, 1.1674770308520357, 0.07040107143011667, 0.0377525342449872, -0.2029772124830693, 0.038121216091206986, 5.0, 0.0]", + "[62.250000000000036, 8.066887469914855, 1.1585585815753674, 0.06980701553850426, -0.011461622412926298, -0.1537630558251558, -0.06187878390879307, 5.0, 0.0]", + "[62.30000000000004, 8.065083977931277, 1.1521008396470385, 0.06921319205464976, -0.06067577907083981, -0.10454889916724228, 0.038121216091206944, 5.0, 0.0]", + "[62.35000000000004, 8.063280599356398, 1.1456429843100098, 0.06861913813161424, -0.011461622412926305, -0.1537630558251558, -0.06187878390879311, 5.0, 0.0]", + "[62.400000000000034, 8.06393792812997, 1.136724421624537, 0.06802531267939643, 0.03775253424498719, -0.20297721248306932, 0.03812121609120689, 5.0, 0.0]", + "[62.45000000000004, 8.064595145432376, 1.1278059704102286, 0.06743126072494396, -0.01146162241292632, -0.1537630558251558, -0.061878783908793165, 5.0, 0.0]", + "[62.50000000000004, 8.06525247323702, 1.1213482265442607, 0.06683743330393231, 0.03775253424498719, -0.10454889916724225, 0.03812121609120686, 5.0, 0.0]", + "[62.55000000000004, 8.065909691508248, 1.1148903731448783, 0.06624338331806857, -0.011461622412926305, -0.1537630558251558, -0.06187878390879319, 5.0, 0.0]", + "[62.60000000000004, 8.06656701834417, 1.1059718123970521, 0.06564955392867718, 0.037752534244987195, -0.20297721248306927, 0.038121216091206805, 5.0, 0.0]", + "[62.65000000000004, 8.067224237584224, 1.097053359245092, 0.06505550591140873, -0.011461622412926316, -0.15376305582515573, -0.06187878390879326, 5.0, 0.0]", + "[62.700000000000045, 8.065420749475939, 1.0905956134414734, 0.0644616745532156, -0.06067577907083982, -0.10454889916724225, 0.03812121609120675, 5.0, 0.0]", + "[62.75000000000004, 8.063617367025758, 1.0841377619797496, 0.06886784221100235, -0.011461622412926323, -0.15376305582515573, 0.13812121609120673, 5.0, 0.0]", + "[62.80000000000004, 8.064274695999167, 1.0776800192825442, 0.0732737888662849, 0.03775253424498719, -0.10454889916724223, 0.038121216091206674, 5.0, 0.0]", + "[62.850000000000044, 8.064931909027669, 1.0712221606404357, 0.07267972822754029, -0.011461622412926316, -0.1537630558251557, -0.06187878390879339, 5.0, 0.0]", + "[62.90000000000005, 8.065589241106368, 1.0623035946498327, 0.07208590949113435, 0.03775253424498719, -0.20297721248306924, 0.03812121609120661, 5.0, 0.0]", + "[62.950000000000045, 8.066246455103627, 1.0533851467406687, 0.0714918508208413, -0.01146162241292632, -0.1537630558251558, -0.06187878390879342, 5.0, 0.0]", + "[63.00000000000004, 8.066903786213421, 1.0469274061798486, 0.07089803011567697, 0.037752534244987195, -0.10454889916724228, 0.03812121609120661, 5.0, 0.0]", + "[63.05000000000005, 8.06756100117944, 1.0404695494752558, 0.070303973413839, -0.011461622412926302, -0.15376305582515576, -0.061878783908793436, 5.0, 0.0]", + "[63.10000000000005, 8.068218331320624, 1.0315509854221676, 0.06971015074052747, 0.037752534244987215, -0.2029772124830692, 0.03812121609120658, 5.0, 0.0]", + "[63.15000000000005, 8.068875547255406, 1.0226325355754844, 0.06911609600714816, -0.011461622412926292, -0.15376305582515568, -0.06187878390879347, 5.0, 0.0]", + "[63.200000000000045, 8.067072055841841, 1.0161747930771479, 0.06852227136507495, -0.06067577907083979, -0.10454889916724218, 0.03812121609120654, 5.0, 0.0]", + "[63.25000000000005, 8.065268676697004, 1.0097169383100777, 0.06792821860015848, -0.011461622412926298, -0.15376305582515568, -0.06187878390879351, 5.0, 0.0]", + "[63.300000000000054, 8.065926004900666, 1.000798376194512, 0.06733439198992583, 0.03775253424498721, -0.20297721248306916, 0.0381212160912065, 5.0, 0.0]", + "[63.35000000000005, 8.066583222772971, 0.9918799244103021, 0.0667403411934758, -0.011461622412926295, -0.15376305582515568, -0.06187878390879354, 5.0, 0.0]", + "[63.40000000000005, 8.064779733296925, 0.9854221799744414, 0.06614651261447821, -0.0606757790708398, -0.10454889916724222, 0.03812121609120647, 5.0, 0.0]", + "[63.45000000000005, 8.06297635221456, 0.9789643271449012, 0.06555246378649822, -0.011461622412926292, -0.15376305582515576, -0.06187878390879359, 5.0, 0.0]", + "[63.50000000000006, 8.063633678480693, 0.970045766966865, 0.0649586332393299, 0.03775253424498721, -0.20297721248306924, 0.03812121609120642, 5.0, 0.0]", + "[63.550000000000054, 8.064290898290535, 0.9611273132451216, 0.06436458637982363, -0.011461622412926274, -0.15376305582515576, -0.06187878390879361, 5.0, 0.0]", + "[63.60000000000005, 8.064948223587756, 0.9546695668717295, 0.06377075386388721, 0.03775253424498724, -0.10454889916724223, 0.03812121609120642, 5.0, 0.0]", + "[63.650000000000055, 8.065605444366367, 0.9482117159797268, 0.06317670897285793, -0.01146162241292625, -0.15376305582515576, -0.06187878390879361, 5.0, 0.0]", + "[63.70000000000006, 8.066262768694962, 0.9417539686377108, 0.06258287448873993, 0.03775253424498726, -0.10454889916724225, 0.0381212160912064, 5.0, 0.0]", + "[63.75000000000006, 8.066919990442198, 0.935296118714336, 0.06698903902069972, -0.011461622412926236, -0.1537630558251558, 0.13812121609120642, 5.0, 0.0]", + "[63.800000000000054, 8.067577317875818, 0.928838374477346, 0.07139498880472547, 0.03775253424498726, -0.10454889916724233, 0.038121216091206396, 5.0, 0.0]", + "[63.85000000000006, 8.068234532445807, 0.9223805173767213, 0.07080093129817656, -0.01146162241292625, -0.15376305582515587, -0.061878783908793665, 5.0, 0.0]", + "[63.90000000000006, 8.068891862983072, 0.9134619529275521, 0.070207109429676, 0.037752534244987264, -0.20297721248306938, 0.03812121609120636, 5.0, 0.0]", + "[63.95000000000006, 8.06954907852179, 0.9045435034769307, 0.06961305389152478, -0.011461622412926233, -0.15376305582515587, -0.06187878390879368, 5.0, 0.0]", + "[64.00000000000006, 8.067745586712183, 0.8980857613746348, 0.06901923005418112, -0.060675779070839736, -0.10454889916724236, 0.03812121609120632, 5.0, 0.0]", + "[64.05000000000007, 8.065942207963442, 0.8916279062114723, 0.06842517648443003, -0.011461622412926219, -0.15376305582515587, -0.061878783908793734, 5.0, 0.0]", + "[64.10000000000007, 8.066599536563247, 0.8827093436997628, 0.0678313506791356, 0.037752534244987285, -0.20297721248306935, 0.03812121609120628, 5.0, 0.0]", + "[64.15000000000006, 8.067256754039429, 0.8737908923116776, 0.06723729907778642, -0.011461622412926222, -0.15376305582515587, -0.06187878390879376, 5.0, 0.0]", + "[64.20000000000006, 8.065453264167283, 0.8673331482719201, 0.06664347130364551, -0.060675779070839715, -0.10454889916724236, 0.03812121609120625, 5.0, 0.0]", + "[64.25000000000006, 8.063649883481073, 0.8608752950462231, 0.06604942167069995, -0.011461622412926215, -0.15376305582515584, -0.06187878390879379, 5.0, 0.0]", + "[64.30000000000007, 8.064307210143413, 0.8519567344719772, 0.0654555919286046, 0.0377525342449873, -0.20297721248306935, 0.03812121609120622, 5.0, 0.0]", + "[64.35000000000007, 8.06496442955706, 0.8430382811464247, 0.06486154426406446, -0.011461622412926205, -0.15376305582515581, -0.06187878390879383, 5.0, 0.0]", + "[64.40000000000006, 8.065621755250449, 0.8365805351692022, 0.0642677125531194, 0.0377525342449873, -0.1045488991672423, 0.038121216091206195, 5.0, 0.0]", + "[64.45000000000007, 8.066278975632837, 0.8301226838809738, 0.0636736668569858, -0.011461622412926184, -0.1537630558251558, -0.061878783908793845, 5.0, 0.0]", + "[64.50000000000007, 8.066936300357712, 0.8212041252441938, 0.0630798331780837, 0.03775253424498732, -0.20297721248306924, 0.03812121609120617, 5.0, 0.0]", + "[64.55000000000007, 8.06759352170883, 0.812285669981171, 0.0674859985149296, -0.01146162241292617, -0.15376305582515573, 0.13812121609120617, 5.0, 0.0]", + "[64.60000000000007, 8.068250849535971, 0.8058279261377023, 0.0718919474993457, 0.037752534244987326, -0.10454889916724222, 0.038121216091206105, 5.0, 0.0]", + "[64.65000000000006, 8.068908063715218, 0.7993700686463364, 0.07129788919883558, -0.01146162241292618, -0.15376305582515573, -0.06187878390879397, 5.0, 0.0]", + "[64.70000000000007, 8.067104570545888, 0.7929123279037658, 0.07070406812436567, -0.06067577907083968, -0.10454889916724223, 0.03812121609120603, 5.0, 0.0]", + "[64.75000000000007, 8.06530119315691, 0.786454471380841, 0.07011001179166577, -0.01146162241292618, -0.1537630558251557, -0.06187878390879401, 5.0, 0.0]", + "[64.80000000000007, 8.065958523116512, 0.7775359075093367, 0.06951618874938717, 0.03775253424498734, -0.20297721248306919, 0.038121216091206, 5.0, 0.0]", + "[64.85000000000008, 8.066615739232985, 0.7686174574809586, 0.06892213438520052, -0.01146162241292616, -0.15376305582515568, -0.06187878390879403, 5.0, 0.0]", + "[64.90000000000008, 8.064812248001227, 0.7621597148008138, 0.06832830937370503, -0.06067577907083967, -0.10454889916724215, 0.03812121609120597, 5.0, 0.0]", + "[64.95000000000007, 8.063008868674668, 0.7557018602154666, 0.0677342569780381, -0.01146162241292616, -0.15376305582515568, -0.06187878390879407, 5.0, 0.0]", + "[65.00000000000007, 8.063666196696694, 0.7467832982815372, 0.06714042999873215, 0.037752534244987354, -0.20297721248306919, 0.038121216091205945, 5.0, 0.0]", + "[65.05000000000007, 8.064323414750751, 0.7378648463155749, 0.06654637957159196, -0.011461622412926135, -0.15376305582515562, -0.061878783908794095, 5.0, 0.0]", + "[65.10000000000008, 8.064980741803629, 0.7314071016978425, 0.06595255062304338, 0.03775253424498737, -0.10454889916724214, 0.03812121609120592, 5.0, 0.0]", + "[65.15000000000008, 8.065637960826486, 0.7249492490500863, 0.06535850216443644, -0.011461622412926142, -0.15376305582515565, -0.06187878390879412, 5.0, 0.0]", + "[65.20000000000007, 8.06629528691092, 0.7160306890537447, 0.06476467124807658, 0.03775253424498736, -0.20297721248306916, 0.03812121609120589, 5.0, 0.0]", + "[65.25000000000009, 8.066952506902576, 0.7071122351501845, 0.06917083934726315, -0.011461622412926135, -0.15376305582515568, 0.1381212160912059, 5.0, 0.0]", + "[65.30000000000008, 8.067609836085396, 0.7006544926623964, 0.0735767855770231, 0.037752534244987354, -0.10454889916724222, 0.03812121609120587, 5.0, 0.0]", + "[65.35000000000008, 8.0682670489132, 0.6941966338195914, 0.0729827245304754, -0.011461622412926146, -0.15376305582515573, -0.06187878390879419, 5.0, 0.0]", + "[65.40000000000008, 8.066463554392461, 0.6877388944284266, 0.07238890620197586, -0.060675779070839625, -0.10454889916724225, 0.038121216091205806, 5.0, 0.0]", + "[65.45000000000007, 8.06466017835486, 0.6812810365541251, 0.07179484712336541, -0.011461622412926125, -0.15376305582515576, -0.06187878390879426, 5.0, 0.0]", + "[65.50000000000009, 8.065317509665801, 0.6723624713312784, 0.07120102682692755, 0.03775253424498739, -0.20297721248306927, 0.038121216091205765, 5.0, 0.0]", + "[65.55000000000008, 8.065974724431191, 0.6634440226539849, 0.07060696971742417, -0.011461622412926094, -0.15376305582515576, -0.06187878390879426, 5.0, 0.0]", + "[65.60000000000008, 8.066632054772471, 0.656986281324654, 0.07001314745069524, 0.03775253424498741, -0.1045488991672423, 0.03812121609120575, 5.0, 0.0]", + "[65.65000000000009, 8.06728927050696, 0.6505284253885302, 0.06941909231033659, -0.011461622412926094, -0.15376305582515581, -0.06187878390879429, 5.0, 0.0]", + "[65.70000000000009, 8.06794659987972, 0.6416098621038656, 0.06882526807563712, 0.037752534244987396, -0.20297721248306932, 0.038121216091205695, 5.0, 0.0]", + "[65.75000000000009, 8.068603816583325, 0.6326914114883558, 0.06823121490446465, -0.011461622412926104, -0.15376305582515587, -0.061878783908794345, 5.0, 0.0]", + "[65.80000000000008, 8.066800325938999, 0.6262336682207791, 0.06763738869934534, -0.06067577907083961, -0.10454889916724235, 0.03812121609120567, 5.0, 0.0]", + "[65.85000000000008, 8.064996946024959, 0.6197758142229141, 0.06704333749740403, -0.011461622412926125, -0.15376305582515581, -0.06187878390879437, 5.0, 0.0]", + "[65.90000000000009, 8.065654273459453, 0.6108572528765155, 0.06644950932427288, 0.03775253424498738, -0.2029772124830693, 0.03812121609120564, 5.0, 0.0]", + "[65.95000000000009, 8.066311492101365, 0.601938800322701, 0.06585546009161071, -0.011461622412926115, -0.15376305582515576, -0.0618787839087944, 5.0, 0.0]", + "[66.00000000000009, 8.06696881856606, 0.5954810551167855, 0.06526162994791175, 0.03775253424498738, -0.10454889916724223, 0.03812121609120559, 5.0, 0.0]", + "[66.0500000000001, 8.067626038177162, 0.5890232030572735, 0.06466758268457994, -0.011461622412926118, -0.15376305582515576, -0.06187878390879444, 5.0, 0.0]", + "[66.1000000000001, 8.065822550439735, 0.5825654568827946, 0.06407375057282184, -0.060675779070839625, -0.10454889916724225, 0.03812121609120557, 5.0, 0.0]", + "[66.15000000000009, 8.064019167618776, 0.5761076057918518, 0.06847991747720468, -0.0114616224129261, -0.15376305582515576, 0.1381212160912056, 5.0, 0.0]", + "[66.20000000000009, 8.064676496207658, 0.5696498627101202, 0.07288586491381956, 0.0377525342449874, -0.10454889916724228, 0.03812121609120555, 5.0, 0.0]", + "[66.25000000000009, 8.065333709636876, 0.5631920044687257, 0.0722918050892996, -0.011461622412926125, -0.1537630558251558, -0.061878783908794525, 5.0, 0.0]", + "[66.3000000000001, 8.065991041314657, 0.5542734388790406, 0.0716979855382545, 0.037752534244987375, -0.20297721248306935, 0.0381212160912055, 5.0, 0.0]", + "[66.3500000000001, 8.066648255713936, 0.5453549905678577, 0.07110392768483756, -0.011461622412926122, -0.1537630558251559, -0.06187878390879457, 5.0, 0.0]", + "[66.40000000000009, 8.067305586420568, 0.5364364259493228, 0.07051010616047729, 0.03775253424498738, -0.20297721248306946, 0.03812121609120544, 5.0, 0.0]", + "[66.4500000000001, 8.067962801791085, 0.5275179766668993, 0.06991605028055922, -0.011461622412926125, -0.15376305582515593, -0.06187878390879462, 5.0, 0.0]", + "[66.5000000000001, 8.066159309814493, 0.5210602347315854, 0.06932222678251233, -0.06067577907083961, -0.1045488991672424, 0.038121216091205376, 5.0, 0.0]", + "[66.5500000000001, 8.064355931232395, 0.514602379401782, 0.06872817287415814, -0.011461622412926111, -0.1537630558251559, -0.06187878390879465, 5.0, 0.0]", + "[66.6000000000001, 8.06501325999849, 0.5056838167237833, 0.06813434740675287, 0.03775253424498738, -0.2029772124830694, 0.038121216091205334, 5.0, 0.0]", + "[66.65000000000009, 8.065670477309702, 0.49676536550067124, 0.06754029547018879, -0.011461622412926125, -0.1537630558251559, -0.061878783908794734, 5.0, 0.0]", + "[66.7000000000001, 8.066327805104155, 0.49030762162451375, 0.06694646802847252, 0.037752534244987396, -0.10454889916724239, 0.03812121609120529, 5.0, 0.0]", + "[66.7500000000001, 8.066985023385884, 0.4838497682356328, 0.06635241806394793, -0.011461622412926108, -0.15376305582515587, -0.06187878390879474, 5.0, 0.0]", + "[66.8000000000001, 8.065181534319493, 0.4773920233901181, 0.06575858865255993, -0.06067577907083961, -0.1045488991672424, 0.03812121609120528, 5.0, 0.0]", + "[66.85000000000011, 8.063378152827081, 0.47093417097062445, 0.06516454065776796, -0.0114616224129261, -0.15376305582515593, -0.06187878390879477, 5.0, 0.0]", + "[66.9000000000001, 8.06403547868276, 0.462015611203039, 0.06457070927659037, 0.0377525342449874, -0.20297721248306944, 0.038121216091205244, 5.0, 0.0]", + "[66.9500000000001, 8.064692698904636, 0.4530971570692616, 0.06897687690799027, -0.01146162241292609, -0.15376305582515595, 0.13812121609120526, 5.0, 0.0]", + "[67.0000000000001, 8.065350027837141, 0.44663941433115384, 0.07338282364638349, 0.03775253424498741, -0.10454889916724242, 0.038121216091205216, 5.0, 0.0]", + "[67.0500000000001, 8.06600724093804, 0.4401815557614405, 0.07278876315474081, -0.01146162241292608, -0.1537630558251559, -0.061878783908794824, 5.0, 0.0]", + "[67.10000000000011, 8.066664572943019, 0.4312629898445586, 0.07219494426853815, 0.037752534244987423, -0.20297721248306946, 0.038121216091205196, 5.0, 0.0]", + "[67.1500000000001, 8.067321787017466, 0.42234454185820836, 0.07160088575508215, -0.011461622412926076, -0.15376305582515595, -0.06187878390879486, 5.0, 0.0]", + "[67.2000000000001, 8.065518293747216, 0.4158868012165561, 0.07100706488567228, -0.06067577907083957, -0.10454889916724247, 0.038121216091205126, 5.0, 0.0]", + "[67.25000000000011, 8.063714916457494, 0.40942894459437523, 0.07041300835129034, -0.011461622412926073, -0.15376305582515595, -0.061878783908794914, 5.0, 0.0]", + "[67.30000000000011, 8.064372246514628, 0.4005103806253382, 0.06981918550719196, 0.03775253424498744, -0.2029772124830695, 0.0381212160912051, 5.0, 0.0]", + "[67.35000000000011, 8.06502946253754, 0.39159193069052245, 0.0692251309528925, -0.011461622412926056, -0.15376305582515598, -0.061878783908794935, 5.0, 0.0]", + "[67.4000000000001, 8.065686791617368, 0.3851341880997397, 0.06863130612297488, 0.03775253424498744, -0.1045488991672425, 0.03812121609120507, 5.0, 0.0]", + "[67.4500000000001, 8.066344008615328, 0.37867633342708684, 0.06803725354990818, -0.011461622412926056, -0.153763055825156, -0.06187878390879497, 5.0, 0.0]", + "[67.50000000000011, 8.067001336722523, 0.3697577714079901, 0.06744342674365655, 0.03775253424498743, -0.2029772124830695, 0.03812121609120503, 5.0, 0.0]", + "[67.55000000000011, 8.06765855469618, 0.3608393195224294, 0.0668493761531456, -0.011461622412926063, -0.15376305582515593, -0.06187878390879501, 5.0, 0.0]", + "[67.60000000000011, 8.065855065326675, 0.3543815749800315, 0.06625554735767142, -0.06067577907083957, -0.10454889916724247, 0.03812121609120501, 5.0, 0.0]", + "[67.65000000000012, 8.064051684135274, 0.3479237222595269, 0.06566149875124445, -0.01146162241292608, -0.15376305582515595, -0.06187878390879504, 5.0, 0.0]", + "[67.70000000000012, 8.064709010289759, 0.34146597674340134, 0.06506766797721862, 0.03775253424498743, -0.10454889916724248, 0.038121216091204974, 5.0, 0.0]", + "[67.75000000000011, 8.065366230213833, 0.3350081249968643, 0.06447362134983112, -0.011461622412926076, -0.15376305582515598, -0.06187878390879507, 5.0, 0.0]", + "[67.80000000000011, 8.066023555394102, 0.32608956590469446, 0.06387978859625222, 0.03775253424498743, -0.2029772124830695, 0.038121216091204946, 5.0, 0.0]", + "[67.85000000000011, 8.066680776296241, 0.3171711110906554, 0.06828595484540442, -0.01146162241292608, -0.153763055825156, 0.13812121609120498, 5.0, 0.0]", + "[67.90000000000012, 8.067338104511984, 0.3107133676357885, 0.07269190304020609, 0.037752534244987423, -0.10454889916724251, 0.038121216091204925, 5.0, 0.0]", + "[67.95000000000012, 8.067995318371278, 0.30425550982446903, 0.07209784408957082, -0.011461622412926066, -0.153763055825156, -0.06187878390879512, 5.0, 0.0]", + "[68.00000000000011, 8.066191824889216, 0.2977977693946278, 0.07150402365054734, -0.06067577907083957, -0.10454889916724253, 0.038121216091204876, 5.0, 0.0]", + "[68.05000000000013, 8.064388447805346, 0.29133991256659114, 0.07090996669787948, -0.01146162241292607, -0.15376305582515604, -0.06187878390879514, 5.0, 0.0]", + "[68.10000000000012, 8.065045778062018, 0.28242134839801325, 0.07031614425923507, 0.037752534244987423, -0.20297721248306955, 0.03812121609120486, 5.0, 0.0]", + "[68.15000000000012, 8.065702993896823, 0.2735028986513075, 0.06972208932270815, -0.011461622412926076, -0.153763055825156, -0.06187878390879518, 5.0, 0.0]", + "[68.20000000000012, 8.066360323152233, 0.26704515623610536, 0.06912826484955899, 0.03775253424498743, -0.1045488991672425, 0.038121216091204835, 5.0, 0.0]", + "[68.25000000000011, 8.067017539982785, 0.2605873013960485, 0.06853421193633825, -0.011461622412926083, -0.153763055825156, -0.06187878390879522, 5.0, 0.0]", + "[68.30000000000013, 8.067674868248647, 0.2516687392182815, 0.06794038545249449, 0.037752534244987423, -0.20297721248306952, 0.038121216091204786, 5.0, 0.0]", + "[68.35000000000012, 8.068332086079282, 0.2427502874757418, 0.06734633457137384, -0.011461622412926083, -0.153763055825156, -0.061878783908795275, 5.0, 0.0]", + "[68.40000000000012, 8.066528596584103, 0.23629254305901753, 0.06675250603126048, -0.06067577907083958, -0.10454889916724248, 0.038121216091204724, 5.0, 0.0]", + "[68.45000000000013, 8.06472521550672, 0.2298346902244975, 0.06615845719316145, -0.011461622412926076, -0.15376305582515598, -0.06187878390879533, 5.0, 0.0]", + "[68.50000000000013, 8.065382541762656, 0.22091613005665692, 0.06556462662527641, 0.037752534244987423, -0.20297721248306946, 0.03812121609120467, 5.0, 0.0]", + "[68.55000000000013, 8.066039761610975, 0.21199767629643157, 0.06497057984396322, -0.011461622412926063, -0.15376305582515593, -0.061878783908795344, 5.0, 0.0]", + "[68.60000000000012, 8.06669708683824, 0.20553992985308409, 0.06437674718588188, 0.03775253424498744, -0.10454889916724237, 0.038121216091204634, 5.0, 0.0]", + "[68.65000000000012, 8.067354307707461, 0.19908207905169423, 0.06378270247897254, -0.01146162241292608, -0.1537630558251559, -0.061878783908795414, 5.0, 0.0]", + "[68.70000000000013, 8.065550821250577, 0.19262433159667203, 0.06318886776523323, -0.060675779070839576, -0.10454889916724242, 0.038121216091204585, 5.0, 0.0]", + "[68.75000000000013, 8.06374743712469, 0.18616648181065676, 0.06759503201808714, -0.011461622412926087, -0.15376305582515593, 0.13812121609120456, 5.0, 0.0]", + "[68.80000000000013, 8.064404764226596, 0.17970873724195124, 0.07200098247613713, 0.037752534244987423, -0.10454889916724242, 0.038121216091204564, 5.0, 0.0]", + "[68.85000000000014, 8.06506197937043, 0.17325088071517428, 0.0714069261356097, -0.011461622412926083, -0.15376305582515593, -0.06187878390879548, 5.0, 0.0]", + "[68.90000000000013, 8.065719309280322, 0.16433231689338068, 0.0708131029923222, 0.03775253424498741, -0.20297721248306946, 0.0381212160912045, 5.0, 0.0]", + "[68.95000000000013, 8.066376525540866, 0.1554138667209336, 0.07021904892087429, -0.01146162241292609, -0.15376305582515598, -0.061878783908795566, 5.0, 0.0]", + "[69.00000000000013, 8.06703385427815, 0.14649530407174124, 0.06962522339493638, 0.03775253424498741, -0.2029772124830695, 0.03812121609120443, 5.0, 0.0]", + "[69.05000000000013, 8.067691071744186, 0.1375768526938023, 0.06903117177297056, -0.011461622412926087, -0.15376305582515598, -0.06187878390879562, 5.0, 0.0]", + "[69.10000000000014, 8.065887582011701, 0.13111910851438452, 0.06843734371504866, -0.0606757790708396, -0.10454889916724248, 0.03812121609120438, 5.0, 0.0]", + "[69.15000000000013, 8.064084201072074, 0.12466125554210725, 0.06784329459703588, -0.01146162241292609, -0.15376305582515595, -0.06187878390879568, 5.0, 0.0]", + "[69.20000000000013, 8.064741527351687, 0.11574269535058947, 0.0672494640772613, 0.03775253424498741, -0.20297721248306944, 0.03812121609120432, 5.0, 0.0]", + "[69.25000000000014, 8.06539874737817, 0.10682424141220577, 0.06665541765795444, -0.0114616224129261, -0.15376305582515593, -0.06187878390879572, 5.0, 0.0]", + "[69.30000000000014, 8.066056072176767, 0.10036649454019057, 0.06606158412884786, 0.037752534244987396, -0.1045488991672424, 0.038121216091204294, 5.0, 0.0]", + "[69.35000000000014, 8.066713293681577, 0.09390864437438594, 0.06546754071340682, -0.011461622412926118, -0.1537630558251559, -0.06187878390879575, 5.0, 0.0]", + "[69.40000000000013, 8.064909808106165, 0.08745089603789274, 0.06487370420857518, -0.06067577907083963, -0.10454889916724236, 0.03812121609120428, 5.0, 0.0]", + "[69.45000000000013, 8.063106422803664, 0.0809930474284911, 0.06927986607062585, -0.011461622412926125, -0.15376305582515584, 0.13812121609120429, 5.0, 0.0]", + "[69.50000000000014, 8.063763747711558, 0.0745353006657732, 0.07368582098676776, 0.03775253424498738, -0.10454889916724233, 0.03812121609120422, 5.0, 0.0]", + "[69.55000000000014, 8.064420966430928, 0.06807744771453317, 0.07309177191150125, -0.011461622412926115, -0.15376305582515581, -0.06187878390879583, 5.0, 0.0]", + "[69.60000000000014, 8.065078291969005, 0.05915888826455358, 0.07249793988496883, 0.037752534244987396, -0.20297721248306932, 0.03812121609120418, 5.0, 0.0]", + "[69.65000000000015, 8.065735514098474, 0.05024043222317912, 0.07190389773880389, -0.011461622412926115, -0.15376305582515581, -0.06187878390879586, 5.0, 0.0]", + "[69.70000000000014, 8.06639283487106, 0.04132187753868943, 0.0713100560291026, 0.037752534244987396, -0.20297721248306932, 0.03812121609120414, 5.0, 0.0]", + "[69.75000000000014, 8.067050063307706, 0.03240341519013865, 0.07071602669871413, -0.011461622412926094, -0.15376305582515581, -0.0618787839087959, 5.0, 0.0]", + "[69.80000000000014, 8.065246588942282, 0.025945655643658964, 0.07012216741591114, -0.060675779070839604, -0.10454889916724235, 0.03812121609120411, 5.0, 0.0]", + "[69.85000000000014, 8.063443188296677, 0.019487822377358275, 0.06952815833917486, -0.011461622412926106, -0.15376305582515584, -0.06187878390879594, 5.0, 0.0]", + "[69.90000000000015, 8.06410048917553, 0.010569287586600801, 0.06893427620668961, 0.037752534244987396, -0.20297721248306932, 0.03812121609120407, 5.0, 0.0]", + "[69.95000000000014, 8.064757745235994, 0.0016507976142342059, 0.06834030300611757, -0.011461622412926087, -0.15376305582515581, -0.061878783908795865, 5.0, 0.0]", + "[70.00000000000014, 8.065415020767693, -0.0048069985246767775, 0.06774636936984849, 0.03775253424498741, -0.10454889916724232, 0.03812121609120414, 5.0, 0.0]", + "[70.05000000000015, 8.066072285671964, -0.01126480529101799, 0.06715241413932492, -0.011461622412926059, -0.1537630558251558, -0.06187878390879592, 5.0, 0.0]", + "[70.10000000000015, 8.066729576150813, -0.02018332968177028, 0.0665585108746981, 0.03775253424498748, -0.20297721248306932, 0.038121216091204, 5.0, 0.0]", + "[70.15000000000015, 8.06738682045028, -0.02910180789313817, 0.06596451377653342, -0.011461622412926028, -0.15376305582515584, -0.061878783908796045, 5.0, 0.0]" ] }, "type": "simtrace", diff --git a/demo/quadrotor/quadrotor_controller.py b/demo/quadrotor/quadrotor_controller.py index 44c73aa6f80d07d1b2f12aee4368bffd19f18971..1776b06a5a28f5aa0109cda6065a0b7971b84d6a 100644 --- a/demo/quadrotor/quadrotor_controller.py +++ b/demo/quadrotor/quadrotor_controller.py @@ -7,6 +7,12 @@ class CraftMode(Enum): Follow_Lane = auto() +class LaneMode(Enum): + Lane0 = auto() + Lane1 = auto() + Lane2 = auto() + + class State: x = 0.0 y = 0.0 @@ -15,10 +21,11 @@ class State: vy = 0.0 vz = 0.0 craft_mode: CraftMode = CraftMode.Follow_Waypoint + lane_mode: LaneMode = LaneMode.Lane0 waypoint_index: int = 0 done_flag = 0.0 # indicate if the quad rotor reach the waypoint - def __init__(self, x, y, z, vx, vy, vz, waypoint_index, done_flag, craft_mode): + def __init__(self, x, y, z, vx, vy, vz, waypoint_index, done_flag, craft_mode, lane_mode): pass @@ -37,4 +44,7 @@ def controller(ego: State): if ego.waypoint_index == 4: output.waypoint_index = 5 + if ego.craft_mode == CraftMode.Follow_Lane and ego.done_flag > 0: + output.done_flag = 0 + output.waypoint_index = output.waypoint_index + 1 return output diff --git a/demo/quadrotor/quadrotor_demo.py b/demo/quadrotor/quadrotor_demo.py index 5c9a0dc525f92e4d6555623b92336aced77bbb2b..8a495b7983deb8b2b93337d2e518d51cf4feca5c 100644 --- a/demo/quadrotor/quadrotor_demo.py +++ b/demo/quadrotor/quadrotor_demo.py @@ -16,6 +16,12 @@ class CraftMode(Enum): Follow_Lane = auto() +class LaneMode(Enum): + Lane0 = auto() + Lane1 = auto() + Lane2 = auto() + + if __name__ == "__main__": input_code_name = './demo/quadrotor/quadrotor_controller.py' scenario = Scenario() @@ -33,8 +39,8 @@ if __name__ == "__main__": quadrotor = QuadrotorAgent( 'test', file_name=input_code_name) scenario.add_agent(quadrotor) - tmp_map = SimpleMap1(waypoints=waypoints, - guard_boxes=guard_boxes, time_limits=time_limits) + tmp_map = SimpleMap1(waypoints={quadrotor.id: waypoints}, + guard_boxes={quadrotor.id: guard_boxes}, time_limits={quadrotor.id: time_limits}) scenario.set_map(tmp_map) scenario.set_sensor(QuadrotorSensor()) # modify mode list input @@ -43,7 +49,7 @@ if __name__ == "__main__": [[2.75, -0.25, -0.1, 0, 0, 0, 0, 0], [3, 0, 0, 0.1, 0.1, 0.1, 0, 0]], ], [ - tuple([CraftMode.Follow_Waypoint]), + tuple([CraftMode.Follow_Waypoint, LaneMode.Lane0]), ] ) traces = scenario.simulate(200, 0.05) diff --git a/demo/uncertain_dynamics/controller1.py b/demo/uncertain_dynamics/controller1.py new file mode 100644 index 0000000000000000000000000000000000000000..af4cb0867f207afdf9addc2488281ce4fb131df7 --- /dev/null +++ b/demo/uncertain_dynamics/controller1.py @@ -0,0 +1,18 @@ +from enum import Enum, auto +import copy + +class AgentMode(Enum): + Default = auto() + +class State: + x1 = 0.0 + x2 = 0.0 + agent_mode: AgentMode = AgentMode.Default + + def __init__(self, x, y, agent_mode: AgentMode): + pass + +def controller(ego: State): + output = copy.deepcopy(ego) + + return output diff --git a/demo/uncertain_dynamics/uncertain_agents.py b/demo/uncertain_dynamics/uncertain_agents.py new file mode 100644 index 0000000000000000000000000000000000000000..d685afac3f7176adeda1d49192a8df9eb24ca736 --- /dev/null +++ b/demo/uncertain_dynamics/uncertain_agents.py @@ -0,0 +1,205 @@ +from typing import Tuple, List + +import numpy as np +from scipy.integrate import ode + +from verse.agents import BaseAgent +from verse.parser import ControllerIR + +from scipy.optimize import minimize +from sympy import Symbol, diff +from sympy.utilities.lambdify import lambdify +from sympy.core import * + +def find_min(expr, var_range): + bounds = [] + vars = list(expr.free_symbols) + x0 = [] + jac = [] + for var in vars: + bounds.append(var_range[var]) + x0.append(var_range[var][0]) + jac.append(diff(expr, var)) + expr_func = lambdify([vars], expr) + jac_func = lambdify([vars], jac) + res = minimize( + expr_func, + x0, + bounds = bounds, + jac = jac_func, + method = 'L-BFGS-B' + ) + return res.fun + +def find_max(expr, var_range): + tmp = -expr + res = find_min(tmp, var_range) + return -res + +def computeD(exprs, symbol_x, symbol_w, x, w, x_hat, w_hat): + d = [] + for expr in exprs: + if all(a<=b for a,b in zip(x, x_hat)) and all(a<=b for a,b in zip(w,w_hat)): + var_range = {} + for i, var in enumerate(symbol_x): + var_range[var] = (x[i], x_hat[i]) + for i, var in enumerate(symbol_w): + var_range[var] = (w[i], w_hat[i]) + res = find_min(expr, var_range) + d.append(res) + elif all(b<=a for a,b in zip(x,x_hat)) and all(b<=a for a,b in zip(w,w_hat)): + var_range = {} + for i,var in enumerate(symbol_x): + var_range[var] = (x_hat[i], x[i]) + for i, var in enumerate(symbol_w): + var_range[var] = (w_hat[i], w[i]) + res = find_max(expr, var_range) + d.append(res) + else: + raise ValueError(f"Condition for x, w, x_hat, w_hat not satisfied: {[x, w, x_hat, w_hat]}") + return d + +class Agent1(BaseAgent): + def __init__(self, id): + self.id = id + self.controller = ControllerIR.empty() + + def dynamics(self, x, args): + w1, w2, dt = args + x1, x2 = x + + x1_plus = x1+dt*(x1*(1.1+w1-x2-0.1*x2)) + x2_plus = x2+dt*(x2*(4+w2-3*x1-x2)) + return [x1_plus, x2_plus] + + def decomposition(self, x, w, xhat, what, params): + dt = params + x1 = Symbol('x1',real=True) + x2 = Symbol('x2',real=True) + + w1 = Symbol('w1',real=True) + w2 = Symbol('w2',real=True) + + exprs = [ + x1+dt*x1*(1.1+w1-x1-0.1*x2), + x2+dt*x2*(4+w2-3*x1-x2), + ] + res = computeD(exprs, [x1, x2], [w1, w2], x, w, xhat, what) + return res + +class Agent2(BaseAgent): + def __init__(self, id): + self.id = id + self.controller = ControllerIR.empty() + + def dynamics(self, x, args): + w1, w2, dt = args + x1, x2 = x + + x1_plus = x1+dt*(x1*(1.1+w1-x1-0.1*x2)) + x2_plus = x2+dt*(x2*(4+w2-3*x1-x2)) + return [x1_plus, x2_plus] + + def dynamics_jac(self, x, args): + w1, w2, dt = args + x1, x2 = x + + j1x1 = dt*(w1 - x1 - x2/10 + 11/10) - dt*x1 + 1 + j1x2 = -(dt*x1)/10 + j1w1 = dt*x1 + j1w2 = 0 + j2x1 = -3*dt*x2 + j2x2 = dt*(w2 - 3*x1 - x2 + 4) - dt*x2 + 1 + j2w1 = 0 + j2w2 = dt*x2 + + return np.array([[j1x1, j1x2, j1w1, j1w2], [j2x1, j2x2, j2w1, j2w2]]) + +class Agent3(BaseAgent): + def __init__(self, id): + self.id = id + self.controller = ControllerIR.empty() + + def dynamics(self, x, args): + w1, w2, dt = args + x1, x2 = x + '''Begin Dynamic''' + x1_plus = x1+dt*(x1*(1.1+w1-x1-0.1*x2)) + x2_plus = x2+dt*(x2*(4+w2-3*x1-x2)) + '''End Dynamic''' + return [x1_plus, x2_plus] + +class Agent4(BaseAgent): + def __init__(self, id): + self.id = id + self.controller = ControllerIR.empty() + + def dynamics(self, x, args): + w1, dt = args + x1, x2, x3, x4 = x + + x1_plus = x1 + dt*(-2*x1+x2*(1+x1)+x3+w1) + x2_plus = x2 + dt*(-x2+x1*(1-x2)+0.1) + x3_plus = x3 + dt*(-x4) + x4_plus = x4 + dt*(x3) + return [x1_plus, x2_plus, x3_plus, x4_plus] + + def dynamics_jac(self, x, args): + w1, dt = args + x1, x2, x3, x4 = x + + j1x1,j1x2,j1x3,j1x4,j1w1 = [dt*(x2 - 2) + 1, dt*(x1 + 1), dt, 0, dt] + j2x1,j2x2,j2x3,j2x4,j2w1 = [ -dt*(x2 - 1), 1 - dt*(x1 + 1), 0, 0, 0] + j3x1,j3x2,j3x3,j3x4,j3w1 = [ 0, 0, 1, -dt, 0] + j4x1,j4x2,j4x3,j4x4,j4w1 = [ 0, 0, dt, 1, 0] + + return np.array([ + [j1x1,j1x2,j1x3,j1x4,j1w1], + [j2x1,j2x2,j2x3,j2x4,j2w1], + [j3x1,j3x2,j3x3,j3x4,j3w1], + [j4x1,j4x2,j4x3,j4x4,j4w1], + ]) + +class Agent5(BaseAgent): + def __init__(self, id): + self.id = id + self.controller = ControllerIR.empty() + + def dynamics(self, x, args): + w1 = args + x1, x2, x3, x4 = x + + dx1 = -2*x1+x2*(1+x1)+x3+w1 + dx2 = -x2+x1*(1-x2)+0.1 + dx3 = -x4 + dx4 = x3 + return [dx1, dx2, dx3, dx4] + + def decomposition(self, x, w, xhat, what): + x1, x2, x3, x4 = x + w1 = w + x1hat, x2hat, x3hat, x4hat = xhat + w1hat = what + + d1 = -2*x1+self._a(x,xhat)+x3+w1 + d2 = -x2+self._b(x,xhat)+0.1 + d3 = -x4hat + d4 = x3 + + return [d1, d2, d3, d4] + + def _a(self, x, xhat): + x1, x2, x3, x4 = x + x1hat, x2hat, x3hat, x4hat = xhat + if all(a<=b for a,b in zip(x,xhat)): + return min(x2*(1+x1), x2hat*(1+x1)) + elif all(a<=b for a,b in zip(xhat, x)): + return max(x2*(1+x1), x2hat*(1+x1)) + + def _b(self, x, xhat): + x1, x2, x3, x4 = x + x1hat, x2hat, x3hat, x4hat = xhat + if all(a<=b for a,b in zip(x,xhat)): + return min(x1*(1-x2), x1hat*(1-x2)) + elif all(a<=b for a,b in zip(xhat, x)): + return max(x1*(1-x2), x1hat*(1-x2)) \ No newline at end of file diff --git a/demo/uncertain_dynamics/uncertain_demo1.py b/demo/uncertain_dynamics/uncertain_demo1.py new file mode 100644 index 0000000000000000000000000000000000000000..2dbde631e903fece4268414563e35fe760315f76 --- /dev/null +++ b/demo/uncertain_dynamics/uncertain_demo1.py @@ -0,0 +1,42 @@ + +from uncertain_agents import Agent1 +from verse import Scenario +from verse.plotter.plotter2D import * +from verse.plotter.plotter2D_old import plot_reachtube_tree + +import matplotlib.pyplot as plt +import plotly.graph_objects as go +from enum import Enum, auto + + +class AgentMode(Enum): + Default = auto() + + +if __name__ == "__main__": + scenario = Scenario() + + car = Agent1('car1') + scenario.add_agent(car) + # car = vanderpol_agent('car2', file_name=input_code_name) + # scenario.add_agent(car) + # scenario.set_sensor(FakeSensor2()) + # modify mode list input + scenario.set_init( + [ + [[1, 1], [1, 1]], + ], + [ + tuple([AgentMode.Default]), + ], + uncertain_param_list=[ + [[-0.1, -0.1], [0.1, 0.1]] + ] + ) + traces = scenario.verify(10, 0.01, reachability_method='MIXMONO_DISC') + fig = plot_reachtube_tree(traces.root, 'car1', 0, [1]) + plt.show() + # fig = go.Figure() + # fig = simulation_tree(traces, None, fig, 1, 2, + # 'lines', 'trace', print_dim_list=[1, 2]) + # fig.show() diff --git a/demo/uncertain_dynamics/uncertain_demo2.py b/demo/uncertain_dynamics/uncertain_demo2.py new file mode 100644 index 0000000000000000000000000000000000000000..9cf278ecdf5103aa316d92d5554f7962d1f4ab4c --- /dev/null +++ b/demo/uncertain_dynamics/uncertain_demo2.py @@ -0,0 +1,42 @@ + +from uncertain_agents import Agent2 +from verse import Scenario +from verse.plotter.plotter2D import * +from verse.plotter.plotter2D_old import plot_reachtube_tree + +import matplotlib.pyplot as plt +import plotly.graph_objects as go +from enum import Enum, auto + + +class AgentMode(Enum): + Default = auto() + + +if __name__ == "__main__": + scenario = Scenario() + + car = Agent2('car1') + scenario.add_agent(car) + # car = vanderpol_agent('car2', file_name=input_code_name) + # scenario.add_agent(car) + # scenario.set_sensor(FakeSensor2()) + # modify mode list input + scenario.set_init( + [ + [[1, 1], [1, 1]], + ], + [ + tuple([AgentMode.Default]), + ], + uncertain_param_list=[ + [[-0.1, -0.1], [0.1, 0.1]] + ] + ) + traces = scenario.verify(10, 0.01, reachability_method='MIXMONO_DISC') + fig = plot_reachtube_tree(traces.root, 'car1', 0, [1]) + plt.show() + # fig = go.Figure() + # fig = simulation_tree(traces, None, fig, 1, 2, + # 'lines', 'trace', print_dim_list=[1, 2]) + # fig.show() diff --git a/demo/uncertain_dynamics/uncertain_demo3.py b/demo/uncertain_dynamics/uncertain_demo3.py new file mode 100644 index 0000000000000000000000000000000000000000..a514cb49177bda3434cc8b48b634b0fa212107f6 --- /dev/null +++ b/demo/uncertain_dynamics/uncertain_demo3.py @@ -0,0 +1,42 @@ + +from uncertain_agents import Agent3 +from verse import Scenario +from verse.plotter.plotter2D import * +from verse.plotter.plotter2D_old import plot_reachtube_tree + +import matplotlib.pyplot as plt +import plotly.graph_objects as go +from enum import Enum, auto + + +class AgentMode(Enum): + Default = auto() + + +if __name__ == "__main__": + scenario = Scenario() + + car = Agent3('car1') + scenario.add_agent(car) + # car = vanderpol_agent('car2', file_name=input_code_name) + # scenario.add_agent(car) + # scenario.set_sensor(FakeSensor2()) + # modify mode list input + scenario.set_init( + [ + [[1, 1], [1, 1]], + ], + [ + tuple([AgentMode.Default]), + ], + uncertain_param_list=[ + [[-0.1, -0.1], [0.1, 0.1]] + ] + ) + traces = scenario.verify(10, 0.01, reachability_method='MIXMONO_DISC') + fig = plot_reachtube_tree(traces.root, 'car1', 0, [1]) + plt.show() + # fig = go.Figure() + # fig = simulation_tree(traces, None, fig, 1, 2, + # 'lines', 'trace', print_dim_list=[1, 2]) + # fig.show() diff --git a/demo/uncertain_dynamics/uncertain_demo4.py b/demo/uncertain_dynamics/uncertain_demo4.py new file mode 100644 index 0000000000000000000000000000000000000000..04799073fe937ed50fd85b5a976934de9ab670eb --- /dev/null +++ b/demo/uncertain_dynamics/uncertain_demo4.py @@ -0,0 +1,49 @@ + +from uncertain_agents import Agent4 +from verse import Scenario +from verse.plotter.plotter2D import * +from verse.plotter.plotter2D_old import plot_reachtube_tree + +import matplotlib.pyplot as plt +import plotly.graph_objects as go +from enum import Enum, auto + + +class AgentMode(Enum): + Default = auto() + + +if __name__ == "__main__": + scenario = Scenario() + + car = Agent4('car1') + scenario.add_agent(car) + # car = vanderpol_agent('car2', file_name=input_code_name) + # scenario.add_agent(car) + # scenario.set_sensor(FakeSensor2()) + # modify mode list input + scenario.set_init( + [ + [[1,1,1,0], [1.5,1.5,1,0]], + ], + [ + tuple([AgentMode.Default]), + ], + uncertain_param_list=[ + [[-0.5],[0.5]], + ] + ) + traces = scenario.verify(10, 0.01, reachability_method='MIXMONO_DISC') + fig = plt.figure(0) + fig = plot_reachtube_tree(traces.root, 'car1', 0, [1],fig=fig) + fig = plt.figure(1) + fig = plot_reachtube_tree(traces.root, 'car1', 0, [2],fig=fig) + fig = plt.figure(2) + fig = plot_reachtube_tree(traces.root, 'car1', 0, [3],fig=fig) + fig = plt.figure(3) + fig = plot_reachtube_tree(traces.root, 'car1', 0, [4],fig=fig) + plt.show() + # fig = go.Figure() + # fig = simulation_tree(traces, None, fig, 1, 2, + # 'lines', 'trace', print_dim_list=[1, 2]) + # fig.show() diff --git a/demo/uncertain_dynamics/uncertain_demo5.py b/demo/uncertain_dynamics/uncertain_demo5.py new file mode 100644 index 0000000000000000000000000000000000000000..56ebeaf354ceafa9c4195690303e4caf67b83382 --- /dev/null +++ b/demo/uncertain_dynamics/uncertain_demo5.py @@ -0,0 +1,49 @@ + +from uncertain_agents import Agent5 +from verse import Scenario +from verse.plotter.plotter2D import * +from verse.plotter.plotter2D_old import plot_reachtube_tree + +import matplotlib.pyplot as plt +import plotly.graph_objects as go +from enum import Enum, auto + + +class AgentMode(Enum): + Default = auto() + + +if __name__ == "__main__": + scenario = Scenario() + + car = Agent5('car1') + scenario.add_agent(car) + # car = vanderpol_agent('car2', file_name=input_code_name) + # scenario.add_agent(car) + # scenario.set_sensor(FakeSensor2()) + # modify mode list input + scenario.set_init( + [ + [[1,1,1,0], [1.5,1.5,1,0]], + ], + [ + tuple([AgentMode.Default]), + ], + uncertain_param_list=[ + [[-0.5],[0.5]], + ] + ) + traces = scenario.verify(10, 0.01, reachability_method='MIXMONO_CONT') + fig = plt.figure(0) + fig = plot_reachtube_tree(traces.root, 'car1', 0, [1],fig=fig) + fig = plt.figure(1) + fig = plot_reachtube_tree(traces.root, 'car1', 0, [2],fig=fig) + fig = plt.figure(2) + fig = plot_reachtube_tree(traces.root, 'car1', 0, [3],fig=fig) + fig = plt.figure(3) + fig = plot_reachtube_tree(traces.root, 'car1', 0, [4],fig=fig) + plt.show() + # fig = go.Figure() + # fig = simulation_tree(traces, None, fig, 1, 2, + # 'lines', 'trace', print_dim_list=[1, 2]) + # fig.show() diff --git a/demo/example_controller1.py b/demo/vehicle/controller/example_controller1.py similarity index 100% rename from demo/example_controller1.py rename to demo/vehicle/controller/example_controller1.py diff --git a/demo/example_controller4.py b/demo/vehicle/controller/example_controller10.py similarity index 78% rename from demo/example_controller4.py rename to demo/vehicle/controller/example_controller10.py index dccf72553e4cf2a4b0dee63e0915ba666a90dbb3..d041bf879c85c9bda5a88f5eaa49c741bea0c0d3 100644 --- a/demo/example_controller4.py +++ b/demo/vehicle/controller/example_controller10.py @@ -52,12 +52,21 @@ def controller(ego:State, others:List[State], lane_map): if lat_dist <= -2.5: output.vehicle_mode = VehicleMode.Normal output.lane_mode = lane_map.right_lane(ego.lane_mode) - def abs_diff(a, b): - if a < b: - r = b - a - else: - r = a - b - return r - assert all(abs_diff(ego.x, o.x) > 5 for o in others) + # def abs_diff(a, b): + # # if a < b: + # # r = b - a + # # else: + # # r = a - b + # return a - b + # def test(o): + # # if ego.lane_mode == o.lane_mode: + # # r = abs_diff(ego.x, o.x) > 6 + # # else: + # # r = True + # return abs_diff(o.x, ego.x) > 5.1 + # assert all(test(o) for o in others) + # assert ego.lane_mode != LaneMode.Lane0, "lane 0" + # assert ego.x < 40, "x" + # assert not (ego.lane_mode == LaneMode.Lane2 and ego.x > 30), "lane 2" return output diff --git a/demo/example_controller11.py b/demo/vehicle/controller/example_controller11.py similarity index 100% rename from demo/example_controller11.py rename to demo/vehicle/controller/example_controller11.py diff --git a/demo/vehicle/controller/example_controller12.py b/demo/vehicle/controller/example_controller12.py new file mode 100644 index 0000000000000000000000000000000000000000..3649289868d674fd5b059c1ab60777940e9c2a78 --- /dev/null +++ b/demo/vehicle/controller/example_controller12.py @@ -0,0 +1,47 @@ +from enum import Enum, auto +import copy +from typing import List + +class LaneObjectMode(Enum): + Vehicle = auto() + Ped = auto() # Pedestrians + Sign = auto() # Signs, stop signs, merge, yield etc. + Signal = auto() # Traffic lights + Obstacle = auto() # Static (to road/lane) obstacles + +class VehicleMode(Enum): + Normal = auto() + SwitchLeft = auto() + SwitchRight = auto() + Brake = auto() + Stop = auto() + +class LaneMode(Enum): + Lane0 = auto() + Lane1 = auto() + Lane2 = auto() + +class State: + x = 0.0 + y = 0.0 + theta = 0.0 + v = 0.0 + vehicle_mode: VehicleMode = VehicleMode.Normal + lane_mode: LaneMode = LaneMode.Lane0 + type_mode: LaneObjectMode = LaneObjectMode.Vehicle + + def __init__(self, x, y, theta, v, vehicle_mode: VehicleMode, lane_mode: LaneMode, type_mode: LaneObjectMode): + pass + +def controller(ego:State, others:List[State], lane_map): + output = copy.deepcopy(ego) + # Detect the stop sign + if ego.vehicle_mode == VehicleMode.Normal: + if any(other.x - ego.x < 5 and other.x - ego.x > -1 for other in others): + output.vehicle_mode = VehicleMode.Brake + if ego.vehicle_mode == VehicleMode.Brake: + if ego.v <= 0: + output.vehicle_mode = VehicleMode.Stop + output.v = 0 + return output + diff --git a/demo/example_controller2.py b/demo/vehicle/controller/example_controller2.py similarity index 100% rename from demo/example_controller2.py rename to demo/vehicle/controller/example_controller2.py diff --git a/demo/example_controller3.py b/demo/vehicle/controller/example_controller3.py similarity index 96% rename from demo/example_controller3.py rename to demo/vehicle/controller/example_controller3.py index 95209827ff4bd10619d39a3a734cc525d85c81a7..c07a80ba19becf7f3115b67c161549c4f8ced0ba 100644 --- a/demo/example_controller3.py +++ b/demo/vehicle/controller/example_controller3.py @@ -1,6 +1,6 @@ from enum import Enum, auto import copy -from dryvr_plus_plus.scene_verifier.map.lane_map import LaneMap +from verse.map import LaneMap class VehicleMode(Enum): Normal = auto() diff --git a/demo/vehicle/controller/example_controller4.py b/demo/vehicle/controller/example_controller4.py new file mode 100644 index 0000000000000000000000000000000000000000..7dfefc9f7011095e176219d6b4d6243e49e7567b --- /dev/null +++ b/demo/vehicle/controller/example_controller4.py @@ -0,0 +1,73 @@ +from enum import Enum, auto +import copy +from typing import List + +class LaneObjectMode(Enum): + Vehicle = auto() + Ped = auto() # Pedestrians + Sign = auto() # Signs, stop signs, merge, yield etc. + Signal = auto() # Traffic lights + Obstacle = auto() # Static (to road/lane) obstacles + +class VehicleMode(Enum): + Normal = auto() + SwitchLeft = auto() + SwitchRight = auto() + Brake = auto() + +class LaneMode(Enum): + Lane0 = auto() + Lane1 = auto() + Lane2 = auto() + +class State: + x = 0.0 + y = 0.0 + theta = 0.0 + v = 0.0 + vehicle_mode: VehicleMode = VehicleMode.Normal + lane_mode: LaneMode = LaneMode.Lane0 + type_mode: LaneObjectMode = LaneObjectMode.Vehicle + + def __init__(self, x, y, theta, v, vehicle_mode: VehicleMode, lane_mode: LaneMode, type_mode: LaneObjectMode): + pass + +def controller(ego:State, others:List[State], lane_map): + output = copy.deepcopy(ego) + test = lambda other: other.x-ego.x > 3 and other.x-ego.x < 5 and ego.lane_mode == other.lane_mode + if ego.vehicle_mode == VehicleMode.Normal: + if any((test(other) and other.type_mode==LaneObjectMode.Vehicle) for other in others): + if lane_map.has_left(ego.lane_mode): + output.vehicle_mode = VehicleMode.SwitchLeft + if any(test(other) for other in others): + if lane_map.has_right(ego.lane_mode): + output.vehicle_mode = VehicleMode.SwitchRight + lat_dist = lane_map.get_lateral_distance(ego.lane_mode, [ego.x, ego.y]) + if ego.vehicle_mode == VehicleMode.SwitchLeft: + if lat_dist >= (lane_map.get_lane_width(ego.lane_mode)-0.2): + output.vehicle_mode = VehicleMode.Normal + output.lane_mode = lane_map.left_lane(ego.lane_mode) + output.x = ego.x + if ego.vehicle_mode == VehicleMode.SwitchRight: + if lat_dist <= -(lane_map.get_lane_width(ego.lane_mode)-0.2): + output.vehicle_mode = VehicleMode.Normal + output.lane_mode = lane_map.right_lane(ego.lane_mode) + def abs_diff(a, b): + # if a < b: + # r = b - a + # else: + # r = a - b + return a - b + def test(o): + # if ego.lane_mode == o.lane_mode: + # r = abs_diff(ego.x, o.x) > 6 + # else: + # r = True + return abs_diff(o.x, ego.x) > 5.1 + # assert all(test(o) for o in others) + # assert ego.lane_mode != LaneMode.Lane0, "lane 0" + # assert ego.x < 40, "x" + # assert not (ego.lane_mode == LaneMode.Lane2 and ego.x > 30 and ego.x<50), "lane 2" + assert not (ego.x>30 and ego.x<50 and ego.y>-4 and ego.y<-2), "Danger Zone" + return output + diff --git a/demo/example_controller5.py b/demo/vehicle/controller/example_controller5.py similarity index 77% rename from demo/example_controller5.py rename to demo/vehicle/controller/example_controller5.py index 1e8f409efacacc066da76784e93bebc498b7b6d2..5459ad4e8e2d5066aa504a5abc04e99dd72d91c4 100644 --- a/demo/example_controller5.py +++ b/demo/vehicle/controller/example_controller5.py @@ -32,17 +32,23 @@ class State: def __init__(self, x, y, theta, v, vehicle_mode: VehicleMode, lane_mode: LaneMode, type_mode: LaneObjectMode): pass +def vehicle_front(ego, others, lane_map): + res = any((lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) - lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) > 3 \ + and lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) - lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) < 5 \ + and ego.lane_mode == other.lane_mode) for other in others) + return res + +def vehicle_close(ego, others): + res = any(ego.x-other.x<1.0 and ego.x-other.x>-1.0 and ego.y-other.y<1.0 and ego.y-other.y>-1.0 for other in others) + return res + def controller(ego:State, others:List[State], lane_map): output = copy.deepcopy(ego) if ego.vehicle_mode == VehicleMode.Normal: - if any((lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) - lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) > 3 \ - and lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) - lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) < 5 \ - and ego.lane_mode == other.lane_mode) for other in others): + if vehicle_front(ego, others, lane_map): if lane_map.has_left(ego.lane_mode): output.vehicle_mode = VehicleMode.SwitchLeft - if any((lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) - lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) > 3 \ - and lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) - lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) < 5 \ - and ego.lane_mode == other.lane_mode) for other in others): + if vehicle_front(ego, others, lane_map): if lane_map.has_right(ego.lane_mode): output.vehicle_mode = VehicleMode.SwitchRight if ego.vehicle_mode == VehicleMode.SwitchLeft: @@ -54,5 +60,7 @@ def controller(ego:State, others:List[State], lane_map): output.vehicle_mode = VehicleMode.Normal output.lane_mode = lane_map.right_lane(ego.lane_mode) + assert not vehicle_close(ego, others) + return output diff --git a/demo/example_controller6.py b/demo/vehicle/controller/example_controller6.py similarity index 100% rename from demo/example_controller6.py rename to demo/vehicle/controller/example_controller6.py diff --git a/demo/example_controller7.py b/demo/vehicle/controller/example_controller7.py similarity index 100% rename from demo/example_controller7.py rename to demo/vehicle/controller/example_controller7.py diff --git a/demo/example_controller8.py b/demo/vehicle/controller/example_controller8.py similarity index 80% rename from demo/example_controller8.py rename to demo/vehicle/controller/example_controller8.py index ae6ba309419ecb7721ac1a63c70e8f80254a2a57..5df27187761c7ea6b156daa676edacf6f93612e4 100644 --- a/demo/example_controller8.py +++ b/demo/vehicle/controller/example_controller8.py @@ -63,32 +63,32 @@ def controller(ego:State, others:List[State], lane_map): not car_right(ego, others, lane_map): output.vehicle_mode = VehicleMode.SwitchRight - # If really close just brake - if car_front(ego, others, lane_map, 3, -0.5): - output.vehicle_mode = VehicleMode.Stop - output.v = 0.1 + # # If really close just brake + # if car_front(ego, others, lane_map, 2, -0.5): + # output.vehicle_mode = VehicleMode.Stop + # output.v = 0.1 # If switched left enough, return to normal mode if ego.vehicle_mode == VehicleMode.SwitchLeft: - if lane_map.get_lateral_distance(ego.lane_mode, [ego.x, ego.y]) >= 2.5: + if lane_map.get_lateral_distance(ego.lane_mode, [ego.x, ego.y]) >= (lane_map.get_lane_width(ego.lane_mode)-0.2): output.vehicle_mode = VehicleMode.Normal output.lane_mode = lane_map.left_lane(ego.lane_mode) # If switched right enough,return to normal mode if ego.vehicle_mode == VehicleMode.SwitchRight: - if lane_map.get_lateral_distance(ego.lane_mode, [ego.x, ego.y]) <= -2.5: + if lane_map.get_lateral_distance(ego.lane_mode, [ego.x, ego.y]) <= -(lane_map.get_lane_width(ego.lane_mode)-0.2): output.vehicle_mode = VehicleMode.Normal output.lane_mode = lane_map.right_lane(ego.lane_mode) - if ego.vehicle_mode == VehicleMode.Brake: - if all((\ - (lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) -\ - lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) > 5 or \ - lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) -\ - lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) < -0.5) and\ - other.lane_mode==ego.lane_mode) for other in others): - output.vehicle_mode = VehicleMode.Normal - output.v = 1.0 + # if ego.vehicle_mode == VehicleMode.Brake: + # if all((\ + # (lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) -\ + # lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) > 5 or \ + # lane_map.get_longitudinal_position(other.lane_mode, [other.x,other.y]) -\ + # lane_map.get_longitudinal_position(ego.lane_mode, [ego.x,ego.y]) < -0.5) and\ + # other.lane_mode==ego.lane_mode) for other in others): + # output.vehicle_mode = VehicleMode.Normal + # output.v = 1.0 return output diff --git a/demo/example_controller9.py b/demo/vehicle/controller/example_controller9.py similarity index 100% rename from demo/example_controller9.py rename to demo/vehicle/controller/example_controller9.py diff --git a/demo/example_two_car_sign_lane_switch.py b/demo/vehicle/controller/example_two_car_sign_lane_switch.py similarity index 82% rename from demo/example_two_car_sign_lane_switch.py rename to demo/vehicle/controller/example_two_car_sign_lane_switch.py index 0f3c22edf31f406d799e43ca73ff05c356e2ecf7..6e6c6eae724195444dd04b147aaa39f3a9abe893 100644 --- a/demo/example_two_car_sign_lane_switch.py +++ b/demo/vehicle/controller/example_two_car_sign_lane_switch.py @@ -1,9 +1,4 @@ -from dryvr_plus_plus.example.example_sensor.fake_sensor import FakeSensor2 -from dryvr_plus_plus.example.example_map.simple_map2 import SimpleMap3 -from dryvr_plus_plus.scene_verifier.scenario.scenario import Scenario -from dryvr_plus_plus.example.example_agent.sign_agent import SignAgent -from dryvr_plus_plus.example.example_agent.car_agent import CarAgent -from dryvr_plus_plus.plotter.plotter2D import * +from verse.plotter2D import * from enum import Enum, auto import copy @@ -76,14 +71,11 @@ def controller(ego: State, other: State, sign: State, lane_map): return output -from dryvr_plus_plus.example.example_agent.car_agent import CarAgent -from dryvr_plus_plus.example.example_agent.sign_agent import SignAgent -from dryvr_plus_plus.scene_verifier.scenario.scenario import Scenario -from dryvr_plus_plus.example.example_map.simple_map2 import SimpleMap3 -from dryvr_plus_plus.plotter.plotter2D import plot_reachtube_tree, plot_simulation_tree -from dryvr_plus_plus.example.example_sensor.fake_sensor import FakeSensor2 - -import matplotlib.pyplot as plt +from verse.example.example_agent.car_agent import CarAgent +from verse.example.example_agent.sign_agent import SignAgent +from verse.scene_verifier.scenario.scenario import Scenario +from verse.map.example_map.simple_map2 import SimpleMap3 +from verse.sensor.example_sensor.fake_sensor import FakeSensor2 if __name__ == "__main__": import sys diff --git a/demo/demo1.py b/demo/vehicle/demo1.py similarity index 100% rename from demo/demo1.py rename to demo/vehicle/demo1.py diff --git a/demo/demo10.py b/demo/vehicle/demo10.py similarity index 100% rename from demo/demo10.py rename to demo/vehicle/demo10.py diff --git a/demo/demo11.py b/demo/vehicle/demo11.py similarity index 100% rename from demo/demo11.py rename to demo/vehicle/demo11.py diff --git a/demo/demo2.py b/demo/vehicle/demo2.py similarity index 91% rename from demo/demo2.py rename to demo/vehicle/demo2.py index 94cdddb28a545e8be6522a25439c8bb2e5ab9708..7924d83fac4023101dddede30de2ef2de8368525 100644 --- a/demo/demo2.py +++ b/demo/vehicle/demo2.py @@ -79,7 +79,11 @@ if __name__ == "__main__": # # # 2, 'lines', 'trace', print_dim_list=[1, 2]) # fig.show() fig = go.Figure() - traces = scenario.verify(30, 1) + # traces = scenario.verify(30, 0.2) + path = os.path.abspath(__file__) + path = path.replace('demo2.py', 'output.json') + # write_json(traces, path) + traces = read_json(path) fig = reachtube_anime(traces, tmp_map, fig, 1, - 2, 'lines', 'trace', print_dim_list=[1, 2]) + 2, 'lines', 'trace', print_dim_list=[1, 2], sample_rate=1, speed_rate=5) fig.show() diff --git a/demo/demo3.py b/demo/vehicle/demo3.py similarity index 100% rename from demo/demo3.py rename to demo/vehicle/demo3.py diff --git a/demo/demo4.py b/demo/vehicle/demo4.py similarity index 100% rename from demo/demo4.py rename to demo/vehicle/demo4.py diff --git a/demo/demo5.py b/demo/vehicle/demo5.py similarity index 100% rename from demo/demo5.py rename to demo/vehicle/demo5.py diff --git a/demo/demo6.py b/demo/vehicle/demo6.py similarity index 94% rename from demo/demo6.py rename to demo/vehicle/demo6.py index 9a6f8f60a2e38cf1601dd214e73cd46dd0a2c915..3a29001f7f4d5770849415bfb61ea9ef9298832b 100644 --- a/demo/demo6.py +++ b/demo/vehicle/demo6.py @@ -92,8 +92,8 @@ if __name__ == "__main__": (LaneObjectMode.Vehicle,), ] ) - traces = scenario.simulate(80, 0.05) - # traces = scenario.verify(80, 0.05) + # traces = scenario.simulate(80, 0.05) + traces = scenario.verify(80, 0.05) # fig = plt.figure(2) # fig = plot_map(tmp_map, 'g', fig) @@ -106,6 +106,6 @@ if __name__ == "__main__": # plt.show() fig = go.Figure() - fig = simulation_anime(traces, tmp_map, fig, 1, - 2, 'lines', 'trace', print_dim_list=[1, 2]) + fig = reachtube_anime(traces, tmp_map, fig, 1, + 2, 'lines', 'trace', print_dim_list=[1, 2], sample_rate=1) fig.show() diff --git a/demo/demo7.py b/demo/vehicle/demo7.py similarity index 100% rename from demo/demo7.py rename to demo/vehicle/demo7.py diff --git a/demo/demo8.py b/demo/vehicle/demo8.py similarity index 100% rename from demo/demo8.py rename to demo/vehicle/demo8.py diff --git a/demo/vehicle/demo_opendrive.py b/demo/vehicle/demo_opendrive.py new file mode 100644 index 0000000000000000000000000000000000000000..fe7d59d11453c54f5eb80ea8c0d8d0dfb7850179 --- /dev/null +++ b/demo/vehicle/demo_opendrive.py @@ -0,0 +1,63 @@ +from verse.agents.example_agent import CarAgent, NPCAgent +from verse.map import opendrive_map +from verse import Scenario +from enum import Enum, auto +from verse.plotter.plotter2D import * + +import plotly.graph_objects as go + +class LaneObjectMode(Enum): + Vehicle = auto() + Ped = auto() # Pedestrians + Sign = auto() # Signs, stop signs, merge, yield etc. + Signal = auto() # Traffic lights + Obstacle = auto() # Static (to road/lane) obstacles + +class VehicleMode(Enum): + Normal = auto() + SwitchLeft = auto() + SwitchRight = auto() + Brake = auto() + +class LaneMode(Enum): + Lane0 = auto() + Lane1 = auto() + Lane2 = auto() + +class State: + x = 0.0 + y = 0.0 + theta = 0.0 + v = 0.0 + vehicle_mode: VehicleMode = VehicleMode.Normal + lane_mode: LaneMode = LaneMode.Lane0 + type_mode: LaneObjectMode = LaneObjectMode.Vehicle + + def __init__(self, x, y, theta, v, vehicle_mode: VehicleMode, lane_mode: LaneMode, type_mode: LaneObjectMode): + pass + + +if __name__ == "__main__": + input_code_name = './demo/vehicle/controller/example_controller10.py' + scenario = Scenario() + scenario.add_agent(CarAgent('car1', file_name=input_code_name)) + scenario.add_agent(NPCAgent('car2')) + tmp_map = opendrive_map('./demo/vehicle/t1_triple.xodr') + + scenario.set_map(tmp_map) + scenario.set_init( + [ + [[-65, -57.5, 0, 1.0],[-65, -57.5, 0, 1.0]], + [[-65, -62.5, 0, 1.0],[-65, -62.5, 0, 1.0]], + ], + [ + (VehicleMode.Normal, LaneMode.Lane2, LaneObjectMode.Vehicle), + (VehicleMode.Normal, LaneMode.Lane1, LaneObjectMode.Vehicle), + ] + ) + traces = scenario.simulate(400, 0.1)# traces.dump('./output1.json') + fig = go.Figure() + fig = simulation_tree(traces, tmp_map, fig, 1, + 2, 'lines', 'trace', print_dim_list=[1, 2]) + fig.show() + diff --git a/demo/vehicle/demo_opendrive2.py b/demo/vehicle/demo_opendrive2.py new file mode 100644 index 0000000000000000000000000000000000000000..6234195c88b3c8fb7691e6860ff6cddedecd938a --- /dev/null +++ b/demo/vehicle/demo_opendrive2.py @@ -0,0 +1,70 @@ +from verse.agents.example_agent import CarAgent, NPCAgent +from verse.map import opendrive_map +from verse import Scenario +from enum import Enum, auto +from verse.plotter.plotter2D import * + +import plotly.graph_objects as go + +class LaneObjectMode(Enum): + Vehicle = auto() + Ped = auto() # Pedestrians + Sign = auto() # Signs, stop signs, merge, yield etc. + Signal = auto() # Traffic lights + Obstacle = auto() # Static (to road/lane) obstacles + +class VehicleMode(Enum): + Normal = auto() + SwitchLeft = auto() + SwitchRight = auto() + Brake = auto() + +class LaneMode(Enum): + Lane0 = auto() + Lane1 = auto() + Lane2 = auto() + +class State: + x = 0.0 + y = 0.0 + theta = 0.0 + v = 0.0 + vehicle_mode: VehicleMode = VehicleMode.Normal + lane_mode: LaneMode = LaneMode.Lane0 + type_mode: LaneObjectMode = LaneObjectMode.Vehicle + + def __init__(self, x, y, theta, v, vehicle_mode: VehicleMode, lane_mode: LaneMode, type_mode: LaneObjectMode): + pass + + +if __name__ == "__main__": + input_code_name = './demo/vehicle/controller/example_controller8.py' + scenario = Scenario() + scenario.add_agent(CarAgent('car1', file_name=input_code_name)) + scenario.add_agent(NPCAgent('car2')) + tmp_map = opendrive_map('./demo/vehicle/t1_triple.xodr') + + scenario.set_map(tmp_map) + scenario.set_init( + [ + [[-65, -57.5, 0, 1.0],[-65, -57.5, 0, 1.0]], + # [[-37, -63.0, 0, 0.5],[-37, -63.0, 0, 0.5]], + # [[18, -67.0, 0, 1.0],[18, -67.0, 0, 1.0]], + # [[32, -68.0, 0, 1.0],[32, -68.0, 0, 1.0]], + [[46, -69.0, 0, 0.5],[46, -69.0, 0, 0.5]], + ], + [ + (VehicleMode.Normal, LaneMode.Lane2, ), + (VehicleMode.Normal, LaneMode.Lane2, ), + ], + [ + (LaneObjectMode.Vehicle, ), + (LaneObjectMode.Vehicle, ), + ] + ) + traces = scenario.simulate(400, 0.1)# traces.dump('./output1.json') + fig = go.Figure() + fig = simulation_tree(traces, tmp_map, fig, 1, + 2, 'lines', 'trace', print_dim_list=[1, 2]) + fig.show() + diff --git a/demo/vehicle/noisy_sensor.py b/demo/vehicle/noisy_sensor.py new file mode 100644 index 0000000000000000000000000000000000000000..288e9c32d785ff0bfb8f1b6f92f9524337e92a99 --- /dev/null +++ b/demo/vehicle/noisy_sensor.py @@ -0,0 +1,27 @@ +from verse.sensor import BaseSensor +from typing import Tuple +import numpy as np + +class NoisyVehicleSensor(BaseSensor): + def __init__(self, noise_x = Tuple[float, float], noise_y = Tuple[float, float]): + self.noise_x = noise_x + self.noise_y = noise_y + + def sense(self, scenario, agent, state_dict, lane_map): + cont, disc, len_dict = super().sense(scenario, agent, state_dict, lane_map) + tmp = np.array(list(state_dict.values())[0][0]) + if tmp.ndim<2: + return cont, disc, len_dict + else: + # Apply noise to observed x + if 'others.x' in cont: + for x_range in cont['others.x']: + x_range[0] -= self.noise_x[0] + x_range[1] += self.noise_x[1] + + # Apply noise to observed y + if 'others.y' in cont: + for y_range in cont['others.y']: + y_range[0] -= self.noise_y[0] + y_range[1] += self.noise_y[1] + return cont, disc, len_dict diff --git a/demo/vehicle/t1_triple.xodr b/demo/vehicle/t1_triple.xodr new file mode 100644 index 0000000000000000000000000000000000000000..4ca40876bae12fe3f360e0e6d7024fa3c95e6d2b --- /dev/null +++ b/demo/vehicle/t1_triple.xodr @@ -0,0 +1,1945 @@ +<?xml version="1.0" encoding="UTF-8"?> +<OpenDRIVE> + <header revMajor="1" revMinor="4" name="" version="1" date="2021-02-28T15:54:19" north="1.3145183000890950e+2" south="-1.0177686623404890e+2" east="2.1839986231506288e+2" west="-1.1951063149032376e+2" vendor="MathWorks"> + <userData> + <vectorScene program="RoadRunner" version="R2020b Update 3 (1.1.3.f626d0e)"/> + </userData> + </header> + <road name="Road 0" length="3.4249856788760491e+2" id="0" junction="-1"> + <link> + <predecessor elementType="road" elementId="4" contactPoint="end"/> + <successor elementType="road" elementId="2" contactPoint="start"/> + </link> + <type s="0.0000000000000000e+0" type="town"> + <speed max="40" unit="mph"/> + </type> + <planView> + <geometry s="0.0000000000000000e+0" x="1.9177658843994141e+2" y="5.3821434020996094e+1" hdg="1.8211200609024278e+0" length="3.2953165642949220e+0"> + <line/> + </geometry> + <geometry s="3.2953165642949220e+0" x="1.9096028047573728e+2" y="5.7014043074183377e+1" hdg="1.8211200609024276e+0" length="2.4751554139807812e+1"> + <arc curvature="9.7460630937485377e-3"/> + </geometry> + <geometry s="2.8046870704102734e+1" x="1.8200981412546355e+2" y="8.0026288677376016e+1" hdg="2.0623502692173266e+0" length="2.3710590660488251e+1"> + <arc curvature="3.1427465780575065e-2"/> + </geometry> + <geometry s="5.1757461364590981e+1" x="1.6439141581635536e+2" y="9.5067794839827812e+1" hdg="2.8075140458370429e+0" length="6.3438611961428286e+0"> + <line/> + </geometry> + <geometry s="5.8101322560733813e+1" x="1.5839828872680664e+2" y="9.7147939682006836e+1" hdg="2.8075140458370438e+0" length="3.7269561643468577e+1"> + <arc curvature="8.1671484728072369e-3"/> + </geometry> + <geometry s="9.5370884204202397e+1" x="1.2188485228368478e+2" y="1.0386342603726271e+2" hdg="3.1119000892956938e+0" length="1.6609054003061664e+2"> + <line/> + </geometry> + <geometry s="2.6146142423481905e+2" x="-4.4132476398750597e+1" y="1.0879435544358009e+2" hdg="3.1119000892956938e+0" length="8.1037143652785858e+1"> + <arc curvature="1.9600156360714781e-2"/> + </geometry> + </planView> + <elevationProfile> + <elevation s="0.0000000000000000e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="3.1115455196232404e+2" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="3.1978544803767602e+2" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="3.1978780844263861e+2" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="3.3213219155736147e+2" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + </elevationProfile> + <lateralProfile> + <superelevation s="0.0000000000000000e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + </lateralProfile> + <lanes> + <laneOffset s="0.0000000000000000e+0" a="-2.6349999999999998e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <laneSection s="0.0000000000000000e+0" singleSide="false"> + <left> + <lane id="7" type="sidewalk" level="false"> + <link> + <predecessor id="7"/> + <successor id="7"/> + </link> + <width sOffset="0.0000000000000000e+0" a="1.9999999999999982e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{32ef08fe-8240-4183-ab53-b470cd256661}" travelDir="undirected"> + <predecessor id="7" virtual="false"/> + <successor id="7" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="6" type="shoulder" level="false"> + <link> + <predecessor id="6"/> + <successor id="6"/> + </link> + <width sOffset="0.0000000000000000e+0" a="6.3499999999999979e-1" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="curb" material="standard" width="1.5239999999999998e-1" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{d83f469c-3b72-4514-a455-45d7666247f3}" travelDir="undirected"> + <predecessor id="6" virtual="false"/> + <successor id="6" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="5" type="driving" level="false"> + <link> + <predecessor id="5"/> + <successor id="5"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="solid" material="standard" color="white" width="1.2500000000000000e-1" laneChange="none"> + <type name="solid"> + <line length="3.4249856788760491e+2" space="0.0000000000000000e+0" width="1.2500000000000000e-1" sOffset="0.0000000000000000e+0" tOffset="0.0000000000000000e+0"/> + </type> + </roadMark> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{c4de8f51-605f-4cd8-993b-bc2d9f5f71ec}" travelDir="backward"> + <predecessor id="5" virtual="false"/> + <successor id="5" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="4" type="driving" level="false"> + <link> + <predecessor id="4"/> + <successor id="4"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="both"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{6078d205-0496-4b73-80a8-05c5fda75721}" travelDir="backward"> + <predecessor id="4" virtual="false"/> + <successor id="4" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="3" type="driving" level="false"> + <link> + <predecessor id="3"/> + <successor id="3"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="both"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{ef279028-f586-424b-840e-de3724ac2f88}" travelDir="backward"> + <predecessor id="3" virtual="false"/> + <successor id="3" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="2" type="shoulder" level="false"> + <link> + <predecessor id="2"/> + <successor id="2"/> + </link> + <width sOffset="0.0000000000000000e+0" a="6.3499999999999979e-1" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="solid" material="standard" color="white" width="1.2500000000000000e-1" laneChange="none"> + <type name="solid"> + <line length="3.4249856788760491e+2" space="0.0000000000000000e+0" width="1.2500000000000000e-1" sOffset="0.0000000000000000e+0" tOffset="0.0000000000000000e+0"/> + </type> + </roadMark> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{1d1d869f-26cd-43dd-aa6a-c8c8cb9b64bb}" travelDir="undirected"> + <predecessor id="2" virtual="false"/> + <successor id="2" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="1" type="sidewalk" level="false"> + <link> + <predecessor id="1"/> + <successor id="1"/> + </link> + <width sOffset="0.0000000000000000e+0" a="2.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="curb" material="standard" width="1.5239999999999998e-1" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{59a8be13-4f72-4a2a-be20-9f40cfaad93a}" travelDir="undirected"> + <predecessor id="1" virtual="false"/> + <successor id="1" virtual="false"/> + </vectorLane> + </userData> + </lane> + </left> + <center> + <lane id="0" type="none" level="false"> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="none"/> + <userData/> + </lane> + </center> + <userData> + <vectorLaneSection> + <carriageway rightBoundary="0" leftBoundary="0"/> + <carriageway rightBoundary="2" leftBoundary="6"/> + </vectorLaneSection> + </userData> + </laneSection> + </lanes> + <objects> + <object id="6" name="LadderCrosswalk" s="1.4498334279838241e+2" t="3.6146268796774876e+0" zOffset="5.2490234375000000e-3" hdg="-1.4669611454010010e+0" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="-" type="crosswalk" width="2.9365438135888224e+0" length="1.1034139536846933e+1"> + <outline> + <cornerLocal u="-5.4168732725066917e+0" v="1.4682754392491830e+0" z="0.0000000000000000e+0"/> + <cornerLocal u="5.0100355260553897e-2" v="1.2489992938209298e+0" z="7.3577880859374986e-2"/> + <cornerLocal u="5.5170739830277853e+0" v="1.0297231483926623e+0" z="1.4715576171874997e-1"/> + <cornerLocal u="5.4168814460863217e+0" v="-1.4682683959599530e+0" z="1.4715576171874997e-1"/> + <cornerLocal u="-5.0092181680909675e-2" v="-1.2489922505316713e+0" z="7.3577880859374986e-2"/> + <cornerLocal u="-5.5170658094481553e+0" v="-1.0297161051034180e+0" z="0.0000000000000000e+0"/> + <cornerLocal u="-5.4168732725066917e+0" v="1.4682754392491830e+0" z="0.0000000000000000e+0"/> + </outline> + </object> + <object id="21" name="GuardRail" s="1.6799888240750585e+2" t="3.5345457622535690e+1" zOffset="4.8260000348091125e-1" hdg="5.5017177946865559e-3" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="-" type="barrier" width="3.6366223768158775e+1" length="2.5377732861519522e+2"> + <outline> + <cornerLocal u="-1.2688866600941438e+2" v="1.8183109040997103e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2599539814510769e+2" v="1.5011270070463141e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2563898697638692e+2" v="1.3781323925956535e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2526409856841707e+2" v="1.2556975573363658e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2487079410089433e+2" v="1.1338418310235397e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2445916297528635e+2" v="1.0125929125076745e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2402929875877714e+2" v="8.9197836267802515e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2358129916308420e+2" v="7.7202559822655985e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2311526602224760e+2" v="6.5276188541591722e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2263130526948265e+2" v="5.3421433388155890e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2212952691310014e+2" v="4.1640989046951944e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2161004501150063e+2" v="2.9937533311116766e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2107297764724794e+2" v="1.8313726473636081e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2051844690022801e+2" v="6.7722107226374817e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1994657881989926e+2" v="-4.6843904592012109e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1935750339664028e+2" v="-1.6053472890990861e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1875135453220230e+2" v="-2.7332452285583315e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1812833017250853e+2" v="-3.8517707253556352e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1779019560923493e+2" v="-4.4171111279935076e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1742617322625071e+2" v="-4.9659926137679946e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1703699179870881e+2" v="-5.4973314878491379e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1662349532286362e+2" v="-6.0099754648127259e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1618658052484787e+2" v="-6.5028128030169654e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1572719491676861e+2" v="-6.9747747143435959e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1524633474189238e+2" v="-7.4248376820174400e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1474504281414903e+2" v="-7.8520256802485733e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1422440625664098e+2" v="-8.2554122908836263e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1368555414406197e+2" v="-8.6341227124757864e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1312965505413675e+2" v="-8.9873356574165513e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1255791453339404e+2" v="-9.3142851330152325e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1197157248276650e+2" v="-9.6142621026633890e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1137190046868866e+2" v="-9.8866160234819489e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1076019902563971e+2" v="-1.0130756234731223e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1013766616563959e+2" v="-1.0346194559576901e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0409617491263927e+2" v="-1.2280702745125922e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0219228334924713e+2" v="-1.2870428971717402e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0027760792092971e+2" v="-1.3423804021604525e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.8352752128945781e+1" v="-1.3940656149109230e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.6418412589428840e+1" v="-1.4420798302540646e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.4475289350734016e+1" v="-1.4864056715753804e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.2524085640086355e+1" v="-1.5270270971036794e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.0565507609079333e+1" v="-1.5639294057166751e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.8600264078114293e+1" v="-1.5970992422613961e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.6629066279874536e+1" v="-1.6265246023875051e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.4652627601926298e+1" v="-1.6521948368917236e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.2671663328539324e+1" v="-1.6741006555718627e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.0686890381822053e+1" v="-1.6922341305889802e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.8699027062263212e+1" v="-1.7065886993365041e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.6708792788774758e+1" v="-1.7171591668152999e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.4716907838882705e+1" v="-1.7239417075124052e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.2723995044211733e+1" v="-1.7269339317182485e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.6498124417123194e+1" v="-1.7303592535172427e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.0272158562434328e+1" v="-1.7337846386941735e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.4046192707745448e+1" v="-1.7372100238711027e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.7820226853056596e+1" v="-1.7406354090480320e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.1594260998367687e+1" v="-1.7440607942249628e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.5368295143678836e+1" v="-1.7474861794018921e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.9142329288989927e+1" v="-1.7509115645788214e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.2916363434301090e+1" v="-1.7543369497557507e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.6690397579612210e+1" v="-1.7577623349326814e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0464431724923308e+1" v="-1.7611877201096107e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.2384658702344780e+0" v="-1.7646131052865400e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.9874999844544519e+0" v="-1.7680384904634707e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.2134658391433391e+0" v="-1.7714638756403986e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4439431693832233e+1" v="-1.7748892608173293e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.0665397548521085e+1" v="-1.7783146459942586e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.6891363403209958e+1" v="-1.7817400311711879e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.5200389777986203e+1" v="-1.7863114689919470e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.3509416152762455e+1" v="-1.7908829068127062e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.1818442527538743e+1" v="-1.7954543446334640e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.0127468902315037e+1" v="-1.8000257824542217e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.8436495277091240e+1" v="-1.8045972202749809e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.6745521651867534e+1" v="-1.8091686580957415e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.5054548026643829e+1" v="-1.8137400959164992e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.3363505987686324e+1" v="-1.8183115017676059e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.4378516918587152e+1" v="-1.8173261262129031e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.5392570468866438e+1" v="-1.8132526844995084e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.6404914712066869e+1" v="-1.8060950469572489e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.7414611749494696e+1" v="-1.7958598445316667e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.8420726208040179e+1" v="-1.7825565590106322e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.9422326033458504e+1" v="-1.7661975144231207e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0041848335381530e+2" v="-1.7467978656223622e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0140827533905768e+2" v="-1.7243755842465305e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0239078505591476e+2" v="-1.6989514420700047e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0336510231733529e+2" v="-1.6705489917606187e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0433032452567585e+2" v="-1.6391945450606826e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0528555750885798e+2" v="-1.6049171484120791e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0622991634872042e+2" v="-1.5677485560479070e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0716252620079801e+2" v="-1.5277232005757085e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0808252310476888e+2" v="-1.4848781610794290e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0898905478481855e+2" v="-1.4392531287697437e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0988128143917969e+2" v="-1.3908903702145025e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1075837651811585e+2" v="-1.3398346881834357e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1161952748962875e+2" v="-1.2861333801433034e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1246393659217983e+2" v="-1.2298361944420094e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1329082157372832e+2" v="-1.1709952842222265e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1409941641640178e+2" v="-1.1096651591072643e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1488897204612694e+2" v="-1.0459026347039057e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1565875702656490e+2" v="-9.7976677996898616e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1640805823670588e+2" v="-9.1131886248853675e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1713618153149736e+2" v="-8.4062229172009637e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1784245238489326e+2" v="-7.6774256025083645e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1852621651472781e+2" v="-6.9274718312589272e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1918684048883611e+2" v="-6.1570563530310238e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1982371231185905e+2" v="-5.3668928729212837e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2043624199218979e+2" v="-4.5577133903751275e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2102397109393718e+2" v="-3.7301097563783543e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2141714524613286e+2" v="-3.1450695164455595e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2179796680341862e+2" v="-2.5516865977729282e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2216615648112030e+2" v="-1.9503840882987475e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2252154964814126e+2" v="-1.3414308524088483e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2286398739517375e+2" v="-7.2509917540911317e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2319331660575291e+2" v="-1.0166464177683565e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2350939002472101e+2" v="5.2859398806319291e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2381225116664004e+2" v="1.1657891668860429e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2381245649046323e+2" v="1.1662274757213993e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2422202436187906e+2" v="2.0884054778422154e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2460327869101340e+2" v="3.0219717570342368e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2495612802818009e+2" v="3.9666400619905744e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2528024964314305e+2" v="4.9215463609759382e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2557534708119964e+2" v="5.8858172581725796e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2584115043433013e+2" v="6.8585707925237642e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2607741658806644e+2" v="7.8389172444104034e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2628394856181279e+2" v="8.8260581183268414e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2643422875199361e+2" v="9.6593562739939216e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2656331527291321e+2" v="1.0496300708200366e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2667110574282565e+2" v="1.1336253403551886e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2675753063438790e+2" v="1.2178672571158387e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2682253420154872e+2" v="1.3023014831197955e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2686607451550572e+2" v="1.3868735563409672e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2688812349175072e+2" v="1.4715289258386477e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2688866391647299e+2" v="1.5562654008352077e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + </outline> + </object> + <object id="24" name="GuardRail" s="1.6831251090197352e+2" t="2.2566207232865580e+1" zOffset="4.8260000348091125e-1" hdg="9.3110408633947372e-3" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="-" type="barrier" width="5.2055063055448400e+1" length="2.9308985216650694e+2"> + <outline> + <cornerLocal u="-1.4654492399084910e+2" v="2.6027529523663276e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4566374893806477e+2" v="2.2852324397523923e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4522808233946901e+2" v="2.1327165502291002e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4476950004862300e+2" v="1.9808845010294235e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4428807919254987e+2" v="1.8297610814969858e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4378392920221040e+2" v="1.6793806432405219e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4325716467509733e+2" v="1.5297773689864030e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4270790534917589e+2" v="1.3809852648051603e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4213627607566656e+2" v="1.2330381523815930e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4154240679066518e+2" v="1.0859696613268511e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4092643248560756e+2" v="9.3981322153411782e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4028849317658469e+2" v="7.9460205557972756e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3962873387251594e+2" v="6.5036917117139978e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3894730454218723e+2" v="5.0714735364530839e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3824436008016212e+2" v="3.6496915851369778e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3752006027157279e+2" v="2.2386690406475651e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3677456975579958e+2" v="8.3872664016386977e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3600803583605705e+2" v="-5.4985687338889022e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3560740253089716e+2" v="-1.2438053266175615e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3519069656843212e+2" v="-1.9282762304232790e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3475816612598237e+2" v="-2.6028588373155088e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3431004573629679e+2" v="-3.2671873656170902e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3384657838557234e+2" v="-3.9209015936859686e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3336801538165284e+2" v="-4.5636470553166646e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3287461621776163e+2" v="-5.1950752319438323e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3236664843179500e+2" v="-5.8148437416210044e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3184438746125443e+2" v="-6.4226165246718381e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3130811649389480e+2" v="-7.0180640259130342e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3075812631417006e+2" v="-7.6008633733505633e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3019471514556031e+2" v="-8.1706985532518104e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2961818848886475e+2" v="-8.7272605814990953e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2902885895654859e+2" v="-9.2702476711313295e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2842704610323392e+2" v="-9.7993653959833154e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2781307625242636e+2" v="-1.0314326850333629e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2718728231957112e+2" v="-1.0814852804474739e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2655000363153508e+2" v="-1.1300671856120914e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2590158574261207e+2" v="-1.1771520577571721e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2524238024715135e+2" v="-1.2227143658551682e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2457274458891143e+2" v="-1.2667294044648145e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2389304186724164e+2" v="-1.3091733071272628e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2320364064019725e+2" v="-1.3500230593072942e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2250491472469486e+2" v="-1.3892565108725890e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2179724299381590e+2" v="-1.4268523881042796e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2108100917136878e+2" v="-1.4627903052322992e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2035660162382061e+2" v="-1.4970507754892296e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1962441314971193e+2" v="-1.5296152216767013e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1888484076666754e+2" v="-1.5604659862385844e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1813828549612012e+2" v="-1.5895863408355169e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1738515214213575e+2" v="-1.6169604955461608e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1662580396140658e+2" v="-1.6425750745222444e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1059162074530846e+2" v="-1.8383292847152518e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0945855957457479e+2" v="-1.8744920464407997e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0832213945743825e+2" v="-1.9095744878952672e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0718243374129531e+2" v="-1.9435743898163452e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0603954554495508e+2" v="-1.9764886759455365e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0489357827517264e+2" v="-2.0083143682491738e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0374463561729272e+2" v="-2.0390485871878738e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0259282152586883e+2" v="-2.0686885519770826e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0143824021525700e+2" v="-2.0972315808386625e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0028099615018732e+2" v="-2.1246750912435402e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.9121194036311550e+1" v="-2.1510166001453712e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.7958938810729734e+1" v="-2.1762537242052005e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.6794335632495859e+1" v="-2.2003841800071072e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.5627489873102832e+1" v="-2.2234057842647971e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.4458507106948900e+1" v="-2.2453164540191537e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.3287493101785429e+1" v="-2.2661142068266912e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.2114553809147111e+1" v="-2.2857971609389196e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.0939795354765664e+1" v="-2.3043635354726263e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.9763324028967759e+1" v="-2.3218116505709716e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.8585246277057934e+1" v="-2.3381399275555097e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.7405668689687815e+1" v="-2.3533468890690145e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.6224697993211691e+1" v="-2.3674311592091470e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.5042441040030326e+1" v="-2.3803914636529399e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.3859004798922939e+1" v="-2.3922266297721123e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.2674496345368823e+1" v="-2.4029355867391487e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.1489022851859573e+1" v="-2.4125173656241955e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.0302691578201888e+1" v="-2.4209710994827390e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.9115609861813311e+1" v="-2.4282960234340138e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.7927885108010116e+1" v="-2.4344914747302468e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.6739624780289688e+1" v="-2.4395568928165901e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.5550936390607205e+1" v="-2.4434918193818547e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.4361927489579188e+1" v="-2.4462958984001062e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.3172674578897386e+1" v="-2.4479689063017418e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.6946915995877760e+1" v="-2.4537659020623607e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.0721125921812423e+1" v="-2.4595629283467488e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.4495335847747050e+1" v="-2.4653599546311412e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.8269545773681692e+1" v="-2.4711569809155293e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.2043755699616305e+1" v="-2.4769540071999174e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.5817965625550947e+1" v="-2.4827510334843069e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.9592175551485532e+1" v="-2.4885480597686950e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.3366385477420216e+1" v="-2.4943450860530831e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.7140595403354837e+1" v="-2.5001421123374755e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0914805329289443e+1" v="-2.5059391386218635e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.6890152552241133e+0" v="-2.5117361649062531e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.5367748188413088e+0" v="-2.5175331911906397e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.7625648929066884e+0" v="-2.5233302174750293e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3988354966972075e+1" v="-2.5291272437594174e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.0214145041037430e+1" v="-2.5349242700438054e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.6439935115102795e+1" v="-2.5407212963281992e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.4748726897227726e+1" v="-2.5484578701251735e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.3057518679352654e+1" v="-2.5561944439221520e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.1366310461477624e+1" v="-2.5639310177191277e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.9675102243602595e+1" v="-2.5716675915161062e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.7983894025727494e+1" v="-2.5794041653130819e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.6292685807852450e+1" v="-2.5871407391100590e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.4601477589977421e+1" v="-2.5948773129070375e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.2910241294506079e+1" v="-2.6026138615152078e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.3726185545070848e+1" v="-2.6027532570696692e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.4542045895821246e+1" v="-2.6016509132042145e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.5357644000372431e+1" v="-2.5993070940732395e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.6172790964173601e+1" v="-2.5957223425267102e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.6987297990320002e+1" v="-2.5908974888320856e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.7800976430123370e+1" v="-2.5848336504779766e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.8613637826805046e+1" v="-2.5775322319153048e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.9425093959144604e+1" v="-2.5689949242320480e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0023515688507393e+2" v="-2.5592237047615413e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0104363898520677e+2" v="-2.5482208366245160e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0185035300629329e+2" v="-2.5359888682049302e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0265511210458985e+2" v="-2.5225306325597444e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0345772988913438e+2" v="-2.5078492467627456e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0425802046491644e+2" v="-2.4919481111825959e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0505579847593219e+2" v="-2.4748309086952943e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0585087914811520e+2" v="-2.4565016038311541e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0664307833213223e+2" v="-2.4369644418565755e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0743221254603392e+2" v="-2.4162239477908273e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0821809901775134e+2" v="-2.3942849253579666e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0900055572742784e+2" v="-2.3711524558742667e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0977940144957728e+2" v="-2.3468318970713128e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1055445579505738e+2" v="-2.3213288818551078e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1132553925284978e+2" v="-2.2946493170014250e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1209247323163709e+2" v="-2.2667993817877360e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1285508010116635e+2" v="-2.2377855265620056e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1361318323339037e+2" v="-2.2076144712487476e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1436660704337612e+2" v="-2.1762932037926078e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1511517702997278e+2" v="-2.1438289785398709e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1585871981622770e+2" v="-2.1102293145582848e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1659706318954267e+2" v="-2.0755019938955542e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1733003614155996e+2" v="-2.0396550597769448e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1805746890776985e+2" v="-2.0026968147423830e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1877919300682998e+2" v="-1.9646358187234782e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1949504127958744e+2" v="-1.9254808870609764e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2020484792779450e+2" v="-1.8852410884630189e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2090844855250941e+2" v="-1.8439257429047260e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2160568019217303e+2" v="-1.8015444194696045e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2229638136035251e+2" v="-1.7581069341332210e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2298039208314319e+2" v="-1.7136233474897381e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2365755393622010e+2" v="-1.6681039624217632e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2432771008153142e+2" v="-1.6215593217140821e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2499070530362329e+2" v="-1.5740002056118314e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2564638604558945e+2" v="-1.5254376293237073e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2629460044463698e+2" v="-1.4758828404706847e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2693519836725909e+2" v="-1.4253473164809748e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2756803144400789e+2" v="-1.3738427619316965e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2819295310385829e+2" v="-1.3213811058380074e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2880981860815515e+2" v="-1.2679744988901959e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2941848508413690e+2" v="-1.2136353106394367e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3001881155802616e+2" v="-1.1583761266328750e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3061065898768049e+2" v="-1.1022097454986962e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3119389029479640e+2" v="-1.0451491759818168e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3176837039665833e+2" v="-9.8720763393088475e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3233396623742493e+2" v="-9.2839853923738502e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3289054681894629e+2" v="-8.6873551272744010e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3343798323110468e+2" v="-8.0823237300706126e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3397614868167159e+2" v="-7.4690313326161260e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3450491852567387e+2" v="-6.8476199801022517e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3502417029426320e+2" v="-6.2182335981586334e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3553378372308111e+2" v="-5.5810179595182774e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3603364078011330e+2" v="-4.9361206502554467e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3652362569302747e+2" v="-4.2836910356028000e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3700362497598726e+2" v="-3.6238802253567997e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3747345792291037e+2" v="-2.9569416737888901e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3810947131816212e+2" v="-2.0183107637341919e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3872542832153616e+2" v="-1.0665436476493397e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3932112304911192e+2" v="-1.0196526057831079e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3989628914394834e+2" v="8.7499309913646073e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4045066942820841e+2" v="1.8638945976132959e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4098401601815263e+2" v="2.8642970607554901e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4149609043497694e+2" v="3.8757531719635381e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4198685005454769e+2" v="4.8982042296582620e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4198758270387580e+2" v="4.8997756882421726e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4232519356440721e+2" v="5.6372231936074684e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4265148820718869e+2" v="6.3794072283813819e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4296652259878272e+2" v="7.1264404722830363e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4327022469928045e+2" v="7.8781520988622873e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4356252506016386e+2" v="8.6343702118486618e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4384335684018674e+2" v="9.3949218844589240e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4411265582065943e+2" v="1.0159633198941378e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4437036042013401e+2" v="1.0928329286345843e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4461641170848617e+2" v="1.1700834366511316e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4485075342039104e+2" v="1.2476971788262460e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4507333196818973e+2" v="1.3256564069805194e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4528409645414303e+2" v="1.4039432939311524e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4548299868207056e+2" v="1.4825399375685535e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4566999316837209e+2" v="1.5614283649501473e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4584503715242809e+2" v="1.6405905364101898e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4600805006251400e+2" v="1.7199875339908402e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4625486126092025e+2" v="1.8539179828900046e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4646757589072584e+2" v="1.9884315935705146e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4654492382633362e+2" v="2.0469433981441654e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + </outline> + </object> + </objects> + </road> + <road name="Road 1" length="3.6039034290404310e+1" id="1" junction="-1"> + <link> + <predecessor elementType="road" elementId="3" contactPoint="end"/> + <successor elementType="road" elementId="4" contactPoint="start"/> + </link> + <type s="0.0000000000000000e+0" type="town"> + <speed max="40" unit="mph"/> + </type> + <planView> + <geometry s="0.0000000000000000e+0" x="1.2586999511718750e+2" y="5.6399998664856135e+0" hdg="-1.4185892317494497e-1" length="4.9394069117871441e-2"> + <line/> + </geometry> + <geometry s="4.9394069117871441e-2" x="1.2591889301722743e+2" y="5.6330163547826215e+0" hdg="-1.4185892317494253e-1" length="3.5741648699360027e+1"> + <arc curvature="5.8675181255038022e-3"/> + </geometry> + <geometry s="3.5791042768477901e+1" x="1.6157066112440450e+2" y="4.3132437648176039e+0" hdg="6.7855848602420554e-2" length="2.4799152192640861e-1"> + <line/> + </geometry> + </planView> + <elevationProfile> + <elevation s="0.0000000000000000e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="6.6677527511453150e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="1.7352247248854688e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="1.7359356652928103e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="3.0700643347071907e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + </elevationProfile> + <lateralProfile> + <superelevation s="0.0000000000000000e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + </lateralProfile> + <lanes> + <laneOffset s="0.0000000000000000e+0" a="-2.6349999999999998e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <laneSection s="0.0000000000000000e+0" singleSide="false"> + <left> + <lane id="7" type="sidewalk" level="false"> + <link> + <predecessor id="7"/> + <successor id="7"/> + </link> + <width sOffset="0.0000000000000000e+0" a="1.9999999999999982e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{329aaec8-44f8-4890-abf0-392a56a41fc3}" travelDir="undirected"> + <predecessor id="7" virtual="false"/> + <successor id="7" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="6" type="shoulder" level="false"> + <link> + <predecessor id="6"/> + <successor id="6"/> + </link> + <width sOffset="0.0000000000000000e+0" a="6.3499999999999979e-1" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="curb" material="standard" width="1.5239999999999998e-1" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{964a4952-8a73-4f3f-8cab-6dff0fc5faef}" travelDir="undirected"> + <predecessor id="6" virtual="false"/> + <successor id="6" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="5" type="driving" level="false"> + <link> + <predecessor id="5"/> + <successor id="5"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="solid" material="standard" color="white" width="1.2500000000000000e-1" laneChange="none"> + <type name="solid"> + <line length="3.6039034290404310e+1" space="0.0000000000000000e+0" width="1.2500000000000000e-1" sOffset="0.0000000000000000e+0" tOffset="0.0000000000000000e+0"/> + </type> + </roadMark> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{732fbea8-8d67-4ca0-a26d-aa8d081cf946}" travelDir="backward"> + <predecessor id="5" virtual="false"/> + <successor id="5" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="4" type="driving" level="false"> + <link> + <predecessor id="4"/> + <successor id="4"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="both"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{fc443dbc-5b70-43ed-9280-7336725cf303}" travelDir="backward"> + <predecessor id="4" virtual="false"/> + <successor id="4" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="3" type="driving" level="false"> + <link> + <predecessor id="3"/> + <successor id="3"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="both"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{77f3c5c2-7416-435a-a2ea-754747f09b4a}" travelDir="backward"> + <predecessor id="3" virtual="false"/> + <successor id="3" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="2" type="shoulder" level="false"> + <link> + <predecessor id="2"/> + <successor id="2"/> + </link> + <width sOffset="0.0000000000000000e+0" a="6.3499999999999979e-1" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="solid" material="standard" color="white" width="1.2500000000000000e-1" laneChange="none"> + <type name="solid"> + <line length="3.6039034290404310e+1" space="0.0000000000000000e+0" width="1.2500000000000000e-1" sOffset="0.0000000000000000e+0" tOffset="0.0000000000000000e+0"/> + </type> + </roadMark> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{74dd203c-412c-48bf-b030-1fc6891f81b6}" travelDir="undirected"> + <predecessor id="2" virtual="false"/> + <successor id="2" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="1" type="sidewalk" level="false"> + <link> + <predecessor id="1"/> + <successor id="1"/> + </link> + <width sOffset="0.0000000000000000e+0" a="2.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="curb" material="standard" width="1.5239999999999998e-1" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{a78843e5-64fb-4221-8990-053af352ec24}" travelDir="undirected"> + <predecessor id="1" virtual="false"/> + <successor id="1" virtual="false"/> + </vectorLane> + </userData> + </lane> + </left> + <center> + <lane id="0" type="none" level="false"> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="none"/> + <userData/> + </lane> + </center> + <userData> + <vectorLaneSection> + <carriageway rightBoundary="0" leftBoundary="0"/> + <carriageway rightBoundary="2" leftBoundary="6"/> + </vectorLaneSection> + </userData> + </laneSection> + </lanes> + <objects> + <object id="16" name="GuardRail" s="1.7744184298310774e+1" t="-2.0537832487118814e+0" zOffset="4.8260000348091125e-1" hdg="3.1334767341613770e+0" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="+" type="barrier" width="1.0905155049569928e+0" length="3.5964361817364257e+1"> + <outline> + <cornerLocal u="1.7983583311262549e+1" v="-2.5095247502587448e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.7934609170139396e+1" v="-2.4625040378831464e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.6261576555682637e+1" v="-9.3827907668782018e-2" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4587336988245767e+1" v="4.2329009831082232e-2" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2911854481921921e+1" v="1.6222565847630932e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1235248385278993e+1" v="2.6585295187889812e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.8813013998773158e+0" v="3.3762078798205764e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.5267950039285836e+0" v="3.9877830678211268e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.1718509450613794e+0" v="4.4931953858608153e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.8165524298346440e+0" v="4.8924137967765269e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.4609826865744537e+0" v="5.1854137847294268e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.1052249602628592e+0" v="5.3721773567103526e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.7493625074257864e+0" v="5.4526930436444587e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.9331772852833069e-1" v="5.4269496793553884e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.8632814985385266e-1" v="5.4265390650884626e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.8296319771815206e-1" v="5.3838262441350260e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.8048003865210376e+0" v="5.1594240266397939e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.4262304649999180e+0" v="4.7830327075051571e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.0472364961114522e+0" v="4.2546719645260644e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.6676760488103923e+0" v="3.5743882225592749e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.2874067418257766e+0" v="2.7422412553026199e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.9062862561709437e+0" v="1.7583041800425470e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1524172347648829e+1" v="6.2266345122978350e-2" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3140808531561674e+1" v="-6.6448312510546614e-2" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.5713991092504216e+1" v="-3.0282679386155387e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.7980779468304746e+1" v="-5.4524797502655353e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + </outline> + </object> + <object id="13" name="GuardRail" s="1.8027840443167115e+1" t="1.8150913603896985e+1" zOffset="4.8260000348091125e-1" hdg="3.1355834007263184e+0" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="+" type="barrier" width="9.5414332346086383e-1" length="3.2271238423792056e+1"> + <outline> + <cornerLocal u="1.6135037355649615e+1" v="-2.8273357530749976e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.6086080564124913e+1" v="-2.7784678588737322e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4609542565029869e+1" v="-1.3770974353189658e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3131906838379194e+1" v="-1.1930761636008924e-2" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1653119658823044e+1" v="9.9497109856091726e-2" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0173443281954775e+1" v="1.9655609137597807e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.7825924745509099e+0" v="3.2293461416084313e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.3901776456720540e+0" v="4.1182224680749968e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.9966635772693166e+0" v="4.6320443277820900e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.0231561209383244e-1" v="4.7706915162267549e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.9633320562235781e-1" v="4.7705557906271068e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.3731519601846003e-2" v="4.7518009454618948e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3381838990798940e+0" v="4.6076829802251851e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.7697757977058473e+0" v="4.3293701119444705e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.2010439236780144e+0" v="3.9168781345677317e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.6318625174303065e+0" v="3.3702432920461334e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.0621058588951655e+0" v="2.6895136149057208e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.4916482785499738e+0" v="1.8747489160264408e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.9203641684592014e+0" v="9.2602078538742916e-2" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1348013629373696e+1" v="-1.5649370622927705e-2" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3620510697286250e+1" v="-2.1576697875492101e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.5889928175585965e+1" v="-4.4981670923028005e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.6136201197489896e+1" v="-4.7707610073342721e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + </outline> + </object> + </objects> + </road> + <road name="Road 2" length="1.5577398397048080e+2" id="2" junction="-1"> + <link> + <predecessor elementType="road" elementId="0" contactPoint="end"/> + <successor elementType="road" elementId="3" contactPoint="start"/> + </link> + <type s="0.0000000000000000e+0" type="town"> + <speed max="40" unit="mph"/> + </type> + <planView> + <geometry s="0.0000000000000000e+0" x="-9.6663414001464858e+1" y="5.8415882110595710e+1" hdg="-1.5829298781747525e+0" length="1.4474323515781876e+1"> + <line/> + </geometry> + <geometry s="1.4474323515781876e+1" x="-9.6839034640223332e+1" y="4.3942624058907477e+1" hdg="-1.5829298781747525e+0" length="4.0797620883065598e+1"> + <arc curvature="2.0000000000000000e-3"/> + </geometry> + <geometry s="5.5271944398847474e+1" x="-9.5670093268347529e+1" y="3.1730742614756160e+0" hdg="-1.5013346364086213e+0" length="2.7664224506369131e+1"> + <line/> + </geometry> + <geometry s="8.2936168905216604e+1" x="-9.3750034364321550e+1" y="-2.4424438150766630e+1" hdg="-1.5013346364086213e+0" length="7.2837815065264195e+1"> + <arc curvature="1.9557099683960018e-2"/> + </geometry> + </planView> + <elevationProfile> + <elevation s="0.0000000000000000e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="3.6920000000000002e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="6.6920000000000002e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="8.8850000000000009e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="1.1885000000000001e+2" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + </elevationProfile> + <lateralProfile> + <superelevation s="0.0000000000000000e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + </lateralProfile> + <lanes> + <laneOffset s="0.0000000000000000e+0" a="-2.6349999999999998e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <laneSection s="0.0000000000000000e+0" singleSide="false"> + <left> + <lane id="7" type="sidewalk" level="false"> + <link> + <predecessor id="7"/> + <successor id="7"/> + </link> + <width sOffset="0.0000000000000000e+0" a="1.9999999999999982e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{baf23b6d-0995-42c3-97ec-ebe63f5c6a9b}" travelDir="undirected"> + <predecessor id="7" virtual="false"/> + <successor id="7" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="6" type="shoulder" level="false"> + <link> + <predecessor id="6"/> + <successor id="6"/> + </link> + <width sOffset="0.0000000000000000e+0" a="6.3499999999999979e-1" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="curb" material="standard" width="1.5239999999999998e-1" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{30fa7135-dda1-4fc0-b975-845243e628f6}" travelDir="undirected"> + <predecessor id="6" virtual="false"/> + <successor id="6" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="5" type="driving" level="false"> + <link> + <predecessor id="5"/> + <successor id="5"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="solid" material="standard" color="white" width="1.2500000000000000e-1" laneChange="none"> + <type name="solid"> + <line length="1.5577398397048080e+2" space="0.0000000000000000e+0" width="1.2500000000000000e-1" sOffset="0.0000000000000000e+0" tOffset="0.0000000000000000e+0"/> + </type> + </roadMark> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{f34f5d63-392f-49c4-8977-aa0272a21204}" travelDir="backward"> + <predecessor id="5" virtual="false"/> + <successor id="5" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="4" type="driving" level="false"> + <link> + <predecessor id="4"/> + <successor id="4"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="both"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{bbe639cb-61ec-4bcb-8d13-ceaf2d5d272b}" travelDir="backward"> + <predecessor id="4" virtual="false"/> + <successor id="4" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="3" type="driving" level="false"> + <link> + <predecessor id="3"/> + <successor id="3"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="both"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{c48f8c23-e0d9-4f5c-9b60-33628283b97a}" travelDir="backward"> + <predecessor id="3" virtual="false"/> + <successor id="3" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="2" type="shoulder" level="false"> + <link> + <predecessor id="2"/> + <successor id="2"/> + </link> + <width sOffset="0.0000000000000000e+0" a="6.3499999999999979e-1" b="0.0000000000000000e+0" c="2.7451850535127917e-20" d="-1.1748581646055455e-22"/> + <roadMark sOffset="0.0000000000000000e+0" type="solid" material="standard" color="white" width="1.2500000000000000e-1" laneChange="none"> + <type name="solid"> + <line length="1.5577398397048080e+2" space="0.0000000000000000e+0" width="1.2500000000000000e-1" sOffset="0.0000000000000000e+0" tOffset="0.0000000000000000e+0"/> + </type> + </roadMark> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{6a78fe4d-1913-48ff-8d0c-2e2e17a6978c}" travelDir="undirected"> + <predecessor id="2" virtual="false"/> + <successor id="2" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="1" type="sidewalk" level="false"> + <link> + <predecessor id="1"/> + <successor id="1"/> + </link> + <width sOffset="0.0000000000000000e+0" a="2.0000000000000000e+0" b="0.0000000000000000e+0" c="-2.7451850535127917e-20" d="1.1748581646055455e-22"/> + <roadMark sOffset="0.0000000000000000e+0" type="curb" material="standard" width="1.5239999999999998e-1" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{6f087c0c-b654-45de-925a-ed00f1bc6c33}" travelDir="undirected"> + <predecessor id="1" virtual="false"/> + <successor id="1" virtual="false"/> + </vectorLane> + </userData> + </lane> + </left> + <center> + <lane id="0" type="none" level="false"> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="none"/> + <userData/> + </lane> + </center> + <userData> + <vectorLaneSection> + <carriageway rightBoundary="0" leftBoundary="0"/> + <carriageway rightBoundary="2" leftBoundary="6"/> + </vectorLaneSection> + </userData> + </laneSection> + </lanes> + <objects> + <object id="25" name="GuardRail" s="6.0410252704381115e+1" t="2.4508415514395182e+1" zOffset="4.8260000348091125e-1" hdg="-2.9599165916442871e+0" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="+" type="barrier" width="2.2678719819784408e+1" length="1.1727700967770048e+2"> + <outline> + <cornerLocal u="5.8638502558953618e+1" v="-6.6565554451490314e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.1650723229137171e+1" v="-4.7731573704221333e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.4662974338151585e+1" v="-2.8897674873283279e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.2047711182117723e+1" v="-2.1927468962427099e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.9428609652901969e+1" v="-1.5104209118273531e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.6805720554694503e+1" v="-8.4280249675366292e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.4179126477236252e+1" v="-1.8991267304407700e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.1548910126879210e+1" v="4.4822800106750549e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.8915154324032859e+1" v="1.0715994317694424e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.6277942000557754e+1" v="1.6801819903047459e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.3637335577980767e+1" v="2.2739610949108027e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.1475941955391026e+1" v="2.7484155423225332e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.9312373673633882e+1" v="3.2129531453388864e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.7146696893428501e+1" v="3.6675595444580438e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4978957200702954e+1" v="4.1122251705445905e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2809200224808269e+1" v="4.5469406637089520e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0637471637557834e+1" v="4.9716968735047118e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.4638171522661025e+0" v="5.3864848591213530e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.2882568891776174e+0" v="5.7913006068811370e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.6004211070795762e-1" v="6.8435829380751301e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.1682026908279042e+0" v="7.8958707929131151e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2079525606504529e+1" v="9.1654920149460679e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.8990848522181160e+1" v="1.0435113236979049e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.0920384530744286e+1" v="1.0789572608097245e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.1874515838537988e+1" v="1.0950631892460564e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.2832643123966612e+1" v="1.1083998705149426e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.3794225761317229e+1" v="1.1189608901011283e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.4758677623285426e+1" v="1.1267389159850694e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.5370872727989724e+1" v="1.1302227673076601e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.5983821740442650e+1" v="1.1325847423367776e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.6597100769882719e+1" v="1.1338225489447680e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.7210503657507747e+1" v="1.1339357710327334e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.7823824202879553e+1" v="1.1329243705401396e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.8436856233240047e+1" v="1.1307886874575956e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.9049393672817839e+1" v="1.1275294397125791e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.9661230612102219e+1" v="1.1231477229280927e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.0272161377061526e+1" v="1.1176450100543605e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.0881980598282006e+1" v="1.1110231508736859e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.1490483280004540e+1" v="1.1032843713786306e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.2097464869035583e+1" v="1.0944312730237229e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.2702721323509472e+1" v="1.0844668318509719e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.3306049181478734e+1" v="1.0733943974894316e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.3907245629309493e+1" v="1.0612176920292072e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.4506108569858981e+1" v="1.0479408087702311e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.5102436690412162e+1" v="1.0335682108462834e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.5696029530354608e+1" v="1.0181047297246508e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.6286687548559016e+1" v="1.0015555635820135e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.6874212190462650e+1" v="9.8392627555701324e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.7458405954813017e+1" v="9.6522279188017848e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.8039072460059586e+1" v="9.4545139988174753e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.8616016510369057e+1" v="9.2461874587816197e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.9189044161242094e+1" v="9.0273183293782182e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.9757962784709200e+1" v="8.7979801852697506e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.0322581134084416e+1" v="8.5582501203642636e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.0882709408254392e+1" v="8.3082087218995184e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.1438159315481528e+1" v="8.0479400433532788e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.1988744136699822e+1" v="7.7775315761877124e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.2534278788282130e+1" v="7.4970742204385630e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.3074579884257389e+1" v="7.2066622541583030e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.3609390086526872e+1" v="6.9064368279179291e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.4260103276726035e+1" v="6.5234399475565823e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.4901933889663766e+1" v="6.1259026983053246e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.5534630798782089e+1" v="5.7139839909874155e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.6157871817228234e+1" v="5.2878935860584733e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.6771339573351838e+1" v="4.8478484605963530e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.7374721672319410e+1" v="4.3940726978105715e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.7967710855194369e+1" v="3.9267973729328247e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.8550005155401891e+1" v="3.4462604355470745e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.9121308052498733e+1" v="2.9527065884188772e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.9681328623169648e+1" v="2.4463871628861682e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.0229781689373510e+1" v="1.9275599908742720e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.0766387963564085e+1" v="1.3964892736005510e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.1290874190910927e+1" v="8.5344544703606573e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.1802973288448300e+1" v="2.9870504419190524e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.2302424481081317e+1" v="-2.6744944569912832e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.2788973434379798e+1" v="-8.4472972103381494e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.3262372384092473e+1" v="-1.4328418146496631e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.3722380262315482e+1" v="-2.0314862435213712e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.4168762820250649e+1" v="-2.6403581612656097e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.4601292747491769e+1" v="-3.2591475133775276e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.5019749787777172e+1" v="-3.8875391951190181e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.5423920851150399e+1" v="-4.5252132119787802e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.5813600122471527e+1" v="-5.1718448426225052e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.6188589166223963e+1" v="-5.8271048042498705e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.6548697027563378e+1" v="-6.4906594202746959e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.6893740329557076e+1" v="-7.1621707902421434e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.7223543366564826e+1" v="-7.8412969618971218e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.7537938193712861e+1" v="-8.5276921053158858e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.7836764712416198e+1" v="-9.2210066890121709e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.8119870751905268e+1" v="-9.9208876579284038e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.8387112146715467e+1" v="-1.0626978613221127e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.8638505311285556e+1" v="-1.1339360032002858e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + </outline> + </object> + <object id="7" name="LadderCrosswalk" s="6.9929338216313340e+1" t="-7.5817830506476113e+1" zOffset="1.5239715576171875e-1" hdg="-1.4709094762802124e+0" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="-" type="crosswalk" width="2.9357662933815876e+0" length="1.1243478419302967e+1"> + <outline> + <cornerLocal u="-5.6217391612537426e+0" v="1.0301920057926495e+0" z="0.0000000000000000e+0"/> + <cornerLocal u="-4.9051011194563898e-2" v="1.2490377115824920e+0" z="1.9073486328125000e-6"/> + <cornerLocal u="5.5236371388645864e+0" v="1.4678834173723345e+0" z="3.8146972656250000e-6"/> + <cornerLocal u="5.6217393219862402e+0" v="-1.0301910657612368e+0" z="3.8146972656250000e-6"/> + <cornerLocal u="4.9051171927089854e-2" v="-1.2490367715510793e+0" z="1.9073486328125000e-6"/> + <cornerLocal u="-5.5236369781320604e+0" v="-1.4678824773409236e+0" z="0.0000000000000000e+0"/> + <cornerLocal u="-5.6217391612537426e+0" v="1.0301920057926495e+0" z="0.0000000000000000e+0"/> + </outline> + </object> + <object id="28" name="GuardRail" s="7.0741329526377811e+1" t="7.6790017658333767e+0" zOffset="4.8260000348091125e-1" hdg="-2.8903925418853760e+0" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="+" type="barrier" width="2.9332713782412846e+1" length="1.4095991984205361e+2"> + <outline> + <cornerLocal u="7.0479960134635917e+1" v="-1.0425314388316735e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.3639897950498707e+1" v="-8.0610388235770642e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.6799866463698876e+1" v="-5.6967738558910526e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.4131735853009957e+1" v="-4.7829033710969213e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.1458549736126770e+1" v="-3.8840295875810966e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.8780361765462132e+1" v="-3.0001702730229738e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.6097256271951366e+1" v="-2.1313532584350412e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.3409317741381301e+1" v="-1.2776059011795269e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.0716630811720890e+1" v="-4.3895508410420803e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.8019280270457557e+1" v="3.8457278530373173e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.5317330800821438e+1" v="1.1929577783769929e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.3104887737046568e+1" v="1.8426152796323123e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.0889467092364040e+1" v="2.4821213039073058e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.8671135750880236e+1" v="3.1114563874353109e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.6449940406863629e+1" v="3.7306072831686805e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.4225927814867983e+1" v="4.3395609584292316e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.1999144788748136e+1" v="4.9383045951829558e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.9769638200674617e+1" v="5.5268255903099544e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.7537428976027019e+1" v="6.1051182380862912e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1896148284982498e+1" v="7.5527874571950520e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.2548422241628465e+0" v="9.0004631957182966e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.5158613274581114e-1" v="1.0747133397983745e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.3580144896544795e+0" v="1.2493803600249223e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.2583746077181317e+0" v="1.2981475375713984e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0012194974302780e+1" v="1.3169127304596572e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0768576826411710e+1" v="1.3345844012685887e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1527434461375947e+1" v="1.3511607051293339e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2288609264307006e+1" v="1.3666381773049693e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3051942132217022e+1" v="1.3810135826488946e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3817273511032937e+1" v="1.3942839163717608e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4584443428947218e+1" v="1.4064464046695250e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.5353212239142302e+1" v="1.4174974317789818e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.6330482806079630e+1" v="1.4299138724023123e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.7309786051424435e+1" v="1.4405355850732377e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.8290872065029586e+1" v="1.4493600727397308e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.9273411046742602e+1" v="1.4563843689774998e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.0257072707983774e+1" v="1.4616061125114584e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.1241526382775493e+1" v="1.4650235480094565e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.2226441138898235e+1" v="1.4666355266723755e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.3211485889136085e+1" v="1.4664415066202992e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.4196329502574674e+1" v="1.4644415530746699e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.5180640915913322e+1" v="1.4606363383363572e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.6164089244754898e+1" v="1.4550271415596711e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.7146343894835134e+1" v="1.4476158483223571e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.8127074673154802e+1" v="1.4384049499917381e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.9105951898976734e+1" v="1.4273975428872362e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.0082646514650630e+1" v="1.4145973272395025e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.1056830196228670e+1" v="1.4000086059465673e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.2028175463834188e+1" v="1.3836362831273703e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.2996355791746822e+1" v="1.3654858624732213e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.3961045718166709e+1" v="1.3455634453976714e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.4921920954621285e+1" v="1.3238757289854760e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.5878658494977458e+1" v="1.3004300037413259e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.6830936724022806e+1" v="1.2752341511390668e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.7778435525579134e+1" v="1.2482966409722934e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.8720836390112318e+1" v="1.2196265285071405e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.9657822521801563e+1" v="1.1892334514382995e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.0589078945033343e+1" v="1.1571276266492248e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.1514292610282880e+1" v="1.1233198467776162e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.2433152499348282e+1" v="1.0878214765874262e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.3345349729901841e+1" v="1.0506444491484785e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.4250577659323525e+1" v="1.0118012618250631e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.5148531987781297e+1" v="9.7130497207486712e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.6038832308317986e+1" v="9.2917300921131414e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.7123946575122218e+1" v="8.7507874101095098e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.8196500708891890e+1" v="8.1855371713925962e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.9256027087455195e+1" v="7.5962290555783056e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.0301986170529261e+1" v="6.9831631547398558e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.1333845326675217e+1" v="6.3466516590748370e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.2351079104528992e+1" v="5.6870186979294886e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.3353169500375586e+1" v="5.0046001747429756e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.4339606221931007e+1" v="4.2997435959960058e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.5309886948197473e+1" v="3.5728078942507864e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.6263517585258967e+1" v="2.8241632453727448e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.7200012517887728e+1" v="2.0541908800267095e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.8118894856833023e+1" v="1.2632828895433192e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.9019696681666389e+1" v="4.5184202625570435e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.9901959279059611e+1" v="-3.7971850159351561e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.0765233376374610e+1" v="-1.2309752402693590e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.1609079370445158e+1" v="-2.1014947061787268e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.2433067551435371e+1" v="-2.9908336066123127e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.3236778321659699e+1" v="-3.8985390654818417e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.4019802409253728e+1" v="-4.8241488539367481e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.4781741076586968e+1" v="-5.7671916257442888e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.5522206323310968e+1" v="-6.7271871573120023e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.6240821083939906e+1" v="-7.7036465922309389e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.6937219419862899e+1" v="-8.6960726902149332e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.7611046705689972e+1" v="-9.7039600803091020e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.8261959809837364e+1" v="-1.0726795518238944e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.8889627269259478e+1" v="-1.1764058147768480e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.9493729458239187e+1" v="-1.2815219765934742e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.0073992877656579e+1" v="-1.3879809282831417e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.0479958864598558e+1" v="-1.4666360634619920e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + </outline> + </object> + </objects> + </road> + <road name="Road 3" length="2.2719061628886385e+2" id="3" junction="-1"> + <link> + <predecessor elementType="road" elementId="2" contactPoint="end"/> + <successor elementType="road" elementId="1" contactPoint="start"/> + </link> + <type s="0.0000000000000000e+0" type="town"> + <speed max="40" unit="mph"/> + </type> + <planView> + <geometry s="0.0000000000000000e+0" x="-4.6665679931640625e+1" y="-7.1857040405273438e+1" hdg="-7.6830659048825689e-2" length="9.3364022699996383e+1"> + <line/> + </geometry> + <geometry s="9.3364022699996383e+1" x="4.6422916707050959e+1" y="-7.9023204690608964e+1" hdg="-7.6830659048825689e-2" length="6.7170431642545523e+1"> + <arc curvature="2.4753186592184295e-2"/> + </geometry> + <geometry s="1.6053445434254189e+2" x="8.9917994054120413e+1" y="-3.8135351885141290e+1" hdg="1.5858515688766659e+0" length="1.1958617683428404e+1"> + <line/> + </geometry> + <geometry s="1.7249307202597032e+2" x="8.9737960971172129e+1" y="-2.6178089448134621e+1" hdg="-4.6973337383029223e+0" length="5.4697544262893530e+1"> + <arc curvature="-3.1586106536845744e-2"/> + </geometry> + </planView> + <elevationProfile> + <elevation s="0.0000000000000000e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="2.7379999999999995e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="5.7379999999999995e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="1.1978000000000000e+2" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="1.4978000000000000e+2" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + </elevationProfile> + <lateralProfile> + <superelevation s="0.0000000000000000e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + </lateralProfile> + <lanes> + <laneOffset s="0.0000000000000000e+0" a="-2.6349999999999998e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <laneSection s="0.0000000000000000e+0" singleSide="false"> + <left> + <lane id="7" type="sidewalk" level="false"> + <link> + <predecessor id="7"/> + <successor id="7"/> + </link> + <width sOffset="0.0000000000000000e+0" a="1.9999999999999982e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{295070c7-deea-49ae-846d-1d8caa3a4a59}" travelDir="undirected"> + <predecessor id="7" virtual="false"/> + <successor id="7" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="6" type="shoulder" level="false"> + <link> + <predecessor id="6"/> + <successor id="6"/> + </link> + <width sOffset="0.0000000000000000e+0" a="6.3499999999999979e-1" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="curb" material="standard" width="1.5239999999999998e-1" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{3599462f-a218-4955-a4fd-23186d3a4248}" travelDir="undirected"> + <predecessor id="6" virtual="false"/> + <successor id="6" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="5" type="driving" level="false"> + <link> + <predecessor id="5"/> + <successor id="5"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="solid" material="standard" color="white" width="1.2500000000000000e-1" laneChange="none"> + <type name="solid"> + <line length="2.2719061628886385e+2" space="0.0000000000000000e+0" width="1.2500000000000000e-1" sOffset="0.0000000000000000e+0" tOffset="0.0000000000000000e+0"/> + </type> + </roadMark> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{65e807a1-7d63-4d07-8a9a-3fa41192c3bd}" travelDir="backward"> + <predecessor id="5" virtual="false"/> + <successor id="5" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="4" type="driving" level="false"> + <link> + <predecessor id="4"/> + <successor id="4"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="both"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{a0f9cd5a-fdf0-4a7d-904a-359d7c31c961}" travelDir="backward"> + <predecessor id="4" virtual="false"/> + <successor id="4" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="3" type="driving" level="false"> + <link> + <predecessor id="3"/> + <successor id="3"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="both"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{02aa935d-1366-4ed6-9515-5c6b9daedcfc}" travelDir="backward"> + <predecessor id="3" virtual="false"/> + <successor id="3" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="2" type="shoulder" level="false"> + <link> + <predecessor id="2"/> + <successor id="2"/> + </link> + <width sOffset="0.0000000000000000e+0" a="6.3500000000000001e-1" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="solid" material="standard" color="white" width="1.2500000000000000e-1" laneChange="none"> + <type name="solid"> + <line length="2.2719061628886385e+2" space="0.0000000000000000e+0" width="1.2500000000000000e-1" sOffset="0.0000000000000000e+0" tOffset="0.0000000000000000e+0"/> + </type> + </roadMark> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{550fe84a-97cd-409b-9a0f-6ef948066982}" travelDir="undirected"> + <predecessor id="2" virtual="false"/> + <successor id="2" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="1" type="sidewalk" level="false"> + <link> + <predecessor id="1"/> + <successor id="1"/> + </link> + <width sOffset="0.0000000000000000e+0" a="1.9999999999999998e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="curb" material="standard" width="1.5239999999999998e-1" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{73c940ce-58ac-4d4a-a2d3-d7c09dbd57a5}" travelDir="undirected"> + <predecessor id="1" virtual="false"/> + <successor id="1" virtual="false"/> + </vectorLane> + </userData> + </lane> + </left> + <center> + <lane id="0" type="none" level="false"> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="none"/> + <userData/> + </lane> + </center> + <userData> + <vectorLaneSection> + <carriageway rightBoundary="0" leftBoundary="0"/> + <carriageway rightBoundary="2" leftBoundary="6"/> + </vectorLaneSection> + </userData> + </laneSection> + </lanes> + <objects> + <object id="5" name="LadderCrosswalk" s="4.8076121351520428e+1" t="3.5870062190113572e+0" zOffset="1.5239715576171875e-1" hdg="1.6675602197647095e+0" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="+" type="crosswalk" width="2.9416131686396452e+0" length="9.9235809511814654e+0"> + <outline> + <cornerLocal u="4.8487185422006576e+0" v="-1.4708064517527935e+0" z="0.0000000000000000e+0"/> + <cornerLocal u="-4.9617903437808906e+0" v="-1.0266351369207338e+0" z="0.0000000000000000e+0"/> + <cornerLocal u="-4.8487185422006149e+0" v="1.4708064517527866e+0" z="0.0000000000000000e+0"/> + <cornerLocal u="4.9617903437809332e+0" v="1.0266351369207267e+0" z="0.0000000000000000e+0"/> + <cornerLocal u="4.8487185422006576e+0" v="-1.4708064517527935e+0" z="0.0000000000000000e+0"/> + </outline> + </object> + <object id="12" name="GuardRail" s="8.8182428361291457e+1" t="3.8789427797812394e+1" zOffset="4.8260000348091125e-1" hdg="9.3289196491241455e-1" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="-" type="barrier" width="9.2393484649402581e+1" length="1.7151754779262561e+2"> + <outline> + <cornerLocal u="-8.5758772301789591e+1" v="4.6196742577425731e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.1682484260362344e+1" v="4.0697842594516963e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.7606196218935068e+1" v="3.5198942611608203e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.3529908177507835e+1" v="2.9700042628699439e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.9453620136080559e+1" v="2.4201142645790689e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.4987270930718324e+1" v="1.8176051356993646e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.0520921725356104e+1" v="1.2150960068196611e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.6054572519993883e+1" v="6.1258687793995676e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.1588223314631655e+1" v="1.0077749060253893e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.6231037238041495e+1" v="-7.1260499871451159e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.0873851161451334e+1" v="-1.4352877464892750e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.5516665084861195e+1" v="-2.1579704942640383e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.0159501364263221e+1" v="-2.8806502290856450e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.9629156657892999e+1" v="-2.9506876959145139e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.9084620724095114e+1" v="-3.0196257889914712e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.8526112537891620e+1" v="-3.0874368527451956e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.7953865292078234e+1" v="-3.1540925742142839e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.7368117923066841e+1" v="-3.2195651219342018e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.6769115004117893e+1" v="-3.2838271584634079e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.6157106643220935e+1" v="-3.3468518517978232e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.5532348378664558e+1" v="-3.4086128865742900e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.4895101072338740e+1" v="-3.4690844750583004e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.4245630800814396e+1" v="-3.5282413679114207e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.3584208744245686e+1" v="-3.5860588647339164e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.2911111073141356e+1" v="-3.6425128243781593e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.2226618833052207e+1" v="-3.6975796750285475e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.1531017827223380e+1" v="-3.7512364240436916e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.0824598497259778e+1" v="-3.8034606675567609e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.0107655801854989e+1" v="-3.8542305998300215e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.9380489093634004e+1" v="-3.9035250223596115e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.8643401994161579e+1" v="-3.9513233527267666e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.7896702267167605e+1" v="-3.9976056331918251e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.7140701690043606e+1" v="-4.0423525390273859e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.6375715923662803e+1" v="-4.0855453865871660e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.5602064380579044e+1" v="-4.1271661411071882e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4820070091659048e+1" v="-4.1671974242360058e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4030059571203957e+1" v="-4.2056225212908977e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3232362680616454e+1" v="-4.2424253882369008e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2427312490670133e+1" v="-4.2775906583858450e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1615245142438980e+1" v="-4.3111036488125968e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0796499706945049e+1" v="-4.3429503664857414e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.9714180435822186e+0" v="-4.3731175141102490e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.1403446573763745e+0" v="-4.4015924956796560e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.3036265551403758e+0" v="-4.4283634217353786e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.4616681086076326e+0" v="-4.4534175425836118e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.4993956433656166e+0" v="-4.4797805972837033e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.5313202972756983e+0" v="-4.5039022343791551e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.5579083777223488e+0" v="-4.5257710359455736e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.5796840738954572e+0" v="-4.5453752254789471e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.5971741664877328e+0" v="-4.5627042459848305e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.6109077440197055e+0" v="-4.5777487656633504e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.2141591792167361e-1" v="-4.5905006829344735e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.7076846347321890e-1" v="-4.6009531308007304e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3651111018720101e+0" v="-4.6091004805451639e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.3610765367449886e+0" v="-4.6149383447624281e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.3581284336751054e+0" v="-4.6184635797214320e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.3557298731779568e+0" v="-4.6196742870582646e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.3533436398363605e+0" v="-4.6185698147984773e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.3504325115950309e+0" v="-4.6151507577081880e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.3464595490582809e+0" v="-4.6094189569737615e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.3408883846355195e+0" v="-4.6013774992103613e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.3331835113794028e+0" v="-4.5910307147997550e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0322810571359732e+1" v="-4.5783841755583801e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1309236643419091e+1" v="-4.5634446917368940e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2291930530154637e+1" v="-4.5462203083527832e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3270363043971656e+1" v="-4.5267203008580886e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4244007292055016e+1" v="-4.5049551701444933e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.5212338960104091e+1" v="-4.4809366368885200e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.6174836594680578e+1" v="-4.4546776352398730e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.7130981884014048e+1" v="-4.4261923058562935e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.8080259937116914e+1" v="-4.3954959882887330e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.9022159561056824e+1" v="-4.3626052127208816e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.9956173536237579e+1" v="-4.3275376910675483e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.0881798889540498e+1" v="-4.2903123074366796e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.1798537165178942e+1" v="-4.2509491079601354e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.2705894693120456e+1" v="-4.2094692899986818e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.3603504216565085e+1" v="-4.1658891483650827e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.4240468004414815e+1" v="-4.1333800789110377e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.4872055668380519e+1" v="-4.0998095918636629e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.5497971032065514e+1" v="-4.0651930214332289e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.6118040850721485e+1" v="-4.0295399490094589e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.6732093497566247e+1" v="-3.9928602428715500e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.7339959011288130e+1" v="-3.9551640554567605e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.7941469143088455e+1" v="-3.9164618205503622e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.8536457403250786e+1" v="-3.8767642503977108e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.9124759107222850e+1" v="-3.8360823327392445e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.9706211421199036e+1" v="-3.7944273277692297e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.0280653407190478e+1" v="-3.7518107650190906e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.0847926067570512e+1" v="-3.7082444401661895e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.1407872389083025e+1" v="-3.6637404117689648e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.1960337386301557e+1" v="-3.6183109979292716e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.2505168144527062e+1" v="-3.5719687728828994e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.3042273305014099e+1" v="-3.5247212564763636e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.4804270008986478e+1" v="-3.3671036135732912e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.1955146060750721e+1" v="-2.7274292336065749e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.2546922063660880e+1" v="-2.6759127619031666e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.3152407438531696e+1" v="-2.6260107500357726e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.3771141889735659e+1" v="-2.5777612652477536e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.4402674544131756e+1" v="-2.5311994669825346e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.5046545193225583e+1" v="-2.4863592856076586e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.5702284637617886e+1" v="-2.4432733969194054e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.6369415028918361e+1" v="-2.4019731983313882e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.7047450217961369e+1" v="-2.3624887859947371e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.7735896109071390e+1" v="-2.3248489328665279e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.8434251020118822e+1" v="-2.2890810677424234e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.9142006048103980e+1" v="-2.2552112552688762e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.9858645440003642e+1" v="-2.2232641769493561e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.0583646968608662e+1" v="-2.1932631131585403e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.1316482313079874e+1" v="-2.1652299261775049e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.2056617443944468e+1" v="-2.1391850442623017e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.2803513012252182e+1" v="-2.1151474467575646e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.3556624742607873e+1" v="-2.0931346502659274e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.4315403829794526e+1" v="-2.0731626958833765e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.5079297338696406e+1" v="-2.0552461375098481e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.5847748607232560e+1" v="-2.0393980312435453e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.6620197652005757e+1" v="-2.0256299258667390e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.7396081576371664e+1" v="-2.0139518544299783e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.8174834980631410e+1" v="-2.0043723269408424e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.8955890374047677e+1" v="-1.9968983241625445e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.9738678588384872e+1" v="-1.9915352925269396e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.0522629192671495e+1" v="-1.9882871401656097e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.1307170908883037e+1" v="-1.9871562340619583e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.2091732028241609e+1" v="-1.9881433983263285e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.2875740827829972e+1" v="-1.9912479135954747e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.3658625987215636e+1" v="-1.9964675175567741e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.4439817004781759e+1" v="-2.0037984065968040e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.5218744613460970e+1" v="-2.0132352385731046e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.5994841195570373e+1" v="-2.0247711367070856e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.6767541196443716e+1" v="-2.0383976945952575e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.7536281536560850e+1" v="-2.0541049823351095e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.8300502021873129e+1" v="-2.0718815537612024e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.9059645752026370e+1" v="-2.0917144547861859e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.9813159526183426e+1" v="-2.1135892328406520e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.0560494246151094e+1" v="-2.1374899474049734e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.1301105316517052e+1" v="-2.1633991816254202e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.2034453041505927e+1" v="-2.1912980550061313e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.2760003018264541e+1" v="-2.2211662371676319e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.3477226526290252e+1" v="-2.2529819626619265e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.4185600912718840e+1" v="-2.2867220468333691e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.4884609973189967e+1" v="-2.3223619027136827e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.5573744328014271e+1" v="-2.3598755589389093e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.6252501793367102e+1" v="-2.3992356786752005e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.6920387747237896e+1" v="-2.4404135795395895e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.7576915489869975e+1" v="-2.4833792545013672e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.8221606598426675e+1" v="-2.5281013937486826e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.8853991275626143e+1" v="-2.5745474075045458e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.9473608692090608e+1" v="-2.6226834497755398e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.0080007322160583e+1" v="-2.6724744430159852e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.0672745272928850e+1" v="-2.7238841036894989e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.1251390606255896e+1" v="-2.7768749687094747e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.1815521653529913e+1" v="-2.8314084227390147e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.2364727322944162e+1" v="-2.8874447263306060e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.2898607399066464e+1" v="-2.9449430448849135e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.3416772834482884e+1" v="-3.0038614784076536e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.3918846033303112e+1" v="-3.0641570920428144e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.4404461126321067e+1" v="-3.1257859473600128e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.4873264237629826e+1" v="-3.1887031343731714e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.5324913742497046e+1" v="-3.2528628042671791e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.5758775377657287e+1" v="-3.3181715906086673e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + </outline> + </object> + <object id="9" name="GuardRail" s="1.7620444646656051e+2" t="4.6787843363713108e+1" zOffset="4.8260000348091125e-1" hdg="-6.3065952062606812e-1" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="-" type="barrier" width="8.2847650210328425e+1" length="1.7304557024255797e+2"> + <outline> + <cornerLocal u="-8.6468706850061039e+1" v="4.1463315831262179e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.2293577385378796e+1" v="3.6039081171870421e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.8118447920696539e+1" v="3.0614846512478675e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.3943318456014282e+1" v="2.5190611853086914e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.9768188991332025e+1" v="1.9766377193695163e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.5193540198765632e+1" v="1.3823095974493089e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.0618891406199246e+1" v="7.8798147552910223e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.6044242613632861e+1" v="1.9365335360889517e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.1469593821066482e+1" v="-4.0067476831131117e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.5982507234239911e+1" v="-1.1135447642028858e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.0495420647413326e+1" v="-1.8264147600944604e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.5008334060586762e+1" v="-2.5392847559860336e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.9521295721745311e+1" v="-3.2521484960032318e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.8939856412737839e+1" v="-3.3245785489965890e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.8329463260960800e+1" v="-3.3945542274477667e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.7690989757384173e+1" v="-3.4619776069462908e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.7025502237519049e+1" v="-3.5267360802122191e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.6334112057361722e+1" v="-3.5887215013894284e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.5617973830033463e+1" v="-3.6478303555847809e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.4878283497590779e+1" v="-3.7039639317367111e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.4116276333816920e+1" v="-3.7570284874614963e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.3333224881329677e+1" v="-3.8069354056018931e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.2530436826450931e+1" v="-3.8536013422166882e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.1709252815386542e+1" v="-3.8969483657640772e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.0871044215363462e+1" v="-3.9369040872463593e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.0017210824463554e+1" v="-3.9734017810987076e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.9149178533977725e+1" v="-4.0063804966200102e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.8268396947185032e+1" v="-4.0357851597598163e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.7375985214029129e+1" v="-4.0615762231417840e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.6865344777928023e+1" v="-4.0745767510222827e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.6351471298354276e+1" v="-4.0863976178362343e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.5834993244307833e+1" v="-4.0970228999129525e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.5316188742866588e+1" v="-4.1064468754630390e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4795337173916673e+1" v="-4.1146644696091350e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4272719019704626e+1" v="-4.1216712571187905e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3748615713795482e+1" v="-4.1274634647874670e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3223309489519105e+1" v="-4.1320379734704510e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2697083227985283e+1" v="-4.1353923197625271e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2170220305750393e+1" v="-4.1375246973245389e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1643004442217157e+1" v="-4.1384339578561132e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1115719546849492e+1" v="-4.1381196117140426e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0588649566285648e+1" v="-4.1365818281759339e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0062078331430657e+1" v="-4.1338214353490905e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.5362894046114253e+0" v="-4.1298399197245210e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.0115659268765658e+0" v="-4.1246394253765025e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.4881904655227078e+0" v="-4.1182227528079487e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.9664448619302224e+0" v="-4.1105933574423311e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.4466100797895667e+0" v="-4.1017553477629100e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.9289660538003464e+0" v="-4.0917134831002834e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.4137915389245368e+0" v="-4.0804731710694561e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.9013639602748729e+0" v="-4.0680404646578005e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.3919592637196931e+0" v="-4.0544220589654763e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.8858517672837980e+0" v="-4.0396252876000837e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.3833140134265793e+0" v="-4.0236581187274474e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.8846166222758516e+0" v="-4.0065291507807181e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.3900281458969292e+0" v="-3.9882476078300421e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.8998149236755513e+0" v="-3.9688233346153474e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.4142409388922292e+0" v="-3.9482667912448697e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.9335676765653904e+0" v="-3.9265890475623230e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4580539826397416e+0" v="-3.9038017771856950e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.8813981553298369e-1" v="-3.8799269233335515e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.2386336568472451e-1" v="-3.8437818159735237e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.2784004759014529e-1" v="-3.8054570777514193e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.6643283505524558e-1" v="-3.7649854646564471e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.5912080308952046e+0" v="-3.7224117815274859e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.2014739663119176e+0" v="-3.6777831603384620e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.7965550352492112e+0" v="-3.6311490080200336e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.3757924423348644e+0" v="-3.5825609517627477e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.9386672256259043e+0" v="-3.5320614831081222e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.6717319800139858e+0" v="-3.3712922827152020e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2705699904640065e+1" v="-2.7187805631490725e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3694082326656213e+1" v="-2.6295432524602056e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4706327280385972e+1" v="-2.5429944325591556e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.5741564964917805e+1" v="-2.4592094261014815e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.6799040949779084e+1" v="-2.3782492917372146e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.7877984634388028e+1" v="-2.3001730264814533e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.8977609774288027e+1" v="-2.2250375258252411e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.0097115054097564e+1" v="-2.1528975422748609e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.1235684671441604e+1" v="-2.0838056454527781e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.2392488931440980e+1" v="-2.0178121837892668e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.3566684851325135e+1" v="-1.9549652478326337e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.4757416774727403e+1" v="-1.8953106352048707e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.5963816995216753e+1" v="-1.8388918172281059e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.7185006388609743e+1" v="-1.7857499072463590e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.8420095053603163e+1" v="-1.7359236306655355e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.9668182960260431e+1" v="-1.6894492967335609e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.0928360605878296e+1" v="-1.6463607720812398e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.2199709677756644e+1" v="-1.6066894560430676e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.3481303722389093e+1" v="-1.5704642577759827e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.4772208820584467e+1" v="-1.5377115751928102e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.6071484268030026e+1" v="-1.5084552757256368e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.7378183260798487e+1" v="-1.4827166789332118e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.8691353585299645e+1" v="-1.4605145409650326e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.0010038312174913e+1" v="-1.4418650408934191e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.1333276493627700e+1" v="-1.4267817689235436e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.2660103863682295e+1" v="-1.4152757164900351e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.3989553540860634e+1" v="-1.4073552682473164e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.5320656732765414e+1" v="-1.4030261959595819e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.6652443442055038e+1" v="-1.4022916542948060e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.7983943173297426e+1" v="-1.4051521785258842e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.9314185640186153e+1" v="-1.4116056841405765e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.0642201472604725e+1" v="-1.4216474683605192e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.1967022923022398e+1" v="-1.4352702135682215e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.3287684571708738e+1" v="-1.4524639926395423e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.4603224030250828e+1" v="-1.4732162761777417e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.5912682642862165e+1" v="-1.4975119416438737e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.7215106184971148e+1" v="-1.5253332843768312e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.8509545558580754e+1" v="-1.5566600304950306e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.9795057483892094e+1" v="-1.5914693516703345e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.1070705186688485e+1" v="-1.6297358817634354e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.2335559080978342e+1" v="-1.6714317353085853e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.3588697446400630e+1" v="-1.7165265278342218e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.4829207099897559e+1" v="-1.7649873980046259e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.6056184061166519e+1" v="-1.8167790315665307e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.7268734211406453e+1" v="-1.8718636870832462e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.8465973944876183e+1" v="-1.9302012234374324e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.9647030812793602e+1" v="-1.9917491290826312e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.0811044159103929e+1" v="-2.0564625530221754e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.1957165747653463e+1" v="-2.1242943374928039e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.3084560380314372e+1" v="-2.1951950523293725e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.4192406505607366e+1" v="-2.2691130309854323e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.5279896817379907e+1" v="-2.3459944081834955e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.6346238843104175e+1" v="-2.4257831591675973e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.7390655521365190e+1" v="-2.5084211405294816e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.8412385768117858e+1" v="-2.5938481325786391e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.9410685031302876e+1" v="-2.6820018832254839e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.0384825833413359e+1" v="-2.7728181533454297e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.1334098301620472e+1" v="-2.8662307635910587e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.2257810685069686e+1" v="-2.9621716426181344e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.3155289858971216e+1" v="-3.0605708766903184e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.4025881815117401e+1" v="-3.1613567606264972e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.4868952138469623e+1" v="-3.2644558500535673e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.5683886469467055e+1" v="-3.3697930149265595e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.6469846084984212e+1" v="-3.4772574152878072e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.6576865471472530e+1" v="-3.4927492566141531e+1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + </outline> + </object> + </objects> + </road> + <road name="Road 4" length="6.9487045357300488e+1" id="4" junction="-1"> + <link> + <predecessor elementType="road" elementId="1" contactPoint="end"/> + <successor elementType="road" elementId="0" contactPoint="start"/> + </link> + <type s="0.0000000000000000e+0" type="town"> + <speed max="40" unit="mph"/> + </type> + <planView> + <geometry s="0.0000000000000000e+0" x="1.6181814575195313e+2" y="4.3300628662109375e+0" hdg="6.7855848602423441e-2" length="2.7944448373472202e+1"> + <arc curvature="2.4626094082149091e-2"/> + </geometry> + <geometry s="2.7944448373472202e+1" x="1.8692266460418168e+2" y="1.5299136971315846e+1" hdg="7.5601846332131228e-1" length="8.6614618644864627e-1"> + <line/> + </geometry> + <geometry s="2.8810594559920851e+1" x="1.8755284937770512e+2" y="1.5893339266429846e+1" hdg="7.5601846332130851e-1" length="2.7862762516399759e+1"> + <arc curvature="3.8226704798356242e-2"/> + </geometry> + <geometry s="5.6673357076320606e+1" x="1.9495087775501162e+2" y="4.1406677275838760e+1" hdg="1.8211200609024270e+0" length="1.2813688280979882e+1"> + <line/> + </geometry> + </planView> + <elevationProfile> + <elevation s="0.0000000000000000e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="1.4570000000000022e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="3.6529999999999980e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <elevation s="5.8489999999999995e+1" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + </elevationProfile> + <lateralProfile> + <superelevation s="0.0000000000000000e+0" a="0.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + </lateralProfile> + <lanes> + <laneOffset s="0.0000000000000000e+0" a="-2.6349999999999998e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <laneSection s="0.0000000000000000e+0" singleSide="false"> + <left> + <lane id="7" type="sidewalk" level="false"> + <link> + <predecessor id="7"/> + <successor id="7"/> + </link> + <width sOffset="0.0000000000000000e+0" a="1.9999999999999982e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{18136a43-3f82-4535-913b-6bd4a694d134}" travelDir="undirected"> + <predecessor id="7" virtual="false"/> + <successor id="7" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="6" type="shoulder" level="false"> + <link> + <predecessor id="6"/> + <successor id="6"/> + </link> + <width sOffset="0.0000000000000000e+0" a="6.3499999999999979e-1" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="curb" material="standard" width="1.5239999999999998e-1" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{c339ccf6-0fbd-4be2-970a-a0e8799a1c70}" travelDir="undirected"> + <predecessor id="6" virtual="false"/> + <successor id="6" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="5" type="driving" level="false"> + <link> + <predecessor id="5"/> + <successor id="5"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="solid" material="standard" color="white" width="1.2500000000000000e-1" laneChange="none"> + <type name="solid"> + <line length="6.9487045357300488e+1" space="0.0000000000000000e+0" width="1.2500000000000000e-1" sOffset="0.0000000000000000e+0" tOffset="0.0000000000000000e+0"/> + </type> + </roadMark> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{9d40134e-e75f-4e9f-9bc1-1b1ea2461301}" travelDir="backward"> + <predecessor id="5" virtual="false"/> + <successor id="5" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="4" type="driving" level="false"> + <link> + <predecessor id="4"/> + <successor id="4"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="both"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{c235b486-93dd-4f48-9f7a-3c3049146a64}" travelDir="backward"> + <predecessor id="4" virtual="false"/> + <successor id="4" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="3" type="driving" level="false"> + <link> + <predecessor id="3"/> + <successor id="3"/> + </link> + <width sOffset="0.0000000000000000e+0" a="5.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="both"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{557a6d06-9ab2-4b62-8dd4-b530156a189e}" travelDir="backward"> + <predecessor id="3" virtual="false"/> + <successor id="3" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="2" type="shoulder" level="false"> + <link> + <predecessor id="2"/> + <successor id="2"/> + </link> + <width sOffset="0.0000000000000000e+0" a="6.3499999999999979e-1" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="solid" material="standard" color="white" width="1.2500000000000000e-1" laneChange="none"> + <type name="solid"> + <line length="6.9487045357300488e+1" space="0.0000000000000000e+0" width="1.2500000000000000e-1" sOffset="0.0000000000000000e+0" tOffset="0.0000000000000000e+0"/> + </type> + </roadMark> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{a916f145-43dc-4026-88c0-7754cc3b2ed2}" travelDir="undirected"> + <predecessor id="2" virtual="false"/> + <successor id="2" virtual="false"/> + </vectorLane> + </userData> + </lane> + <lane id="1" type="sidewalk" level="false"> + <link> + <predecessor id="1"/> + <successor id="1"/> + </link> + <width sOffset="0.0000000000000000e+0" a="2.0000000000000000e+0" b="0.0000000000000000e+0" c="0.0000000000000000e+0" d="0.0000000000000000e+0"/> + <roadMark sOffset="0.0000000000000000e+0" type="curb" material="standard" width="1.5239999999999998e-1" laneChange="none"/> + <speed sOffset="0.0000000000000000e+0" max="4.0000000000000000e+1" unit="mph"/> + <userData> + <vectorLane sOffset="0.0000000000000000e+0" laneId="{61a75f33-c9da-4a84-a7c4-04fdc3bb16e2}" travelDir="undirected"> + <predecessor id="1" virtual="false"/> + <successor id="1" virtual="false"/> + </vectorLane> + </userData> + </lane> + </left> + <center> + <lane id="0" type="none" level="false"> + <roadMark sOffset="0.0000000000000000e+0" type="none" material="standard" color="white" laneChange="none"/> + <userData/> + </lane> + </center> + <userData> + <vectorLaneSection> + <carriageway rightBoundary="0" leftBoundary="0"/> + <carriageway rightBoundary="2" leftBoundary="6"/> + </vectorLaneSection> + </userData> + </laneSection> + </lanes> + <objects> + <object id="17" name="GuardRail" s="2.8162597423735271e+1" t="2.4867814802416035e+1" zOffset="4.8260000348091125e-1" hdg="7.8564628958702087e-2" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="-" type="barrier" width="1.4492580643911968e+1" length="2.9783328806834511e+1"> + <outline> + <cornerLocal u="-1.4891667816162922e+1" v="-8.0619808162990125e-1" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4517019553049494e+1" v="-1.1591017149878695e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4134894371511280e+1" v="-1.5032041275703421e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3745149335580123e+1" v="-1.8386514880871658e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3347980436551353e+1" v="-2.1652751099441616e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2943587398962393e+1" v="-2.4829107437452933e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2532173580157021e+1" v="-2.7913986598889835e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2113945868023094e+1" v="-3.0905837288912608e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1689114576954623e+1" v="-3.3803154993960050e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1257893342090938e+1" v="-3.6604482738322304e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0820499011885829e+1" v="-3.9308411816813305e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0377151539060776e+1" v="-4.1913582503167248e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.9280738699974336e+0" v="-4.4418684733801967e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.4734918326242052e+0" v="-4.6822458766615114e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.0136340228541201e+0" v="-4.9123695814468817e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.5487316896307277e+0" v="-5.1321238653053740e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.0793744295812928e+0" v="-5.3412464262311801e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.2049543992453948e+0" v="-5.6979701704087091e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.3169550109357431e+0" v="-6.0182651931677071e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.4165253495672516e+0" v="-6.3017404833965571e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.5051913766261009e+0" v="-6.5479156344697174e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.5844975331758349e+0" v="-6.7563734524457288e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.6560041224871611e+0" v="-6.9267606630874639e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.7212846657863281e+0" v="-7.0587885105572212e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.8148134366188060e-1" v="-7.1522704255629606e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.1322218340062591e-2" v="-7.2201941906173914e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.9390916400967058e-1" v="-7.2390144853504381e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.0673799315025576e-1" v="-7.2462846286846485e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0196222218390005e+0" v="-7.2420130456839189e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3321360773402375e+0" v="-7.2262055441970574e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.6438543796895999e+0" v="-7.1988836305758355e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.9543530312852511e+0" v="-7.1600844767089313e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.2632095938791394e+0" v="-7.1098608694490650e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.5697774901365165e+0" v="-7.0483316035998200e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.5697774901365165e+0" v="-7.0483316035998200e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.9664766089463797e+0" v="-6.9510079367354507e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.3578107944361477e+0" v="-6.8347742534166400e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.7431002378263827e+0" v="-6.6998492420849516e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.1214527544996429e+0" v="-6.5465453380321748e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.4919922231368048e+0" v="-6.3752175351136771e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.8538606144829259e+0" v="-6.1862625637173778e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.2062199782182006e+0" v="-5.9801179720859636e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.5482543833340117e+0" v="-5.7572611131206770e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.8791718075205495e+0" v="-5.5182080390125776e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.1982059711910154e+0" v="-5.2635123062609495e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.5046181118950699e+0" v="-4.9937636938456649e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.7976986950133664e+0" v="-4.7095868375222665e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.0767690567714112e+0" v="-4.4116397834018812e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.3411829757680778e+0" v="-4.1006124641650672e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.5903280882493220e+0" v="-3.7772252121573331e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.8237602800569164e+0" v="-3.4420267981181496e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.8258913431683652e+0" v="-1.9265691046888946e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1858776066430920e+1" v="2.6598631778417996e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4891660789693503e+1" v="7.2462954603724654e+0" z="-1.5974044864641712e-9" height="3.0480000000000002e-1"/> + </outline> + </object> + <object id="20" name="GuardRail" s="3.0235367264104653e+1" t="6.9322053759966167e+0" zOffset="4.8260000348091125e-1" hdg="4.6567939221858978e-2" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="-" type="barrier" width="1.9090123469912214e+1" length="5.8362763444041732e+1"> + <outline> + <cornerLocal u="-2.9173324461239858e+1" v="3.2367365177340446e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.8482908769293161e+1" v="2.5564820518565483e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.7777748159655786e+1" v="1.8921992911934780e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.7057869397178507e+1" v="1.2438956286768388e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.6323634487680891e+1" v="6.1189707711727692e-1" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.5575412656265925e+1" v="-3.4785500343872400e-3" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.4813580161647423e+1" v="-6.0192179850633920e-1" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.4038520106940794e+1" v="-1.1831317288210954e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.3250622247011677e+1" v="-1.7468160676290836e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.2450282792479669e+1" v="-2.2926913546843934e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.1637904210475767e+1" v="-2.8204830853884886e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.0813895022253419e+1" v="-3.3299258488305412e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.9978669597755285e+1" v="-3.8207634612546855e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.9132647947238780e+1" v="-4.2927490948873555e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.8276255510065312e+1" v="-4.7456454020597647e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.7409922940759330e+1" v="-5.1792246345628286e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.6534051382243618e+1" v="-5.5932846208423683e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.5722137847119953e+1" v="-5.9559584697137637e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4902896437804117e+1" v="-6.3018586987175951e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.4076708794132387e+1" v="-6.6308228800608759e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.3243924989003958e+1" v="-6.9427116247735654e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.2404897890248833e+1" v="-7.2373927791035868e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.1559983011110575e+1" v="-7.5147414805129387e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-1.0709538359607734e+1" v="-7.7746402105847352e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.8539242868385486e+0" v="-8.0169788448179560e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.9935033342926403e+0" v="-8.2416546992897537e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-8.1286400802345611e+0" v="-8.4485725741647428e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-7.2597009852245264e+0" v="-8.6376447940329371e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-6.3870542368414362e+0" v="-8.8087912450597941e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-5.5110695936739660e+0" v="-8.9619394089321958e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-4.6321182286463909e+0" v="-9.0970243935857269e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-3.7505725717446978e+0" v="-9.2139889607010019e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.8665920223561443e+0" v="-9.3128058224883574e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-2.0054967025259032e+0" v="-9.4001030681590834e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="-9.4812418091436257e-1" v="-9.4876368947757186e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1134407440832206e-1" v="-9.5360920438140084e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1718785865691927e+0" v="-9.5454422134049963e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.2320364857872619e+0" v="-9.5156746827498324e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="3.2903754107404666e+0" v="-9.4468299510371168e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="4.3454554748496719e+0" v="-9.3390016825959350e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="5.3958412252665937e+0" v="-9.1923365794637135e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.4403634548306457e+0" v="-9.0069839746297333e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="6.4403634548306741e+0" v="-9.0069839746297333e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.1173329355896726e+0" v="-8.8654502537728348e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="7.7909596475323326e+0" v="-8.7076128682671055e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="8.4605937090357486e+0" v="-8.5336134114276518e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.1258474091793857e+0" v="-8.3435526270686324e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="9.7863355732249886e+0" v="-8.1375405583405183e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.0441675785628348e+1" v="-7.9156964840155553e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1091488611453883e+1" v="-7.6781488494270747e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.1735397816063568e+1" v="-7.4250351921010775e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.2373030582952282e+1" v="-7.1565020621230673e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3004017729605152e+1" v="-6.8727049372875939e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.3627993921249725e+1" v="-6.5738081330780034e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4244597882381242e+1" v="-6.2599847075296537e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.4853472605937071e+1" v="-5.9314163610311397e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.5454265560000067e+1" v="-5.5882933311216760e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.6046628891910615e+1" v="-5.2308142823456905e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.6630219629669796e+1" v="-4.8591861912280905e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.7204699880516245e+1" v="-4.4736242264372521e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.7769737026562638e+1" v="-4.0743516242044535e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.8325003917377757e+1" v="-3.6615995590727977e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.8870179059403057e+1" v="-3.2356070100491650e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.9404946802094088e+1" v="-2.7966206222384500e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="1.9928997520678649e+1" v="-2.3448945640383414e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.0442027795426213e+1" v="-1.8806903799787591e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.0943740587324783e+1" v="-1.4042768392903042e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.1433845410063213e+1" v="-9.1592978028975836e-1" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.1912058498219636e+1" v="-4.1593195067260069e-1" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.2378102971558661e+1" v="9.5427156194730856e-2" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.2831708995341984e+1" v="6.1785146888838938e-1" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.3272613936559935e+1" v="1.1510385093494193e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.3700562515992885e+1" v="1.6946795680151894e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.4115306959599735e+1" v="2.2484598874668364e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.4516680698384846e+1" v="2.8121644268143200e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.5552631073812449e+1" v="4.3047635550027223e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.8687788160954824e+1" v="8.8219022084637828e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + <cornerLocal u="2.9189438901375723e+1" v="9.5446812868665489e+0" z="-1.5974045974864737e-9" height="3.0480000000000002e-1"/> + </outline> + </object> + <object id="8" name="LadderCrosswalk" s="3.6983128232780906e+1" t="2.8921039860091184e+0" zOffset="1.5239715576171872e-1" hdg="1.6874742507934570e+0" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="+" type="crosswalk" width="2.9356750426687226e+0" length="1.1268902402443283e+1"> + <outline> + <cornerLocal u="-5.6345908802070426e+0" v="1.0291129227297091e+0" z="0.0000000000000000e+0"/> + <cornerLocal u="-4.9066939104164931e-2" v="1.2479083834436437e+0" z="1.9073486328125000e-6"/> + <cornerLocal u="5.5364570019987127e+0" v="1.4667038441575784e+0" z="3.8146972656250000e-6"/> + <cornerLocal u="5.6343116502380894e+0" v="-1.0313803423500048e+0" z="3.8146972656250000e-6"/> + <cornerLocal u="4.8787709135183377e-2" v="-1.2501758030639394e+0" z="1.9073486328125000e-6"/> + <cornerLocal u="-5.5367362319676943e+0" v="-1.4689712637778740e+0" z="0.0000000000000000e+0"/> + <cornerLocal u="-5.6345908802070426e+0" v="1.0291129227297091e+0" z="0.0000000000000000e+0"/> + </outline> + </object> + </objects> + </road> + <road name="OriginReferenceRoad" length="1.0000000000000000e+2" id="29" junction="-1"> + <planView> + <geometry s="0.0000000000000000e+0" x="-1.1951063149032376e+2" y="5.0000000000000000e+1" hdg="-1.5707963267948966e+0" length="1.0000000000000000e+2"> + <line/> + </geometry> + </planView> + <lanes> + <laneSection s="0.0000000000000000e+0" singleSide="false"> + <center> + <lane id="0" type="none" level="false"> + <userData/> + </lane> + </center> + <userData> + <vectorLaneSection> + <carriageway rightBoundary="0" leftBoundary="0"/> + </vectorLaneSection> + </userData> + </laneSection> + </lanes> + <objects> + <object id="30" name="OriginReference" s="5.0000000000000000e+1" t="1.1951063149032376e+2" zOffset="0.0000000000000000e+0" hdg="0.0000000000000000e+0" roll="0.0000000000000000e+0" pitch="0.0000000000000000e+0" orientation="none" type="-1"/> + </objects> + </road> +</OpenDRIVE> \ No newline at end of file diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d0c3cbf1020d5c292abdedf27627c6abe25e2293 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6ea589631513c4417117c3af7b04bbc9c43def4a --- /dev/null +++ b/docs/README.md @@ -0,0 +1,38 @@ +# Verse Library Documentation +This forder contains the documentation template for the Verse library. The documentation is automatically generated using [sphinx](https://www.sphinx-doc.org/en/master/). + +## Prerequsites +The following libraries are required for compile verse's document +- sphinx +- myst-parser +- numpydoc +- sphinx_rtd_theme + +The required packages can be installed using command +``` +python3 -m pip install -r requirements-doc.txt +``` + +## Compiling documents +### For Linux +For linux user, the document can be compiled using command +``` +make html +``` +in the ```docs/``` folder + +### For Windows +For Windows user, the document can be compiled using command +``` +./make.bat html +``` +in the ```docs/``` folder + +## Viewing documents +The compiled result can be found in ```docs/build/html``` folder. The root of the compiled document is stored in ```docs/build/html/index.html``` + +## Example architectural document +An example highlevel architectural document can be found in file ```docs/source/parser.md``` + +## Example docstring for class/function +An example docstring for class function can be found in file ```verse/agents/base_agent.py``` for class ```BaseAgent``` and function ```BaseAgent.__init__``` and ```BaseAgent.TC_simulate``` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000000000000000000000000000000000000..747ffb7b3033659bdd2d1e6eae41ecb00358a45e --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/requirements-doc.txt b/docs/requirements-doc.txt new file mode 100644 index 0000000000000000000000000000000000000000..51e879c7ad281922a5c05de74ce5ce5ed200914a --- /dev/null +++ b/docs/requirements-doc.txt @@ -0,0 +1,4 @@ +sphinx +myst-parser +sphinx_rtd_theme +numpydoc \ No newline at end of file diff --git a/docs/source/_templates/custom-class-template.rst b/docs/source/_templates/custom-class-template.rst new file mode 100644 index 0000000000000000000000000000000000000000..6386a5c7bec1ac21993346655ceddea1d57f4187 --- /dev/null +++ b/docs/source/_templates/custom-class-template.rst @@ -0,0 +1,9 @@ +{{ fullname | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: + :show-inheritance: + :inherited-members: + diff --git a/docs/source/_templates/custom-module-template.rst b/docs/source/_templates/custom-module-template.rst new file mode 100644 index 0000000000000000000000000000000000000000..8a260087cdfa355c745a6d9fcc8a26fc144b3d07 --- /dev/null +++ b/docs/source/_templates/custom-module-template.rst @@ -0,0 +1,66 @@ +{{ fullname | escape | underline}} + +.. automodule:: {{ fullname }} + + {% block attributes %} + {% if attributes %} + .. rubric:: {{ _('Module Attributes') }} + + .. autosummary:: + :toctree: + {% for item in attributes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block functions %} + {% if functions %} + .. rubric:: {{ _('Functions') }} + + .. autosummary:: + :toctree: + {% for item in functions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block classes %} + {% if classes %} + .. rubric:: {{ _('Classes') }} + + .. autosummary:: + :toctree: + :template: custom-class-template.rst + {% for item in classes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block exceptions %} + {% if exceptions %} + .. rubric:: {{ _('Exceptions') }} + + .. autosummary:: + :toctree: + {% for item in exceptions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + +{% block modules %} +{% if modules %} +.. rubric:: Modules + +.. autosummary:: + :toctree: + :template: custom-module-template.rst + :recursive: +{% for item in modules %} + {{ item }} +{%- endfor %} +{% endif %} +{% endblock %} diff --git a/docs/source/agent.rst b/docs/source/agent.rst new file mode 100644 index 0000000000000000000000000000000000000000..0cc6dddfb3aed809d359ba3576654359b2340752 --- /dev/null +++ b/docs/source/agent.rst @@ -0,0 +1,2 @@ +Agent +===== \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000000000000000000000000000000000000..57ef28ba86b8064697ff633b5b592cb71ed8d2b8 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,45 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'verse' +copyright = '2022, Yangge Li, Haoqing Zhu' +author = 'Yangge Li, Haoqing Zhu' +release = '0.2' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [ + 'myst_parser', + 'sphinx.ext.duration', + 'sphinx.ext.doctest', + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx_rtd_theme', + 'numpydoc', +] + +autosummary_generate = True +source_suffix = ['.rst', '.md'] + +templates_path = ['_templates'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'alabaster' +html_static_path = ['_static'] + +def skip(app, what, name, obj, would_skip, options): + if name == "__init__": + return False + return would_skip + +def setup(app): + app.connect("autodoc-skip-member", skip) \ No newline at end of file diff --git a/docs/source/contributors.rst b/docs/source/contributors.rst new file mode 100644 index 0000000000000000000000000000000000000000..39d3352fcef97b63f1b1e9a3d96a9837d87e7bcb --- /dev/null +++ b/docs/source/contributors.rst @@ -0,0 +1,8 @@ +Contributors +============ + +================================== ================================== +Katherine Braught Sayan Mitra +Louis Sungwoo Cho Keyi Shen +Yangge Li Haoqing Zhu +================================== ================================== diff --git a/docs/source/getting_started.rst b/docs/source/getting_started.rst new file mode 100644 index 0000000000000000000000000000000000000000..da548f6b4e8c62bc68d9880c1ea6dcedf4c10693 --- /dev/null +++ b/docs/source/getting_started.rst @@ -0,0 +1,8 @@ +Getting Started +=============== + +*Verse* is a Python library for modeling, simulation, and verification of multi-agent +autonomous systems like cars, drones, and spacecraft, in structured environments like road networks, racetracks, and orbits. + +Installing +__________ \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000000000000000000000000000000000000..7c834a9c126dd692076036eee11bcf4466d80c4a --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,35 @@ +.. verse documentation master file, created by + sphinx-quickstart on Fri Jul 29 22:19:35 2022. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to verse's documentation! +================================= + +.. toctree:: + :maxdepth: 1 + :caption: Contents: + + getting_started.rst + agent.rst + map.rst + sensor.rst + scenario.rst + parser.md + contributors.rst + +API Documentation +~~~~~~~~~~~~~~~~~ +.. autosummary:: + :toctree: _autosummary + :template: custom-module-template.rst + :recursive: + + verse + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/source/map.rst b/docs/source/map.rst new file mode 100644 index 0000000000000000000000000000000000000000..6f233739f7f68739f2f4fe129fa23a71cac0af64 --- /dev/null +++ b/docs/source/map.rst @@ -0,0 +1,2 @@ +Map +=== \ No newline at end of file diff --git a/docs/source/parser.md b/docs/source/parser.md new file mode 100644 index 0000000000000000000000000000000000000000..0bb4af1939e82ff000ebbc1df41a09088c20a53c --- /dev/null +++ b/docs/source/parser.md @@ -0,0 +1,46 @@ +# Parser + +## Goals + +The primary goal of the parser is to obtain single expressions for different parts of the system, so that it's easier for the backend system to do analysis. Since we use a SAT solver (z3) in the backend for checking if a guard in the controller is activated, a single expression would allow us to convert the expression directly into a z3 expression and the satisfiability is checked once. + +## Working Principle + +The parser achieves this by using a simple AST walking interpreter on the input file, with a list of scoped environments to keep track of the values of the variables. The only difference to normal interpreters being that the values of the variables are the ASTs themselves, i.e. no evaluation is done on the ASTs. When the variables are used, the ASTs they contain are substituted into the larger AST they are in. Functions and lambdas work essentially the same way, with the body of the function/lambda substituted with the arguments' ASTs (functions and lambdas actually use the same value augmented to the Python AST i.e. `Lambda`) + +Since the values can only be some form of Python AST (or custom values, as explained below), no builtin functions/variables are supported other than the ones mentioned in [Reductions](#Reductions). Imported modules are also not processed. They are treated as `Hole`s in the environments, i.e. valid defined symbols but the parser knows nothing more about them. Functions that are called as a member of a module or of a variable are preserved and not expanded, as they may be supported by the backend. The use of any other functions will cause an error. + +In order to simplify backend processing, there are 2 new values introduced into the AST (in addition to lambdas), `CondVal`s and `Reduction`s. + +### Conditional Values + +`CondVal`, or conditional values, are used as the primary analysis component for the backend. They store a list of all the possible values a variable can take, as well as the conditions that needs to be met for the values to be taken (i.e. a list of `CondValCase`s). In each case, the list of conditions are implicitly `and`ed together. + +`CondVal`s are constructed when a variable is assigned in a if statement somewhere in the code. When a variable is assigned multiple times in different if statements (or different branches of them), the value will be "merged" together using the test condition. Simply, when a merge happens, the test condition is appended to the list of conditions for each value in the `CondVal`, and if the value is assigned in an else branch, the test is inverted. + +Due to how the execution uncertainty is checked in the backend, the parser also doesn't follow the usual semantics of how `if` statements work. Consider this snippet: + +```python +a = 42 +if test: + a = 3 +``` + +The parser will actually report that `a` could be `42` whenever (no condition needed to trigger) and `3` when `test` is satisfied. In a normal python execution, `a` will only be `42` if `test` is not satisfied (unless the evaluation of `test` causes an exception). + +### <a name="Reductions"></a>Reductions + +Due to the need to support multiple agents, it's necessary to have support for some form of reductions, since the control output will only be one "thing". Arbitrary loops are hard to support, since they can have arbitrary control flow that are hard to analyze. Instead, we support builtin reduction functions (currently only `all` and `any`) called on generator comprehension expressions. These are much better formed and easier to process. When the parser encounters a call like `all(test(o) for o in other_states)` it'll convert that into a `Reduction` value, which will then be unrolled in reachtube computation with the sensor values, or converted back to a normal Python function call to be evaluated in simulation. + +## Limitations + +- Very limited function definition support +- Basically no support for imported modules +- No loops allowed in the code, instead only specific reduction calls are supported +- Unusual if statement semantics +- Only one return statement is supported per function, and it has to be at the end +- State definitions are inferred from the variable type definitions in the class that end in `State`, and the type (discrete/continuous) of the member variable is determined from the name; no method definition is used +- Similar to how states are processed, discrete modes are also class definitions with names ending in `Mode`, and the declaration is assumed to be how `enum.Enum` is usually used; see demos for examples. No method definition is used +- Custom class definitions (other than the states and modes definitions) are not processed + +Some of these may be resolved later, others stem from the limitations of some of the analysis methods and backends (e.g. z3) diff --git a/docs/source/scenario.rst b/docs/source/scenario.rst new file mode 100644 index 0000000000000000000000000000000000000000..59f6d672715450d4a77e4e718bb844208c5d254c --- /dev/null +++ b/docs/source/scenario.rst @@ -0,0 +1,2 @@ +Scenario +======== \ No newline at end of file diff --git a/docs/source/sensor.rst b/docs/source/sensor.rst new file mode 100644 index 0000000000000000000000000000000000000000..7d7cede56c622ec4b46fe1f70fa70a3f98190d8e --- /dev/null +++ b/docs/source/sensor.rst @@ -0,0 +1,2 @@ +Sensor +====== \ No newline at end of file diff --git a/dryvr_plus_plus/example/example_map/__init__.py b/dryvr_plus_plus/example/example_map/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dryvr_plus_plus/example/example_sensor/__init__.py b/dryvr_plus_plus/example/example_sensor/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dryvr_plus_plus/scene_verifier/__init__.py b/dryvr_plus_plus/scene_verifier/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dryvr_plus_plus/scene_verifier/agents/__init__.py b/dryvr_plus_plus/scene_verifier/agents/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dryvr_plus_plus/scene_verifier/agents/base_agent.py b/dryvr_plus_plus/scene_verifier/agents/base_agent.py deleted file mode 100644 index 8acd8218e395c8d6c52a451da53e4aac8f7a83c8..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/agents/base_agent.py +++ /dev/null @@ -1,10 +0,0 @@ -from dryvr_plus_plus.scene_verifier.code_parser.parser import ControllerIR, Env - - -class BaseAgent: - def __init__(self, id, code = None, file_name = None): - self.controller: ControllerIR = ControllerIR.parse(code, file_name) - self.id = id - - def TC_simulate(self, mode, initialSet, time_horizon, time_step, map=None): - raise NotImplementedError diff --git a/dryvr_plus_plus/scene_verifier/analysis/__init__.py b/dryvr_plus_plus/scene_verifier/analysis/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dryvr_plus_plus/scene_verifier/analysis/analysis_tree_node.py b/dryvr_plus_plus/scene_verifier/analysis/analysis_tree_node.py deleted file mode 100644 index 15780164fb1c8ecf7c5c3a3ab2d5852dd51c2f17..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/analysis/analysis_tree_node.py +++ /dev/null @@ -1,30 +0,0 @@ -from typing import List, Dict, Any - -class AnalysisTreeNode: - """AnalysisTreeNode class - A AnalysisTreeNode stores the continous execution of the system without transition happening""" - trace: Dict - """The trace for each agent. - The key of the dict is the agent id and the value of the dict is simulated traces for each agent""" - init: Dict - - def __init__( - self, - trace={}, - init={}, - mode={}, - static = {}, - agent={}, - child=[], - start_time = 0, - ndigits = 10, - type = 'simtrace' - ): - self.trace:Dict = trace - self.init: Dict[str, List[float]] = init - self.mode: Dict[str, List[str]] = mode - self.agent: Dict = agent - self.child: List[AnalysisTreeNode] = child - self.start_time: float = round(start_time, ndigits) - self.type: str = type - self.static: Dict[str, List[str]] = static diff --git a/dryvr_plus_plus/scene_verifier/analysis/verifier.py b/dryvr_plus_plus/scene_verifier/analysis/verifier.py deleted file mode 100644 index 0c65ac0bef0875ce9830394846dffdd0b290625d..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/analysis/verifier.py +++ /dev/null @@ -1,123 +0,0 @@ -from typing import List, Dict -import copy - -import numpy as np - -from dryvr_plus_plus.scene_verifier.agents.base_agent import BaseAgent -from dryvr_plus_plus.scene_verifier.analysis.analysis_tree_node import AnalysisTreeNode -from dryvr_plus_plus.scene_verifier.dryvr.core.dryvrcore import calc_bloated_tube -import dryvr_plus_plus.scene_verifier.dryvr.common.config as userConfig - - -class Verifier: - def __init__(self): - self.reachtube_tree_root = None - self.unsafe_set = None - self.verification_result = None - - def compute_full_reachtube( - self, - init_list: List[float], - init_mode_list: List[str], - static_list: List[str], - agent_list: List[BaseAgent], - transition_graph, - time_horizon, - time_step, - lane_map - ): - root = AnalysisTreeNode() - for i, agent in enumerate(agent_list): - root.init[agent.id] = init_list[i] - init_mode = [elem.name for elem in init_mode_list[i]] - root.mode[agent.id] = init_mode - init_static = [elem.name for elem in static_list[i]] - root.static[agent.id] = init_static - root.agent[agent.id] = agent - root.type = 'reachtube' - self.reachtube_tree_root = root - verification_queue = [] - verification_queue.append(root) - while verification_queue != []: - node: AnalysisTreeNode = verification_queue.pop(0) - # print(node.start_time, node.mode) - remain_time = round(time_horizon - node.start_time, 10) - if remain_time <= 0: - continue - # For reachtubes not already computed - # TODO: can add parallalization for this loop - for agent_id in node.agent: - if agent_id not in node.trace: - # Compute the trace starting from initial condition - mode = node.mode[agent_id] - init = node.init[agent_id] - # trace = node.agent[agent_id].TC_simulate(mode, init, remain_time,lane_map) - # trace[:,0] += node.start_time - # node.trace[agent_id] = trace.tolist() - - cur_bloated_tube = calc_bloated_tube(mode, - init, - remain_time, - time_step, - node.agent[agent_id].TC_simulate, - 'PW', - 100, - userConfig.SIMTRACENUM, - lane_map=lane_map - ) - trace = np.array(cur_bloated_tube) - trace[:, 0] += node.start_time - node.trace[agent_id] = trace.tolist() - # print("here") - - # TODO: Check safety conditions here - - # Get all possible transitions to next mode - all_possible_transitions = transition_graph.get_transition_verify_new( - node) - print('all_possible_transitions', all_possible_transitions) - max_end_idx = 0 - for transition in all_possible_transitions: - transit_agent_idx, src_mode, dest_mode, next_init, idx = transition - start_idx, end_idx = idx - - truncated_trace = {} - for agent_idx in node.agent: - truncated_trace[agent_idx] = node.trace[agent_idx][start_idx*2:] - if end_idx > max_end_idx: - max_end_idx = end_idx - - if dest_mode is None: - continue - - next_node_mode = copy.deepcopy(node.mode) - next_node_mode[transit_agent_idx] = dest_mode - next_node_agent = node.agent - next_node_start_time = list(truncated_trace.values())[0][0][0] - next_node_init = {} - next_node_trace = {} - for agent_idx in next_node_agent: - if agent_idx == transit_agent_idx: - next_node_init[agent_idx] = next_init - else: - next_node_trace[agent_idx] = truncated_trace[agent_idx] - - tmp = AnalysisTreeNode( - trace=next_node_trace, - init=next_node_init, - mode=next_node_mode, - agent=next_node_agent, - child=[], - start_time=round(next_node_start_time, 10), - type='reachtube' - ) - node.child.append(tmp) - verification_queue.append(tmp) - - """Truncate trace of current node based on max_end_idx""" - """Only truncate when there's transitions""" - if all_possible_transitions: - for agent_idx in node.agent: - node.trace[agent_idx] = node.trace[agent_idx][:( - max_end_idx+1)*2] - return root diff --git a/dryvr_plus_plus/scene_verifier/automaton/__init__.py b/dryvr_plus_plus/scene_verifier/automaton/__init__.py deleted file mode 100644 index a1ae96f571beeb44895a0b155022d6c852604e6e..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/automaton/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# try: -# from hybrid_automaton import * -# except: -# from scene_verifier.automaton.hybrid_automaton import * \ No newline at end of file diff --git a/dryvr_plus_plus/scene_verifier/automaton/guard_backup.py b/dryvr_plus_plus/scene_verifier/automaton/guard_backup.py deleted file mode 100644 index af2665d53db6ebe85b8082c738de0b0623faeca2..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/automaton/guard_backup.py +++ /dev/null @@ -1,1082 +0,0 @@ -import enum -import re -from typing import List, Dict, Any -import pickle -import ast -import copy - -from z3 import * -import astunparse -import numpy as np - -from dryvr_plus_plus.scene_verifier.map.lane_map import LaneMap -from dryvr_plus_plus.scene_verifier.map.lane_segment import AbstractLane -from dryvr_plus_plus.scene_verifier.utils.utils import * -from dryvr_plus_plus.scene_verifier.code_parser.parser import Reduction, ReductionType - -class LogicTreeNode: - def __init__(self, data, child = [], val = None, mode_guard = None): - self.data = data - self.child = child - self.val = val - self.mode_guard = mode_guard - -class NodeSubstituter(ast.NodeTransformer): - def __init__(self, old_node, new_node): - super().__init__() - self.old_node = old_node - self.new_node = new_node - - def visit_Reduction(self, node: Reduction) -> Any: - if node == self.old_node: - self.generic_visit(node) - return self.new_node - else: - self.generic_visit(node) - return node - - # def visit_Call(self, node: ast.Call) -> Any: - # if node == self.old_node: - # self.generic_visit(node) - # return self.new_node - # else: - # self.generic_visit(node) - # return node - -class ValueSubstituter(ast.NodeTransformer): - def __init__(self, val:str, node): - super().__init__() - self.val = val - self.node = node - - def visit_Attribute(self, node: ast.Attribute) -> Any: - # Substitute attribute node in the ast - if isinstance(self.node, Reduction): - return node - if node == self.node: - return ast.Name( - id = self.val, - ctx = ast.Load() - ) - return node - - def visit_Name(self, node: ast.Attribute) -> Any: - # Substitute name node in the ast - if isinstance(self.node, Reduction): - return node - if node == self.node: - return ast.Name( - id = self.val, - ctx = ast.Load - ) - return node - - def visit_Reduction(self, node: Reduction) -> Any: - if node == self.node: - if len(self.val) == 1: - self.generic_visit(node) - return self.val[0] - elif node.op == ReductionType.Any: - self.generic_visit(node) - return ast.BoolOp( - op = ast.Or(), - values = self.val - ) - elif node.op == ReductionType.All: - self.generic_visit(node) - return ast.BoolOp( - op = ast.And(), - values = self.val - ) - self.generic_visit(node) - return node - -class GuardExpressionAst: - def __init__(self, guard_list): - self.ast_list = copy.deepcopy(guard_list) - self.cont_variables = {} - self.varDict = {} - - def _build_guard(self, guard_str, agent): - """ - Build solver for current guard based on guard string - - Args: - guard_str (str): the guard string. - For example:"And(v>=40-0.1*u, v-40+0.1*u<=0)" - - Returns: - A Z3 Solver obj that check for guard. - A symbol index dic obj that indicates the index - of variables that involved in the guard. - """ - cur_solver = Solver() - # This magic line here is because SymPy will evaluate == to be False - # Therefore we are not be able to get free symbols from it - # Thus we need to replace "==" to something else - - symbols_map = {v: k for k, v in self.cont_variables.items()} - - for vars in reversed(self.cont_variables): - guard_str = guard_str.replace(vars, self.cont_variables[vars]) - # XXX `locals` should override `globals` right? - cur_solver.add(eval(guard_str, globals(), self.varDict)) # TODO use an object instead of `eval` a string - return cur_solver, symbols_map - - def evaluate_guard_cont(self, agent, continuous_variable_dict, lane_map): - res = False - is_contained = False - - for cont_vars in continuous_variable_dict: - underscored = cont_vars.replace('.','_') - self.cont_variables[cont_vars] = underscored - self.varDict[underscored] = Real(underscored) - - z3_string = self.generate_z3_expression() - if isinstance(z3_string, bool): - return z3_string, z3_string - - cur_solver, symbols = self._build_guard(z3_string, agent) - cur_solver.push() - for symbol in symbols: - start, end = continuous_variable_dict[symbols[symbol]] - cur_solver.add(self.varDict[symbol] >= start, self.varDict[symbol] <= end) - if cur_solver.check() == sat: - # The reachtube hits the guard - cur_solver.pop() - res = True - - tmp_solver = Solver() - tmp_solver.add(Not(cur_solver.assertions()[0])) - for symbol in symbols: - start, end = continuous_variable_dict[symbols[symbol]] - tmp_solver.add(self.varDict[symbol] >= start, self.varDict[symbol] <= end) - if tmp_solver.check() == unsat: - print("Full intersect, break") - is_contained = True - - return res, is_contained - - def generate_z3_expression(self): - """ - The return value of this function will be a bool/str - - If without evaluating the continuous variables the result is True, then - the guard will automatically be satisfied and is_contained will be True - - If without evaluating the continuous variables the result is False, th- - en the guard will automatically be unsatisfied - - If the result is a string, then continuous variables will be checked to - see if the guard can be satisfied - """ - res = [] - for node in self.ast_list: - tmp = self._generate_z3_expression_node(node) - if isinstance(tmp, bool): - if not tmp: - return False - else: - continue - res.append(tmp) - if res == []: - return True - elif len(res) == 1: - return res[0] - res = "And("+",".join(res)+")" - return res - - def _generate_z3_expression_node(self, node): - """ - Perform a DFS over expression ast and generate the guard expression - The return value of this function can be a bool/str - - If without evaluating the continuous variables the result is True, then - the guard condition will automatically be satisfied - - If without evaluating the continuous variables the result is False, then - the guard condition will not be satisfied - - If the result is a string, then continuous variables will be checked to - see if the guard can be satisfied - """ - if isinstance(node, ast.BoolOp): - # Check the operator - # For each value in the boolop, check results - if isinstance(node.op, ast.And): - z3_str = [] - for i,val in enumerate(node.values): - tmp = self._generate_z3_expression_node(val) - if isinstance(tmp, bool): - if tmp: - continue - else: - return False - z3_str.append(tmp) - if len(z3_str) == 1: - z3_str = z3_str[0] - else: - z3_str = 'And('+','.join(z3_str)+')' - return z3_str - elif isinstance(node.op, ast.Or): - z3_str = [] - for val in node.values: - tmp = self._generate_z3_expression_node(val) - if isinstance(tmp, bool): - if tmp: - return True - else: - continue - z3_str.append(tmp) - if len(z3_str) == 1: - z3_str = z3_str[0] - else: - z3_str = 'Or('+','.join(z3_str)+')' - return z3_str - # If string, construct string - # If bool, check result and discard/evaluate result according to operator - pass - elif isinstance(node, ast.Constant): - # If is bool, return boolean result - if isinstance(node.value, bool): - return node.value - # Else, return raw expression - else: - expr = astunparse.unparse(node) - expr = expr.strip('\n') - return expr - elif isinstance(node, ast.UnaryOp): - # If is UnaryOp, - value = self._generate_z3_expression_node(node.operand) - if isinstance(node.op, ast.USub): - return -value - elif isinstance(node.op, ast.Not): - z3_str = 'Not('+value+')' - return z3_str - else: - raise NotImplementedError(f"UnaryOp {node.op} is not supported") - else: - # For other cases, we can return the expression directly - expr = astunparse.unparse(node) - expr = expr.strip('\n') - return expr - - def evaluate_guard_hybrid(self, agent, discrete_variable_dict, continuous_variable_dict, lane_map:LaneMap): - """ - Handle guard atomics that contains both continuous and hybrid variables - Especially, we want to handle function calls that need both continuous and - discrete variables as input - We will perform interval arithmetic based on the function calls to the input and replace the function calls - with temp constants with their values stored in the continuous variable dict - By doing this, all calls that need both continuous and discrete variables as input will now become only continuous - variables. We can then handle these using what we already have for the continous variables - """ - res = True - for i, node in enumerate(self.ast_list): - tmp, self.ast_list[i] = self._evaluate_guard_hybrid(node, agent, discrete_variable_dict, continuous_variable_dict, lane_map) - res = res and tmp - return res - - def _evaluate_guard_hybrid(self, root, agent, disc_var_dict, cont_var_dict, lane_map:LaneMap): - if isinstance(root, ast.Compare): - expr = astunparse.unparse(root) - left, root.left = self._evaluate_guard_hybrid(root.left, agent, disc_var_dict, cont_var_dict, lane_map) - right, root.comparators[0] = self._evaluate_guard_hybrid(root.comparators[0], agent, disc_var_dict, cont_var_dict, lane_map) - return True, root - elif isinstance(root, ast.BoolOp): - if isinstance(root.op, ast.And): - res = True - for i, val in enumerate(root.values): - tmp, root.values[i] = self._evaluate_guard_hybrid(val, agent, disc_var_dict, cont_var_dict, lane_map) - res = res and tmp - if not res: - break - return res, root - elif isinstance(root.op, ast.Or): - res = False - for val in root.values: - tmp,val = self._evaluate_guard_hybrid(val, agent, disc_var_dict, cont_var_dict, lane_map) - res = res or tmp - return res, root - elif isinstance(root, ast.BinOp): - left, root.left = self._evaluate_guard_hybrid(root.left, agent, disc_var_dict, cont_var_dict, lane_map) - right, root.right = self._evaluate_guard_hybrid(root.right, agent, disc_var_dict, cont_var_dict, lane_map) - return True, root - elif isinstance(root, ast.Call): - if isinstance(root.func, ast.Attribute): - func = root.func - if func.value.id == 'lane_map': - if func.attr == 'get_lateral_distance': - # Get function arguments - arg0_node = root.args[0] - arg1_node = root.args[1] - if isinstance(arg0_node, ast.Attribute): - arg0_var = arg0_node.value.id + '.' + arg0_node.attr - elif isinstance(arg0_node, ast.Name): - arg0_var = arg0_node.id - else: - raise ValueError(f"Node type {type(arg0_node)} is not supported") - vehicle_lane = disc_var_dict[arg0_var] - assert isinstance(arg1_node, ast.List) - arg1_lower = [] - arg1_upper = [] - for elt in arg1_node.elts: - if isinstance(elt, ast.Attribute): - var = elt.value.id + '.' + elt.attr - elif isinstance(elt, ast.Name): - var = elt.id - else: - raise ValueError(f"Node type {type(elt)} is not supported") - arg1_lower.append(cont_var_dict[var][0]) - arg1_upper.append(cont_var_dict[var][1]) - vehicle_pos = (arg1_lower, arg1_upper) - - # Get corresponding lane segments with respect to the set of vehicle pos - lane_seg1 = lane_map.get_lane_segment(vehicle_lane, arg1_lower) - lane_seg2 = lane_map.get_lane_segment(vehicle_lane, arg1_upper) - - # Compute the set of possible lateral values with respect to all possible segments - lateral_set1 = self._handle_lateral_set(lane_seg1, np.array(vehicle_pos)) - lateral_set2 = self._handle_lateral_set(lane_seg2, np.array(vehicle_pos)) - - # Use the union of two sets as the set of possible lateral positions - lateral_set = [min(lateral_set1[0], lateral_set2[0]), max(lateral_set1[1], lateral_set2[1])] - - # Construct the tmp variable - tmp_var_name = f'tmp_variable{len(cont_var_dict)+1}' - # Add the tmp variable to the cont var dict - cont_var_dict[tmp_var_name] = lateral_set - # Replace the corresponding function call in ast - root = ast.parse(tmp_var_name).body[0].value - return True, root - elif func.attr == 'get_longitudinal_position': - # Get function arguments - arg0_node = root.args[0] - arg1_node = root.args[1] - # assert isinstance(arg0_node, ast.Attribute) - if isinstance(arg0_node, ast.Attribute): - arg0_var = arg0_node.value.id + '.' + arg0_node.attr - elif isinstance(arg0_node, ast.Name): - arg0_var = arg0_node.id - else: - raise ValueError(f"Node type {type(arg0_node)} is not supported") - vehicle_lane = disc_var_dict[arg0_var] - assert isinstance(arg1_node, ast.List) - arg1_lower = [] - arg1_upper = [] - for elt in arg1_node.elts: - if isinstance(elt, ast.Attribute): - var = elt.value.id + '.' + elt.attr - elif isinstance(elt, ast.Name): - var = elt.id - else: - raise ValueError(f"Node type {type(elt)} is not supported") - arg1_lower.append(cont_var_dict[var][0]) - arg1_upper.append(cont_var_dict[var][1]) - vehicle_pos = (arg1_lower, arg1_upper) - - # Get corresponding lane segments with respect to the set of vehicle pos - lane_seg1 = lane_map.get_lane_segment(vehicle_lane, arg1_lower) - lane_seg2 = lane_map.get_lane_segment(vehicle_lane, arg1_upper) - - # Compute the set of possible longitudinal values with respect to all possible segments - longitudinal_set1 = self._handle_longitudinal_set(lane_seg1, np.array(vehicle_pos)) - longitudinal_set2 = self._handle_longitudinal_set(lane_seg2, np.array(vehicle_pos)) - - # Use the union of two sets as the set of possible longitudinal positions - longitudinal_set = [min(longitudinal_set1[0], longitudinal_set2[0]), max(longitudinal_set1[1], longitudinal_set2[1])] - - # Construct the tmp variable - tmp_var_name = f'tmp_variable{len(cont_var_dict)+1}' - # Add the tmp variable to the cont var dict - cont_var_dict[tmp_var_name] = longitudinal_set - # Replace the corresponding function call in ast - root = ast.parse(tmp_var_name).body[0].value - return True, root - else: - raise ValueError(f'Node type {func} from {astunparse.unparse(func)} is not supported') - else: - raise ValueError(f'Node type {func} from {astunparse.unparse(func)} is not supported') - else: - raise ValueError(f'Node type {root.func} from {astunparse.unparse(root.func)} is not supported') - elif isinstance(root, ast.Attribute): - return True, root - elif isinstance(root, ast.Constant): - return root.value, root - elif isinstance(root, ast.Name): - return True, root - elif isinstance(root, ast.UnaryOp): - if isinstance(root.op, ast.USub): - res, root.operand = self._evaluate_guard_hybrid(root.operand, agent, disc_var_dict, cont_var_dict, lane_map) - elif isinstance(root.op, ast.Not): - res, root.operand = self._evaluate_guard_hybrid(root.operand, agent, disc_var_dict, cont_var_dict, lane_map) - if not res: - root.operand = ast.parse('False').body[0].value - return True, ast.parse('True').body[0].value - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - return True, root - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - - def _handle_longitudinal_set(self, lane_seg: AbstractLane, position: np.ndarray) -> List[float]: - if lane_seg.type == "Straight": - # Delta lower - delta0 = position[0,:] - lane_seg.start - # Delta upper - delta1 = position[1,:] - lane_seg.start - - longitudinal_low = min(delta0[0]*lane_seg.direction[0], delta1[0]*lane_seg.direction[0]) + \ - min(delta0[1]*lane_seg.direction[1], delta1[1]*lane_seg.direction[1]) - longitudinal_high = max(delta0[0]*lane_seg.direction[0], delta1[0]*lane_seg.direction[0]) + \ - max(delta0[1]*lane_seg.direction[1], delta1[1]*lane_seg.direction[1]) - longitudinal_low += lane_seg.longitudinal_start - longitudinal_high += lane_seg.longitudinal_start - - assert longitudinal_high >= longitudinal_low - return longitudinal_low, longitudinal_high - elif lane_seg.type == "Circular": - # Delta lower - delta0 = position[0,:] - lane_seg.center - # Delta upper - delta1 = position[1,:] - lane_seg.center - - phi0 = np.min([ - np.arctan2(delta0[1], delta0[0]), - np.arctan2(delta0[1], delta1[0]), - np.arctan2(delta1[1], delta0[0]), - np.arctan2(delta1[1], delta1[0]), - ]) - phi1 = np.max([ - np.arctan2(delta0[1], delta0[0]), - np.arctan2(delta0[1], delta1[0]), - np.arctan2(delta1[1], delta0[0]), - np.arctan2(delta1[1], delta1[0]), - ]) - - phi0 = lane_seg.start_phase + wrap_to_pi(phi0 - lane_seg.start_phase) - phi1 = lane_seg.start_phase + wrap_to_pi(phi1 - lane_seg.start_phase) - longitudinal_low = min( - lane_seg.direction * (phi0 - lane_seg.start_phase)*lane_seg.radius, - lane_seg.direction * (phi1 - lane_seg.start_phase)*lane_seg.radius - ) + lane_seg.longitudinal_start - longitudinal_high = max( - lane_seg.direction * (phi0 - lane_seg.start_phase)*lane_seg.radius, - lane_seg.direction * (phi1 - lane_seg.start_phase)*lane_seg.radius - ) + lane_seg.longitudinal_start - - assert longitudinal_high >= longitudinal_low - return longitudinal_low, longitudinal_high - else: - raise ValueError(f'Lane segment with type {lane_seg.type} is not supported') - - def _handle_lateral_set(self, lane_seg: AbstractLane, position: np.ndarray) -> List[float]: - if lane_seg.type == "Straight": - # Delta lower - delta0 = position[0,:] - lane_seg.start - # Delta upper - delta1 = position[1,:] - lane_seg.start - - lateral_low = min(delta0[0]*lane_seg.direction_lateral[0], delta1[0]*lane_seg.direction_lateral[0]) + \ - min(delta0[1]*lane_seg.direction_lateral[1], delta1[1]*lane_seg.direction_lateral[1]) - lateral_high = max(delta0[0]*lane_seg.direction_lateral[0], delta1[0]*lane_seg.direction_lateral[0]) + \ - max(delta0[1]*lane_seg.direction_lateral[1], delta1[1]*lane_seg.direction_lateral[1]) - assert lateral_high >= lateral_low - return lateral_low, lateral_high - elif lane_seg.type == "Circular": - dx = np.max([position[0,0]-lane_seg.center[0],0,lane_seg.center[0]-position[1,0]]) - dy = np.max([position[0,1]-lane_seg.center[1],0,lane_seg.center[1]-position[1,1]]) - r_low = np.linalg.norm([dx, dy]) - - dx = np.max([np.abs(position[0,0]-lane_seg.center[0]),np.abs(position[1,0]-lane_seg.center[0])]) - dy = np.max([np.abs(position[0,1]-lane_seg.center[1]),np.abs(position[1,1]-lane_seg.center[1])]) - r_high = np.linalg.norm([dx, dy]) - lateral_low = min(lane_seg.direction*(lane_seg.radius - r_high),lane_seg.direction*(lane_seg.radius - r_low)) - lateral_high = max(lane_seg.direction*(lane_seg.radius - r_high),lane_seg.direction*(lane_seg.radius - r_low)) - # print(lateral_low, lateral_high) - assert lateral_high >= lateral_low - return lateral_low, lateral_high - else: - raise ValueError(f'Lane segment with type {lane_seg.type} is not supported') - - def evaluate_guard_disc(self, agent, discrete_variable_dict, continuous_variable_dict, lane_map): - """ - Evaluate guard that involves only discrete variables. - """ - res = True - for i, node in enumerate(self.ast_list): - tmp, self.ast_list[i] = self._evaluate_guard_disc(node, agent, discrete_variable_dict, continuous_variable_dict, lane_map) - res = res and tmp - return res - - def _evaluate_guard_disc(self, root, agent, disc_var_dict, cont_var_dict, lane_map): - """ - Recursively called function to evaluate guard with only discrete variables - The function will evaluate all guards with discrete variables and replace the nodes with discrete guards by - boolean constants - - :params: - :return: The return value will be a tuple. The first element in the tuple will either be a boolean value or a the evaluated value of of an expression involving guard - The second element in the tuple will be the updated ast node - """ - if isinstance(root, ast.Compare): - expr = astunparse.unparse(root) - left, root.left = self._evaluate_guard_disc(root.left, agent, disc_var_dict, cont_var_dict, lane_map) - right, root.comparators[0] = self._evaluate_guard_disc(root.comparators[0], agent, disc_var_dict, cont_var_dict, lane_map) - if isinstance(left, bool) or isinstance(right, bool): - return True, root - if isinstance(root.ops[0], ast.GtE): - res = left>=right - elif isinstance(root.ops[0], ast.Gt): - res = left>right - elif isinstance(root.ops[0], ast.Lt): - res = left<right - elif isinstance(root.ops[0], ast.LtE): - res = left<=right - elif isinstance(root.ops[0], ast.Eq): - res = left == right - elif isinstance(root.ops[0], ast.NotEq): - res = left != right - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - if res: - root = ast.parse('True').body[0].value - else: - root = ast.parse('False').body[0].value - return res, root - elif isinstance(root, ast.BoolOp): - if isinstance(root.op, ast.And): - res = True - for i,val in enumerate(root.values): - tmp,root.values[i] = self._evaluate_guard_disc(val, agent, disc_var_dict, cont_var_dict, lane_map) - res = res and tmp - if not res: - break - return res, root - elif isinstance(root.op, ast.Or): - res = False - for val in root.values: - tmp,val = self._evaluate_guard_disc(val, agent, disc_var_dict, cont_var_dict, lane_map) - res = res or tmp - return res, root - elif isinstance(root, ast.BinOp): - # Check left and right in the binop and replace all attributes involving discrete variables - left, root.left = self._evaluate_guard_disc(root.left, agent, disc_var_dict, cont_var_dict, lane_map) - right, root.right = self._evaluate_guard_disc(root.right, agent, disc_var_dict, cont_var_dict, lane_map) - return True, root - elif isinstance(root, ast.Call): - expr = astunparse.unparse(root) - # Check if the root is a function - if any([var in expr for var in disc_var_dict]) and all([var not in expr for var in cont_var_dict]): - # tmp = re.split('\(|\)',expr) - # while "" in tmp: - # tmp.remove("") - # for arg in tmp[1:]: - # if arg in disc_var_dict: - # expr = expr.replace(arg,f'"{disc_var_dict[arg]}"') - # res = eval(expr) - for arg in disc_var_dict: - expr = expr.replace(arg, f'"{disc_var_dict[arg]}"') - res = eval(expr) - if isinstance(res, bool): - if res: - root = ast.parse('True').body[0].value - else: - root = ast.parse('False').body[0].value - else: - # TODO-PARSER: Handle This - for mode_name in agent.controller.modes: - # TODO-PARSER: Handle This - if res in agent.controller.modes[mode_name]: - res = mode_name+'.'+res - break - root = ast.parse(str(res)).body[0].value - return res, root - else: - return True, root - elif isinstance(root, ast.Attribute): - expr = astunparse.unparse(root) - expr = expr.strip('\n') - if expr in disc_var_dict: - val = disc_var_dict[expr] - # TODO-PARSER: Handle This - for mode_name in agent.controller.modes: - # TODO-PARSER: Handle This - if val in agent.controller.modes[mode_name]: - val = mode_name+'.'+val - break - return val, root - # TODO-PARSER: Handle This - elif root.value.id in agent.controller.modes: - return expr, root - else: - return True, root - elif isinstance(root, ast.Constant): - return root.value, root - elif isinstance(root, ast.UnaryOp): - if isinstance(root.op, ast.USub): - res, root.operand = self._evaluate_guard_disc(root.operand, agent, disc_var_dict, cont_var_dict, lane_map) - elif isinstance(root.op, ast.Not): - res, root.operand = self._evaluate_guard_disc(root.operand, agent, disc_var_dict, cont_var_dict, lane_map) - if not res: - root.operand = ast.parse('False').body[0].value - return True, ast.parse('True').body[0].value - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - return True, root - elif isinstance(root, ast.Name): - expr = root.id - if expr in disc_var_dict: - val = disc_var_dict[expr] - # TODO-PARSER: Handle This - for mode_name in agent.controller.modes: - # TODO-PARSER: Handle This - if val in agent.controller.modes[mode_name]: - val = mode_name + '.' + val - break - return val, root - else: - return True, root - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - - def evaluate_guard_old(self, agent, continuous_variable_dict, discrete_variable_dict, lane_map): - res = True - for i, node in enumerate(self.ast_list): - tmp = self._evaluate_guard_old(node, agent, continuous_variable_dict, discrete_variable_dict, lane_map) - res = tmp and res - if not res: - break - return res - - def _evaluate_guard_old(self, root, agent, cnts_var_dict, disc_var_dict, lane_map): - if isinstance(root, ast.Compare): - left = self._evaluate_guard_old(root.left, agent, cnts_var_dict, disc_var_dict, lane_map) - right = self._evaluate_guard_old(root.comparators[0], agent, cnts_var_dict, disc_var_dict, lane_map) - if isinstance(root.ops[0], ast.GtE): - return left>=right - elif isinstance(root.ops[0], ast.Gt): - return left>right - elif isinstance(root.ops[0], ast.Lt): - return left<right - elif isinstance(root.ops[0], ast.LtE): - return left<=right - elif isinstance(root.ops[0], ast.Eq): - return left == right - elif isinstance(root.ops[0], ast.NotEq): - return left != right - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - - elif isinstance(root, ast.BoolOp): - if isinstance(root.op, ast.And): - res = True - for val in root.values: - tmp = self._evaluate_guard_old(val, agent, cnts_var_dict, disc_var_dict, lane_map) - res = res and tmp - if not res: - break - return res - elif isinstance(root.op, ast.Or): - res = False - for val in root.values: - tmp = self._evaluate_guard_old(val, agent, cnts_var_dict, disc_var_dict, lane_map) - res = res or tmp - if res: - break - return res - elif isinstance(root, ast.BinOp): - left = self._evaluate_guard_old(root.left, agent, cnts_var_dict, disc_var_dict, lane_map) - right = self._evaluate_guard_old(root.right, agent, cnts_var_dict, disc_var_dict, lane_map) - if isinstance(root.op, ast.Sub): - return left - right - elif isinstance(root.op, ast.Add): - return left + right - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - elif isinstance(root, ast.Call): - expr = astunparse.unparse(root) - # Check if the root is a function - if isinstance(root.func, ast.Attribute) and "map" in root.func.value.id: - # if 'map' in expr: - # tmp = re.split('\(|\)',expr) - # while "" in tmp: - # tmp.remove("") - # for arg in tmp[1:]: - # if arg in disc_var_dict: - # expr = expr.replace(arg,f'"{disc_var_dict[arg]}"') - # res = eval(expr) - for arg in disc_var_dict: - expr = expr.replace(arg, f'"{disc_var_dict[arg]}"') - for arg in cnts_var_dict: - expr = expr.replace(arg, str(cnts_var_dict[arg])) - res = eval(expr) - # TODO-PARSER: Handle This - for mode_name in agent.controller.modes: - # TODO-PARSER: Handle This - if res in agent.controller.modes[mode_name]: - res = mode_name+'.'+res - break - return res - elif isinstance(root, ast.Attribute): - expr = astunparse.unparse(root) - expr = expr.strip('\n') - if expr in disc_var_dict: - val = disc_var_dict[expr] - # TODO-PARSER: Handle This - for mode_name in agent.controller.modes: - # TODO-PARSER: Handle This - if val in agent.controller.modes[mode_name]: - val = mode_name+'.'+val - break - return val - elif expr in cnts_var_dict: - val = cnts_var_dict[expr] - return val - - # TODO-PARSER: Handle This - elif root.value.id in agent.controller.modes: - return expr - elif isinstance(root, ast.Constant): - return root.value - elif isinstance(root, ast.UnaryOp): - val = self._evaluate_guard_old(root.operand, agent, cnts_var_dict, disc_var_dict, lane_map) - if isinstance(root.op, ast.USub): - return -val - if isinstance(root.op, ast.Not): - return not val - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - elif isinstance(root, ast.Name): - variable = root.id - if variable in cnts_var_dict: - val = cnts_var_dict[variable] - return val - elif variable in disc_var_dict: - val = disc_var_dict[variable] - # TODO-PARSER: Handle This - for mode_name in agent.controller.modes: - # TODO-PARSER: Handle This - if val in agent.controller.modes[mode_name]: - val = mode_name+'.'+val - break - return val - else: - raise ValueError(f"{variable} doesn't exist in either continuous varibales or discrete variables") - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - - def parse_any_all_new(self, cont_var_dict: Dict[str, float], disc_var_dict: Dict[str, float], len_dict: Dict[str, int]) -> Dict[str, List[str]]: - cont_var_updater = {} - for i in range(len(self.ast_list)): - root = self.ast_list[i] - j = 0 - while j < sum(1 for _ in ast.walk(root)): - # TODO: Find a faster way to access nodes in the tree - node = list(ast.walk(root))[j] - if isinstance(node, Reduction): - new_node = self.unroll_any_all_new(node, cont_var_dict, disc_var_dict, len_dict, cont_var_updater) - root = NodeSubstituter(node, new_node).visit(root) - j += 1 - self.ast_list[i] = root - return cont_var_updater - - def unroll_any_all_new( - self, node: Reduction, - cont_var_dict: Dict[str, float], - disc_var_dict: Dict[str, float], - len_dict: Dict[str, float], - cont_var_updater: Dict[str, List[str]], - ) -> Tuple[ast.BoolOp, Dict[str, List[str]]]: - # if isinstance(parse_arg, ast.GeneratorExp): - iter_name = node.value.id - iter_name_list = [node.value.id] - targ_name = node.it - targ_name_list = [node.it] - # targ_var_list = [] - # for var in cont_var_dict: - # if var.startswith(iter_name + '.'): - # tmp = var.split('.')[1] - # targ_var_list.append(targ_name + '.' + tmp) - # for var in disc_var_dict: - # if var.startswith(iter_name + '.'): - # tmp = var.split('.')[1] - # targ_var_list.append(targ_name + '.' + tmp) - - iter_len_list = [range(len_dict[node.value.id])] - # Get all the iter, targets and the length of iter list - # for generator in parse_arg.generators: - # iter_name_list.append(generator.iter.id) # a_list - # targ_name_list.append(generator.target.id) # a - # iter_len_list.append(range(len_dict[generator.iter.id])) # len(a_list) - - elt = node.expr - expand_elt_ast_list = [] - iter_len_list = list(itertools.product(*iter_len_list)) - # Loop through all possible combination of iter value - for i in range(len(iter_len_list)): - changed_elt = copy.deepcopy(elt) - iter_pos_list = iter_len_list[i] - # substitute temporary variable in each of the elt and add corresponding variables in the variable dicts - parsed_elt = self._parse_elt_new(changed_elt, cont_var_dict, disc_var_dict, cont_var_updater, iter_name_list, targ_name_list, iter_pos_list) - # Add the expanded elt into the list - expand_elt_ast_list.append(parsed_elt) - # Create the new boolop (and/or) node based on the list of expanded elt - return ValueSubstituter(expand_elt_ast_list, node).visit(node) - - def _parse_elt_new(self, root, cont_var_dict, disc_var_dict, cont_var_updater, iter_name_list, targ_var_list, iter_pos_list) -> Any: - # Loop through all node in the elt ast - for node in ast.walk(root): - # If the node is an attribute - if isinstance(node, ast.Attribute): - if node.value.id in targ_var_list: - # Find corresponding targ_name in the targ_var_list - targ_name = node.value.id - var_index = targ_var_list.index(targ_name) - - # Find the corresponding iter_name in the iter_name_list - iter_name = iter_name_list[var_index] - - # Create the name for the tmp variable - iter_pos = iter_pos_list[var_index] - tmp_variable_name = f"{iter_name}_{iter_pos}.{node.attr}" - - # Replace variables in the etl by using tmp variables - root = ValueSubstituter(tmp_variable_name, node).visit(root) - - # Find the value of the tmp variable in the cont/disc_var_dict - # Add the tmp variables into the cont/disc_var_dict - # NOTE: At each time step, for each agent, the variable value mapping and their - # sequence in the list is single. Therefore, for the same key, we will always rewrite - # its content. - variable_name = iter_name + '.' + node.attr - variable_val = None - if variable_name in cont_var_dict: - # variable_val = cont_var_dict[variable_name][iter_pos] - # cont_var_dict[tmp_variable_name] = variable_val - if variable_name not in cont_var_updater: - cont_var_updater[variable_name] = [(tmp_variable_name, iter_pos)] - else: - if (tmp_variable_name, iter_pos) not in cont_var_updater[variable_name]: - cont_var_updater[variable_name].append((tmp_variable_name, iter_pos)) - elif variable_name in disc_var_dict: - variable_val = disc_var_dict[variable_name][iter_pos] - disc_var_dict[tmp_variable_name] = variable_val - # if variable_name not in disc_var_updater: - # disc_var_updater[variable_name] = [(tmp_variable_name, iter_pos)] - # else: - # if (tmp_variable_name, iter_pos) not in disc_var_updater[variable_name]: - # disc_var_updater[variable_name].append((tmp_variable_name, iter_pos)) - - elif isinstance(node, ast.Name): - targ_var = None - for tmp in targ_var_list: - if node.id.startswith(tmp+'.'): - targ_var = tmp - break - if targ_var is not None: - node:ast.Name - # Find corresponding targ_name in the targ_var_list - targ_name = targ_var - var_index = targ_var_list.index(targ_name) - attr = node.id.split('.')[1] - - # Find the corresponding iter_name in the iter_name_list - iter_name = iter_name_list[var_index] - - # Create the name for the tmp variable - iter_pos = iter_pos_list[var_index] - tmp_variable_name = f"{iter_name}_{iter_pos}.{attr}" - - # Replace variables in the etl by using tmp variables - root = ValueSubstituter(tmp_variable_name, node).visit(root) - - # Find the value of the tmp variable in the cont/disc_var_dict - # Add the tmp variables into the cont/disc_var_dict - variable_name = iter_name + '.' + attr - variable_val = None - if variable_name in cont_var_dict: - # variable_val = cont_var_dict[variable_name][iter_pos] - # cont_var_dict[tmp_variable_name] = variable_val - if variable_name not in cont_var_updater: - cont_var_updater[variable_name] = [(tmp_variable_name, iter_pos)] - else: - if (tmp_variable_name, iter_pos) not in cont_var_updater[variable_name]: - cont_var_updater[variable_name].append((tmp_variable_name, iter_pos)) - elif variable_name in disc_var_dict: - variable_val = disc_var_dict[variable_name][iter_pos] - disc_var_dict[tmp_variable_name] = variable_val - # if variable_name not in disc_var_updater: - # disc_var_updater[variable_name] = [(tmp_variable_name, iter_pos)] - # else: - # if (tmp_variable_name, iter_pos) not in disc_var_updater[variable_name]: - # disc_var_updater[variable_name].append((tmp_variable_name, iter_pos)) - - # Return the modified node - return root - - def evaluate_guard(self, agent, continuous_variable_dict, discrete_variable_dict, lane_map): - res = True - for i, node in enumerate(self.ast_list): - tmp = self._evaluate_guard(node, agent, continuous_variable_dict, discrete_variable_dict, lane_map) - res = tmp and res - if not res: - break - return res - - def _evaluate_guard(self, root, agent, cnts_var_dict, disc_var_dict, lane_map): - if isinstance(root, ast.Compare): - left = self._evaluate_guard(root.left, agent, cnts_var_dict, disc_var_dict, lane_map) - right = self._evaluate_guard(root.comparators[0], agent, cnts_var_dict, disc_var_dict, lane_map) - if isinstance(root.ops[0], ast.GtE): - return left>=right - elif isinstance(root.ops[0], ast.Gt): - return left>right - elif isinstance(root.ops[0], ast.Lt): - return left<right - elif isinstance(root.ops[0], ast.LtE): - return left<=right - elif isinstance(root.ops[0], ast.Eq): - return left == right - elif isinstance(root.ops[0], ast.NotEq): - return left != right - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - - elif isinstance(root, ast.BoolOp): - if isinstance(root.op, ast.And): - res = True - for val in root.values: - tmp = self._evaluate_guard(val, agent, cnts_var_dict, disc_var_dict, lane_map) - res = res and tmp - if not res: - break - return res - elif isinstance(root.op, ast.Or): - res = False - for val in root.values: - tmp = self._evaluate_guard(val, agent, cnts_var_dict, disc_var_dict, lane_map) - res = res or tmp - if res: - break - return res - elif isinstance(root, ast.BinOp): - left = self._evaluate_guard(root.left, agent, cnts_var_dict, disc_var_dict, lane_map) - right = self._evaluate_guard(root.right, agent, cnts_var_dict, disc_var_dict, lane_map) - if isinstance(root.op, ast.Sub): - return left - right - elif isinstance(root.op, ast.Add): - return left + right - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - elif isinstance(root, ast.Call): - expr = astunparse.unparse(root) - # Check if the root is a function - if isinstance(root.func, ast.Attribute) and "map" in root.func.value.id: - # if 'map' in expr: - # tmp = re.split('\(|\)',expr) - # while "" in tmp: - # tmp.remove("") - # for arg in tmp[1:]: - # if arg in disc_var_dict: - # expr = expr.replace(arg,f'"{disc_var_dict[arg]}"') - # res = eval(expr) - for arg in disc_var_dict: - expr = expr.replace(arg, f'"{disc_var_dict[arg]}"') - for arg in cnts_var_dict: - expr = expr.replace(arg, str(cnts_var_dict[arg])) - res = eval(expr) - for mode_name in agent.controller.mode_defs: - if res in agent.controller.mode_defs[mode_name].modes: - res = mode_name+'.'+res - break - return res - elif isinstance(root.func, ast.Name): - if '.' in root.func.id and "map" in root.func.id.split('.')[0]: - for arg in disc_var_dict: - expr = expr.replace(arg, f'"{disc_var_dict[arg]}"') - for arg in cnts_var_dict: - expr = expr.replace(arg, str(cnts_var_dict[arg])) - res = eval(expr) - for mode_name in agent.controller.mode_defs: - if res in agent.controller.mode_defs[mode_name].modes: - res = mode_name+'.'+res - break - return res - else: - raise ValueError(f'Unsupported function {astunparse.unparse(root)}') - else: - raise ValueError(f'Unsupported function {astunparse.unparse(root)}') - elif isinstance(root, ast.Attribute): - expr = astunparse.unparse(root) - expr = expr.strip('\n') - if expr in disc_var_dict: - val = disc_var_dict[expr] - for mode_name in agent.controller.mode_defs: - if val in agent.controller.mode_defs[mode_name].modes: - val = mode_name+'.'+val - break - return val - elif expr in cnts_var_dict: - val = cnts_var_dict[expr] - return val - elif root.value.id in agent.controller.mode_defs: - return expr - elif isinstance(root, ast.Constant): - return root.value - elif isinstance(root, ast.UnaryOp): - val = self._evaluate_guard(root.operand, agent, cnts_var_dict, disc_var_dict, lane_map) - if isinstance(root.op, ast.USub): - return -val - if isinstance(root.op, ast.Not): - return not val - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - elif isinstance(root, ast.Name): - variable = root.id - if variable in cnts_var_dict: - val = cnts_var_dict[variable] - return val - elif variable in disc_var_dict: - val = disc_var_dict[variable] - for mode_name in agent.controller.mode_defs: - if val in agent.controller.mode_defs[mode_name].modes: - val = mode_name+'.'+val - break - return val - elif '.' in variable: - cls_name, attr = variable.split('.') - if cls_name in agent.controller.mode_defs: - - else: - raise ValueError(f"{variable} doesn't exist in either continuous varibales or discrete variables") - else: - raise ValueError(f'Node type {root} from {astunparse.unparse(root)} is not supported') - - # def _evaluate_guard(self, root, agent, cont_var_dict, disc_var_dict, lane_map): - # cont_var_dict.update(disc_var_dict) - # for node in ast.walk(root): - # if isinstance(node, ast.Name): - # if node.id in cont_var_dict and '.' in node.id: - # node.id = node.id.replace('.','_') - # elif '.' in node.id: - # class_name, attr = node.id.split('.') - # if class_name in agent.controller.mode_defs: - # node.id = attr - - # var_dict = {} - # for var in cont_var_dict: - # if '.' in var: - # var_dict[var.replace('.','_')] = cont_var_dict[var] - # else: - # var_dict[var] = cont_var_dict[var] - # var_dict['lane_map'] = lane_map - # return eval(astunparse.unparse(root), {}, var_dict) - -if __name__ == "__main__": - with open('tmp.pickle','rb') as f: - guard_list = pickle.load(f) - tmp = GuardExpressionAst(guard_list) - # tmp.evaluate_guard() - # tmp.construct_tree_from_str('(other_x-ego_x<20) and other_x-ego_x>10 and other_vehicle_lane==ego_vehicle_lane') - print("stop") \ No newline at end of file diff --git a/dryvr_plus_plus/scene_verifier/code_parser/__init__.py b/dryvr_plus_plus/scene_verifier/code_parser/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dryvr_plus_plus/scene_verifier/code_parser/pythonparser.py b/dryvr_plus_plus/scene_verifier/code_parser/pythonparser.py deleted file mode 100644 index 780c4bd2a2a06f5a730d6774de9ac82b3080e91f..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/code_parser/pythonparser.py +++ /dev/null @@ -1,545 +0,0 @@ -#parse python file - -#REQUIRES PYTHON 3.8! -from cgitb import reset -#import clang.cindex -import typing -import json -import sys -from typing import List, Tuple -import re -import itertools -import ast - -from treelib import Node, Tree - -''' -Edge class: utility class to hold the source, dest, guards, and resets for a transition -''' -class Edge: - def __init__(self, source, dest, guards, resets): - self.source = source - self.dest = dest - self.guards = guards - self.resets = resets - -''' -Statement super class. Holds the code and mode information for a statement. -If there is no mode information, mode and modeType are None. -''' -class Statement: - def __init__(self, code, mode, modeType, func = None, args = None): - self.code = code - self.modeType = modeType - self.mode = mode - self.func = func - self.args = args - - def print(self): - print(self.code) - - -''' -Guard class. Subclass of statement. -''' -class Guard(Statement): - def __init__(self, code, mode, modeType, inp_ast, func=None, args=None): - super().__init__(code, mode, modeType, func, args) - self.ast = inp_ast - - - ''' - Returns true if a guard is checking that we are in a mode. - ''' - def isModeCheck(self): - return self.modeType != None - - ''' - Helper function to parse a node that contains a guard. Parses out the code and mode. - Returns a Guard. - TODO: needs to handle more complex guards. - ''' - def parseGuard(node, code): - #assume guard is a strict comparision (modeType == mode) - if isinstance(node.test, ast.Compare): - if isinstance(node.test.comparators[0], ast.Attribute): - if ("Mode" in str(node.test.comparators[0].value.id)): - modeType = str(node.test.comparators[0].value.id) - mode = str(node.test.comparators[0].attr) - return Guard(ast.get_source_segment(code, node.test), mode, modeType, node.test) - else: - return Guard(ast.get_source_segment(code, node.test), None, None, node.test) - elif isinstance(node.test, ast.BoolOp): - return Guard(ast.get_source_segment(code, node.test), None, None, node.test) - elif isinstance(node.test, ast.Call): - source_segment = ast.get_source_segment(code, node.test) - # func = node.test.func.id - # args = [] - # for arg in node.test.args: - # args.append(arg.value.id + '.' + arg.attr) - return Guard(source_segment, None, None, node.test) - -''' -Reset class. Subclass of statement. -''' -class Reset(Statement): - def __init__(self, code, mode, modeType, inp_ast): - super().__init__(code, mode, modeType) - self.ast = inp_ast - - ''' - Returns true if a reset is updating our mode. - ''' - def isModeUpdate(self): - return self.modeType != None - - ''' - Helper function to parse a node that contains a reset. Parses out the code and mode. - Returns a reset. - ''' - def parseReset(node, code): - #assume reset is modeType = newMode - if isinstance(node.value, ast.Attribute): - #print("resets " + str(node.value.value.id)) - #print("resets " + str(node.value.attr)) - if ("Mode" in str(node.value.value.id)): - modeType = str(node.value.value.id) - mode = str(node.value.attr) - return Reset(ast.get_source_segment(code, node), mode, modeType, node) - return Reset(ast.get_source_segment(code, node), None, None, node) - - -''' -Util class to handle building transitions given a path. -''' -class TransitionUtil: - ''' - Takes in a list of reset objects. Returns a string in the format json expected. - ''' - def resetString(resets): - outstr = "" - for reset in resets: - outstr+= reset.code + ";" - outstr = outstr.strip(";") - return outstr - - ''' - Takes in guard code. Returns a string in the format json expected. - TODO: needs to handle more complex guards. - ''' - def parseGuardCode(code): - parts = code.split("and") - out = code - if len(parts) > 1: - left = TransitionUtil.parseGuardCode(parts[0]) - right = TransitionUtil.parseGuardCode(parts[1]) - out = "And(" + left + "," + right + ")" - return out - - ''' - Helper function for parseGuardCode. - ''' - def guardString(guards): - output = "" - first = True - for guard in guards: - #print(type(condition)) - if first: - output+= TransitionUtil.parseGuardCode(guard.code) - else: - output = "And(" + TransitionUtil.parseGuardCode(guard.code) + ",(" + output + "))" - first = False - return output - - - ''' - Helper function to get the index of the vertex for a set of modes. - Modes is a list of all modes in the current vertex. - Vertices is the list of vertices. - TODO: needs to be tested on more complex examples to see if ordering stays and we can use index function - ''' - def getIndex(modes, vertices): - return vertices.index(tuple(modes)) - - ''' - Function that creates transitions given a path. - Will create multiple transitions if not all modeTypes are checked/set in the path. - Returns a list of edges that correspond to the path. - ''' - def createTransition(path, vertices, modes): - guards = [] - resets = [] - modeChecks = [] - modeUpdates = [] - for item in path: - if isinstance(item, Guard): - if not item.isModeCheck(): - guards.append(item) - else: - modeChecks.append(item) - if isinstance(item, Reset): - if not item.isModeUpdate(): - resets.append(item) - else: - modeUpdates.append(item) - unfoundSourceModeTypes = [] - sourceModes = [] - unfoundDestModeTypes = [] - destModes = [] - for modeType in modes.keys(): - foundMode = False - for condition in modeChecks: - #print(condition.modeType) - #print(modeType) - if condition.modeType == modeType: - sourceModes.append(condition.mode) - foundMode = True - if foundMode == False: - unfoundSourceModeTypes.append(modeType) - foundMode = False - for condition in modeUpdates: - if condition.modeType == modeType: - destModes.append(condition.mode) - foundMode = True - if foundMode == False: - unfoundDestModeTypes.append(modeType) - - unfoundModes = [] - for modeType in unfoundSourceModeTypes: - unfoundModes.append(modes[modeType]) - unfoundModeCombinations = itertools.product(*unfoundModes) - sourceVertices = [] - for unfoundModeCombo in unfoundModeCombinations: - sourceVertex = sourceModes.copy() - sourceVertex.extend(unfoundModeCombo) - sourceVertices.append(sourceVertex) - - unfoundModes = [] - for modeType in unfoundDestModeTypes: - unfoundModes.append(modes[modeType]) - unfoundModeCombinations = itertools.product(*unfoundModes) - destVertices = [] - for unfoundModeCombo in unfoundModeCombinations: - destVertex = destModes.copy() - destVertex.extend(unfoundModeCombo) - destVertices.append(destVertex) - - edges = [] - for source in sourceVertices: - sourceindex = TransitionUtil.getIndex(source, vertices) - for dest in destVertices: - destindex = TransitionUtil.getIndex(dest, vertices) - edges.append(Edge(sourceindex, destindex, guards, resets)) - return edges - -class ControllerAst(): - ''' - Initalizing function for a controllerAst object. - Reads in the code and parses it to a python ast and statement tree. - Statement tree is a tree of nodes that contain a list in their data. The list contains a single guard or a list of resets. - Variables (inputs to the controller) are collected. - Modes are collected from all enums that have the word "mode" in them. - Vertices are generated by taking the products of mode types. - ''' - def __init__(self, code = None, file_name = None): - assert code is not None or file_name is not None - if file_name is not None: - with open(file_name,'r') as f: - code = f.read() - - self.code = code - self.tree = ast.parse(code) - self.statementtree, self.variables, self.modes, self.discrete_variables, self.state_object_dict, self.vars_dict = self.initalwalktree(code, self.tree) - self.vertices = [] - self.vertexStrings = [] - for vertex in itertools.product(*self.modes.values()): - self.vertices.append(vertex) - vertexstring = ','.join(vertex) - self.vertexStrings.append(vertexstring) - self.paths = None - - ''' - Function to populate paths variable with all paths of the controller. - ''' - def getAllPaths(self): - self.paths = self.getNextModes([], True) - return self.paths - - ''' - getNextModes takes in a list of current modes. It should include all modes. - getNextModes returns a list of paths that can be followed when in the given mode. - A path is a list of statements, all guards and resets along the path. They are in the order they are encountered in the code. - TODO: should we not force all modes be listed? Or rerun for each unknown/don't care node? Or add them all to the list - ''' - def getNextModes(self, currentModes: List[str], getAllPaths= False) -> List[str]: - #walk the tree and capture all paths that have modes that are listed. Path is a list of statements - paths = [] - rootid = self.statementtree.root - currnode = self.statementtree.get_node(rootid) - paths = self.walkstatements(currnode, currentModes, getAllPaths) - - return paths - - ''' - Helper function to walk the statement tree from parentnode and find paths that are allowed in the currentMode. - Returns a list of paths. - ''' - def walkstatements(self, parentnode, currentModes, getAllPaths): - nextsPaths = [] - - for node in self.statementtree.children(parentnode.identifier): - statement = node.data - - if isinstance(statement[0], Guard) and statement[0].isModeCheck(): - if getAllPaths or statement[0].mode in currentModes: - #print(statement.mode) - newPaths = self.walkstatements(node, currentModes, getAllPaths) - for path in newPaths: - newpath = statement.copy() - newpath.extend(path) - nextsPaths.append(newpath) - if len(nextsPaths) == 0: - nextsPaths.append(statement) - - else: - newPaths =self.walkstatements(node, currentModes, getAllPaths) - for path in newPaths: - newpath = statement.copy() - newpath.extend(path) - nextsPaths.append(newpath) - if len(nextsPaths) == 0: - nextsPaths.append(statement) - - return nextsPaths - - - ''' - Function to create a json of the full graph. - Requires that paths class variables has been set. - ''' - def create_json(self, input_file_name, output_file_name): - if not self.paths: - print("Cannot call create_json without calling getAllPaths") - return - - with open(input_file_name) as in_json_file: - input_json = json.load(in_json_file) - - output_dict = { - } - - output_dict.update(input_json) - - edges = [] - guards = [] - resets = [] - - for path in self.paths: - transitions = TransitionUtil.createTransition(path, self.vertices, self.modes) - for edge in transitions: - edges.append([edge.source, edge.dest]) - guards.append(TransitionUtil.guardString(edge.guards)) - resets.append(TransitionUtil.resetString(edge.resets)) - - output_dict['vertex'] = self.vertexStrings - #print(vertices) - output_dict['variables'] = self.variables - # #add edge, transition(guards) and resets - output_dict['edge'] = edges - #print(len(edges)) - output_dict['guards'] = guards - #print(len(guards)) - output_dict['resets'] = resets - #print(len(resets)) - - output_json = json.dumps(output_dict, indent=4) - outfile = open(output_file_name, "w") - outfile.write(output_json) - outfile.close() - - print("wrote json to " + output_file_name) - - #inital tree walk, parse into a tree of resets/modes - ''' - Function called by init function. Walks python ast and parses to a statement tree. - Returns a statement tree (nodes contain a list of either a single guard or muliple resets), the variables, and a mode dictionary - ''' - def initalwalktree(self, code, tree): - vars = [] - discrete_vars = [] - out = [] - mode_dict = {} - state_object_dict = {} - vars_dict = {} - statementtree = Tree() - for node in ast.walk(tree): #don't think we want to walk the whole thing because lose ordering/depth - # Get all the modes - if isinstance(node, ast.ClassDef): - if "Mode" in node.name: - modeType = str(node.name) - modes = [] - for modeValue in node.body: - modes.append(str(modeValue.targets[0].id)) - mode_dict[modeType] = modes - if isinstance(node, ast.ClassDef): - if "State" in node.name: - state_object_dict[node.name] = {"cont":[],"disc":[], "type": []} - for item in node.body: - if isinstance(item, ast.FunctionDef): - if "init" in item.name: - for arg in item.args.args: - if "self" not in arg.arg: - if "mode" not in arg.arg: - state_object_dict[node.name]['cont'].append(arg.arg) - # vars.append(arg.arg) - else: - state_object_dict[node.name]['disc'].append(arg.arg) - # discrete_vars.append(arg.arg) - if isinstance(node, ast.FunctionDef): - if node.name == 'controller': - #print(node.body) - statementtree = self.parsenodelist(code, node.body, False, Tree(), None) - #print(type(node.args)) - args = node.args.args - for arg in args: - if arg.annotation is None: - continue - # Handle case when input is a single variable - if isinstance(arg.annotation, ast.Name): - if arg.annotation.id not in state_object_dict: - continue - arg_annotation = arg.annotation.id - # Handle case when input is a list of variables - elif isinstance(arg.annotation, ast.Subscript): - if isinstance(arg.annotation.slice, ast.Index): - if arg.annotation.slice.value.id not in state_object_dict: - continue - arg_annotation = arg.annotation.slice.value.id - elif isinstance(arg.annotation.slice, ast.Name): - if arg.annotation.slice.id not in state_object_dict: - continue - arg_annotation = arg.annotation.slice.id - - arg_name = arg.arg - vars_dict[arg_name] = {'cont':[], 'disc':[], "type": []} - for var in state_object_dict[arg_annotation]['cont']: - vars.append(arg_name+"."+var) - vars_dict[arg_name]['cont'].append(var) - for var in state_object_dict[arg_annotation]['disc']: - discrete_vars.append(arg_name+"."+var) - vars_dict[arg_name]['disc'].append(var) - - return [statementtree, vars, mode_dict, discrete_vars, state_object_dict, vars_dict] - - - ''' - Helper function for initalwalktree which parses the statements in the controller function into a statement tree - ''' - def parsenodelist(self, code, nodes, addResets, tree, parent): - childrens_guards=[] - childrens_resets=[] - recoutput = [] - #tree.show() - if parent == None: - s = Statement("root", None, None) - tree.create_node("root") - parent = tree.root - - for childnode in nodes: - if isinstance(childnode, ast.Assign) and addResets: - reset = Reset.parseReset(childnode, code) - #print("found reset: " + reset.code) - childrens_resets.append(reset) - if isinstance(childnode, ast.If): - guard = Guard.parseGuard(childnode, code) - childrens_guards.append(guard) - #print("found if statement: " + guard.code) - newTree = Tree() - newTree.create_node(tag= guard.code, data = [guard]) - #print(self.nodect) - tempresults = self.parsenodelist(code, childnode.body, True, newTree, newTree.root) - #for result in tempresults: - recoutput.append(tempresults) - - - #pathsafterme = [] - if len(childrens_resets) > 0: - #print("adding node:" + str(self.nodect) + "with parent:" + str(parent)) - tree.create_node(tag = childrens_resets[0].code, data = childrens_resets, parent= parent) - for subtree in recoutput: - #print("adding subtree:" + " to parent:" + str(parent)) - tree.paste(parent, subtree) - - - return tree - -class EmptyAst(ControllerAst): - def __init__(self): - super().__init__(code="True", file_name=None) - self.discrete_variables = [] - self.modes = { - 'NullMode':['Null'], - 'LaneMode':['Normal'] - } - self.paths = None - self.state_object_dict = { - 'State':{ - 'cont':[], - 'disc':[], - 'type':[] - } - } - self.variables = [] - self.vars_dict = [] - self.vertexStrings = ['Null,Normal'] - self.vertices=[('Null','Normal')] - self.statementtree.create_node("root") - -##main code### -if __name__ == "__main__": - #if len(sys.argv) < 4: - # print("incorrect usage. call createGraph.py program inputfile outputfilename") - # quit() - - input_code_name = sys.argv[1] - input_file_name = sys.argv[2] - output_file_name = sys.argv[3] - - with open(input_file_name) as in_json_file: - input_json = json.load(in_json_file) - - output_dict = { - } - - #read in the controler code - f = open(input_code_name,'r') - code = f.read() - - #parse the controller code into our controller ast objct - controller_obj = ControllerAst(code) - - print(controller_obj.variables) - - #demonstrate you can check getNextModes after only initalizing - paths = controller_obj.getNextModes("NormalA;Normal3") - - print("Results") - for path in paths: - for item in path: - print(item.code) - print() - print("Done") - - #attempt to write to json, fail because we haven't populated paths yet - controller_obj.create_json(input_file_name, output_file_name) - - #call function that gets all paths - controller_obj.getAllPaths() - - #write json with all paths - controller_obj.create_json(input_file_name, output_file_name) - - - - - diff --git a/dryvr_plus_plus/scene_verifier/dryvr/__init__.py b/dryvr_plus_plus/scene_verifier/dryvr/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dryvr_plus_plus/scene_verifier/dryvr/common/__init__.py b/dryvr_plus_plus/scene_verifier/dryvr/common/__init__.py deleted file mode 100644 index 7dbea944864d1e4d5337014013f9b49ae5ce1bb1..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/common/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -# _oo0oo_ -# o8888888o -# 88" . "88 -# (| -_- |) -# 0\ = /0 -# ___/`---'\___ -# .' \\| |// '. -# / \\||| : |||// \ -# / _||||| -:- |||||- \ -# | | \\\ - /// | | -# | \_| ''\---/'' |_/ | -# \ .-\__ '-' ___/-. / -# ___'. .' /--.--\ `. .'___ -# ."" '< `.___\_<|>_/___.' >' "". -# | | : `- \`.;`\ _ /`;.`/ - ` : | | -# \ \ `_. \_ __\ /__ _/ .-` / / -# =====`-.____`.___ \_____/___.-`___.-'===== -# `=---=' -# -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# Codes are far away from bugs with the protection diff --git a/dryvr_plus_plus/scene_verifier/dryvr/common/config.py b/dryvr_plus_plus/scene_verifier/dryvr/common/config.py deleted file mode 100644 index 6b23f518d74bd9d178fe2f56ad613ad65c0ea1a5..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/common/config.py +++ /dev/null @@ -1,11 +0,0 @@ -""" Global Configurations """ - -# Verification config -SIMUTESTNUM = 10 -SIMTRACENUM = 10 -REFINETHRES = 10 -CHILDREFINETHRES = 2 - -# Synthesis config -RANDMODENUM = 3 -RANDSECTIONNUM = 3 diff --git a/dryvr_plus_plus/scene_verifier/dryvr/common/constant.py b/dryvr_plus_plus/scene_verifier/dryvr/common/constant.py deleted file mode 100644 index 0eaaa69353ee78fe8b7023ec6d73a12550213335..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/common/constant.py +++ /dev/null @@ -1,28 +0,0 @@ -""" -This file contains constant for DryVR -""" - -# Logic constant -DEBUG = False -PLOTGRAPH = True - -# Flag value -SAFE = 1 -UNSAFE = -1 -UNKNOWN = 0 -NOSTATUS = 99 -BLOATDEBUG = False -PLOTDIM = 2 - -# File Paths -GRAPHOUTPUT = 'output/curGraph.png' -RRTGRAPHPOUTPUT = 'output/rrtGraph.png' -SIMRESULTOUTPUT = 'output/Traj.txt' -REACHTUBEOUTPUT = 'output/reachtube.txt' -RRTOUTPUT = 'output/rrtTube.txt' -UNSAFEFILENAME = 'output/unsafeTube.txt' - -# Useful constant string -NEWLINE = '----------------------------------------------' -PW = "PW" -GLOBAL = "GLOBAL" diff --git a/dryvr_plus_plus/scene_verifier/dryvr/common/io.py b/dryvr_plus_plus/scene_verifier/dryvr/common/io.py deleted file mode 100644 index fee8a03e3bd5ac5b2424465d81e891d4c3b0a145..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/common/io.py +++ /dev/null @@ -1,156 +0,0 @@ -""" -This file contains IO functions for DryVR -""" - -import six - -from dryvr_plus_plus.scene_verifier.dryvr.common.utils import DryVRInput, RrtInput, checkVerificationInput, checkSynthesisInput - - -def writeReachTubeFile(result, path): - """ - Write reach tube to a file - - reach tube example: - mode1 - [0.0, 1, 2] - [0.1, 2, 3] - [0.1, 2, 3] - .... - mode1->mode2 - [1.0, 3, 4] - .... - - Args: - result (list): list of reachable state. - path (str): file name. - - Returns: - None - - """ - with open(path, 'w') as f: - for line in result: - if isinstance(line, six.string_types): - f.write(line + '\n') - elif isinstance(line, list): - f.write(' '.join(map(str, line)) + '\n') - - -def writeRrtResultFile(modes, traces, path): - """ - Write control synthesis result to a file - - Args: - modes (list): list of mode. - traces (list): list of traces corresponding to modes - path (str): file name. - - Returns: - None - - """ - with open(path, 'w') as f: - for mode, trace in zip(modes, traces): - f.write(mode + '\n') - for line in trace: - f.write(" ".join(map(str, line)) + '\n') - - -def parseVerificationInputFile(data): - """ - Parse the json input for DryVR verification - - Args: - data (dict): dictionary contains parameters - - Returns: - DryVR verification input object - - """ - - # If resets is missing, fill with empty resets - if not 'resets' in data: - data['resets'] = ["" for _ in range(len(data["edge"]))] - - # If initialMode is missing, fill with empty initial mode - if not 'initialVertex' in data: - data['initialVertex'] = -1 - - # If deterministic is missing, default to non-deterministic - if not 'deterministic' in data: - data['deterministic'] = False - - # If bloating method is missing, default global descrepancy - if not 'bloatingMethod' in data: - data['bloatingMethod'] = 'GLOBAL' - - # Set a fake kvalue since kvalue is not used in this case - - if data['bloatingMethod'] == "GLOBAL": - data['kvalue'] = [1.0 for i in range(len(data['variables']))] - - # Set a fake directory if the directory is not provided, this means the example provides - # simulation function to DryVR directly - if not 'directory' in data: - data['directory'] = "" - - checkVerificationInput(data) - return DryVRInput( - vertex=data["vertex"], - edge=data["edge"], - guards=data["guards"], - variables=data["variables"], - initialSet=data["initialSet"], - unsafeSet=data["unsafeSet"], - timeHorizon=data["timeHorizon"], - path=data["directory"], - resets=data["resets"], - initialVertex=data["initialVertex"], - deterministic=data["deterministic"], - bloatingMethod=data['bloatingMethod'], - kvalue=data['kvalue'], - ) - - -def parseRrtInputFile(data): - """ - Parse the json input for DryVR controller synthesis - - Args: - data (dict): dictionary contains parameters - - Returns: - DryVR controller synthesis input object - - """ - - # If bloating method is missing, default global descrepancy - if not 'bloatingMethod' in data: - data['bloatingMethod'] = 'GLOBAL' - - # set a fake kvalue since kvalue is not used in this case - - if data['bloatingMethod'] == "GLOBAL": - data['kvalue'] = [1.0 for i in range(len(data['variables']))] - - # Set a fake directory if the directory is not provided, this means the example provides - # simulation function to DryVR directly - if not 'directory' in data: - data['directory'] = "" - - checkSynthesisInput(data) - - return RrtInput( - modes=data["modes"], - variables=data["variables"], - initialSet=data["initialSet"], - unsafeSet=data["unsafeSet"], - goalSet=data["goalSet"], - timeHorizon=data["timeHorizon"], - minTimeThres=data["minTimeThres"], - path=data["directory"], - goal=data["goal"], - bloatingMethod=data['bloatingMethod'], - kvalue=data['kvalue'], - ) diff --git a/dryvr_plus_plus/scene_verifier/dryvr/common/utils.py b/dryvr_plus_plus/scene_verifier/dryvr/common/utils.py deleted file mode 100644 index 25bb029d0a98edb8ee706a2fff4004b0497b597d..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/common/utils.py +++ /dev/null @@ -1,304 +0,0 @@ -""" -This file contains common utils for DryVR -""" - -import importlib -import random - -from collections import namedtuple - -# This is the tuple for input file parsed by DryVR -DryVRInput = namedtuple( - 'DryVRInput', - 'vertex edge guards variables initialSet unsafeSet timeHorizon path resets initialVertex deterministic ' - 'bloatingMethod kvalue ' -) - -# This is the tuple for rtt input file parsed by DryVR -RrtInput = namedtuple( - 'RttInput', - 'modes variables initialSet unsafeSet goalSet timeHorizon minTimeThres path goal bloatingMethod kvalue' -) - - -def importSimFunction(path): - """ - Load simulation function from given file path - Note the folder in the examples directory must have __init__.py - And the simulation function must be named TC_Simulate - The function should looks like following: - TC_Simulate(Mode, initialCondition, time_bound) - - Args: - path (str): Simulator directory. - - Returns: - simulation function - - """ - try: - # FIXME TC_Simulate should just be a simple call back function - import os - import sys - sys.path.append(os.path.abspath(path)) - mod_name = path.replace('/', '.') - module = importlib.import_module(mod_name) - sys.path.pop() - - return module.TC_Simulate - except ImportError as e: - print("Import simulation function failed!") - print(e) - exit() # TODO Proper return - - -def randomPoint(lower, upper): - """ - Pick a random point between lower and upper bound - This function supports both int or list - - Args: - lower (list or int or float): lower bound. - upper (list or int or float): upper bound. - - Returns: - random point (either float or list of float) - - """ - random.seed(4) - - if isinstance(lower, int) or isinstance(lower, float): - return random.uniform(lower, upper) - - if isinstance(lower, list): - assert len(lower) == len(upper), "Random Point List Range Error" - - return [random.uniform(lower[i], upper[i]) for i in range(len(lower))] - - -def calcDelta(lower, upper): - """ - Calculate the delta value between the lower and upper bound - The function only supports list since we assue initial set is always list - - Args: - lower (list): lowerbound. - upper (list): upperbound. - - Returns: - delta (list of float) - - """ - # Convert list into float in case they are int - lower = [float(val) for val in lower] - upper = [float(val) for val in upper] - - assert len(lower) == len(upper), "Delta calc List Range Error" - return [(upper[i] - lower[i]) / 2 for i in range(len(upper))] - - -def calcCenterPoint(lower, upper): - """ - Calculate the center point between the lower and upper bound - The function only supports list since we assue initial set is always list - - Args: - lower (list): lowerbound. - upper (list): upperbound. - - Returns: - delta (list of float) - - """ - - # Convert list into float in case they are int - lower = [float(val) for val in lower] - upper = [float(val) for val in upper] - assert len(lower) == len(upper), "Center Point List Range Error" - return [(upper[i] + lower[i]) / 2 for i in range(len(upper))] - - -def buildModeStr(g, vertex): - """ - Build a unique string to represent a mode - This should be something like "modeName,modeNum" - - Args: - g (igraph.Graph): Graph object. - vertex (int or str): vertex number. - - Returns: - str: a string to represent a mode - - """ - return g.vs[vertex]['label'] + ',' + str(vertex) - - -def handleReplace(input_str, keys): - """ - Replace variable in inputStr to self.varDic["variable"] - For example: - input - And(y<=0,t>=0.2,v>=-0.1) - output: - And(self.varDic["y"]<=0,self.varDic["t"]>=0.2,self.varDic["v"]>=-0.1) - - Args: - input_str (str): original string need to be replaced - keys (list): list of variable strings - - Returns: - str: a string that all variables have been replaced into a desire form - - """ - idxes = [] - i = 0 - original = input_str - - keys.sort(key=lambda s: len(s)) - for key in keys[::-1]: - for i in range(len(input_str)): - if input_str[i:].startswith(key): - idxes.append((i, i + len(key))) - input_str = input_str[:i] + "@" * len(key) + input_str[i + len(key):] - - idxes = sorted(idxes) - - input_str = original - for idx in idxes[::-1]: - key = input_str[idx[0]:idx[1]] - target = 'self.varDic["' + key + '"]' - input_str = input_str[:idx[0]] + target + input_str[idx[1]:] - return input_str - - -def neg(orig): - """ - Neg the original condition - For example: - input - And(y<=0,t>=0.2,v>=-0.1) - output: - Not(And(y<=0,t>=0.2,v>=-0.1)) - - Args: - orig (str): original string need to be neg - - Returns: - a neg condition string - - """ - return 'Not(' + orig + ')' - - -def trimTraces(traces): - """ - trim all traces to the same length - - Args: - traces (list): list of traces generated by simulator - Returns: - traces (list) after trim to the same length - - """ - - ret_traces = [] - trace_lengths = [] - for trace in traces: - trace_lengths.append(len(trace)) - trace_len = min(trace_lengths) - # print(trace_lengths) - for trace in traces: - ret_traces.append(trace[:trace_len]) - - return ret_traces - - -def checkVerificationInput(data): - """ - Check verification input to make sure it is valid - - Args: - data (obj): json data object - Returns: - None - - """ - assert len(data['variables']) == len(data['initialSet'][0]), "Initial set dimension mismatch" - - assert len(data['variables']) == len(data['initialSet'][1]), "Initial set dimension mismatch" - - assert len(data['edge']) == len(data["guards"]), "guard number mismatch" - - assert len(data['edge']) == len(data["resets"]), "reset number mismatch" - - if data["bloatingMethod"] == "PW": - assert 'kvalue' in data, "kvalue need to be provided when bloating method set to PW" - - for i in range(len(data['variables'])): - assert data['initialSet'][0][i] <= data['initialSet'][1][i], "initial set lowerbound is larger than upperbound" - - -def checkSynthesisInput(data): - """ - Check Synthesis input to make sure it is valid - - Args: - data (obj): json data object - Returns: - None - - """ - assert len(data['variables']) == len(data['initialSet'][0]), "Initial set dimension mismatch" - - assert len(data['variables']) == len(data['initialSet'][1]), "Initial set dimension mismatch" - - for i in range(len(data['variables'])): - assert data['initialSet'][0][i] <= data['initialSet'][1][i], "initial set lowerbound is larger than upperbound" - - assert data["minTimeThres"] < data["timeHorizon"], "min time threshold is too large!" - - if data["bloatingMethod"] == "PW": - assert 'kvalue' in data, "kvalue need to be provided when bloating method set to PW" - - -def isIpynb(): - """ - Check if the code is running on Ipython notebook - """ - try: - cfg = get_ipython().config - if "IPKernelApp" in cfg: - return True - else: - return False - except NameError: - return False - - -def overloadConfig(configObj, userConfig): - """ - Overload example config to config module - - Args: - configObj (module): config module - userConfig (dict): example specified config - """ - - if "SIMUTESTNUM" in userConfig: - configObj.SIMUTESTNUM = userConfig["SIMUTESTNUM"] - - if "SIMTRACENUM" in userConfig: - configObj.SIMTRACENUM = userConfig["SIMTRACENUM"] - - if "REFINETHRES" in userConfig: - configObj.REFINETHRES = userConfig["REFINETHRES"] - - if "CHILDREFINETHRES" in userConfig: - configObj.CHILDREFINETHRES = userConfig["CHILDREFINETHRES"] - - if "RANDMODENUM" in userConfig: - configObj.RANDMODENUM = userConfig["RANDMODENUM"] - - if "RANDSECTIONNUM" in userConfig: - configObj.RANDSECTIONNUM = userConfig["RANDSECTIONNUM"] diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/__init__.py b/dryvr_plus_plus/scene_verifier/dryvr/core/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/distance.py b/dryvr_plus_plus/scene_verifier/dryvr/core/distance.py deleted file mode 100644 index 8da15a12091e3501880ca1411bb5fc4e4156099d..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/distance.py +++ /dev/null @@ -1,52 +0,0 @@ -""" -This file contains a distance checker class for controller synthesis -""" -from math import sqrt - - -class DistChecker: - """ - This is the class to calculate the distance between - current set and the goal set for DryVR controller synthesis. - The distance it calculate is the euclidean distance. - """ - - def __init__(self, goal_set, variables): - """ - Distance checker class initialization function. - - Args: - goal_set (list): a list describing the goal set. - [["x_1","x_2"],[19.5,-1],[20.5,1]] - which defines a goal set - 19.5<=x_1<=20.5 && -1<=x_2<=1 - variables (list): list of variable name - """ - var, self.lower, self.upper = goal_set - self.idx = [] - for v in var: - self.idx.append(variables.index(v) + 1) - - def calc_distance(self, lower_bound, upper_bound): - """ - Calculate the euclidean distance between the - current set and goal set. - - Args: - lower_bound (list): the lower bound of the current set. - upper_bound (list): the upper bound of the current set. - - Returns: - the euclidean distance between current set and goal set - - """ - dist = 0.0 - for i in range(len(self.idx)): - max_val = max( - (self.lower[i] - lower_bound[self.idx[i]]) ** 2, - (self.upper[i] - lower_bound[self.idx[i]]) ** 2, - (self.lower[i] - upper_bound[self.idx[i]]) ** 2, - (self.upper[i] - upper_bound[self.idx[i]]) ** 2 - ) - dist += max_val - return sqrt(dist) diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/dryvrcore.py b/dryvr_plus_plus/scene_verifier/dryvr/core/dryvrcore.py deleted file mode 100644 index bbb1ccfe00b07b393d6ae00e26a31d6fe7bd7530..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/dryvrcore.py +++ /dev/null @@ -1,309 +0,0 @@ -""" -This file contains core functions used by DryVR -""" -from __future__ import print_function -import random - -import networkx as nx -import numpy as np -import igraph - - -from dryvr_plus_plus.scene_verifier.dryvr.common.constant import * -from dryvr_plus_plus.scene_verifier.dryvr.common.io import writeReachTubeFile -from dryvr_plus_plus.scene_verifier.dryvr.common.utils import randomPoint, calcDelta, calcCenterPoint, trimTraces -from dryvr_plus_plus.scene_verifier.dryvr.discrepancy.Global_Disc import get_reachtube_segment -# from scene_verifier.dryvr.tube_computer.backend.reachabilityengine import ReachabilityEngine -# from scene_verifier.dryvr.tube_computer.backend.initialset import InitialSet - -def build_graph(vertex, edge, guards, resets): - """ - Build graph object using given parameters - - Args: - vertex (list): list of vertex with mode name - edge (list): list of edge that connects vertex - guards (list): list of guard corresponding to each edge - resets (list): list of reset corresponding to each edge - - Returns: - graph object - - """ - g = igraph.Graph(directed=True) - g.add_vertices(len(vertex)) - g.add_edges(edge) - - g.vs['label'] = vertex - g.vs['name'] = vertex - labels = [] - for i in range(len(guards)): - cur_guard = guards[i] - cur_reset = resets[i] - if not cur_reset: - labels.append(cur_guard) - else: - labels.append(cur_guard + '|' + cur_reset) - - g.es['label'] = labels - g.es['guards'] = guards - g.es['resets'] = resets - - # if PLOTGRAPH: - # graph = igraph.plot(g, GRAPHOUTPUT, margin=40) - # graph.save() - return g - - -def build_rrt_graph(modes, traces, is_ipynb): - """ - Build controller synthesis graph object using given modes and traces. - Note this function is very different from buildGraph function. - This is white-box transition graph learned from controller synthesis algorithm - The reason to build it is to output the transition graph to file - - Args: - modes (list): list of mode name - traces (list): list of trace corresponding to each mode - is_ipynb (bool): check if it's in Ipython notebook environment - - Returns: - None - - """ - if is_ipynb: - vertex = [] - # Build unique identifier for a vertex and mode name - for idx, v in enumerate(modes): - vertex.append(v + "," + str(idx)) - - edge_list = [] - edge_label = {} - for i in range(1, len(modes)): - edge_list.append((vertex[i - 1], vertex[i])) - lower = traces[i - 1][-2][0] - upper = traces[i - 1][-1][0] - edge_label[(vertex[i - 1], vertex[i])] = "[" + str(lower) + "," + str(upper) + "]" - - fig = plt.figure() - ax = fig.add_subplot(111) - nx_graph = nx.DiGraph() - nx_graph.add_edges_from(edge_list) - pos = nx.spring_layout(nx_graph) - colors = ['green'] * len(nx_graph.nodes()) - fig.suptitle('transition graph', fontsize=10) - nx.draw_networkx_labels(nx_graph, pos) - options = { - 'node_color': colors, - 'node_size': 1000, - 'cmap': plt.get_cmap('jet'), - 'arrowstyle': '-|>', - 'arrowsize': 50, - } - nx.draw_networkx(nx_graph, pos, arrows=True, **options) - nx.draw_networkx_edge_labels(nx_graph, pos, edge_labels=edge_label) - fig.canvas.draw() - - else: - g = igraph.Graph(directed=True) - g.add_vertices(len(modes)) - edges = [] - for i in range(1, len(modes)): - edges.append([i - 1, i]) - g.add_edges(edges) - - g.vs['label'] = modes - g.vs['name'] = modes - - # Build guard - guard = [] - for i in range(len(traces) - 1): - lower = traces[i][-2][0] - upper = traces[i][-1][0] - guard.append("And(t>" + str(lower) + ", t<=" + str(upper) + ")") - g.es['label'] = guard - graph = igraph.plot(g, RRTGRAPHPOUTPUT, margin=40) - graph.save() - - -def simulate(g, init_condition, time_horizon, guard, sim_func, reset, init_vertex, deterministic): - """ - This function does a full hybrid simulation - - Args: - g (obj): graph object - init_condition (list): initial point - time_horizon (float): time horizon to simulate - guard (dryvr_plus_plus.core.guard.Guard): list of guard string corresponding to each transition - sim_func (function): simulation function - reset (dryvr_plus_plus.core.reset.Reset): list of reset corresponding to each transition - init_vertex (int): initial vertex that simulation starts - deterministic (bool) : enable or disable must transition - - Returns: - A dictionary obj contains simulation result. - Key is mode name and value is the simulation trace. - - """ - - ret_val = igraph.defaultdict(list) - # If you do not declare initialMode, then we will just use topological sort to find starting point - if init_vertex == -1: - computer_order = g.topological_sorting(mode=igraph.OUT) - cur_vertex = computer_order[0] - else: - cur_vertex = init_vertex - remain_time = time_horizon - cur_time = 0 - - # Plus 1 because we need to consider about time - dimensions = len(init_condition) + 1 - - sim_result = [] - # Avoid numeric error - while remain_time > 0.01: - - if DEBUG: - print(NEWLINE) - print((cur_vertex, remain_time)) - print('Current State', g.vs[cur_vertex]['label'], remain_time) - - if init_condition is None: - # Ideally this should not happen - break - - cur_successors = g.successors(cur_vertex) - transit_time = remain_time - cur_label = g.vs[cur_vertex]['label'] - - cur_sim_result = sim_func(cur_label, init_condition, transit_time) - if isinstance(cur_sim_result, np.ndarray): - cur_sim_result = cur_sim_result.tolist() - - if len(cur_successors) == 0: - # Some model return numpy array, convert to list - init_condition, truncated_result = guard.guard_sim_trace( - cur_sim_result, - "" - ) - cur_successor = None - - else: - # First find all possible transition - # Second randomly pick a path and time to transit - next_modes = [] - for cur_successor in cur_successors: - edge_id = g.get_eid(cur_vertex, cur_successor) - cur_guard_str = g.es[edge_id]['guards'] - cur_reset_str = g.es[edge_id]['resets'] - - next_init, truncated_result = guard.guard_sim_trace( - cur_sim_result, - cur_guard_str - ) - - next_init = reset.reset_point(cur_reset_str, next_init) - # If there is a transition - if next_init: - next_modes.append((cur_successor, next_init, truncated_result)) - if next_modes: - # It is a non-deterministic system, randomly choose next state to transit - if not deterministic: - cur_successor, init_condition, truncated_result = random.choice(next_modes) - # This is deterministic system, choose earliest transition - else: - shortest_time = float('inf') - for s, i, t in next_modes: - cur_tube_time = t[-1][0] - if cur_tube_time < shortest_time: - cur_successor = s - init_condition = i - truncated_result = t - shortest_time = cur_tube_time - else: - cur_successor = None - init_condition = None - - # Get real transit time from truncated result - transit_time = truncated_result[-1][0] - ret_val[cur_label] += truncated_result - sim_result.append(cur_label) - for simRow in truncated_result: - simRow[0] += cur_time - sim_result.append(simRow) - - remain_time -= transit_time - print("transit time", transit_time, "remain time", remain_time) - cur_time += transit_time - cur_vertex = cur_successor - - writeReachTubeFile(sim_result, SIMRESULTOUTPUT) - return ret_val - - -def calc_bloated_tube( - mode_label, - initial_set, - time_horizon, - time_step, - sim_func, - bloating_method, - kvalue, - sim_trace_num, - guard_checker=None, - guard_str="", - lane_map = None - ): - """ - This function calculate the reach tube for single given mode - - Args: - mode_label (str): mode name - initial_set (list): a list contains upper and lower bound of the initial set - time_horizon (float): time horizon to simulate - sim_func (function): simulation function - bloating_method (str): determine the bloating method for reach tube, either GLOBAL or PW - sim_trace_num (int): number of simulations used to calculate the discrepancy - kvalue (list): list of float used when bloating method set to PW - guard_checker (dryvr_plus_plus.core.guard.Guard or None): guard check object - guard_str (str): guard string - - Returns: - Bloated reach tube - - """ - print(initial_set) - random.seed(4) - cur_center = calcCenterPoint(initial_set[0], initial_set[1]) - cur_delta = calcDelta(initial_set[0], initial_set[1]) - traces = [sim_func(mode_label, cur_center, time_horizon, time_step, lane_map)] - # Simulate SIMTRACENUM times to learn the sensitivity - for _ in range(sim_trace_num): - new_init_point = randomPoint(initial_set[0], initial_set[1]) - traces.append(sim_func(mode_label, new_init_point, time_horizon, time_step, lane_map)) - - # Trim the trace to the same length - traces = trimTraces(traces) - if guard_checker is not None: - # pre truncated traces to get better bloat result - max_idx = -1 - for trace in traces: - ret_idx = guard_checker.guard_sim_trace_time(trace, guard_str) - max_idx = max(max_idx, ret_idx + 1) - for i in range(len(traces)): - traces[i] = traces[i][:max_idx] - - # The major - if bloating_method == GLOBAL: - cur_reach_tube: np.ndarray = get_reachtube_segment(np.array(traces), np.array(cur_delta), "PWGlobal") - # cur_reach_tube: np.ndarray = ReachabilityEngine.get_reachtube_segment_wrapper(np.array(traces), np.array(cur_delta)) - elif bloating_method == PW: - cur_reach_tube: np.ndarray = get_reachtube_segment(np.array(traces), np.array(cur_delta), "PW") - # cur_reach_tube: np.ndarray = ReachabilityEngine.get_reachtube_segment_wrapper(np.array(traces), np.array(cur_delta)) - else: - raise ValueError("Unsupported bloating method '" + bloating_method + "'") - final_tube = np.zeros((cur_reach_tube.shape[0]*2, cur_reach_tube.shape[2])) - final_tube[0::2, :] = cur_reach_tube[:, 0, :] - final_tube[1::2, :] = cur_reach_tube[:, 1, :] - # print(final_tube.tolist()[-2], final_tube.tolist()[-1]) - return final_tube.tolist() diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/dryvrmain.py b/dryvr_plus_plus/scene_verifier/dryvr/core/dryvrmain.py deleted file mode 100644 index 0b185c3c1f9018b9c687700594741c9bc072c46c..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/dryvrmain.py +++ /dev/null @@ -1,541 +0,0 @@ -""" -This file contains a single function that verifies model -""" -from __future__ import print_function -import time - -import dryvr_plus_plus.common.config as userConfig -from dryvr_plus_plus.common.io import parseVerificationInputFile, parseRrtInputFile, writeRrtResultFile -from dryvr_plus_plus.common.utils import buildModeStr, isIpynb, overloadConfig -from dryvr_plus_plus.core.distance import DistChecker -from dryvr_plus_plus.core.dryvrcore import * -from dryvr_plus_plus.core.goalchecker import GoalChecker -from dryvr_plus_plus.core.graph import Graph -from dryvr_plus_plus.core.guard import Guard -from dryvr_plus_plus.core.initialset import InitialSet -from dryvr_plus_plus.core.initialsetstack import InitialSetStack, GraphSearchNode -from dryvr_plus_plus.core.reachtube import ReachTube -from dryvr_plus_plus.core.reset import Reset -from dryvr_plus_plus.core.uniformchecker import UniformChecker -# from dryvr_plus_plus.tube_computer.backend.reachabilityengine import ReachabilityEngine -# from dryvr_plus_plus.tube_computer.backend.initialset import InitialSet - -def verify(data, sim_function, param_config=None): - """ - DryVR verification algorithm. - It does the verification and print out the verify result. - - Args: - data (dict): dictionary that contains params for the input file - sim_function (function): black-box simulation function - param_config (dict or None): example-specified configuration - - Returns: - Safety (str): safety of the system - Reach (obj): reach tube object - - """ - if param_config is None: - param_config = {} - # There are some fields can be config by example, - # If example specified these fields in paramConfig, - # overload these parameters to userConfig - overloadConfig(userConfig, param_config) - - refine_counter = 0 - - params = parseVerificationInputFile(data) - # Build the graph object - graph = build_graph( - params.vertex, - params.edge, - params.guards, - params.resets - ) - - # Build the progress graph for jupyter notebook - # isIpynb is used to detect if the code is running - # on notebook or terminal, the graph will only be shown - # in notebook mode - progress_graph = Graph(params, isIpynb()) - - # Make sure the initial mode is specified if the graph is dag - # FIXME should move this part to input check - # Bolun 02/12/2018 - assert graph.is_dag() or params.initialVertex != -1, "Graph is not DAG and you do not have initial mode!" - - checker = UniformChecker(params.unsafeSet, params.variables) - guard = Guard(params.variables) - reset = Reset(params.variables) - t_start = time.time() - - # Step 1) Simulation Test - # Random generate points, then simulate and check the result - for _ in range(userConfig.SIMUTESTNUM): - rand_init = randomPoint(params.initialSet[0], params.initialSet[1]) - - if DEBUG: - print('Random checking round ', _, 'at point ', rand_init) - - # Do a full hybrid simulation - sim_result = simulate( - graph, - rand_init, - params.timeHorizon, - guard, - sim_function, - reset, - params.initialVertex, - params.deterministic - ) - - # Check the traces for each mode - for mode in sim_result: - safety = checker.check_sim_trace(sim_result[mode], mode) - if safety == -1: - print('Current simulation is not safe. Program halt') - print('simulation time', time.time() - t_start) - return "UNSAFE", None - sim_end_time = time.time() - - # Step 2) Check Reach Tube - # Calculate the over approximation of the reach tube and check the result - print("Verification Begin") - - # Get the initial mode - if params.initialVertex == -1: - compute_order = graph.topological_sorting(mode=igraph.OUT) - initial_vertex = compute_order[0] - else: - initial_vertex = params.initialVertex - - # Build the initial set stack - cur_mode_stack = InitialSetStack(initial_vertex, userConfig.REFINETHRES, params.timeHorizon,0) - cur_mode_stack.stack.append(InitialSet(params.initialSet[0], params.initialSet[1])) - cur_mode_stack.bloated_tube.append(buildModeStr(graph, initial_vertex)) - while True: - # backward_flag can be SAFE, UNSAFE or UNKNOWN - # If the backward_flag is SAFE/UNSAFE, means that the children nodes - # of current nodes are all SAFE/UNSAFE. If one of the child node is - # UNKNOWN, then the backward_flag is UNKNOWN. - backward_flag = SAFE - - while cur_mode_stack.stack: - print(str(cur_mode_stack)) - print(cur_mode_stack.stack[-1]) - - if not cur_mode_stack.is_valid(): - # A stack will be invalid if number of initial sets - # is more than refine threshold we set for each stack. - # Thus we declare this stack is UNKNOWN - print(cur_mode_stack.mode, "is not valid anymore") - backward_flag = UNKNOWN - break - - # This is condition check to make sure the reach tube output file - # will be readable. Let me try to explain this. - # A reachtube output will be something like following - # MODEA->MODEB - # [0.0, 1.0, 1.1] - # [0.1, 1.1, 1.2] - # ..... - # Once we have refinement, we will add multiple reach tube to - # this cur_mode_stack.bloatedTube - # However, we want to copy MODEA->MODEB so we know that two different - # reach tube from two different refined initial set - # The result will be look like following - # MODEA->MODEB - # [0.0, 1.0, 1.1] - # [0.1, 1.1, 1.2] - # ..... - # MODEA->MODEB (this one gets copied!) - # [0.0, 1.5, 1.6] - # [0.1, 1.6, 1.7] - # ..... - if isinstance(cur_mode_stack.bloated_tube[-1], list): - cur_mode_stack.bloated_tube.append(cur_mode_stack.bloated_tube[0]) - - cur_stack = cur_mode_stack.stack - cur_vertex = cur_mode_stack.mode - cur_remain_time = cur_mode_stack.remain_time - cur_label = graph.vs[cur_vertex]['label'] - cur_successors = graph.successors(cur_vertex) - cur_initial = [cur_stack[-1].lower_bound, cur_stack[-1].upper_bound] - # Update the progress graph - progress_graph.update(buildModeStr(graph, cur_vertex), cur_mode_stack.bloated_tube[0], - cur_mode_stack.remain_time) - - if len(cur_successors) == 0: - # If there is not successor - # Calculate the current bloated tube without considering the guard - cur_bloated_tube = calc_bloated_tube(cur_label, - cur_initial, - cur_remain_time, - sim_function, - params.bloatingMethod, - params.kvalue, - userConfig.SIMTRACENUM, - ) - - candidate_tube = [] - shortest_time = float("inf") - shortest_tube = None - - for cur_successor in cur_successors: - edge_id = graph.get_eid(cur_vertex, cur_successor) - cur_guard_str = graph.es[edge_id]['guards'] - cur_reset_str = graph.es[edge_id]['resets'] - # Calculate the current bloated tube with guard involved - # Pre-check the simulation trace so we can get better bloated result - cur_bloated_tube = calc_bloated_tube(cur_label, - cur_initial, - cur_remain_time, - sim_function, - params.bloatingMethod, - params.kvalue, - userConfig.SIMTRACENUM, - guard_checker=guard, - guard_str=cur_guard_str, - ) - - # Use the guard to calculate the next initial set - next_init, truncated_result, transit_time = guard.guard_reachtube( - cur_bloated_tube, - cur_guard_str, - ) - - if next_init is None: - continue - - # Reset the next initial set - next_init = reset.reset_set(cur_reset_str, next_init[0], next_init[1]) - - # Build next mode stack - next_mode_stack = InitialSetStack( - cur_successor, - userConfig.CHILDREFINETHRES, - cur_remain_time - transit_time, - start_time=transit_time+cur_mode_stack.start_time - ) - next_mode_stack.parent = cur_mode_stack - next_mode_stack.stack.append(InitialSet(next_init[0], next_init[1])) - next_mode_stack.bloated_tube.append( - cur_mode_stack.bloated_tube[0] + '->' + buildModeStr(graph, cur_successor)) - cur_stack[-1].child[cur_successor] = next_mode_stack - if len(truncated_result) > len(candidate_tube): - candidate_tube = truncated_result - - # In case of must transition - # We need to record shortest tube - # As shortest tube is the tube invoke transition - if truncated_result[-1][0] < shortest_time: - shortest_time = truncated_result[-1][0] - shortest_tube = truncated_result - - # Handle must transition - if params.deterministic and len(cur_stack[-1].child) > 0: - next_modes_info = [] - for next_mode in cur_stack[-1].child: - next_modes_info.append((cur_stack[-1].child[next_mode].remain_time, next_mode)) - # This mode gets transit first, only keep this mode - max_remain_time, max_time_mode = max(next_modes_info) - # Pop other modes because of deterministic system - for _, next_mode in next_modes_info: - if next_mode == max_time_mode: - continue - cur_stack[-1].child.pop(next_mode) - candidate_tube = shortest_tube - print("Handle deterministic system, next mode", graph.vs[list(cur_stack[-1].child.keys())[0]]['label']) - - if not candidate_tube: - candidate_tube = cur_bloated_tube - - for i in range(len(candidate_tube)): - candidate_tube[i][0] += cur_mode_stack.start_time - - # Check the safety for current bloated tube - safety = checker.check_reachtube(candidate_tube, cur_label) - if safety == UNSAFE: - print("System is not safe in Mode ", cur_label) - # Start back Tracking from this point and print tube to a file - # push current unsafe_tube to unsafe tube holder - unsafe_tube = [cur_mode_stack.bloated_tube[0]] + candidate_tube - while cur_mode_stack.parent is not None: - prev_mode_stack = cur_mode_stack.parent - unsafe_tube = [prev_mode_stack.bloated_tube[0]] + prev_mode_stack.stack[-1].bloated_tube \ - + unsafe_tube - cur_mode_stack = prev_mode_stack - print('simulation time', sim_end_time - t_start) - print('verification time', time.time() - sim_end_time) - print('refine time', refine_counter) - writeReachTubeFile(unsafe_tube, UNSAFEFILENAME) - ret_reach = ReachTube(cur_mode_stack.bloated_tube, params.variables, params.vertex) - return "UNSAFE", ret_reach - - elif safety == UNKNOWN: - # Refine the current initial set - print(cur_mode_stack.mode, "check bloated tube unknown") - discard_initial = cur_mode_stack.stack.pop() - init_one, init_two = discard_initial.refine() - cur_mode_stack.stack.append(init_one) - cur_mode_stack.stack.append(init_two) - refine_counter += 1 - - elif safety == SAFE: - print("Mode", cur_mode_stack.mode, "check bloated tube safe") - if cur_mode_stack.stack[-1].child: - cur_mode_stack.stack[-1].bloated_tube += candidate_tube - next_mode, next_mode_stack = cur_mode_stack.stack[-1].child.popitem() - cur_mode_stack = next_mode_stack - print("Child exist in cur mode inital", cur_mode_stack.mode, "is cur_mode_stack Now") - else: - cur_mode_stack.bloated_tube += candidate_tube - cur_mode_stack.stack.pop() - print("No child exist in current initial, pop") - - if cur_mode_stack.parent is None: - # We are at head now - if backward_flag == SAFE: - # All the nodes are safe - print("System is Safe!") - print("refine time", refine_counter) - writeReachTubeFile(cur_mode_stack.bloated_tube, REACHTUBEOUTPUT) - ret_reach = ReachTube(cur_mode_stack.bloated_tube, params.variables, params.vertex) - print('simulation time', sim_end_time - t_start) - print('verification time', time.time() - sim_end_time) - return "SAFE", ret_reach - elif backward_flag == UNKNOWN: - print("Hit refine threshold, system halt, result unknown") - print('simulation time', sim_end_time - t_start) - print('verification time', time.time() - sim_end_time) - return "UNKNOWN", None - else: - if backward_flag == SAFE: - prev_mode_stack = cur_mode_stack.parent - prev_mode_stack.stack[-1].bloated_tube += cur_mode_stack.bloated_tube - print('back flag safe from', cur_mode_stack.mode, 'to', prev_mode_stack.mode) - if len(prev_mode_stack.stack[-1].child) == 0: - # There is no next mode from this initial set - prev_mode_stack.bloated_tube += prev_mode_stack.stack[-1].bloated_tube - prev_mode_stack.stack.pop() - cur_mode_stack = prev_mode_stack - print("No child in prev mode initial, pop,", prev_mode_stack.mode, "is cur_mode_stack Now") - else: - # There is another mode transition from this initial set - next_mode, next_mode_stack = prev_mode_stack.stack[-1].child.popitem() - cur_mode_stack = next_mode_stack - print("Child exist in prev mode inital", next_mode_stack.mode, "is cur_mode_stack Now") - elif backward_flag == UNKNOWN: - prev_mode_stack = cur_mode_stack.parent - print('back flag unknown from', cur_mode_stack.mode, 'to', prev_mode_stack.mode) - discard_initial = prev_mode_stack.stack.pop() - init_one, init_two = discard_initial.refine() - prev_mode_stack.stack.append(init_one) - prev_mode_stack.stack.append(init_two) - cur_mode_stack = prev_mode_stack - refine_counter += 1 - - -def graph_search(data, sim_function, param_config=None): - """ - DryVR controller synthesis algorithm. - It does the controller synthesis and print out the search result. - tube and transition graph will be stored in output folder if algorithm finds one - - Args: - data (dict): dictionary that contains params for the input file - sim_function (function): black-box simulation function - param_config (dict or None): example-specified configuration - - Returns: - None - - """ - if param_config is None: - param_config = {} - # There are some fields can be config by example, - # If example specified these fields in paramConfig, - # overload these parameters to userConfig - overloadConfig(userConfig, param_config) - # Parse the input json file and read out the parameters - params = parseRrtInputFile(data) - # Construct objects - checker = UniformChecker(params.unsafeSet, params.variables) - goal_set_checker = GoalChecker(params.goalSet, params.variables) - distance_checker = DistChecker(params.goal, params.variables) - # Read the important param - available_modes = params.modes - start_modes = params.modes - remain_time = params.timeHorizon - min_time_thres = params.minTimeThres - - # Set goal reach flag to False - # Once the flag is set to True, It means we find a transition Graph - goal_reached = False - - # Build the initial mode stack - # Current Method is ugly, we need to get rid of the initial Mode for GraphSearch - # It helps us to achieve the full automate search - # TODO Get rid of the initial Mode thing - random.shuffle(start_modes) - dummy_node = GraphSearchNode("start", remain_time, min_time_thres, 0) - for mode in start_modes: - dummy_node.children[mode] = GraphSearchNode(mode, remain_time, min_time_thres, dummy_node.level + 1) - dummy_node.children[mode].parent = dummy_node - dummy_node.children[mode].initial = (params.initialSet[0], params.initialSet[1]) - - cur_mode_stack = dummy_node.children[start_modes[0]] - dummy_node.visited.add(start_modes[0]) - - t_start = time.time() - while True: - - if not cur_mode_stack: - break - - if cur_mode_stack == dummy_node: - start_modes.pop(0) - if len(start_modes) == 0: - break - - cur_mode_stack = dummy_node.children[start_modes[0]] - dummy_node.visited.add(start_modes[0]) - continue - - print(str(cur_mode_stack)) - - # Keep check the remain time, if the remain time is less than minTime - # It means it is impossible to stay in one mode more than minTime - # Therefore, we have to go back to parents - if cur_mode_stack.remain_time < min_time_thres: - print("Back to previous mode because we cannot stay longer than the min time thres") - cur_mode_stack = cur_mode_stack.parent - continue - - # If we have visited all available modes - # We should select a new candidate point to proceed - # If there is no candidates available, - # Then we can say current node is not valid and go back to parent - if len(cur_mode_stack.visited) == len(available_modes): - if len(cur_mode_stack.candidates) < 2: - print("Back to previous mode because we do not have any other modes to pick") - cur_mode_stack = cur_mode_stack.parent - # If the tried all possible cases with no luck to find path - if not cur_mode_stack: - break - continue - else: - print("Pick a new point from candidates") - cur_mode_stack.candidates.pop(0) - cur_mode_stack.visited = set() - cur_mode_stack.children = {} - continue - - # Generate bloated tube if we haven't done so - if not cur_mode_stack.bloated_tube: - print("no bloated tube find in this mode, generate one") - cur_bloated_tube = calc_bloated_tube( - cur_mode_stack.mode, - cur_mode_stack.initial, - cur_mode_stack.remain_time, - sim_function, - params.bloatingMethod, - params.kvalue, - userConfig.SIMTRACENUM - ) - - # Cut the bloated tube once it intersect with the unsafe set - cur_bloated_tube = checker.cut_tube_till_unsafe(cur_bloated_tube) - - # If the tube time horizon is less than minTime, it means - # we cannot stay in this mode for min thres time, back to the parent node - if not cur_bloated_tube or cur_bloated_tube[-1][0] < min_time_thres: - print("bloated tube is not long enough, discard the mode") - cur_mode_stack = cur_mode_stack.parent - continue - cur_mode_stack.bloated_tube = cur_bloated_tube - - # Generate candidates points for next node - random_sections = cur_mode_stack.random_picker(userConfig.RANDSECTIONNUM) - - if not random_sections: - print("bloated tube is not long enough, discard the mode") - cur_mode_stack = cur_mode_stack.parent - continue - - # Sort random points based on the distance to the goal set - random_sections.sort(key=lambda x: distance_checker.calc_distance(x[0], x[1])) - cur_mode_stack.candidates = random_sections - print("Generate new bloated tube and candidate, with candidates length", len(cur_mode_stack.candidates)) - - # Check if the current tube reaches goal - result, tube = goal_set_checker.goal_reachtube(cur_bloated_tube) - if result: - cur_mode_stack.bloated_tube = tube - goal_reached = True - break - - # We have visited all next mode we have, generate some thing new - # This is actually not necessary, just shuffle all modes would be enough - # There should not be RANDMODENUM things since it does not make any difference - # Anyway, for each candidate point, we will try to visit all modes eventually - # Therefore, using RANDMODENUM to get some random modes visit first is useless - # TODO, fix this part - if len(cur_mode_stack.visited) == len(cur_mode_stack.children): - # leftMode = set(available_modes) - set(cur_mode_stack.children.keys()) - # random_modes = random.sample(leftMode, min(len(leftMode), RANDMODENUM)) - random_modes = available_modes - random.shuffle(random_modes) - - random_sections = cur_mode_stack.random_picker(userConfig.RANDSECTIONNUM) - for mode in random_modes: - candidate = cur_mode_stack.candidates[0] - cur_mode_stack.children[mode] = GraphSearchNode(mode, cur_mode_stack.remain_time - candidate[1][0], - min_time_thres, cur_mode_stack.level + 1) - cur_mode_stack.children[mode].initial = (candidate[0][1:], candidate[1][1:]) - cur_mode_stack.children[mode].parent = cur_mode_stack - - # Random visit a candidate that is not visited before - for key in cur_mode_stack.children: - if key not in cur_mode_stack.visited: - break - - print("transit point is", cur_mode_stack.candidates[0]) - cur_mode_stack.visited.add(key) - cur_mode_stack = cur_mode_stack.children[key] - - # Back track to print out trace - print("RRT run time", time.time() - t_start) - if goal_reached: - print("goal reached") - traces = [] - modes = [] - while cur_mode_stack: - modes.append(cur_mode_stack.mode) - if not cur_mode_stack.candidates: - traces.append([t for t in cur_mode_stack.bloated_tube]) - else: - # Cut the trace till candidate - temp = [] - for t in cur_mode_stack.bloated_tube: - if t == cur_mode_stack.candidates[0][0]: - temp.append(cur_mode_stack.candidates[0][0]) - temp.append(cur_mode_stack.candidates[0][1]) - break - else: - temp.append(t) - traces.append(temp) - if cur_mode_stack.parent != dummy_node: - cur_mode_stack = cur_mode_stack.parent - else: - break - # Reorganize the content in modes list for plotter use - modes = modes[::-1] - traces = traces[::-1] - build_rrt_graph(modes, traces, isIpynb()) - for i in range(1, len(modes)): - modes[i] = modes[i - 1] + '->' + modes[i] - - writeRrtResultFile(modes, traces, RRTOUTPUT) - else: - print("could not find graph") diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/goalchecker.py b/dryvr_plus_plus/scene_verifier/dryvr/core/goalchecker.py deleted file mode 100644 index 242ec870edd0a950ff131a02e17a9cf5bafbdc3b..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/goalchecker.py +++ /dev/null @@ -1,107 +0,0 @@ -""" -This file contains uniform checker class for DryVR -""" - -from dryvr_plus_plus.common.utils import handleReplace, neg -from z3 import * - - -class GoalChecker: - """ - This is class to check if the goal set is reached - by reach tube - """ - - def __init__(self, goal, variables): - """ - Goal checker class initialization function. - - Args: - goal (str): a str describing the goal set. - For example: "And(x_1>=19.5, x_1<=20.5, x_2>=-1.0, x_2<=1.0)" - variables (list): list of variable name - """ - self.varDic = {'t': Real('t')} - self.variables = variables - for var in variables: - self.varDic[var] = Real(var) - - goal = handleReplace(goal, list(self.varDic.keys())) - - self.intersectChecker = Solver() - self.containChecker = Solver() - - self.intersectChecker.add(eval(goal)) - self.containChecker.add(eval(neg(goal))) - - def goal_reachtube(self, tube): - """ - Check if the reach tube satisfied the goal - - Args: - tube (list): the reach tube. - - Returns: - A bool indicates if the goal is reached - The truncated tube if the goal is reached, otherwise the whole tube - """ - for i in range(0, len(tube), 2): - lower = tube[i] - upper = tube[i + 1] - if self._check_intersection(lower, upper): - if self._check_containment(lower, upper): - return True, tube[:i + 2] - return False, tube - - def _check_intersection(self, lower, upper): - """ - Check if the goal set intersect with the current set - #FIXME Maybe this is not necessary since we only want to check - the fully contained case - Bolun 02/13/2018 - - Args: - lower (list): the list represent the set's lowerbound. - upper (list): the list represent the set's upperbound. - - Returns: - A bool indicates if the set intersect with the goal set - """ - cur_solver = self.intersectChecker - cur_solver.push() - cur_solver.add(self.varDic["t"] >= lower[0]) - cur_solver.add(self.varDic["t"] <= upper[0]) - for i in range(1, len(lower)): - cur_solver.add(self.varDic[self.variables[i - 1]] >= lower[i]) - cur_solver.add(self.varDic[self.variables[i - 1]] <= upper[i]) - if cur_solver.check() == sat: - cur_solver.pop() - return True - else: - cur_solver.pop() - return False - - def _check_containment(self, lower, upper): - """ - Check if the current set contained in goal set. - - Args: - lower (list): the list represent the set's lowerbound. - upper (list): the list represent the set's upperbound. - - Returns: - A bool indicates if the set if contained in the goal set - """ - cur_solver = self.containChecker - cur_solver.push() - cur_solver.add(self.varDic["t"] >= lower[0]) - cur_solver.add(self.varDic["t"] <= upper[0]) - for i in range(1, len(lower)): - cur_solver.add(self.varDic[self.variables[i - 1]] >= lower[i]) - cur_solver.add(self.varDic[self.variables[i - 1]] <= upper[i]) - if cur_solver.check() == sat: - cur_solver.pop() - return False - else: - cur_solver.pop() - return True diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/graph.py b/dryvr_plus_plus/scene_verifier/dryvr/core/graph.py deleted file mode 100644 index d4770ff2001d436b7c4e0c9408812cea809c2fa1..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/graph.py +++ /dev/null @@ -1,80 +0,0 @@ -""" -This file contains graph class for DryVR -""" -# import matplotlib.pyplot as plt -import networkx as nx - - -class Graph: - """ - This is class to plot the progress graph for dryvr's - function, it is supposed to display the graph in jupyter - notebook and update the graph as dryvr is running - """ - - def __init__(self, params, is_ipynb): - """ - Guard checker class initialization function. - - Args: - params (obj): An object contains the parameter - is_ipynb (bool): check if the code is running on ipython or not - """ - self._is_ipynb = is_ipynb - if not is_ipynb: - return - vertex = [] - # Build unique identifier for a vertex and mode name - for idx, v in enumerate(params.vertex): - vertex.append(v + "," + str(idx)) - - edges = params.edge - self.edgeList = [] - for e in edges: - self.edgeList.append((vertex[e[0]], vertex[e[1]])) - # Initialize the plot - # self.fig = plt.figure() - # self.ax = self.fig.add_subplot(111) - - # Initialize the graph - self.G = nx.DiGraph() - self.G.add_edges_from(self.edgeList) - self.pos = nx.spring_layout(self.G) - self.colors = ['green'] * len(self.G.nodes()) - # self.fig.suptitle('', fontsize=10) - # Draw the graph when initialize - # self.draw() - # plt.show() - - def draw(self): - """ - Draw the white-box transition graph. - """ - - nx.draw_networkx_labels(self.G, self.pos) - options = { - 'node_color': self.colors, - 'node_size': 1000, - 'cmap': plt.get_cmap('jet'), - 'arrowstyle': '-|>', - 'arrowsize': 50, - } - nx.draw_networkx(self.G, self.pos, arrows=True, **options) - self.fig.canvas.draw() - - def update(self, cur_node, title, remain_time): - """ - update the graph - Args: - cur_node (str): current vertex dryvr is verifying - title (str): current transition path as the title - remain_time (float): remaining time - """ - if not self._is_ipynb: - return - self.ax.clear() - self.colors = ['green'] * len(self.G.nodes()) - self.colors[list(self.G.nodes()).index(cur_node)] = 'red' - self.fig.suptitle(title, fontsize=10) - self.ax.set_title("remain:" + str(remain_time)) - self.draw() diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/guard.py b/dryvr_plus_plus/scene_verifier/dryvr/core/guard.py deleted file mode 100644 index 79f1b70677881254fe6d2676f41485c3fdaef17a..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/guard.py +++ /dev/null @@ -1,211 +0,0 @@ -""" -This file contains guard class for DryVR -""" - -import random - -import sympy -from z3 import * - -from dryvr_plus_plus.common.utils import handleReplace - - -class Guard: - """ - This is class to calculate the set in the - reach tube that intersect with the guard - """ - - def __init__(self, variables): - """ - Guard checker class initialization function. - - Args: - variables (list): list of variable name - """ - self.varDic = {'t': Real('t')} - self.variables = variables - for var in variables: - self.varDic[var] = Real(var) - - def _build_guard(self, guard_str): - """ - Build solver for current guard based on guard string - - Args: - guard_str (str): the guard string. - For example:"And(v>=40-0.1*u, v-40+0.1*u<=0)" - - Returns: - A Z3 Solver obj that check for guard. - A symbol index dic obj that indicates the index - of variables that involved in the guard. - """ - cur_solver = Solver() - # This magic line here is because SymPy will evaluate == to be False - # Therefore we are not be able to get free symbols from it - # Thus we need to replace "==" to something else - sympy_guard_str = guard_str.replace("==", ">=") - - symbols = list(sympy.sympify(sympy_guard_str, evaluate=False).free_symbols) - symbols = [str(s) for s in symbols] - symbols_idx = {s: self.variables.index(s) + 1 for s in symbols if s in self.variables} - if 't' in symbols: - symbols_idx['t'] = 0 - - guard_str = handleReplace(guard_str, list(self.varDic.keys())) - cur_solver.add(eval(guard_str)) # TODO use an object instead of `eval` a string - return cur_solver, symbols_idx - - def guard_sim_trace(self, trace, guard_str): - """ - Check the guard for simulation trace. - Note we treat the simulation trace as the set as well. - Consider we have a simulation trace as following - [0.0, 1.0, 1.1] - [0.1, 1.02, 1.13] - [0.2, 1.05, 1.14] - ... - We can build set like - lower_bound: [0.0, 1.0, 1.1] - upper_bound: [0.1, 1.02, 1.13] - - lower_bound: [0.1, 1.02, 1.13] - upper_bound: [0.2, 1.05, 1.14] - And check guard for these set. This is because if the guard - is too small, it is likely for simulation point ignored the guard. - For example: - . . . . |guard| . . . - In this case, the guard gets ignored - - Args: - trace (list): the simulation trace - guard_str (str): the guard string. - For example:"And(v>=40-0.1*u, v-40+0.1*u<=0)" - - Returns: - A initial point for next mode, - The truncated simulation trace - """ - if not guard_str: - return None, trace - cur_solver, symbols = self._build_guard(guard_str) - guard_set = {} - - for idx in range(len(trace) - 1): - lower = trace[idx] - upper = trace[idx + 1] - cur_solver.push() - for symbol in symbols: - cur_solver.add(self.varDic[symbol] >= min(lower[symbols[symbol]], upper[symbols[symbol]])) - cur_solver.add(self.varDic[symbol] <= max(lower[symbols[symbol]], upper[symbols[symbol]])) - if cur_solver.check() == sat: - cur_solver.pop() - guard_set[idx] = upper - else: - cur_solver.pop() - if guard_set: - # Guard set is not empty, randomly pick one and return - # idx, point = random.choice(list(guard_set.items())) - idx, point = list(guard_set.items())[0] - # Return the initial point for next mode, and truncated trace - return point[1:], trace[:idx + 1] - - if guard_set: - # Guard set is not empty, randomly pick one and return - # idx, point = random.choice(list(guard_set.items())) - idx, point = list(guard_set.items())[0] - # Return the initial point for next mode, and truncated trace - return point[1:], trace[:idx + 1] - - # No guard hits for current tube - return None, trace - - def guard_sim_trace_time(self, trace, guard_str): - """ - Return the length of the truncated traces - - Args: - trace (list): the simulation trace - guard_str (str): the guard string. - For example:"And(v>=40-0.1*u, v-40+0.1*u<=0)" - - Returns: - the length of the truncated traces. - """ - next_init, trace = self.guard_sim_trace(trace, guard_str) - return len(trace) - - def guard_reachtube(self, tube, guard_str): - """ - Check the guard intersection of the reach tube - - - Args: - tube (list): the reach tube - guard_str (str): the guard string. - For example:"And(v>=40-0.1*u, v-40+0.1*u<=0)" - - Returns: - Next mode initial set represent as [upper_bound, lower_bound], - Truncated tube before the guard, - The time when elapsed in current mode. - - """ - if not guard_str: - return None, tube - - cur_solver, symbols = self._build_guard(guard_str) - guard_set_lower = [] - guard_set_upper = [] - for i in range(0, len(tube), 2): - cur_solver.push() - lower_bound = tube[i] - upper_bound = tube[i + 1] - for symbol in symbols: - cur_solver.add(self.varDic[symbol] >= lower_bound[symbols[symbol]]) - cur_solver.add(self.varDic[symbol] <= upper_bound[symbols[symbol]]) - if cur_solver.check() == sat: - # The reachtube hits the guard - cur_solver.pop() - guard_set_lower.append(lower_bound) - guard_set_upper.append(upper_bound) - - tmp_solver = Solver() - tmp_solver.add(Not(cur_solver.assertions()[0])) - for symbol in symbols: - tmp_solver.add(self.varDic[symbol] >= lower_bound[symbols[symbol]]) - tmp_solver.add(self.varDic[symbol] <= upper_bound[symbols[symbol]]) - if tmp_solver.check() == unsat: - print("Full intersect, break") - break - else: - cur_solver.pop() - if guard_set_lower: - # Guard set is not empty, build the next initial set and return - # At some point we might further reduce the initial set for next mode - init_lower = guard_set_lower[0][1:] - init_upper = guard_set_upper[0][1:] - for j in range(1, len(guard_set_lower)): - for k in range(1, len(guard_set_lower[0])): - init_lower[k - 1] = min(init_lower[k - 1], guard_set_lower[j][k]) - init_upper[k - 1] = max(init_upper[k - 1], guard_set_upper[j][k]) - # Return next initial Set, the result tube, and the true transit time - return [init_lower, init_upper], tube[:i], guard_set_lower[0][0] - - # Construct the guard if all later trace sat the guard condition - if guard_set_lower: - # Guard set is not empty, build the next initial set and return - # At some point we might further reduce the initial set for next mode - init_lower = guard_set_lower[0][1:] - init_upper = guard_set_upper[0][1:] - for j in range(1, len(guard_set_lower)): - for k in range(1, len(guard_set_lower[0])): - init_lower[k - 1] = min(init_lower[k - 1], guard_set_lower[j][k]) - init_upper[k - 1] = max(init_upper[k - 1], guard_set_upper[j][k]) - # init_upper[0] = init_lower[0] - - # Return next initial Set, the result tube, and the true transit time - return [init_lower, init_upper], tube[:i], guard_set_lower[0][0] - - return None, tube, tube[-1][0] diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/initialset.py b/dryvr_plus_plus/scene_verifier/dryvr/core/initialset.py deleted file mode 100644 index 0bc2a0a4f00648f93e859d83b6d8c0e172b5d69b..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/initialset.py +++ /dev/null @@ -1,69 +0,0 @@ -""" -This file contains initial set class for DryVR -""" - - -class InitialSet: - """ - This is class to represent the initial set - """ - - def __init__(self, lower, upper): - """ - Initial set class initialization function. - - Args: - lower (list): lower bound of the initial set - upper (list): upper bound of the initial set - """ - - self.lower_bound = lower - self.upper_bound = upper - self.delta = [(upper[i] - lower[i]) / 2.0 for i in range(len(upper))] - # Child point points to children InitialSetStack obj - # This it how it works - # Since a initial set can generate a reach tube that intersect - # with different guards - # So there can be multiple children pointers - # Therefore this is a dictionary obj - # self.child["MODEA"] = InitialSetStack for MODEA - self.child = {} - self.bloated_tube = [] - - def refine(self): - """ - This function refine the current initial set into two smaller set - - Returns: - two refined initial set - - """ - # Refine the initial set into two smaller set - # based on index with largest delta - idx = self.delta.index(max(self.delta)) - # Construct first smaller initial set - init_set_one_ub = list(self.upper_bound) - init_set_one_lb = list(self.lower_bound) - init_set_one_lb[idx] += self.delta[idx] - # Construct second smaller initial set - init_set_two_ub = list(self.upper_bound) - init_set_two_lb = list(self.lower_bound) - init_set_two_ub[idx] -= self.delta[idx] - - return ( - InitialSet(init_set_one_lb, init_set_one_ub), - InitialSet(init_set_two_lb, init_set_two_ub), - ) - - def __str__(self): - """ - Build string representation for the initial set - - Returns: - A string describes the initial set - """ - ret = "" - ret += "Lower Bound: " + str(self.lower_bound) + "\n" - ret += "Upper Bound: " + str(self.upper_bound) + "\n" - ret += "Delta: " + str(self.delta) + "\n" - return ret diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/initialsetstack.py b/dryvr_plus_plus/scene_verifier/dryvr/core/initialsetstack.py deleted file mode 100644 index e3474a07eb00a97e1fe734eaccc323ea410d2500..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/initialsetstack.py +++ /dev/null @@ -1,132 +0,0 @@ -""" -This file contains initial set class stack for DryVR -""" -import random - - -class InitialSetStack: - """ - This is class is for list of initial sets for a single node - """ - - def __init__(self, mode, threshold, remain_time, start_time): - """ - Initial set class initialization function. - - Args: - mode (str): the mode name for current node - threshold (int): threshold for refinement - remain_time (float): remaining time of the current node - """ - - # Mode name for the current mode - self.mode = mode - # Threshold (int) for the refinement - self.threshold = threshold - # Pointer point to the parent node - # If you wonder where child pointers are - # It's actually in the InitialSet class......... - self.parent = None - # A stack for InitialSet object - self.stack = [] - self.remain_time = remain_time - # Stores bloated tube result for all tubes start from initial sets in stack - self.bloated_tube = [] - self.start_time = start_time - - def is_valid(self): - """ - Check if current node is still valid or not. - (if number of initial sets in stack are more than threshold) - - Returns: - A bool to check if the stack is valid or not valid - """ - return len(self.stack) <= self.threshold - - def __str__(self): - """ - Build string representation for the initial set stack - - Args: - None - Returns: - A string describes the stack - """ - ret = "===============================================\n" - ret += "Mode: " + str(self.mode) + "\n" - ret += "stack size: " + str(len(self.stack)) + "\n" - ret += "remainTime: " + str(self.remain_time) + "\n" - return ret - - -class GraphSearchNode: - """ - This is class for graph search node - Contains some helpful stuff in graph search tree - """ - - def __init__(self, mode, remain_time, min_time_thres, level): - """ - GraphSearchNode class initialization function. - - Args: - mode (str): the mode name for current node - remain_time (float): remaining time of the current node - min_time_thres (float): minimal time should stay in this mode - level (int): tree depth - """ - self.mode = mode - # Pointer point to parent node - self.parent = None - # Initial set - self.initial = None - self.bloated_tube = [] - self.remain_time = remain_time - self._min_time_thres = min_time_thres - # Pointer point to children - self.children = {} - # keep track which child is visited - self.visited = set() - # select number of candidates initial set for children - self.candidates = [] - self.level = level - - def random_picker(self, k): - """ - Randomly pick k candidates initial set - - Args: - k (int): number of candidates - Returns: - A list of candidate initial sets - """ - i = 0 - ret = [] - while i < len(self.bloated_tube): - if self.bloated_tube[i][0] >= self._min_time_thres: - ret.append((self.bloated_tube[i], self.bloated_tube[i + 1])) - i += 2 - - random.shuffle(ret) - return ret[:k] - - def __str__(self): - """ - Build string representation for the Graph Search Node - - Returns: - A string describes the stack - """ - ret = "" - ret += "Level: " + str(self.level) + "\n" - ret += "Mode: " + str(self.mode) + "\n" - ret += "Initial: " + str(self.initial) + "\n" - ret += "visited: " + str(self.visited) + "\n" - ret += "num candidates: " + str(len(self.candidates)) + "\n" - ret += "remaining time: " + str(self.remain_time) + "\n" - if self.bloated_tube: - ret += "bloatedTube: True" + "\n" - else: - ret += "bloatedTube: False" + "\n" - return ret diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/reachtube.py b/dryvr_plus_plus/scene_verifier/dryvr/core/reachtube.py deleted file mode 100644 index 850b8a5a1fd796541d4cade354e0ad3537b3ad6c..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/reachtube.py +++ /dev/null @@ -1,88 +0,0 @@ -""" -This file contains reach tube class for DryVR -""" - -import six - - -class ReachTube: - """ - This is class is an object for reach tube - Ideally it should support to fetch reachtube by mode and variable name - And it should allow users to plot the reach tube in different ways - """ - - def __init__(self, tube, variables, modes): - """ - ReachTube class initialization function. - - Args: - tube (list): raw reach tube (that used to print to file) - variables (list): list of variables in the reach tube - modes (list): list of modes in the reach ReachTube - """ - self._tube = tube - self._variables = variables - self._modes = modes - - # Build the raw string representation so example can print it - - self.raw = "" - for line in tube: - if isinstance(line, str): - self.raw += line + "\n" - else: - self.raw += " ".join(map(str, line)) + '\n' - - # Build dictionary object so you can easily pull out part of the list - self._tube_dict = {} - for mode in modes: - self._tube_dict[mode] = {} - for var in variables + ["t"]: - self._tube_dict[mode][var] = [] - - cur_mode = "" - for line in tube: - if isinstance(line, six.string_types): - cur_mode = line.split('->')[-1].split(',')[0] # Get current mode name - for var in ['t'] + self._variables: - self._tube_dict[cur_mode][var].append(line) - else: - for var, val in zip(['t'] + self._variables, line): - self._tube_dict[cur_mode][var].append(val) - - def __str__(self): - """ - print the raw tube - """ - return str(self.raw) - - def filter(self, mode=None, variable=None, contain_label=True): - """ - This is a filter function that allows you to select - Args: - mode (str, list): single mode name or list of mode name - variable (str, list): single variable or list of variables - """ - if mode is None: - mode = self._modes - if variable is None: - variable = ["t"] + self._variables - - if isinstance(mode, str): - mode = [mode] - if isinstance(variable, str): - variable = [variable] - - res = [] - for m in mode: - temp = [] - for i in range(len(self._tube_dict[m]["t"])): - if isinstance(self._tube_dict[m]["t"][i], str): - if contain_label: - temp.append([self._tube_dict[m]["t"][i]] + variable) - continue - - temp.append([self._tube_dict[m][v][i] for v in variable]) - res.append(temp) - return res diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/reset.py b/dryvr_plus_plus/scene_verifier/dryvr/core/reset.py deleted file mode 100644 index 56f57abe06e14ba560a7bc967b575b25927ca31c..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/reset.py +++ /dev/null @@ -1,209 +0,0 @@ -""" -This file contains reset class for DryVR -""" - -import sympy - -from dryvr_plus_plus.common.utils import randomPoint - - -class Reset: - """ - This is class for resetting the initial set - """ - - def __init__(self, variables): - """ - Reset class initialization function. - - Args: - variables (list): list of varibale name - """ - self.variables = variables - - def reset_set(self, raw_eqs_str, lower_bound, upper_bound): - """ - Reset the initial set based on reset expressions - - Args: - raw_eqs_str (str): reset expressions separated by ';' - lower_bound (list): lower bound of the initial set - upper_bound (list): upper bound of the initial set - - Returns: - lower bound and upper bound of the initial set after reset - """ - if not raw_eqs_str: - return lower_bound, upper_bound - - raw_eqs = raw_eqs_str.split(';') - lb_list = [] - ub_list = [] - for rawEqu in raw_eqs: - lb, ub = self._handle_reset(rawEqu, lower_bound, upper_bound) - lb_list.append(lb) - ub_list.append(ub) - - return self._merge_result(lb_list, ub_list, lower_bound, upper_bound) - - def reset_point(self, raw_eqs_str, point): - """ - Reset the initial point based on reset expressions - - Args: - raw_eqs_str (str): list of reset expression - point (list): the initial point need to be reset - - Returns: - a point after reset - """ - if point == [] or not point: - return point - lower, upper = self.reset_set(raw_eqs_str, point, point) - return randomPoint(lower, upper) - - @staticmethod - def _merge_result(lb_list, ub_list, lower_bound, upper_bound): - """ - Merge the a list of reset result - Since we allow multiple reset per transition, - we get list of reset result, each result corresponding to one reset expression - We need to merge all reset result together - - Args: - lb_list (list): list of reset lower bound results - ub_list (list): list of reset upper bound results - lower_bound(list): original lower bound - upper_bound(list): original upper bound - - Returns: - Upper bound and lower bound after merge the reset result - """ - ret_lb = list(lower_bound) - ret_ub = list(upper_bound) - - for i in range(len(lb_list)): - cur_lb = lb_list[i] - cur_ub = ub_list[i] - for j in range(len(cur_lb)): - if cur_lb[j] != lower_bound[j]: - ret_lb[j] = cur_lb[j] - if cur_ub[j] != upper_bound[j]: - ret_ub[j] = cur_ub[j] - return ret_lb, ret_ub - - def _build_all_combo(self, symbols, lower_bound, upper_bound): - """ - This function allows us to build all combination given symbols - For example, if we have a 2-dimension set for dim A and B. - symbols = [A,B] - lowerBound = [1.0, 2.0] - upperBound = [3.0, 4.0] - Then the result should be all possible combination of the value of A and B - result: - [[1.0, 2.0], [3.0, 4.0], [3.0, 2.0], [1.0, 4.0]] - - Args: - symbols (list): symbols we use to create combo - lower_bound (list): lower bound of the set - upper_bound (list): upper bound of the set - - Returns: - List of combination value - """ - if not symbols: - return [] - - cur_symbol = str(symbols[0]) - idx = self.variables.index(cur_symbol) - lo = lower_bound[idx] - up = upper_bound[idx] - ret = [] - next_level = self._build_all_combo(symbols[1:], lower_bound, upper_bound) - if next_level: - for n in next_level: - ret.append(n + [(cur_symbol, lo)]) - ret.append(n + [(cur_symbol, up)]) - else: - ret.append([cur_symbol, lo]) - ret.append([cur_symbol, up]) - return ret - - def _handle_wrapped_reset(self, raw_eq, lower_bound, upper_bound): - """ - This is a function to handle reset such as V = [0, V+1] - - Args: - raw_eq (str): reset equation - lower_bound (list): lower bound of the set - upper_bound (list): upper bound of the set - - Returns: - Upper bound and lower bound after the reset - """ - final_equ = sympy.sympify(raw_eq) - rhs_symbols = list(final_equ.free_symbols) - combos = self._build_all_combo(rhs_symbols, lower_bound, upper_bound) - min_reset = float('inf') - max_reset = float('-inf') - if combos: - for combo in combos: - if len(combo) == 2: - result = float(final_equ.subs(combo[0], combo[1])) - else: - result = float(final_equ.subs(combo)) - min_reset = min(min_reset, float(result)) - max_reset = max(max_reset, float(result)) - else: - min_reset = float(final_equ) - max_reset = float(final_equ) - return (min_reset, max_reset) - - def _handle_reset(self, raw_equ, lower_bound, upper_bound): - """ - Handle the reset with single reset expression - - Args: - raw_equ (str): reset equation - lower_bound (list): lower bound of the set - upper_bound (list): upper bound of the set - - Returns: - Upper bound and lower bound after the reset - """ - equ_split = raw_equ.split('=') - lhs, rhs = equ_split[0], equ_split[1] - target = sympy.sympify(lhs) - # Construct the equation - final_equ = sympy.sympify(rhs) - if not isinstance(final_equ, list): - rhs_symbols = list(sympy.sympify(rhs).free_symbols) - else: - rhs_symbols = None - # print target, rhs_symbols - combos = self._build_all_combo(rhs_symbols, lower_bound, upper_bound) - # final_equ = solve(equ, target)[0] - - min_reset = float('inf') - max_reset = float('-inf') - if combos: - for combo in combos: - if len(combo) == 2: - result = float(final_equ.subs(combo[0], combo[1])) - else: - result = float(final_equ.subs(combo)) - min_reset = min(min_reset, float(result)) - max_reset = max(max_reset, float(result)) - elif isinstance(final_equ, list): - min_reset = min(self._handle_wrapped_reset(final_equ[0], lower_bound, upper_bound)) - max_reset = max(self._handle_wrapped_reset(final_equ[1], lower_bound, upper_bound)) - else: - min_reset = float(final_equ) - max_reset = float(final_equ) - - ret_lb = list(lower_bound) - ret_ub = list(upper_bound) - target_idx = self.variables.index(str(target)) - ret_lb[target_idx] = min_reset - ret_ub[target_idx] = max_reset - return ret_lb, ret_ub diff --git a/dryvr_plus_plus/scene_verifier/dryvr/core/uniformchecker.py b/dryvr_plus_plus/scene_verifier/dryvr/core/uniformchecker.py deleted file mode 100644 index dfa49b0a6d2d55b3c539029518cfbb8f1459a128..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/core/uniformchecker.py +++ /dev/null @@ -1,213 +0,0 @@ -""" -This file contains uniform checker class for DryVR -""" -import sympy -from z3 import * - -from dryvr_plus_plus.common.constant import * -from dryvr_plus_plus.common.utils import handleReplace, neg - - -class UniformChecker: - """ - This is class for check unsafe checking - """ - - def __init__(self, unsafe, variables): - """ - Reset class initialization function. - - Args: - unsafe (str): unsafe constraint - variables (list): list of variable name - """ - self.varDic = {'t': Real('t')} - self._variables = variables - self._solver_dict = {} - for var in variables: - self.varDic[var] = Real(var) - - if not unsafe: - return - - original = unsafe - - unsafe = handleReplace(unsafe, list(self.varDic.keys())) - unsafe_list = unsafe[1:].split('@') - for unsafe in unsafe_list: - mode, cond = unsafe.split(':') - self._solver_dict[mode] = [Solver(), Solver()] - self._solver_dict[mode][0].add(eval(cond)) - self._solver_dict[mode][1].add(eval(neg(cond))) - - unsafe_list = original[1:].split('@') - for unsafe in unsafe_list: - mode, cond = unsafe.split(':') - # This magic line here is because SymPy will evaluate == to be False - # Therefore we are not be able to get free symbols from it - # Thus we need to replace "==" to something else, which is >= - cond = cond.replace("==", ">=") - symbols = list(sympy.sympify(cond).free_symbols) - symbols = [str(s) for s in symbols] - symbols_idx = {s: self._variables.index(s) + 1 for s in symbols if s in self._variables} - if 't' in symbols: - symbols_idx['t'] = 0 - self._solver_dict[mode].append(symbols_idx) # TODO Fix typing - - def check_sim_trace(self, traces, mode): - """ - Check the simulation trace - - Args: - traces (list): simulation traces - mode (str): mode need to be checked - - Returns: - An int for checking result SAFE = 1, UNSAFE = -1 - """ - if mode in self._solver_dict: - cur_solver = self._solver_dict[mode][0] - symbols = self._solver_dict[mode][2] - elif 'Allmode' in self._solver_dict: - cur_solver = self._solver_dict['Allmode'][0] - symbols = self._solver_dict['Allmode'][2] - else: - # Return True if we do not check this mode - return SAFE - - for t in traces: - cur_solver.push() - for symbol in symbols: - cur_solver.add(self.varDic[symbol] == t[symbols[symbol]]) - - if cur_solver.check() == sat: - cur_solver.pop() - return UNSAFE - else: - cur_solver.pop() - return SAFE - - def check_reachtube(self, tube, mode): - """ - Check the bloated reach tube - - Args: - tube (list): reach tube - mode (str): mode need to be checked - - Returns: - An int for checking result SAFE = 1, UNSAFE = -1, UNKNOWN = 0 - """ - if mode not in self._solver_dict and 'Allmode' not in self._solver_dict: - # Return True if we do not check this mode - return SAFE - - safe = SAFE - for i in range(0, len(tube), 2): - lower = tube[i] - upper = tube[i + 1] - if self._check_intersection(lower, upper, mode): - if self._check_containment(lower, upper, mode): - # The unsafe region is fully contained - return UNSAFE - else: - # We do not know if it is truly unsafe or not - safe = UNKNOWN - return safe - - def cut_tube_till_unsafe(self, tube): - """ - Truncated the tube before it intersect with unsafe set - - Args: - tube (list): reach tube - - Returns: - truncated tube - """ - if not self._solver_dict: - return tube - # Cut the reach tube till it intersect with unsafe - for i in range(0, len(tube), 2): - lower = tube[i] - upper = tube[i + 1] - if self._check_intersection(lower, upper, 'Allmode'): - # we need to cut here - return tube[:i] - - return tube - - def _check_intersection(self, lower, upper, mode): - """ - Check if current set intersect with the unsafe set - - Args: - lower (list): lower bound of the current set - upper (list): upper bound of the current set - mode (str): the mode need to be checked - - Returns: - Return a bool to indicate if the set intersect with the unsafe set - """ - if mode in self._solver_dict: - cur_solver = self._solver_dict[mode][0] - symbols = self._solver_dict[mode][2] - elif 'Allmode' in self._solver_dict: - cur_solver = self._solver_dict['Allmode'][0] - symbols = self._solver_dict['Allmode'][2] - else: - raise ValueError("Unknown mode '" + mode + "'") - - cur_solver.push() - for symbol in symbols: - cur_solver.add(self.varDic[symbol] >= lower[symbols[symbol]]) - cur_solver.add(self.varDic[symbol] <= upper[symbols[symbol]]) - - check_result = cur_solver.check() - - if check_result == sat: - cur_solver.pop() - return True - if check_result == unknown: - print("Z3 return unknown result") - exit() # TODO Proper return instead of exit - else: - cur_solver.pop() - return False - - def _check_containment(self, lower, upper, mode): - """ - Check if the current set is fully contained in unsafe region - - Args: - lower (list): lower bound of the current set - upper (list): upper bound of the current set - mode (str): the mode need to be checked - - Returns: - Return a bool to indicate if the set is fully contained in unsafe region - """ - if mode in self._solver_dict: - cur_solver = self._solver_dict[mode][1] - symbols = self._solver_dict[mode][2] - elif 'Allmode' in self._solver_dict: - cur_solver = self._solver_dict['Allmode'][1] - symbols = self._solver_dict['Allmode'][2] - else: - raise ValueError("Unknown mode '" + mode + "'") - - cur_solver.push() - for symbol in symbols: - cur_solver.add(self.varDic[symbol] >= lower[symbols[symbol]]) - cur_solver.add(self.varDic[symbol] <= upper[symbols[symbol]]) - check_result = cur_solver.check() - - if check_result == sat: - cur_solver.pop() - return False - if check_result == unknown: - print("Z3 return unknown result") - exit() # TODO Proper return instead of exit - else: - cur_solver.pop() - return True diff --git a/dryvr_plus_plus/scene_verifier/dryvr/discrepancy/Global_Disc.py b/dryvr_plus_plus/scene_verifier/dryvr/discrepancy/Global_Disc.py deleted file mode 100644 index d84b5176e7c3ae8aca917af0ea533e5f6aab137d..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/discrepancy/Global_Disc.py +++ /dev/null @@ -1,125 +0,0 @@ -""" -This file contains core bloating algorithm for dryvr -""" - -from typing import List, Tuple -import numpy as np -import scipy as sp -import scipy.spatial - -_TRUE_MIN_CONST = -10 -_EPSILON = 1.0e-6 -_SMALL_EPSILON = 1e-10 - - -def get_reachtube_segment(training_traces: np.ndarray, initial_radii: np.ndarray, method='PWGlobal') -> np.array: - num_traces: int = training_traces.shape[0] - ndims: int = training_traces.shape[2] # This includes time - trace_len: int = training_traces.shape[1] - center_trace: np.ndarray = training_traces[0, :, :] - trace_initial_time = center_trace[0, 0] - x_points: np.ndarray = center_trace[:, 0] - trace_initial_time - assert np.all(training_traces[0, :, 0] == training_traces[1:, :, 0]) - y_points: np.ndarray = all_sensitivities_calc(training_traces, initial_radii) - points: np.ndarray = np.zeros((ndims - 1, trace_len, 2)) - points[np.where(initial_radii != 0), 0, 1] = 1.0 - points[:, :, 0] = np.reshape(x_points, (1, x_points.shape[0])) - points[:, 1:, 1] = y_points - normalizing_initial_set_radii: np.ndarray = initial_radii.copy() - normalizing_initial_set_radii[np.where(normalizing_initial_set_radii == 0)] = 1.0 - df: np.ndarray = np.zeros((trace_len, ndims)) - if method == 'PW': - df[:, 1:] = np.transpose( - points[:, :, 1] * np.reshape(normalizing_initial_set_radii, (normalizing_initial_set_radii.size, 1))) - elif method == 'PWGlobal': - # replace zeros with epsilons - # points[np.where(points[:, 0, 1] == 0), 0, 1] = 1.0e-100 - # to fit exponentials make y axis log of sensitivity - points[:, :, 1] = np.maximum(points[:, :, 1], _EPSILON) - points[:, :, 1] = np.log(points[:, :, 1]) - for dim_ind in range(1, ndims): - new_min = min(np.min(points[dim_ind - 1, 1:, 1]) + _TRUE_MIN_CONST, -10) - if initial_radii[dim_ind - 1] == 0: - # exclude initial set, then add true minimum points - new_points: np.ndarray = np.row_stack( - (np.array((points[dim_ind - 1, 1, 0], new_min)), np.array((points[dim_ind - 1, -1, 0], new_min)))) - else: - # start from zero, then add true minimum points - new_points: np.ndarray = np.row_stack((points[dim_ind - 1, 0, :], - np.array((points[dim_ind - 1, 0, 0], new_min)), - np.array((points[dim_ind - 1, -1, 0], new_min)))) - df[0, dim_ind] = initial_radii[dim_ind - 1] - # Tuple order is start_time, end_time, slope, y-intercept - cur_dim_points = np.concatenate((points[dim_ind - 1, 1:, :], new_points), axis=0) - cur_hull: sp.spatial.ConvexHull = sp.spatial.ConvexHull(cur_dim_points) - linear_separators: List[Tuple[float, float, float, float, int, int]] = [] - vert_inds = list(zip(cur_hull.vertices[:-1], cur_hull.vertices[1:])) - vert_inds.append((cur_hull.vertices[-1], cur_hull.vertices[0])) - for end_ind, start_ind in vert_inds: - if cur_dim_points[start_ind, 1] != new_min and cur_dim_points[end_ind, 1] != new_min: - slope = (cur_dim_points[end_ind, 1] - cur_dim_points[start_ind, 1]) / ( - cur_dim_points[end_ind, 0] - cur_dim_points[start_ind, 0]) - y_intercept = cur_dim_points[start_ind, 1] - cur_dim_points[start_ind, 0] * slope - start_time = cur_dim_points[start_ind, 0] - end_time = cur_dim_points[end_ind, 0] - assert start_time < end_time - if start_time == 0: - linear_separators.append((start_time, end_time, slope, y_intercept, 0, end_ind + 1)) - else: - linear_separators.append((start_time, end_time, slope, y_intercept, start_ind + 1, end_ind + 1)) - linear_separators.sort() - prev_val = 0 - prev_ind = 1 if initial_radii[dim_ind - 1] == 0 else 0 - for linear_separator in linear_separators: - _, _, slope, y_intercept, start_ind, end_ind = linear_separator - assert prev_ind == start_ind - assert start_ind < end_ind - segment_t = center_trace[start_ind:end_ind + 1, 0] - segment_df = normalizing_initial_set_radii[dim_ind - 1] * np.exp(y_intercept) * np.exp( - slope * segment_t) - segment_df[0] = max(segment_df[0], prev_val) - df[start_ind:end_ind + 1, dim_ind] = segment_df - prev_val = segment_df[-1] - prev_ind = end_ind - else: - print('Discrepancy computation method,', method, ', is not supported!') - raise ValueError - assert (np.all(df >= 0)) - reachtube_segment: np.ndarray = np.zeros((trace_len - 1, 2, ndims)) - reachtube_segment[:, 0, :] = np.minimum(center_trace[1:, :] - df[1:, :], center_trace[:-1, :] - df[:-1, :]) - reachtube_segment[:, 1, :] = np.maximum(center_trace[1:, :] + df[1:, :], center_trace[:-1, :] + df[:-1, :]) - # assert 100% training accuracy (all trajectories are contained) - for trace_ind in range(training_traces.shape[0]): - if not (np.all(reachtube_segment[:, 0, :] <= training_traces[trace_ind, 1:, :]) and np.all(reachtube_segment[:, 1, :] >= training_traces[trace_ind, 1:, :])): - assert np.any(np.abs(training_traces[trace_ind, 0, 1:]-center_trace[0, 1:]) > initial_radii) - print(f"Warning: Trace #{trace_ind}", "of this initial set is sampled outside of the initial set because of floating point error and is not contained in the initial set") - return reachtube_segment - - -def all_sensitivities_calc(training_traces: np.ndarray, initial_radii: np.ndarray): - num_traces: int - trace_len: int - ndims: int - num_traces, trace_len, ndims = training_traces.shape - normalizing_initial_set_radii: np.array = initial_radii.copy() - y_points: np.array = np.zeros((normalizing_initial_set_radii.shape[0], trace_len - 1)) - normalizing_initial_set_radii[np.where(normalizing_initial_set_radii == 0)] = 1.0 - for cur_dim_ind in range(1, ndims): - normalized_initial_points: np.array = training_traces[:, 0, 1:] / normalizing_initial_set_radii - initial_distances = sp.spatial.distance.pdist(normalized_initial_points, 'chebyshev') + _SMALL_EPSILON - for cur_time_ind in range(1, trace_len): - y_points[cur_dim_ind - 1, cur_time_ind - 1] = np.max((sp.spatial.distance.pdist( - np.reshape(training_traces[:, cur_time_ind, cur_dim_ind], - (training_traces.shape[0], 1)), 'chebychev' - )/ normalizing_initial_set_radii[cur_dim_ind - 1]) / initial_distances) - return y_points - -if __name__=="__main__": - with open("test.npy", "rb") as f: - training_traces = np.load(f) - initial_radii = np.array([1.96620653e-06, 2.99999995e+00, 3.07000514e-07, 8.84958773e-13, 1.05625786e-16, 3.72500000e+00, 0.00000000e+00, 0.00000000e+00]) - result = get_reachtube_segment(training_traces, initial_radii, method='PWGlobal') - print(training_traces.dtype) - # plot_rtsegment_and_traces(result, training_traces[np.array((0, 6))]) - - diff --git a/dryvr_plus_plus/scene_verifier/dryvr/discrepancy/PW_Discrepancy.py b/dryvr_plus_plus/scene_verifier/dryvr/discrepancy/PW_Discrepancy.py deleted file mode 100644 index 53cac39418bfb66277fc7a37b25387648e5c076e..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/dryvr/discrepancy/PW_Discrepancy.py +++ /dev/null @@ -1,341 +0,0 @@ -from __future__ import division, print_function - -import math - - -def read_data(traces): - """ Read in all the traces """ - error_thred_time = 1e-3 - - trace = traces[0] - delta_time = trace[1][0] - trace[0][0] - - # Calculate variables - dimensions = len(trace[0]) - dimensions_nt = dimensions - 1 - end_time = trace[-1][0] - - # Align all the traces - for i in range(len(traces)): - initial_time = traces[i][0][0] - for j in range(len(traces[i])): - traces[i][j][0] = traces[i][j][0] - initial_time - - # reassign the start time and end time - start_time = 0 - for i in range(len(traces)): - end_time = min(end_time, traces[i][-1][0]) - - # trim all the points after the end time - traces_trim = traces - - # reassign trace_len - trace_len = len(traces_trim[0]) - - return (traces_trim, dimensions, dimensions_nt, trace_len, end_time, delta_time, start_time) - - -def compute_diff(traces): - """ Compute difference between traces """ - # Iterate over all combinations - traces_diff = [] - for i in range(0, len(traces)): - for j in range(i + 1, len(traces)): - - trace_diff = [] - - # Iterate over the data of the trace - for t in range(0, len(traces[i])): - diff = [abs(x_i - y_i) for x_i, y_i in zip(traces[i][t], - traces[j][t])] - trace_diff.append(diff[1:]) - - # Append to traces diff minus time difference - traces_diff.append(trace_diff) - - # TODO Eliminate hardcoded file name - with open('output/tracediff2.txt', 'w') as write_file: - for i in range(len(traces_diff)): - for j in range(len(traces_diff[0])): - write_file.write(str(traces_diff[i][j]) + '\n') - write_file.write('\n') - return traces_diff - - -def find_time_intervals(traces_diff, dimensions_nt, end_time, trace_len, delta_time, K_value): - """ Compute the time intervals """ - # FIXME just do 1 dimension for now - # Iterate through all dimensions - num_ti = [] - time_intervals = [] - - for i in range(0, dimensions_nt): - - time_dim = [] - - # Obtain difference at start of interval - diff_0 = [] - t_0 = 0.0 - time_dim.append(t_0) - for k in range(0, len(traces_diff)): - diff_0.append(traces_diff[k][0][i]) - # Iterate through all points in trace - - for j in range(1, trace_len): - # Obtain difference at ith time of interval - diff_i = [] - try: - for k in range(0, len(traces_diff)): - diff_i.append(traces_diff[k][j][i]) - except IndexError: - print(trace_len) - print(k, j, i) - print(len(traces_diff[k])) - print(len(traces_diff[k][j])) - - # Check time - t_i = j * delta_time - t = t_i - t_0 - if t <= 0: - continue - - # Compute ratios - ratio = [] - for d_0, d_i in zip(diff_0, diff_i): - if d_i < 1E-3: - continue - elif d_0 < 1E-3: - continue - - # NOTE not sure if this is right? - # ratio.append((1 / t) * math.log(d_i / d_0)) - ratio.append(d_i / d_0) - - # Check ratios if less than constant - # new_int = all(r <= 2.0*K_value[i] for r in ratio) - # new_int = all(r <= 2**(2*t)*K_value[i] for r in ratio) - new_int = all(r <= 1 for r in ratio) - if new_int == False: - if t_i != end_time: - time_dim.append(t_i) - diff_0 = diff_i - t_0 = t_i - - # Append the time intervals - time_dim.append(end_time) - time_intervals.append(time_dim) - # record the number of time intervals - num_ti.append(len(time_intervals[i]) - 1) - - return (time_intervals, num_ti) - - -# Compute discrepancies -def calculate_discrepancies(time_intervals, traces_diff, dimensions_nt, delta_time, K_value): - # FIXME - # Iterate over all dimensions - discrepancies = [] - for nd in range(0, dimensions_nt): - # for nd in xrange(0, P_DIM): - disc = [] - - # Iterate over all time intervals - for ni in range(0, len(time_intervals[nd]) - 1): - t_0 = time_intervals[nd][ni] - t_e = time_intervals[nd][ni + 1] - # t_i = t_0 + delta_time - - # FIXME (???) - # print "note",delta_time - points = int((t_e - t_0) / delta_time + 0.5) + 1 - idx = int(t_0 / delta_time) - - # try to find the best K and gamma - tmp_K_value = K_value[nd] - # Iterate over all trace difference - glpk_rows = [] - close_flag = 0 - for k in range(0, len(traces_diff)): - - # Compute initial - diff_0 = traces_diff[k][0][nd] - if diff_0 <= 1E-3: - # print('Find two traces to be too closed!') - # print('use the default value!') - close_flag = 1 - break - ln_0 = math.log(diff_0) - - # FIXME need to reset the delta_time here - t_i = t_0 + delta_time - # print(disc) - # Obtain rows for GLPK - for r in range(1, points): - t_d = t_i - t_0 - t_i += delta_time - diff_i = traces_diff[k][idx + r][nd] - - if diff_i < 1E-3: - continue - - ln_i = math.log(diff_i) - - # compute the existing previous time interval discrepancy - discrepancy_now = 0 - if len(disc) != 0: - for time_prev in range(0, len(disc)): - discrepancy_now = discrepancy_now + disc[time_prev] * ( - time_intervals[nd][time_prev + 1] - time_intervals[nd][time_prev]) - - ln_d = ln_i - ln_0 - math.log(tmp_K_value) - discrepancy_now - glpk_rows.append([t_d, ln_d]) - - # Debugging algebraic solution - if close_flag == 0: - alg = [d / t for t, d in glpk_rows] - if len(alg) != 0: - alg_max = max(alg) - else: - alg_max = 0 - else: - alg_max = 0 - - disc.append(alg_max) - - # Append discrepancies - discrepancies.append(disc) - - return discrepancies - - -# Obtain bloated tube -def generate_bloat_tube(traces, time_intervals, discrepancies, Initial_Delta, end_time, trace_len, dimensions_nt, - delta_time, K_value): - - # Iterate over all dimensions - # FIXME - bloat_tube = [] - for i in range(trace_len): - bloat_tube.append([]) - bloat_tube.append([]) - - for nd in range(0, dimensions_nt): - # for nd in xrange(P_DIM - 1, P_DIM): - - time_bloat = [] - low_bloat = [] - up_bloat = [] - - # To construct the reach tube - time_tube = [] - tube = [] - - prev_delta = Initial_Delta[nd] - - # Iterate over all intervals - previous_idx = -1 - - for ni in range(0, len(time_intervals[nd]) - 1): - t_0 = time_intervals[nd][ni] - t_e = time_intervals[nd][ni + 1] - - if t_e == end_time: - points = int((t_e - t_0) / delta_time + 0.5) + 1 - else: - points = int((t_e - t_0) / delta_time + 0.5) - idx = int(t_0 / delta_time) - - gamma = discrepancies[nd][ni] - - # Iterate over all points in center trace - for r in range(0, points): - - current_idx = idx + r - - if current_idx != previous_idx + 1: - # print('Index mismatch found!') - if current_idx == previous_idx: - idx += 1 - elif current_idx == previous_idx + 2: - idx -= 1 - - pnt = traces[0][idx + r] - pnt_time = pnt[0] - pnt_data = pnt[nd + 1] - - cur_delta = prev_delta * math.exp(gamma * delta_time) - max_delta = max(prev_delta, cur_delta) - - time_bloat.append(pnt_time) - low_bloat.append(pnt_data - max_delta * K_value[nd]) - up_bloat.append(pnt_data + max_delta * K_value[nd]) - - if nd == 0: - bloat_tube[2 * (idx + r)].append(pnt_time) - bloat_tube[2 * (idx + r)].append(pnt_data - max_delta * K_value[nd]) - bloat_tube[2 * (idx + r) + 1].append(pnt_time + delta_time) - bloat_tube[2 * (idx + r) + 1].append(pnt_data + max_delta * K_value[nd]) - else: - bloat_tube[2 * (idx + r)].append(pnt_data - max_delta * K_value[nd]) - bloat_tube[2 * (idx + r) + 1].append(pnt_data + max_delta * K_value[nd]) - - prev_delta = cur_delta - - previous_idx = idx + r - - return bloat_tube - -# Print out the intervals and discrepancies -def print_int_disc(discrepancies, time_intervals): - for nd in range(0, len(discrepancies)): - for p in range(0, len(discrepancies[nd])): - print('idx: ' + str(p) + ' int: ' + str(time_intervals[nd][p]) - + ' to ' + str(time_intervals[nd][p + 1]) + ', disc: ' + - str(discrepancies[nd][p])) - print('') - -def PW_Bloat_to_tube(Initial_Delta, plot_flag, plot_dim, traces, K_value): - # Read data in - # if Mode == 'Const': - # K_value = [1.0,1.0,2.0] - # elif Mode == 'Brake': - # K_value = [1.0,1.0,7.0] - - # if Mode == 'Const;Const': - # K_value = [1.0,1.0,2.0,1.0,1.0,2.0] - # elif Mode == 'Brake;Const': - # K_value = [1.0,1.0,2.0,1.0,1.0,2.0] - - # elif Mode == 'Brake;Brake': - # K_value = [1.0,1.0,5.0,1.0,1.0,2.0] - - traces, dimensions, dimensions_nt, trace_len, end_time, delta_time, start_time = read_data(traces) - # Compute difference between traces - traces_diff = compute_diff(traces) - # print traces_diff - - # Find time intervals for discrepancy calculations - time_intervals, num_ti = find_time_intervals(traces_diff, dimensions_nt, end_time, trace_len, delta_time, K_value) - # print('number of time intervals:') - # print num_ti - # Discrepancy calculation - discrepancies = calculate_discrepancies(time_intervals, traces_diff, dimensions_nt, delta_time, K_value) - # print('The K values') - # print K_value, - # system.exit('test') - - # Write discrepancies to file - # write_to_file(time_intervals,discrepancies,write_path +' disp.txt', 'disc') - - # Nicely print the intervals and discrepancies - # print_int_disc(discrepancies,time_intervals) - - # Bloat the tube using time intervals - reach_tube = generate_bloat_tube(traces, time_intervals, discrepancies, Initial_Delta, end_time, trace_len, - dimensions_nt, delta_time, K_value) - - # if plot_flag: - # plot_traces(traces, plot_dim, reach_tube) - # plt.show() - - return reach_tube diff --git a/dryvr_plus_plus/scene_verifier/dryvr/discrepancy/__init__.py b/dryvr_plus_plus/scene_verifier/dryvr/discrepancy/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dryvr_plus_plus/scene_verifier/map/__init__.py b/dryvr_plus_plus/scene_verifier/map/__init__.py deleted file mode 100644 index c4fd24f6b4b1fa640294337d048c0fc8d7051183..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/map/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -# try: -# from lane_map import LaneMap -# from single_straight_lane import SingleStraightLaneMap -# from lane_segment import LaneSegment -# except: -# from scene_verifier.map.lane_segment import LaneSegment -# # from scene_verifier.map.lane_map import LaneMap -# # from scene_verifier.map.single_straight_lane import SingleStraightLaneMap \ No newline at end of file diff --git a/dryvr_plus_plus/scene_verifier/map/lane_map_3d.py b/dryvr_plus_plus/scene_verifier/map/lane_map_3d.py deleted file mode 100644 index ed56964cbe42e0e65429e2e6fdefc381c5ef0d71..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/map/lane_map_3d.py +++ /dev/null @@ -1,34 +0,0 @@ -from typing import Dict, List -import copy -from enum import Enum - -import numpy as np - -from dryvr_plus_plus.scene_verifier.map.lane_segment import AbstractLane -from dryvr_plus_plus.scene_verifier.map.lane import Lane -from dryvr_plus_plus.scene_verifier.map.lane_map import LaneMap - - -class LaneMap_3d(LaneMap): - - def __init__(self, lane_seg_list: List[Lane] = [], waypoints: List = [], guard_boxes: List = [], time_limits: List = []): - super().__init__(lane_seg_list) - # these are for the Follow_Waypoint mode of qurdrotor - self.waypoints = waypoints - self.guard_boxes = guard_boxes - self.time_limits = time_limits - - def get_waypoint_by_id(self, waypoint_id): - return self.waypoints[waypoint_id] - - def check_guard_box(self, state, waypoint_id): - if waypoint_id >= len(self.guard_boxes): - return False - box = self.guard_boxes[int(waypoint_id)] - for i in range(len(box[0])): - if state[i] < box[0][i] or state[i] > box[1][i]: - return False - return True - - def get_timelimit_by_id(self, waypoint_id): - return self.time_limits[waypoint_id] diff --git a/dryvr_plus_plus/scene_verifier/map/lane_segment_3d.py b/dryvr_plus_plus/scene_verifier/map/lane_segment_3d.py deleted file mode 100644 index d88e6cfc72c4e34d63b9ac5076fb3d0c4c6990ae..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/map/lane_segment_3d.py +++ /dev/null @@ -1,23 +0,0 @@ -from typing import List -import numpy as np -from abc import ABCMeta, abstractmethod -from typing import Tuple, List, Optional, Union - -from dryvr_plus_plus.scene_verifier.utils.utils import wrap_to_pi, Vector, get_class_path, class_from_path, to_serializable -from dryvr_plus_plus.scene_verifier.map.lane_segment import LineType, AbstractLane, StraightLane - - -class StraightLane_3d(StraightLane): - - """A lane going in 3d straight line.""" - - def __init__(self, - id: str, - start: Vector, - end: Vector, - width: float = AbstractLane.DEFAULT_WIDTH, - line_types: Tuple[LineType, LineType] = None, - forbidden: bool = False, - speed_limit: float = 20, - priority: int = 0) -> None: - super().__init__(id, start ,end , width,line_types,forbidden,speed_limit,priority) diff --git a/dryvr_plus_plus/scene_verifier/scenario/__init__.py b/dryvr_plus_plus/scene_verifier/scenario/__init__.py deleted file mode 100644 index 559069149e378ddbcab6cecd08c7ec429a29962f..0000000000000000000000000000000000000000 --- a/dryvr_plus_plus/scene_verifier/scenario/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# try: -# from Scenario import * -# except: -# from scene_verifier.scenario.Scenario import * \ No newline at end of file diff --git a/dryvr_plus_plus/scene_verifier/sensor/__init__.py b/dryvr_plus_plus/scene_verifier/sensor/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/dryvr_plus_plus/scene_verifier/utils/__init__.py b/dryvr_plus_plus/scene_verifier/utils/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/requirements.txt b/requirements.txt index 01eb1fc3837f4aa68c23b514e282c1e00c9329c3..43f67414d862b24a0eff1fcbbd0ebd89c99da0a0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,3 +11,5 @@ treelib~=1.6.1 z3-solver~=4.8.17.0 igraph~=0.9.10 plotly~=5.8.0 +beautifulsoup4~=4.11.1 +lxml~=4.9.1 \ No newline at end of file diff --git a/setup.py b/setup.py index 8790ceb50a423984a4efeeb318219cdc8d6ee216..f2d6499cf3ee022155f915ab2c4ece7a9a16fb48 100644 --- a/setup.py +++ b/setup.py @@ -2,9 +2,9 @@ from setuptools import setup, find_packages setup( - name='dryvr_plus_plus', + name='verse', version='0.1', - description='DryVR++', + description='AutoVerse', author='Yangge Li, Katherine Braught, Haoqing Zhu', maintainer='Yangge Li, Katherine Braught, Haoqing Zhu', maintainer_email='{li213, braught2, haoqing3}@illinois.edu', @@ -24,7 +24,9 @@ setup( "treelib~=1.6.1", "z3-solver~=4.8.17.0", "igraph~=0.9.10", - "plotly~=5.8.0" + "plotly~=5.8.0", + "beautifulsoup4~=4.11.1", + "lxml~=4.9.1" ], classifiers=[ 'Development Status :: 2 - Pre-Alpha', diff --git a/tests/example_controller1.py b/tests/example_controller1.py index 788d4b77980e7a691bd79cb0653f72122cc80931..a7f5900c43a26ea39a22854f144233d51b4eda57 100644 --- a/tests/example_controller1.py +++ b/tests/example_controller1.py @@ -1,6 +1,6 @@ from enum import Enum, auto import copy -from src.scene_verifier.map.lane_map import LaneMap +from src.map import LaneMap class VehicleMode(Enum): Normal = auto() diff --git a/tests/testdpp.py b/tests/testdpp.py index 01a3ee09ac4518876337f7a9ee90c6101d4c119c..8ae8be1edaaad7299a7ac2e5069cc671c67e935f 100644 --- a/tests/testdpp.py +++ b/tests/testdpp.py @@ -47,12 +47,9 @@ def controller(ego:State): return output_vehicle_mode, output_lane_mode -from dryvr_plus_plus.example.example_agent.car_agent import CarAgent -from dryvr_plus_plus.scene_verifier.scenario.scenario import Scenario -from dryvr_plus_plus.example.example_map.simple_map import SimpleMap2 -from dryvr_plus_plus.example.example_sensor.fake_sensor import FakeSensor1 -import matplotlib.pyplot as plt -import numpy as np +from verse.example.example_agent.car_agent import CarAgent +from verse.scenario.scenario import Scenario +from verse.map.example_map.simple_map import SimpleMap2 class TestSimulatorMethods(unittest.TestCase): diff --git a/verse/__init__.py b/verse/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..2bf861b4a2a52239a80b9f2d1a1df858ab34ab9e --- /dev/null +++ b/verse/__init__.py @@ -0,0 +1,7 @@ +from verse import agents, sensor, scenario, plotter, map, parser, automaton, analysis +from verse.agents import BaseAgent +from verse.sensor import BaseSensor +from verse.map import LaneSegment, LaneMap, Lane +from verse.scenario import Scenario + +from verse.plotter import plotter2D, plotter3D diff --git a/verse/agents/__init__.py b/verse/agents/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f6e29f76d2acc653975515c0f63cb21e7b2af91e --- /dev/null +++ b/verse/agents/__init__.py @@ -0,0 +1,2 @@ +from verse.agents.base_agent import BaseAgent +from verse.agents import base_agent diff --git a/verse/agents/base_agent.py b/verse/agents/base_agent.py new file mode 100644 index 0000000000000000000000000000000000000000..17d11aea46df7fd87518f71817b5e27a893da7dd --- /dev/null +++ b/verse/agents/base_agent.py @@ -0,0 +1,58 @@ +from verse.parser.parser import ControllerIR +import numpy as np +from scipy.integrate import ode + +class BaseAgent: + """ + Agent Base class + + Methods + ------- + TC_simulate + """ + def __init__(self, id, code = None, file_name = None): + """ + Constructor of agent base class. + + Parameters + ---------- + id : str + id of the agent. + code: str + actual code of python controller + file_name: str + file name to the python controller + """ + self.controller: ControllerIR = ControllerIR.parse(code, file_name) + self.id = id + + def TC_simulate(self, mode, initialSet, time_horizon, time_step, map=None): + """ + Abstract simulation function + + Parameters + ---------- + mode: str + The current mode to simulate + initialSet: List[float] + The initial condition to perform the simulation + time_horizon: float + The time horizon for simulation + time_step: float + time_step for performing simulation + map: LaneMap, optional + Provided if the map is used + """ + time_bound = float(time_horizon) + number_points = int(np.ceil(time_bound/time_step)) + t = [round(i*time_step, 10) for i in range(0, number_points)] + # note: digit of time + init = initialSet + trace = [[0]+init] + for i in range(len(t)): + r = ode(self.dynamics) + r.set_initial_value(init) + res: np.ndarray = r.integrate(r.t + time_step) + init = res.flatten().tolist() + trace.append([t[i] + time_step] + init) + return np.array(trace) \ No newline at end of file diff --git a/dryvr_plus_plus/__init__.py b/verse/agents/example_agent/__init__.py similarity index 100% rename from dryvr_plus_plus/__init__.py rename to verse/agents/example_agent/__init__.py diff --git a/dryvr_plus_plus/example/example_agent/ball_agent.py b/verse/agents/example_agent/ball_agent.py similarity index 100% rename from dryvr_plus_plus/example/example_agent/ball_agent.py rename to verse/agents/example_agent/ball_agent.py diff --git a/dryvr_plus_plus/example/example_agent/car_agent.py b/verse/agents/example_agent/car_agent.py similarity index 100% rename from dryvr_plus_plus/example/example_agent/car_agent.py rename to verse/agents/example_agent/car_agent.py diff --git a/dryvr_plus_plus/example/example_agent/origin_agent.py b/verse/agents/example_agent/origin_agent.py similarity index 100% rename from dryvr_plus_plus/example/example_agent/origin_agent.py rename to verse/agents/example_agent/origin_agent.py diff --git a/dryvr_plus_plus/example/example_agent/prarm.json b/verse/agents/example_agent/prarm.json similarity index 100% rename from dryvr_plus_plus/example/example_agent/prarm.json rename to verse/agents/example_agent/prarm.json diff --git a/dryvr_plus_plus/example/example_agent/quadrotor_agent.py b/verse/agents/example_agent/quadrotor_agent.py similarity index 80% rename from dryvr_plus_plus/example/example_agent/quadrotor_agent.py rename to verse/agents/example_agent/quadrotor_agent.py index 898bc2621401633de54a3e970da5eba831d963d6..cf5499f5a04ddcbddb3e6a572c2f5414cd3d5a3f 100644 --- a/dryvr_plus_plus/example/example_agent/quadrotor_agent.py +++ b/verse/agents/example_agent/quadrotor_agent.py @@ -88,14 +88,19 @@ class QuadrotorAgent(BaseAgent): ddone_flag = ddf return [dref_x, dref_y, dref_z, dx, dy, dz, dvx, dvy, dvz, dwaypoint, ddone_flag] - def action_handler(self, state, lane_map: LaneMap_3d) -> Tuple[float, float]: - waypoint = state[-2] - df = 0 - if lane_map.check_guard_box(state[3:9], waypoint): - df = 1 + def action_handler(self, mode, state, lane_map: LaneMap_3d) -> Tuple[float, float]: + if mode == 'Follow_Waypoint': + waypoint = state[-2] + df = 0 + if lane_map.check_guard_box(self.id, state[3:9], waypoint): + df = 1 + if mode == 'Follow_Lane': + pass + else: + raise ValueError return df - def runModel(self, initalCondition, time_bound, time_step, ref_input, lane_map: LaneMap_3d): + def runModel(self, mode, initalCondition, time_bound, time_step, ref_input, lane_map: LaneMap_3d): init = initalCondition trajectory = [init] r = ode(self.dynamic) @@ -135,7 +140,7 @@ class QuadrotorAgent(BaseAgent): idx = np.argmax(res) u = control_input_list[idx] + ref_input[0:3] + [sc] - df = self.action_handler(init, lane_map) + df = self.action_handler(mode[0], init, lane_map) u = u+[df] init = trajectory[i] # len 11 r = ode(self.dynamic) @@ -161,18 +166,26 @@ class QuadrotorAgent(BaseAgent): # total time_bound remained time_bound = float(time_bound) initialCondition[-2] = int(initialCondition[-2]) - time_bound = min(lane_map.get_timelimit_by_id( - initialCondition[-2]), time_bound) - # number_points = int(np.ceil(time_bound/time_step)) - # todo if mode[0] == 'Follow_Waypoint': - mode_parameters = lane_map.get_waypoint_by_id(initialCondition[-2]) + time_bound = min(lane_map.get_timelimit_by_id(self.id, + initialCondition[-2]), time_bound) + mode_parameters = lane_map.get_waypoint_by_id( + self.id, initialCondition[-2]) ref_vx = (mode_parameters[3] - mode_parameters[0]) / time_bound ref_vy = (mode_parameters[4] - mode_parameters[1]) / time_bound ref_vz = (mode_parameters[5] - mode_parameters[2]) / time_bound sym_rot_angle = 0 - trace = self.runModel(mode_parameters[0:3] + list(initialCondition), time_bound, time_step, [ref_vx, ref_vy, ref_vz, - sym_rot_angle], lane_map) + trace = self.runModel(mode, mode_parameters[0:3] + list(initialCondition), time_bound, time_step, [ref_vx, ref_vy, ref_vz, + sym_rot_angle], lane_map) + if mode[0] == 'Follow_Lane': + mode_parameters = lane_map.get_waypoint_by_id( + self.id, initialCondition[-2]) + if len(mode_parameters) == 3: + lane_map.get_next_point(mode[1], self.id, initialCondition[-2]) + time_bound = min(lane_map.get_timelimit_by_id(self.id, + initialCondition[-2]), time_bound) + pass + return np.array(trace) # import json diff --git a/dryvr_plus_plus/example/example_agent/sign_agent.py b/verse/agents/example_agent/sign_agent.py similarity index 100% rename from dryvr_plus_plus/example/example_agent/sign_agent.py rename to verse/agents/example_agent/sign_agent.py diff --git a/dryvr_plus_plus/example/example_agent/tempCodeRunnerFile.py b/verse/agents/example_agent/tempCodeRunnerFile.py similarity index 100% rename from dryvr_plus_plus/example/example_agent/tempCodeRunnerFile.py rename to verse/agents/example_agent/tempCodeRunnerFile.py diff --git a/verse/analysis/__init__.py b/verse/analysis/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..5c1e5bcab00f727b27c6e04bb92b728a5e201a7d --- /dev/null +++ b/verse/analysis/__init__.py @@ -0,0 +1,5 @@ +from .analysis_tree import * +from .simulator import Simulator +from .verifier import Verifier + +from . import simulator, verifier, analysis_tree diff --git a/verse/analysis/analysis_tree.py b/verse/analysis/analysis_tree.py new file mode 100644 index 0000000000000000000000000000000000000000..792c5b4fa6cd0a8f1bd40c23a0e0a3caa6d2ed84 --- /dev/null +++ b/verse/analysis/analysis_tree.py @@ -0,0 +1,124 @@ +from typing import List, Dict, Any +import json + +class AnalysisTreeNode: + """AnalysisTreeNode class + A AnalysisTreeNode stores the continous execution of the system without transition happening""" + trace: Dict + """The trace for each agent. + The key of the dict is the agent id and the value of the dict is simulated traces for each agent""" + init: Dict + + def __init__( + self, + trace={}, + init={}, + mode={}, + static = {}, + uncertain_param = {}, + agent={}, + assert_hits={}, + child=[], + start_time = 0, + ndigits = 10, + type = 'simtrace', + id = 0 + ): + self.trace:Dict = trace + self.init: Dict[str, List[float]] = init + self.mode: Dict[str, List[str]] = mode + self.agent: Dict = agent + self.child: List[AnalysisTreeNode] = child + self.start_time: float = round(start_time, ndigits) + self.assert_hits = assert_hits + self.type: str = type + self.static: Dict[str, List[str]] = static + self.uncertain_param: Dict[str, List[str]] = uncertain_param + self.id: int = id + + def to_dict(self): + rst_dict = { + 'id': self.id, + 'parent': None, + 'child': [], + 'agent': {}, + 'init': self.init, + 'mode': self.mode, + 'static': self.static, + 'start_time': self.start_time, + 'trace': self.trace, + 'type': self.type, + 'assert_hits': self.assert_hits + } + agent_dict = {} + for agent_id in self.agent: + agent_dict[agent_id] = f'{type(self.agent[agent_id])}' + rst_dict['agent'] = agent_dict + + return rst_dict + + @staticmethod + def from_dict(data) -> "AnalysisTreeNode": + return AnalysisTreeNode( + trace = data['trace'], + init = data['init'], + mode = data['mode'], + static = data['static'], + agent = data['agent'], + assert_hits = data['assert_hits'], + child = [], + start_time = data['start_time'], + type = data['type'], + ) + +class AnalysisTree: + def __init__(self, root): + self.root:AnalysisTreeNode = root + self.nodes:List[AnalysisTreeNode] = self.get_all_nodes(root) + + def get_all_nodes(self, root: AnalysisTreeNode) -> List[AnalysisTreeNode]: + # Perform BFS/DFS to store all the tree node in a list + res = [] + queue = [root] + node_id = 0 + while queue: + node = queue.pop(0) + node.id = node_id + res.append(node) + node_id += 1 + queue += node.child + return res + + def dump(self, fn): + res_dict = {} + converted_node = self.root.to_dict() + res_dict[self.root.id] = converted_node + queue = [self.root] + while queue: + parent_node = queue.pop(0) + for child_node in parent_node.child: + node_dict = child_node.to_dict() + node_dict['parent'] = parent_node.id + res_dict[child_node.id] = node_dict + res_dict[parent_node.id]['child'].append(child_node.id) + queue.append(child_node) + + with open(fn,'w+') as f: + json.dump(res_dict,f, indent=4, sort_keys=True) + + @staticmethod + def load(fn): + f = open(fn, 'r') + data = json.load(f) + f.close() + root_node_dict = data[str(0)] + root = AnalysisTreeNode.from_dict(root_node_dict) + queue = [(root_node_dict, root)] + while queue: + parent_node_dict, parent_node = queue.pop(0) + for child_node_idx in parent_node_dict['child']: + child_node_dict = data[str(child_node_idx)] + child_node = AnalysisTreeNode.from_dict(child_node_dict) + parent_node.child.append(child_node) + queue.append((child_node_dict, child_node)) + return AnalysisTree(root) \ No newline at end of file diff --git a/verse/analysis/dryvr.py b/verse/analysis/dryvr.py new file mode 100644 index 0000000000000000000000000000000000000000..2a79c6a0d3be48b268e6a543a2094e0c1291c960 --- /dev/null +++ b/verse/analysis/dryvr.py @@ -0,0 +1,267 @@ +import random, numpy as np +from typing import List, Tuple +from scipy import spatial + +_TRUE_MIN_CONST = -10 +_EPSILON = 1.0e-6 +_SMALL_EPSILON = 1e-10 +SIMTRACENUM = 10 + +PW = "PW" +GLOBAL = "GLOBAL" + +def all_sensitivities_calc(training_traces: np.ndarray, initial_radii: np.ndarray): + num_traces: int + trace_len: int + ndims: int + num_traces, trace_len, ndims = training_traces.shape + normalizing_initial_set_radii: np.array = initial_radii.copy() + y_points: np.array = np.zeros( + (normalizing_initial_set_radii.shape[0], trace_len - 1)) + normalizing_initial_set_radii[np.where( + normalizing_initial_set_radii == 0)] = 1.0 + for cur_dim_ind in range(1, ndims): + # keyi: move out of loop + normalized_initial_points: np.array = training_traces[:, + 0, 1:] / normalizing_initial_set_radii + initial_distances = spatial.distance.pdist( + normalized_initial_points, 'chebyshev') + _SMALL_EPSILON + for cur_time_ind in range(1, trace_len): + y_points[cur_dim_ind - 1, cur_time_ind - 1] = np.max((spatial.distance.pdist( + np.reshape(training_traces[:, cur_time_ind, cur_dim_ind], + (training_traces.shape[0], 1)), 'chebychev' + ) / normalizing_initial_set_radii[cur_dim_ind - 1]) / initial_distances) + return y_points + +def get_reachtube_segment(training_traces: np.ndarray, initial_radii: np.ndarray, method='PWGlobal') -> np.array: + num_traces: int = training_traces.shape[0] + ndims: int = training_traces.shape[2] # This includes time + trace_len: int = training_traces.shape[1] + center_trace: np.ndarray = training_traces[0, :, :] + trace_initial_time = center_trace[0, 0] + x_points: np.ndarray = center_trace[:, 0] - trace_initial_time + assert np.all(training_traces[0, :, 0] == training_traces[1:, :, 0]) + y_points: np.ndarray = all_sensitivities_calc(training_traces, initial_radii) + points: np.ndarray = np.zeros((ndims - 1, trace_len, 2)) + points[np.where(initial_radii != 0), 0, 1] = 1.0 + points[:, :, 0] = np.reshape(x_points, (1, x_points.shape[0])) + points[:, 1:, 1] = y_points + normalizing_initial_set_radii: np.ndarray = initial_radii.copy() + normalizing_initial_set_radii[np.where(normalizing_initial_set_radii == 0)] = 1.0 + df: np.ndarray = np.zeros((trace_len, ndims)) + if method == 'PW': + df[:, 1:] = np.transpose( + points[:, :, 1] * np.reshape(normalizing_initial_set_radii, (normalizing_initial_set_radii.size, 1))) + elif method == 'PWGlobal': + # replace zeros with epsilons + # points[np.where(points[:, 0, 1] == 0), 0, 1] = 1.0e-100 + # to fit exponentials make y axis log of sensitivity + points[:, :, 1] = np.maximum(points[:, :, 1], _EPSILON) + points[:, :, 1] = np.log(points[:, :, 1]) + for dim_ind in range(1, ndims): + new_min = min(np.min(points[dim_ind - 1, 1:, 1]) + _TRUE_MIN_CONST, -10) + if initial_radii[dim_ind - 1] == 0: + # exclude initial set, then add true minimum points + new_points: np.ndarray = np.row_stack( + (np.array((points[dim_ind - 1, 1, 0], new_min)), np.array((points[dim_ind - 1, -1, 0], new_min)))) + else: + # start from zero, then add true minimum points + new_points: np.ndarray = np.row_stack((points[dim_ind - 1, 0, :], + np.array((points[dim_ind - 1, 0, 0], new_min)), + np.array((points[dim_ind - 1, -1, 0], new_min)))) + df[0, dim_ind] = initial_radii[dim_ind - 1] + # Tuple order is start_time, end_time, slope, y-intercept + cur_dim_points = np.concatenate( + (points[dim_ind - 1, 1:, :], new_points), axis=0) + cur_hull: spatial.ConvexHull = spatial.ConvexHull( + cur_dim_points) + linear_separators: List[Tuple[float, + float, float, float, int, int]] = [] + vert_inds = list( + zip(cur_hull.vertices[:-1], cur_hull.vertices[1:])) + vert_inds.append((cur_hull.vertices[-1], cur_hull.vertices[0])) + for end_ind, start_ind in vert_inds: + if cur_dim_points[start_ind, 1] != new_min and cur_dim_points[end_ind, 1] != new_min: + slope = (cur_dim_points[end_ind, 1] - cur_dim_points[start_ind, 1]) / ( + cur_dim_points[end_ind, 0] - cur_dim_points[start_ind, 0]) + y_intercept = cur_dim_points[start_ind, 1] - cur_dim_points[start_ind, 0] * slope + start_time = cur_dim_points[start_ind, 0] + end_time = cur_dim_points[end_ind, 0] + assert start_time < end_time + if start_time == 0: + linear_separators.append((start_time, end_time, slope, y_intercept, 0, end_ind + 1)) + else: + linear_separators.append((start_time, end_time, slope, y_intercept, start_ind + 1, end_ind + 1)) + linear_separators.sort() + prev_val = 0 + prev_ind = 1 if initial_radii[dim_ind - 1] == 0 else 0 + for linear_separator in linear_separators: + _, _, slope, y_intercept, start_ind, end_ind = linear_separator + assert prev_ind == start_ind + assert start_ind < end_ind + segment_t = center_trace[start_ind:end_ind + 1, 0] + segment_df = normalizing_initial_set_radii[dim_ind - 1] * np.exp(y_intercept) * np.exp( + slope * segment_t) + segment_df[0] = max(segment_df[0], prev_val) + df[start_ind:end_ind + 1, dim_ind] = segment_df + prev_val = segment_df[-1] + prev_ind = end_ind + else: + print('Discrepancy computation method,', method, ', is not supported!') + raise ValueError + assert (np.all(df >= 0)) + reachtube_segment: np.ndarray = np.zeros((trace_len - 1, 2, ndims)) + reachtube_segment[:, 0, :] = np.minimum(center_trace[1:, :] - df[1:, :], center_trace[:-1, :] - df[:-1, :]) + reachtube_segment[:, 1, :] = np.maximum(center_trace[1:, :] + df[1:, :], center_trace[:-1, :] + df[:-1, :]) + # assert 100% training accuracy (all trajectories are contained) + for trace_ind in range(training_traces.shape[0]): + if not (np.all(reachtube_segment[:, 0, :] <= training_traces[trace_ind, 1:, :]) and np.all(reachtube_segment[:, 1, :] >= training_traces[trace_ind, 1:, :])): + assert np.any(np.abs(training_traces[trace_ind, 0, 1:]-center_trace[0, 1:]) > initial_radii) + print(f"Warning: Trace #{trace_ind}", "of this initial set is sampled outside of the initial set because of floating point error and is not contained in the initial set") + return reachtube_segment + +def calcCenterPoint(lower, upper): + """ + Calculate the center point between the lower and upper bound + The function only supports list since we assue initial set is always list + + Args: + lower (list): lowerbound. + upper (list): upperbound. + + Returns: + delta (list of float) + + """ + + # Convert list into float in case they are int + lower = [float(val) for val in lower] + upper = [float(val) for val in upper] + assert len(lower) == len(upper), "Center Point List Range Error" + return [(upper[i] + lower[i]) / 2 for i in range(len(upper))] + +def calcDelta(lower, upper): + """ + Calculate the delta value between the lower and upper bound + The function only supports list since we assue initial set is always list + + Args: + lower (list): lowerbound. + upper (list): upperbound. + + Returns: + delta (list of float) + + """ + # Convert list into float in case they are int + lower = [float(val) for val in lower] + upper = [float(val) for val in upper] + + assert len(lower) == len(upper), "Delta calc List Range Error" + return [(upper[i] - lower[i]) / 2 for i in range(len(upper))] + +def randomPoint(lower, upper, seed=None): + """ + Pick a random point between lower and upper bound + This function supports both int or list + + Args: + lower (list or int or float): lower bound. + upper (list or int or float): upper bound. + + Returns: + random point (either float or list of float) + + """ + if seed is not None: + random.seed(seed) + + if isinstance(lower, int) or isinstance(lower, float): + return random.uniform(lower, upper) + + if isinstance(lower, list): + assert len(lower) == len(upper), "Random Point List Range Error" + + return [random.uniform(lower[i], upper[i]) for i in range(len(lower))] + +def trimTraces(traces): + """ + trim all traces to the same length + + Args: + traces (list): list of traces generated by simulator + Returns: + traces (list) after trim to the same length + + """ + + trace_len = min(len(trace) for trace in traces) + return [trace[:trace_len] for trace in traces] + +def calc_bloated_tube( + mode_label, + initial_set, + time_horizon, + time_step, + sim_func, + bloating_method, + kvalue, + sim_trace_num, + guard_checker=None, + guard_str="", + lane_map = None + ): + """ + This function calculate the reach tube for single given mode + + Args: + mode_label (str): mode name + initial_set (list): a list contains upper and lower bound of the initial set + time_horizon (float): time horizon to simulate + sim_func (function): simulation function + bloating_method (str): determine the bloating method for reach tube, either GLOBAL or PW + sim_trace_num (int): number of simulations used to calculate the discrepancy + kvalue (list): list of float used when bloating method set to PW + guard_checker (verse.core.guard.Guard or None): guard check object + guard_str (str): guard string + + Returns: + Bloated reach tube + + """ + print(initial_set) + random.seed(4) + cur_center = calcCenterPoint(initial_set[0], initial_set[1]) + cur_delta = calcDelta(initial_set[0], initial_set[1]) + traces = [sim_func(mode_label, cur_center, time_horizon, time_step, lane_map)] + # Simulate SIMTRACENUM times to learn the sensitivity + for i in range(sim_trace_num): + new_init_point = randomPoint(initial_set[0], initial_set[1], i) + traces.append(sim_func(mode_label, new_init_point, time_horizon, time_step, lane_map)) + + # Trim the trace to the same length + traces = trimTraces(traces) + if guard_checker is not None: + # pre truncated traces to get better bloat result + max_idx = -1 + for trace in traces: + ret_idx = guard_checker.guard_sim_trace_time(trace, guard_str) + max_idx = max(max_idx, ret_idx + 1) + for i in range(len(traces)): + traces[i] = traces[i][:max_idx] + + # The major + if bloating_method == GLOBAL: + cur_reach_tube: np.ndarray = get_reachtube_segment(np.array(traces), np.array(cur_delta), "PWGlobal") + # cur_reach_tube: np.ndarray = ReachabilityEngine.get_reachtube_segment_wrapper(np.array(traces), np.array(cur_delta)) + elif bloating_method == PW: + cur_reach_tube: np.ndarray = get_reachtube_segment(np.array(traces), np.array(cur_delta), "PW") + # cur_reach_tube: np.ndarray = ReachabilityEngine.get_reachtube_segment_wrapper(np.array(traces), np.array(cur_delta)) + else: + raise ValueError("Unsupported bloating method '" + bloating_method + "'") + final_tube = np.zeros((cur_reach_tube.shape[0]*2, cur_reach_tube.shape[2])) + final_tube[0::2, :] = cur_reach_tube[:, 0, :] + final_tube[1::2, :] = cur_reach_tube[:, 1, :] + # print(final_tube.tolist()[-2], final_tube.tolist()[-1]) + return final_tube + \ No newline at end of file diff --git a/verse/analysis/mixmonotone.py b/verse/analysis/mixmonotone.py new file mode 100644 index 0000000000000000000000000000000000000000..9b344268bf156a7d08bf0d6ec3d3d7a65a0203d0 --- /dev/null +++ b/verse/analysis/mixmonotone.py @@ -0,0 +1,274 @@ +import numpy as np +from scipy.optimize import minimize +import inspect, ast, textwrap, inspect, astunparse +import warnings +from sympy import Symbol, diff +from sympy.utilities.lambdify import lambdify +from sympy.core import * + +from scipy.integrate import ode + +def find_min(expr_func, jac_func, var_range, num_var, args, idx): + bounds = [] + x0 = [] + for i in range(var_range.shape[1]): + bounds.append((var_range[0,i], var_range[1,i])) + x0.append(var_range[0,i]) + # print(expr_func(x0, args, idx)) + # print(jac_func(x0, args, idx).shape) + res = minimize( + expr_func, + x0, + args = (num_var, args, idx), + bounds = bounds, + jac = jac_func, + method = 'L-BFGS-B' + ) + # print(res) + return res.fun + +def find_max(expr_func, jac_func, var_range, num_var, args, idx): + neg_expr_func = lambda x, num_var, args, idx: -expr_func(x, num_var, args, idx) + neg_jac_func = lambda x, num_var, args, idx: -jac_func(x, num_var, args, idx) + res = find_min(neg_expr_func, neg_jac_func, var_range, num_var, args, idx) + return -res + +def find_min_symbolic(expr, var_range): + bounds = [] + vars = list(expr.free_symbols) + x0 = [] + jac = [] + for var in vars: + bounds.append(var_range[var]) + x0.append(var_range[var][0]) + jac.append(diff(expr, var)) + expr_func = lambdify([vars], expr) + jac_func = lambdify([vars], jac) + res = minimize( + expr_func, + x0, + bounds = bounds, + jac = jac_func, + method = 'L-BFGS-B' + ) + return res.fun + +def find_max_symbolic(expr, var_range): + tmp = -expr + res = find_min_symbolic(tmp, var_range) + return -res + +def compute_reachtube_mixmono_disc( + initial_set, + uncertain_var_bound, + time_horizon, + time_step, + decomposition +): + initial_set = initial_set[0] + number_points = int(np.ceil(time_horizon / time_step)) + t = [round(i * time_step, 10) for i in range(0, number_points)] + trace = [[0] + initial_set[0] + initial_set[1]] + num_var = len(initial_set[0]) + for i in range(len(t)): + xk = trace[-1] + x = xk[1:1 + num_var] + xhat = xk[1 + num_var:] + w = uncertain_var_bound[0] + what = uncertain_var_bound[1] + d = decomposition(x, w, xhat, what, time_step) + dhat = decomposition(xhat, what, x, w, time_step) + trace.append([round(t[i] + time_step, 10)] + d + dhat) + + res = [] + for i in range(len(trace) - 1): + res0 = [trace[i][0]] + np.minimum.reduce( + [trace[i][1:1 + num_var], trace[i + 1][1:1 + num_var], trace[i][1 + num_var:], + trace[i + 1][1 + num_var:]] + ).tolist() + res.append(res0) + res1 = [trace[i + 1][0]] + np.maximum.reduce( + [trace[i][1:1 + num_var], trace[i + 1][1:1 + num_var], trace[i][1 + num_var:], + trace[i + 1][1 + num_var:]] + ).tolist() + res.append(res1) + return res + +def compute_reachtube_mixmono_cont( + initial_set, + uncertain_var_bound, + time_horizon, + time_step, + decomposition +): + initial_set = initial_set[0] + num_var = len(initial_set[0]) + num_uncertain_var = len(uncertain_var_bound[0]) + def decomposition_dynamics(t, state, u): + x, xhat = state[:num_var], state[num_var:] + w, what = u[:num_uncertain_var], u[num_uncertain_var:] + + d = decomposition(x,w,xhat,what) + dhat = decomposition(xhat,what,x,w) + + return np.concatenate((d, dhat)) + time_bound = float(time_horizon) + number_points = int(np.ceil(time_bound/time_step)) + t = [round(i*time_step, 10) for i in range(0, number_points)] + init = initial_set[0] + initial_set[1] + uncertain = uncertain_var_bound[0] + uncertain_var_bound[1] + trace = [[0]+init] + r = ode(decomposition_dynamics).set_integrator('dopri5', nsteps=2000).set_initial_value(init).set_f_params(uncertain) + for i in range(len(t)): + res: np.ndarray = r.integrate(r.t+time_step) + res = res.flatten().tolist() + trace.append([t[i]+time_step]+res) + + res = [] + for i in range(len(trace) - 1): + res0 = [trace[i][0]] + np.minimum.reduce( + [trace[i][1:1 + num_var], trace[i + 1][1:1 + num_var], trace[i][1 + num_var:], + trace[i + 1][1 + num_var:]] + ).tolist() + res.append(res0) + res1 = [trace[i + 1][0]] + np.maximum.reduce( + [trace[i][1:1 + num_var], trace[i + 1][1:1 + num_var], trace[i][1 + num_var:], + trace[i + 1][1 + num_var:]] + ).tolist() + res.append(res1) + return res + + +def calculate_bloated_tube_mixmono_cont( + mode, + init, + uncertain_param, + time_horizon, + time_step, + agent, + lane_map +): + if hasattr(agent, 'dynamics') and hasattr(agent, 'decomposition'): + decomposition = agent.decomposition + res = compute_reachtube_mixmono_cont(init, uncertain_param, time_horizon, time_step, decomposition) + else: + raise ValueError('Not enough information to apply discrete time mixed monotone algorithm.') + return res + +def calculate_bloated_tube_mixmono_disc( + mode, + init, + uncertain_param, + time_horizon, + time_step, + agent, + lane_map + ): + if hasattr(agent, 'dynamics') and hasattr(agent, 'decomposition'): + decomposition = agent.decomposition + res = compute_reachtube_mixmono_disc(init, uncertain_param, time_horizon, time_step, decomposition) + elif hasattr(agent, 'dynamics') and hasattr(agent, 'dynamics_jac'): + def decomposition_func(x, w, xhat, what, dt): + expr_func = lambda x, num_var, args, idx: agent.dynamics(list(x[:num_var]), list(x[num_var:])+args)[idx] + jac_func = lambda x, num_var, args, idx: agent.dynamics_jac(list(x[:num_var]), list(x[num_var:])+args)[idx, :] + + assert len(x) == len(xhat) + assert len(w) == len(what) + + d = [] + num_var = len(x) + args = [dt] + if all(a <= b for a, b in zip(x, xhat)) and all(a <= b for a, b in zip(w, what)): + var_range = np.array([x + w, xhat + what]) + for i in range(len(x)): + val = find_min(expr_func, jac_func, var_range, num_var, args, i) + d.append(val) + elif all(b <= a for a, b in zip(x, xhat)) and all(b <= a for a, b in zip(w, what)): + var_range = np.array([xhat + what, x + w]) + for i in range(len(x)): + val = find_max(expr_func, jac_func, var_range, num_var, args, i) + d.append(val) + else: + raise ValueError(f"Condition for x, w, x_hat, w_hat not satisfied: {[x, w, xhat, what]}") + return d + + res = compute_reachtube_mixmono_disc(init, uncertain_param, time_horizon, time_step, + decomposition_func) + elif hasattr(agent, 'dynamics'): + dynamics_func = agent.dynamics + lines = inspect.getsource(dynamics_func) + function_body = ast.parse(textwrap.dedent(lines)).body[0].body + if not isinstance(function_body, list): + raise ValueError(f'Failed to extract dynamics for {agent}') + + text_exprs = [] + extract = False + x_var = [] + w_var = [] + for i, elem in enumerate(function_body): + if isinstance(elem, ast.Expr): + if isinstance(elem.value, ast.Constant) and elem.value.value == 'Begin Dynamic': + extract = True + elif isinstance(elem, ast.Expr): + if isinstance(elem.value, ast.Constant) and elem.value.value == 'End Dynamic': + extract = False + elif extract: + if isinstance(elem, ast.Assign): + text_exprs.append(astunparse.unparse(elem.value)) + # x_var_name = elem.targets[0].id.replace('_plus','') + # x_var.append(x_var_name) + else: + if isinstance(elem, ast.Assign): + if elem.value.id == 'args': + var_list = elem.targets[0].elts + for var in var_list[:-1]: + w_var.append(var.id) + elif elem.value.id == 'x': + var_list = elem.targets[0].elts + for var in var_list: + x_var.append(var.id) + + if len(text_exprs) != len(x_var): + raise ValueError(f'Failed to extract dynamics for {agent}') + + symbol_x = [Symbol(elem,real=True) for elem in x_var] + symbol_w = [Symbol(elem,real=True) for elem in w_var] + dt = Symbol("dt", real=True) + + tmp = [sympify(elem).subs("dt", time_step) for elem in text_exprs] + expr_symbol = [] + for expr in tmp: + for symbol in symbol_x: + expr = expr.subs(symbol.name, symbol) + for symbol in symbol_w: + expr = expr.subs(symbol.name, symbol) + expr_symbol.append(expr) + exprs = expr_symbol + + def computeD(x, w, x_hat, w_hat, dt): + d = [] + for expr in exprs: + if all(a<=b for a,b in zip(x, x_hat)) and all(a<=b for a,b in zip(w,w_hat)): + var_range = {} + for i, var in enumerate(symbol_x): + var_range[var] = (x[i], x_hat[i]) + for i, var in enumerate(symbol_w): + var_range[var] = (w[i], w_hat[i]) + res = find_min_symbolic(expr, var_range) + d.append(res) + elif all(a>=b for a,b in zip(x,x_hat)) and all(a>=b for a,b in zip(w,w_hat)): + var_range = {} + for i,var in enumerate(symbol_x): + var_range[var] = (x_hat[i], x[i]) + for i, var in enumerate(symbol_w): + var_range[var] = (w_hat[i], w[i]) + res = find_max_symbolic(expr, var_range) + d.append(res) + else: + raise ValueError(f"Condition for x, w, x_hat, w_hat not satisfied: {[x, w, x_hat, w_hat]}") + return d + res = compute_reachtube_mixmono_disc(init, uncertain_param, time_horizon, time_step, + computeD) + else: + raise ValueError('Not enough information to apply discrete time mixed monotone algorithm.') + return res \ No newline at end of file diff --git a/dryvr_plus_plus/scene_verifier/analysis/simulator.py b/verse/analysis/simulator.py similarity index 87% rename from dryvr_plus_plus/scene_verifier/analysis/simulator.py rename to verse/analysis/simulator.py index 8427098000fa5ac08efc8059ec96907d3fb3da98..4d0a3115e9a99a568eeff8cee7881862ad5c05a8 100644 --- a/dryvr_plus_plus/scene_verifier/analysis/simulator.py +++ b/verse/analysis/simulator.py @@ -1,5 +1,3 @@ -from dryvr_plus_plus.scene_verifier.analysis.analysis_tree_node import AnalysisTreeNode -from dryvr_plus_plus.scene_verifier.agents.base_agent import BaseAgent from typing import List, Dict import copy import itertools @@ -8,18 +6,32 @@ import functools import pprint pp = functools.partial(pprint.pprint, compact=True, width=100) +# from verse.agents.base_agent import BaseAgent +from verse.analysis.analysis_tree import AnalysisTreeNode, AnalysisTree class Simulator: def __init__(self): - self.simulation_tree_root = None + self.simulation_tree = None - def simulate(self, init_list, init_mode_list, static_list, agent_list: List[BaseAgent], transition_graph, time_horizon, time_step, lane_map): + def simulate( + self, + init_list, + init_mode_list, + static_list, + uncertain_param_list, + agent_list, + transition_graph, + time_horizon, + time_step, + lane_map + ): # Setup the root of the simulation tree root = AnalysisTreeNode( trace={}, init={}, mode={}, static={}, + uncertain_param={}, agent={}, child=[], start_time=0, @@ -30,9 +42,10 @@ class Simulator: root.mode[agent.id] = init_mode init_static = [elem.name for elem in static_list[i]] root.static[agent.id] = init_static + root.uncertain_param[agent.id] = uncertain_param_list[i] root.agent[agent.id] = agent root.type = 'simtrace' - self.simulation_tree_root = root + simulation_queue = [] simulation_queue.append(root) # Perform BFS through the simulation tree to loop through all possible transitions @@ -84,6 +97,7 @@ class Simulator: for transition_combination in all_transition_combinations: next_node_mode = copy.deepcopy(node.mode) next_node_static = copy.deepcopy(node.static) + next_node_uncertain_param = copy.deepcopy(node.uncertain_param) next_node_agent = node.agent next_node_start_time = list( truncated_trace.values())[0][0][0] @@ -105,6 +119,7 @@ class Simulator: init=next_node_init, mode=next_node_mode, static=next_node_static, + uncertain_param=next_node_uncertain_param, agent=next_node_agent, child=[], start_time=next_node_start_time, @@ -122,4 +137,6 @@ class Simulator: # start_time = next_node_start_time # )) # simulation_queue += node.child - return self.simulation_tree_root + + self.simulation_tree = AnalysisTree(root) + return self.simulation_tree diff --git a/dryvr_plus_plus/scene_verifier/utils/utils.py b/verse/analysis/utils.py similarity index 100% rename from dryvr_plus_plus/scene_verifier/utils/utils.py rename to verse/analysis/utils.py diff --git a/verse/analysis/verifier.py b/verse/analysis/verifier.py new file mode 100644 index 0000000000000000000000000000000000000000..2997428182e922b344c6327fdcfd6ac6aadd677b --- /dev/null +++ b/verse/analysis/verifier.py @@ -0,0 +1,241 @@ +from typing import List +import copy + +import numpy as np + +# from verse.agents.base_agent import BaseAgent +from verse.analysis.analysis_tree import AnalysisTreeNode, AnalysisTree +from verse.analysis.dryvr import calc_bloated_tube, SIMTRACENUM +from verse.analysis.mixmonotone import calculate_bloated_tube_mixmono_cont, calculate_bloated_tube_mixmono_disc + + +class Verifier: + def __init__(self): + self.reachtube_tree = None + self.unsafe_set = None + self.verification_result = None + + def calculate_full_bloated_tube( + self, + mode_label, + initial_set, + time_horizon, + time_step, + sim_func, + params, + kvalue, + sim_trace_num, + combine_seg_length = 1000, + guard_checker=None, + guard_str="", + lane_map = None + ): + # Handle Parameters + bloating_method = 'PW' + if 'bloating_method' in params: + bloating_method = params['bloating_method'] + + res_tube = None + tube_length = 0 + for combine_seg_idx in range(0, len(initial_set), combine_seg_length): + rect_seg = initial_set[combine_seg_idx:combine_seg_idx+combine_seg_length] + combined_rect = None + for rect in rect_seg: + rect = np.array(rect) + if combined_rect is None: + combined_rect = rect + else: + combined_rect[0, :] = np.minimum( + combined_rect[0, :], rect[0, :]) + combined_rect[1, :] = np.maximum( + combined_rect[1, :], rect[1, :]) + combined_rect = combined_rect.tolist() + cur_bloated_tube = calc_bloated_tube(mode_label, + combined_rect, + time_horizon, + time_step, + sim_func, + bloating_method, + kvalue, + sim_trace_num, + lane_map = lane_map + ) + if combine_seg_idx == 0: + res_tube = cur_bloated_tube + tube_length = cur_bloated_tube.shape[0] + else: + cur_bloated_tube = cur_bloated_tube[:tube_length - combine_seg_idx*2,:] + # Handle Lower Bound + res_tube[combine_seg_idx*2::2,1:] = np.minimum( + res_tube[combine_seg_idx*2::2,1:], + cur_bloated_tube[::2,1:] + ) + # Handle Upper Bound + res_tube[combine_seg_idx*2+1::2,1:] = np.maximum( + res_tube[combine_seg_idx*2+1::2,1:], + cur_bloated_tube[1::2,1:] + ) + return res_tube.tolist() + + + def compute_full_reachtube( + self, + init_list: List[float], + init_mode_list: List[str], + static_list: List[str], + uncertain_param_list: List[float], + agent_list, + transition_graph, + time_horizon, + time_step, + lane_map, + init_seg_length, + reachability_method, + params = {} + ): + root = AnalysisTreeNode( + trace={}, + init={}, + mode={}, + static = {}, + uncertain_param={}, + agent={}, + assert_hits={}, + child=[], + start_time = 0, + ndigits = 10, + type = 'simtrace', + id = 0 + ) + # root = AnalysisTreeNode() + for i, agent in enumerate(agent_list): + root.init[agent.id] = [init_list[i]] + init_mode = [elem.name for elem in init_mode_list[i]] + root.mode[agent.id] = init_mode + init_static = [elem.name for elem in static_list[i]] + root.static[agent.id] = init_static + root.uncertain_param[agent.id] = uncertain_param_list[i] + root.agent[agent.id] = agent + root.type = 'reachtube' + verification_queue = [] + verification_queue.append(root) + while verification_queue != []: + node: AnalysisTreeNode = verification_queue.pop(0) + print(node.start_time, node.mode) + remain_time = round(time_horizon - node.start_time, 10) + if remain_time <= 0: + continue + # For reachtubes not already computed + # TODO: can add parallalization for this loop + for agent_id in node.agent: + if agent_id not in node.trace: + # Compute the trace starting from initial condition + mode = node.mode[agent_id] + init = node.init[agent_id] + uncertain_param = node.uncertain_param[agent_id] + # trace = node.agent[agent_id].TC_simulate(mode, init, remain_time,lane_map) + # trace[:,0] += node.start_time + # node.trace[agent_id] = trace.tolist() + if reachability_method == "DRYVR": + cur_bloated_tube = self.calculate_full_bloated_tube(mode, + init, + remain_time, + time_step, + node.agent[agent_id].TC_simulate, + params, + 100, + SIMTRACENUM, + combine_seg_length=init_seg_length, + lane_map = lane_map + ) + elif reachability_method == "MIXMONO_CONT": + cur_bloated_tube = calculate_bloated_tube_mixmono_cont( + mode, + init, + uncertain_param, + remain_time, + time_step, + node.agent[agent_id], + lane_map + ) + elif reachability_method == "MIXMONO_DISC": + cur_bloated_tube = calculate_bloated_tube_mixmono_disc( + mode, + init, + uncertain_param, + remain_time, + time_step, + node.agent[agent_id], + lane_map + ) + else: + raise ValueError(f"Reachability computation method {reachability_method} not available.") + trace = np.array(cur_bloated_tube) + trace[:, 0] += node.start_time + node.trace[agent_id] = trace.tolist() + # print("here") + + # Get all possible transitions to next mode + asserts, all_possible_transitions = transition_graph.get_transition_verify_new(node) + if asserts != None: + asserts, idx = asserts + for agent in node.agent: + node.trace[agent] = node.trace[agent][:(idx + 1) * 2] + node.assert_hits = asserts + continue + + max_end_idx = 0 + for transition in all_possible_transitions: + # Each transition will contain a list of rectangles and their corresponding indexes in the original list + transit_agent_idx, src_mode, dest_mode, next_init, idx = transition + start_idx, end_idx = idx[0], idx[-1] + + truncated_trace = {} + for agent_idx in node.agent: + truncated_trace[agent_idx] = node.trace[agent_idx][start_idx*2:] + if end_idx > max_end_idx: + max_end_idx = end_idx + + if dest_mode is None: + continue + + next_node_mode = copy.deepcopy(node.mode) + next_node_static = node.static + next_node_uncertain_param = node.uncertain_param + next_node_mode[transit_agent_idx] = dest_mode + next_node_agent = node.agent + next_node_start_time = list(truncated_trace.values())[0][0][0] + next_node_init = {} + next_node_trace = {} + for agent_idx in next_node_agent: + if agent_idx == transit_agent_idx: + next_node_init[agent_idx] = next_init + else: + next_node_trace[agent_idx] = truncated_trace[agent_idx] + + tmp = AnalysisTreeNode( + trace=next_node_trace, + init=next_node_init, + mode=next_node_mode, + static = next_node_static, + uncertain_param = next_node_uncertain_param, + agent=next_node_agent, + assert_hits = {}, + child=[], + start_time=round(next_node_start_time, 10), + type='reachtube' + ) + node.child.append(tmp) + verification_queue.append(tmp) + + """Truncate trace of current node based on max_end_idx""" + """Only truncate when there's transitions""" + if all_possible_transitions: + for agent_idx in node.agent: + node.trace[agent_idx] = node.trace[agent_idx][:( + max_end_idx+1)*2] + + self.reachtube_tree = AnalysisTree(root) + return self.reachtube_tree + + diff --git a/verse/automaton/__init__.py b/verse/automaton/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..0651cd10599cb4dcfea46cdffaa8ce8559e697af --- /dev/null +++ b/verse/automaton/__init__.py @@ -0,0 +1,3 @@ +from . import guard, reset +from .guard import GuardExpressionAst +from .reset import ResetExpression diff --git a/dryvr_plus_plus/scene_verifier/automaton/guard.py b/verse/automaton/guard.py similarity index 98% rename from dryvr_plus_plus/scene_verifier/automaton/guard.py rename to verse/automaton/guard.py index 69888a64934cf70d7d1e8ecbc144db3896248dad..022bdb968fbd89c17b07ddc463c09b73d1ff1acd 100644 --- a/dryvr_plus_plus/scene_verifier/automaton/guard.py +++ b/verse/automaton/guard.py @@ -1,16 +1,13 @@ -from typing import List, Dict, Any +from typing import Any import pickle import ast -import copy from z3 import * -import numpy as np -from dryvr_plus_plus.scene_verifier.map.lane_map import LaneMap -from dryvr_plus_plus.scene_verifier.map.lane_segment import AbstractLane -from dryvr_plus_plus.scene_verifier.utils.utils import * -from dryvr_plus_plus.scene_verifier.agents.base_agent import BaseAgent -from dryvr_plus_plus.scene_verifier.code_parser.parser import Reduction, ReductionType, unparse +from verse.map import LaneMap, AbstractLane +from verse.analysis.utils import * +from verse.agents.base_agent import BaseAgent +from verse.parser import Reduction, ReductionType, unparse class LogicTreeNode: def __init__(self, data, child = [], val = None, mode_guard = None): @@ -144,7 +141,6 @@ class GuardExpressionAst: start, end = continuous_variable_dict[symbols[symbol]] tmp_solver.add(self.varDict[symbol] >= start, self.varDict[symbol] <= end) if tmp_solver.check() == unsat: - print("Full intersect, break") is_contained = True return res, is_contained @@ -879,14 +875,12 @@ class GuardExpressionAst: cont_var_updater = {} for i in range(len(self.ast_list)): root = self.ast_list[i] - j = 0 - while j < sum(1 for _ in ast.walk(root)): + nodes = ast.walk(root) + for node in nodes: # TODO: Find a faster way to access nodes in the tree - node = list(ast.walk(root))[j] if isinstance(node, Reduction): new_node = self.unroll_any_all_new(node, cont_var_dict, disc_var_dict, len_dict, cont_var_updater) root = NodeSubstituter(node, new_node).visit(root) - j += 1 self.ast_list[i] = root return cont_var_updater diff --git a/dryvr_plus_plus/scene_verifier/automaton/hybrid_automaton.py b/verse/automaton/hybrid_automaton.py similarity index 100% rename from dryvr_plus_plus/scene_verifier/automaton/hybrid_automaton.py rename to verse/automaton/hybrid_automaton.py diff --git a/dryvr_plus_plus/scene_verifier/automaton/hybrid_io_automaton.py b/verse/automaton/hybrid_io_automaton.py similarity index 89% rename from dryvr_plus_plus/scene_verifier/automaton/hybrid_io_automaton.py rename to verse/automaton/hybrid_io_automaton.py index d7c485a52bf6ce65016e25b0b75a48d4d803c0e8..1ebc5dd8812ff9e62d22c916c0bff53c2b067fe9 100644 --- a/dryvr_plus_plus/scene_verifier/automaton/hybrid_io_automaton.py +++ b/verse/automaton/hybrid_io_automaton.py @@ -1,4 +1,4 @@ -from dryvr_plus_plus.scene_verifier.automaton.hybrid_automaton import HybridAutomaton +from verse.automaton.hybrid_automaton import HybridAutomaton class HybridIoAutomaton(HybridAutomaton): def __init__( diff --git a/dryvr_plus_plus/scene_verifier/automaton/reset.py b/verse/automaton/reset.py similarity index 96% rename from dryvr_plus_plus/scene_verifier/automaton/reset.py rename to verse/automaton/reset.py index f26aa249072049b30adfce56ddea6727050c09bb..efc5541b1c60613fb4fe1dfa01febe0a239d7a40 100644 --- a/dryvr_plus_plus/scene_verifier/automaton/reset.py +++ b/verse/automaton/reset.py @@ -1,14 +1,14 @@ import itertools, copy -import dryvr_plus_plus.scene_verifier.code_parser.astunparser as astunparser +import numpy as np -import numpy as np +from verse.parser import unparse class ResetExpression(): def __init__(self, reset): reset_var, reset_val_ast = reset self.var = reset_var self.val_ast = reset_val_ast - self.expr = astunparser.unparse(reset_val_ast).strip('\n') + self.expr = unparse(reset_val_ast) def __eq__(self, o) -> bool: if o is None: diff --git a/verse/map/__init__.py b/verse/map/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3edab69004c38b4bede72b873f36e1d0ecbec15a --- /dev/null +++ b/verse/map/__init__.py @@ -0,0 +1,5 @@ +from . import lane_segment, lane_map, lane, opendrive_parser +from .lane_segment import AbstractLane, LaneSegment, StraightLane, CircularLane +from .lane_map import LaneMap +from .lane import Lane +from .opendrive_parser import opendrive_map diff --git a/dryvr_plus_plus/example/__init__.py b/verse/map/example_map/__init__.py similarity index 100% rename from dryvr_plus_plus/example/__init__.py rename to verse/map/example_map/__init__.py diff --git a/dryvr_plus_plus/example/example_map/simple_map.py b/verse/map/example_map/simple_map.py similarity index 100% rename from dryvr_plus_plus/example/example_map/simple_map.py rename to verse/map/example_map/simple_map.py diff --git a/dryvr_plus_plus/example/example_map/simple_map2.py b/verse/map/example_map/simple_map2.py similarity index 100% rename from dryvr_plus_plus/example/example_map/simple_map2.py rename to verse/map/example_map/simple_map2.py diff --git a/dryvr_plus_plus/example/example_map/simple_map_3d.py b/verse/map/example_map/simple_map_3d.py similarity index 100% rename from dryvr_plus_plus/example/example_map/simple_map_3d.py rename to verse/map/example_map/simple_map_3d.py diff --git a/dryvr_plus_plus/scene_verifier/map/lane.py b/verse/map/lane.py similarity index 79% rename from dryvr_plus_plus/scene_verifier/map/lane.py rename to verse/map/lane.py index e48e3f10cc14647bd5d6d3cfcba4d2198a4e7b25..5d133f8ee7d4106a3bc40cfd60085d1c15361600 100644 --- a/dryvr_plus_plus/scene_verifier/map/lane.py +++ b/verse/map/lane.py @@ -2,7 +2,7 @@ from typing import List import numpy as np -from dryvr_plus_plus.scene_verifier.map.lane_segment import AbstractLane +from verse.map.lane_segment import AbstractLane class Lane(): COMPENSATE = 3 @@ -10,6 +10,7 @@ class Lane(): self.id = id self.segment_list: List[AbstractLane] = seg_list self._set_longitudinal_start() + self.lane_width = seg_list[0].width def _set_longitudinal_start(self): longitudinal_start = 0 @@ -18,12 +19,18 @@ class Lane(): longitudinal_start += lane_seg.length def get_lane_segment(self, position:np.ndarray) -> AbstractLane: + min_lateral = float('inf') + idx = -1 + seg = None for seg_idx, segment in enumerate(self.segment_list): logitudinal, lateral = segment.local_coordinates(position) is_on = 0-Lane.COMPENSATE <= logitudinal < segment.length if is_on: - return seg_idx, segment - return -1,None + if lateral < min_lateral: + idx = seg_idx + seg = segment + min_lateral = lateral + return idx, seg def get_heading(self, position:np.ndarray) -> float: seg_idx, segment = self.get_lane_segment(position) @@ -42,3 +49,6 @@ class Lane(): seg_idx, segment = self.get_lane_segment(position) longitudinal, lateral = segment.local_coordinates(position) return lateral + + def get_lane_width(self) -> float: + return self.lane_width \ No newline at end of file diff --git a/dryvr_plus_plus/scene_verifier/map/lane_map.py b/verse/map/lane_map.py similarity index 92% rename from dryvr_plus_plus/scene_verifier/map/lane_map.py rename to verse/map/lane_map.py index bb7560a7bf5251b00f5fe672d573113338d6ffe0..813a56ba930166fbb3a934f37f20e135900192f4 100644 --- a/dryvr_plus_plus/scene_verifier/map/lane_map.py +++ b/verse/map/lane_map.py @@ -4,8 +4,8 @@ from enum import Enum import numpy as np -from dryvr_plus_plus.scene_verifier.map.lane_segment import AbstractLane -from dryvr_plus_plus.scene_verifier.map.lane import Lane +from verse.map.lane_segment import AbstractLane +from verse.map.lane import Lane class LaneMap: def __init__(self, lane_seg_list:List[Lane] = []): @@ -71,6 +71,8 @@ class LaneMap: return lane.get_longitudinal_position(position) def get_lateral_distance(self, lane_idx:str, position:np.ndarray) -> float: + if position[0]>138 and position[0]<140 and position[1]>-9 and position[1]<-8: + print("stop") if not isinstance(position, np.ndarray): position = np.array(position) lane = self.lane_dict[lane_idx] @@ -112,3 +114,7 @@ class LaneMap: ret_dict[lane_idx] = lane.get_speed_limit() # print(ret_dict) return ret_dict + + def get_lane_width(self, lane_idx: str) -> float: + lane: Lane = self.lane_dict[lane_idx] + return lane.get_lane_width() diff --git a/dryvr_plus_plus/scene_verifier/map/lane_segment.py b/verse/map/lane_segment.py similarity index 98% rename from dryvr_plus_plus/scene_verifier/map/lane_segment.py rename to verse/map/lane_segment.py index 642d7a005ba84f6d3956dbed49dcd5e4c7ac94e5..795544709f23c33a4e19c988c079136518825af4 100644 --- a/dryvr_plus_plus/scene_verifier/map/lane_segment.py +++ b/verse/map/lane_segment.py @@ -1,9 +1,8 @@ -from typing import List import numpy as np from abc import ABCMeta, abstractmethod -from typing import Tuple, List, Optional, Union +from typing import Tuple, List, Optional -from dryvr_plus_plus.scene_verifier.utils.utils import wrap_to_pi, Vector, get_class_path, class_from_path,to_serializable +from verse.analysis.utils import wrap_to_pi, Vector, get_class_path, to_serializable class LineType: diff --git a/verse/map/opendrive_parser.py b/verse/map/opendrive_parser.py new file mode 100644 index 0000000000000000000000000000000000000000..02a86e6bdc5ce0bc543ab6e0759c71df592f986a --- /dev/null +++ b/verse/map/opendrive_parser.py @@ -0,0 +1,353 @@ +#Import all the lane objects we are going to use for lane object identification################ +from turtle import right +import numpy as np #Numpy library to do the calculations +import matplotlib.pyplot as plt #Matplotlib library to visualize the roads +from bs4 import BeautifulSoup #Beautiful Soup library for parsing data in python +############################################################################################### + +#Import all the lane objects needed to generate all the lane map objects for the controllers +from verse.map.lane import Lane +from verse.map.lane_map import LaneMap +from verse.map.lane_segment import * +############################################################################################### + +###############################ASAM OPEN DRIVE PARSING FUNCTION################################ +def file_parser(file_name): + with open(file_name,'r') as f: #now we are going to read each line inside the file + data = f.read() #Read all the file + soup = BeautifulSoup(data,'xml') #store the data into the soup + return soup +############################################################################################### + +#########Check if we can get all the lane data from this tag from the ASAM Open DRIVE File +def check_valid_side(side): + lane_array = [] #lane array + temp_lanes = [] #temporary lanes to append + alpha_array = [] #array of alpha values + if side is not None: #we want to check is the side we are traversing is NOT NONE + temp_lanes = side.find_all('lane') #let's find all the left lane + for tl in temp_lanes: #traverse each element in the left lane + lane_array.append(tl['type']) #add each of the left segment to the temporary left array + temp_alpha = tl.find('width') #width of the temp road. + alpha_array.append(float(temp_alpha['a'])) #add the alpha value into the array + return True,lane_array,alpha_array #return True if the side is valid + return False,[],[] #otherwise return False + +#This the function that condenses the 2d matrix into lane segments +def condense_matrix(drive_way_matrix,width_2d): + lanes_to_return = [] #to store the lanes to return + width_to_return = [] #to store the width between each lane + cols = len(drive_way_matrix[0]) #number of columns + drive_way_matrix = np.array(drive_way_matrix) #driveway 2d matrix to traverse + width_2d = np.array(width_2d) #width 2d matrix to traverse + for i in range(cols): + lane_to_append = Lane("Lane"+str(i+1),drive_way_matrix[:,i].tolist()) #combine all the rows into one list for each column + lanes_to_return.append(lane_to_append) #add each Lane object to the list we want to return + mean = np.mean(width_2d[:,i]) #calculate the mean of all the space between the lanes + width_to_return.append(mean) #add it to the width we want to return + return lanes_to_return,width_to_return + +######This is the function which traverses each road element in a given road##################### +def road_traverser(road): + left_drive_way_2d = [] + left_width_2d = [] + right_drive_way_2d = [] + right_width_2d = [] + + for elem in road: #traverse each road segment in the open drive file + planview = elem.find('planView') #we are going to find the planview + road_geom = planview.find_all('geometry') #then find all the geometry + lane_types = elem.find('lanes') #let's find all the lanes + + ###################LEFT SIDE OF THE ROAD############################################################## + left = lane_types.find('left') #find all the left side of the road + left_valid, left_array,left_alpha_array = check_valid_side(left) #check the left side of the lane + + #################RIGHT SIDE OF THE ROAD################################################################ + right = lane_types.find('right') #find all the center side of the road + right_valid, right_array,right_alpha_array = check_valid_side(right) #check the right side of the lane + ####################################################################################################### + + for rg in road_geom: #traverse each geometry for each road + left_temp_drive = [] #temporary list to store driveway segments + left_temp_width_2d = [] + right_temp_drive = [] #temporary list to store driveway segments + right_temp_width_2d = [] + temp_x = float(rg['x']) #don't forget to cast this to float! + temp_y = float(rg['y']) #don't forget to cast this float! + hdg = float(rg['hdg']) #gets the heading of the road + length = float(rg['length']) #gets the length of the road + + if (rg.line): #we want to check if this is the line segment + xi = temp_x #x-coordinate starting point + xf = temp_x + np.cos(hdg) * length #x-coordinate ending point + yi = temp_y #y-coordinate starting point + yf = temp_y + np.sin(hdg) * length #y-coordinate ending point + + ###########################NORMALIZATION PART############################## + delta_x = xf - xi #find the difference between two x-coordinates + delta_y = yf - yi #find the differences between two y-coordinates + N_left = np.array([-delta_y,delta_x])/(np.sqrt(delta_x**2 + delta_y**2)) #Normal Vector for left side + N_right = np.array([delta_y,-delta_x])/(np.sqrt(delta_x**2 + delta_y**2)) #Normal Vector for right side + ############################################################################## + + ########################LEFT ARRAY####################### + left_alpha_val = 0 + left_idx = 0 + assert (len(left_array) == len(left_alpha_array)) + + if left_valid: + for left_elem in left_array: + if left_elem == 'sidewalk': + style = '-' + left_alpha_val += left_alpha_array[left_idx] + elif left_elem == 'driving': + style = '--' + left_alpha_val += 0.5*left_alpha_array[left_idx] + left_new_vect_i = np.array([xi,yi]) + left_alpha_val*N_left + left_new_vect_f = np.array([xf,yf]) + left_alpha_val*N_left + id = str(left_idx) + width = left_alpha_array[left_idx] + line_types = style + straight_to_append = StraightLane(id,left_new_vect_i,left_new_vect_f,width,line_types,False,20,0) #Straight (id, start vector, end vector, width, line type,forbidden,speed limit, priority) + left_temp_drive.append(straight_to_append) + left_temp_width_2d.append(left_alpha_val) + left_alpha_val -= 0.5*left_alpha_array[left_idx] + left_alpha_val += left_alpha_array[left_idx] + + left_idx +=1 #increment left index + + ###################RIGHT ARRAY######################### + right_alpha_val = 0 + right_idx = 0 + assert (len(right_array) == len(right_alpha_array)) + if right_valid: + for right_elem in right_array: + if right_elem == 'sidewalk': + style = '-' + right_alpha_val += right_alpha_array[right_idx] + + elif right_elem == 'driving': + style = '--' + right_alpha_val += 0.5*right_alpha_array[right_idx] + right_new_vect_i = np.array([xi,yi]) + right_alpha_val*N_right + right_new_vect_f = np.array([xf,yf]) + right_alpha_val*N_right + id = str(right_idx) + width = right_alpha_array[right_idx] + line_types = style + straight_to_append = StraightLane(id,right_new_vect_i,right_new_vect_f,width,line_types,False,20,0) #Straight (id, start vector, end vector, width, line type,forbidden,speed limit, priority) + right_temp_drive.append(straight_to_append) + right_alpha_val -= 0.5*right_alpha_array[right_idx] + right_alpha_val += right_alpha_array[right_idx] + + right_idx +=1 + + else: #if this is not a line segment then this is a curve + #IMPORTANT #NOTE_TO KEEP IN MIND OF: + #if curvature is negative: + #then the center is at the right hand side of the vehicle in vehicle's frame + curvature = float(rg.find('arc')['curvature']) #curvature + radius = np.abs(1/curvature) #radius = 1/curvature + arc_length = float(rg['length']) #arc-length + + ############WE ARE GOING TO DETERMINE THE VECTOR DIRECTION#################### + T = np.array([np.cos(hdg) , np.sin(hdg),0]) #tangent vector on the curved line + N = np.array([0,0,1]) #normal vector on the curved line + S = np.cross(N,T) #cross product of normal and tangent vectors + xi = temp_x #initial x-coordinate + yi = temp_y #initial y-coordinate + center = [] #center coordinates + curvature_direction = [] #store the direction of each curvature + + if curvature < 0: #if the curvature is negative then it it CLOCKWISE + center = np.array([xi,yi]) - S[0:2]*radius #center is equal to the current point subtract the radius + curvature_direction.append(False) + else: #if the curvature is positive then it is COUNTER-CLOCKWISE + center = np.array([xi,yi]) + S[0:2]*radius #center is equal to the current point add the radius + curvature_direction.append(True) + + x_diff = xi - center[0] #x_diff means the difference between the current x-coordinate and the center x-coordinate + y_diff = yi - center[1] #y_diff means the difference between the current y-coordinate and the center y-coordinate + initial_theta = np.arctan2(y_diff, x_diff) #initial theta is the angle between the y_diff and x_diff + delta_theta = abs(arc_length/radius) #delta theta is the final angle of the curvature + + if curvature < 0: #if the curvature is negative + final_theta = initial_theta - delta_theta #we want to go the opposite way so subtract delta theta from initial theta + else: #this condition means that the curvvature is positive + final_theta = initial_theta + delta_theta #we want to go COUNTER-CLOCKWISE so ADD the delta theta to initial theta + + #####THIS IS WHERE I AM GOING TO ADJUST EACH LANE SEGMENT OF THE CURVE + #########################LEFT ARRAY######################################################### + left_idx = 0 + assert (len(left_array) == len(left_alpha_array)) + temp_radius = radius + if left_valid: + for left_elem in left_array: + for curve_dir in curvature_direction: + if curve_dir == True: + if left_elem == 'driving': + temp_radius -= 0.5*left_alpha_array[left_idx] + id = str(left_idx) + center_points = center + start_phase = initial_theta + end_phase = final_theta + clockwise = False + width = left_alpha_array[left_idx] + style = '--' + circle_to_append = CircularLane(id,center_points,temp_radius,start_phase,end_phase,clockwise,width,style,False,20,0) + left_temp_drive.append(circle_to_append) + left_temp_width_2d.append(width) + temp_radius += 0.5*left_alpha_array[left_idx] + temp_radius -= left_alpha_array[left_idx] + + elif left_elem == 'sidewalk': + style = '-' + temp_radius -= left_alpha_array[left_idx] + + else: + if left_elem == 'driving': + temp_radius += 0.5*left_alpha_array[left_idx] + id = str(left_idx) + center_points = center + start_phase = initial_theta + end_phase = final_theta + clockwise = True + width = left_alpha_array[left_idx] + style = '--' + circle_to_append = CircularLane(id,center_points,temp_radius,start_phase,end_phase,clockwise,width,style,False,20,0) + left_temp_drive.append(circle_to_append) + left_temp_width_2d.append(width) + temp_radius -= 0.5*left_alpha_array[left_idx] + temp_radius += left_alpha_array[left_idx] + + elif left_elem == 'sidewalk': + style = '-' + temp_radius += left_alpha_array[left_idx] + + left_idx +=1 #increment the left index + + #############################RIGHT ARRAY############################################## + right_idx = 0 + assert (len(right_array) == len(right_alpha_array)) + temp_radius = radius + if right_valid: + for right_elem in right_array: + for curve_dir in curvature_direction: + if curve_dir == True: + if right_elem == 'driving': + temp_radius += 0.5*right_alpha_array[right_idx] + id = str(right_idx) + center_points = center + start_phase = initial_theta + end_phase = final_theta + clockwise = False + width = right_alpha_array[right_idx] + style = '--' + circle_to_append = CircularLane(id,center_points,temp_radius,start_phase,end_phase,clockwise,width,style,False,20,0) + right_temp_drive.append(circle_to_append) + temp_radius -= 0.5*right_alpha_array[right_idx] + temp_radius += right_alpha_array[right_idx] + + elif right_elem == 'sidewalk': + style = '-' + temp_radius += right_alpha_array[right_idx] + + else: + if right_elem == 'driving': + temp_radius -= 0.5*right_alpha_array[right_idx] + id = str(right_idx) + center_points = center + start_phase = initial_theta + end_phase = final_theta + clockwise = False + width = right_alpha_array[right_idx] + style = '--' + circle_to_append = CircularLane(id,center_points,temp_radius,start_phase,end_phase,clockwise,width,style,False,20,0) + right_temp_drive.append(circle_to_append) + temp_radius += 0.5*right_alpha_array[right_idx] + temp_radius -= right_alpha_array[right_idx] + + elif right_elem == 'sidewalk': + style = '-' + temp_radius -= right_alpha_array[right_idx] + right_idx +=1 #increment the right index + left_drive_way_2d.append(left_temp_drive) + left_width_2d.append(left_temp_width_2d) + right_drive_way_2d.append(right_temp_drive) + right_width_2d.append(right_temp_width_2d) + + return left_drive_way_2d,left_width_2d,right_drive_way_2d,right_width_2d + +# def temp_right(): #this is just a temporary function to populate the right side +# dp = [] +# widths_2d = [] +# for i in range(22): +# list = [] +# width_temp = [] +# for j in range(3): +# id = str(-(j+1)) +# start_vector = [0,0] +# end_vector = [10,10] +# width = 10 +# line_types = '-' +# to_append = StraightLane(id,start_vector,end_vector,width,line_types,False,20,0) #Straight (id, start vector, end vector, width, line type,forbidden,speed limit, priority) +# list.append(to_append) +# width_temp.append(width) +# dp.append(list) +# widths_2d.append(width_temp) + +# lanes_to_return = [] +# width_to_return = [] +# cols = len(dp[0]) + +# drive_way_matrix = np.array(dp) +# width_2d = np.array(widths_2d) +# for i in range(cols): +# lane_to_append = Lane("Lane"+str(-(i+1)),drive_way_matrix[:,i].tolist()) +# lanes_to_return.append(lane_to_append) +# mean = np.mean(width_2d[:,i]) +# width_to_return.append(mean) +# return lanes_to_return + +#Function to generate lane data visualization while parsing the ASAM Open DRIVE file +def opendrive_map(file_name): + soup = file_parser(file_name) #call the file parsing function + road = soup.find_all('road')[:-1] #first find all the road segments and ignore the last one + + left_drive_way_2d,left_width_2d,right_drive_way_2d,right_width_2d = road_traverser(road) + left_lanes,left_widths = condense_matrix(left_drive_way_2d,left_width_2d) #condense matrix returns left side of the road along the width 2d matrix + right_lanes,right_widths = condense_matrix(right_drive_way_2d,right_width_2d) #condense matrix returns the right side of the road along the width 2d matrix + #right_lanes = temp_right() #just a temporary function to generate the right side of the road + + total = left_lanes[::-1] + right_lanes #reverse the left lane order and then combine with the right lane list to create one long lane list + completed_lanes = LaneMap(total) #create a lane map + + for i in range(len(total)-1,0,-1): + completed_lanes.left_lane_dict[total[i].id] = [total[i-1].id] #connect each left side for each lane + + for i in range(len(total)-1): + completed_lanes.right_lane_dict[total[i].id] = [total[i+1].id] #connect each right side for each lane + + return completed_lanes #return the connected lane object + +if __name__ == '__main__': + file_name1 = 'map_package/Maps/t1_triple/OpenDrive/t1_triple.xodr' #parse in first file + file_name2 = 'map_package/Maps/t2_triple/OpenDrive/t2_triple.xodr' #parse in second file + file_name3 = 'map_package/Maps/t3/OpenDrive/t3.xodr' #parse in third file + file_name4 = 'map_package/Maps/t4/OpenDrive/t4.xodr' #parse in fourth file + file_name5 = 'map_package/Maps/track5/OpenDrive/track5.xodr' #parse in fifth file + file_list = [file_name1,file_name2, file_name3, file_name4, file_name5] #store the file names in an array + lane_list = [] + + for idx,value in enumerate(file_list): + lane_list = opendrive_map(value) + # plt.figure() + # lane_visualizer(value,idx) + # plt.savefig('full_road_geometry/figure'+str(idx)+'.png') + # plt.show() + + # for idx,value in enumerate(file_list): + # plt.figure() + # center_visualizer(value, idx) + # plt.savefig('road_centerline_geometry/figure'+str(idx)+'.png') + # plt.show() \ No newline at end of file diff --git a/verse/parser/__init__.py b/verse/parser/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..0feeb65b362dae7155aeb197e1300e63adae1d6a --- /dev/null +++ b/verse/parser/__init__.py @@ -0,0 +1,2 @@ +from .parser import ControllerIR, StateDef, ModeDef, Lambda, Reduction, ReductionType, unparse +from . import astunparser, parser diff --git a/dryvr_plus_plus/scene_verifier/code_parser/astunparser.py b/verse/parser/astunparser.py similarity index 100% rename from dryvr_plus_plus/scene_verifier/code_parser/astunparser.py rename to verse/parser/astunparser.py diff --git a/dryvr_plus_plus/scene_verifier/code_parser/parser.py b/verse/parser/parser.py similarity index 76% rename from dryvr_plus_plus/scene_verifier/code_parser/parser.py rename to verse/parser/parser.py index 99c6c18495922cc720c8e0650fadf1413eac9251..8961e0ce8698d94c5ce39176cb34b9c91db29b5b 100644 --- a/dryvr_plus_plus/scene_verifier/code_parser/parser.py +++ b/verse/parser/parser.py @@ -1,9 +1,20 @@ -import ast, copy +import ast, copy, warnings from typing import List, Dict, Union, Optional, Any, Tuple from dataclasses import dataclass, field, fields from enum import Enum, auto -from dryvr_plus_plus.scene_verifier.code_parser import astunparser -from dryvr_plus_plus.scene_verifier.utils.utils import find +from verse.parser import astunparser +from verse.analysis.utils import find + +def merge_conds(c): + if len(c) == 0: + return ast.Constant(True) + if len(c) == 1: + return c[0] + else: + return ast.BoolOp(ast.And(), c) + +def compile_expr(e): + return compile(ast.fix_missing_locations(ast.Expression(e)), "", "eval") def unparse(e): return astunparser.unparse(e).strip("\n") @@ -110,7 +121,7 @@ class Reduction(CustomIR): CustomIR.set_fields(Reduction) @dataclass -class Assert: +class _Assert: cond: ast.expr label: Optional[str] pre: List[ast.expr] = field(default_factory=list) @@ -120,15 +131,35 @@ class Assert: return False return len(self.pre) == len(o.pre) and all(ControllerIR.ir_eq(a, b) for a, b in zip(self.pre, o.pre)) and ControllerIR.ir_eq(self.cond, o.cond) +@dataclass +class CompiledAssert: + cond: Any # FIXME type for compiled python (`code`?) + label: str + pre: Any + +@dataclass +class Assert: + cond: ast.expr + label: str + pre: ast.expr + +@dataclass +class LambdaArg: + name: str + typ: Optional[str] + is_list: bool + +LambdaArgs = List[LambdaArg] + @dataclass class Lambda: """A closure. Comes from either a `lambda` or a `def`ed function""" - args: List[Tuple[str, Optional[str]]] + args: LambdaArgs body: Optional[ast.expr] - asserts: List[Assert] + asserts: List[_Assert] @staticmethod - def from_ast(tree: Union[ast.FunctionDef, ast.Lambda], env: "Env", veri: bool) -> "Lambda": + def from_ast(tree: Union[ast.FunctionDef, ast.Lambda], env: "Env") -> "Lambda": args = [] for a in tree.args.args: if a.annotation != None: @@ -149,18 +180,18 @@ class Lambda: else: typ = handle_simple_ann(a.annotation) is_list = False - args.append((a.arg, typ, is_list)) + args.append(LambdaArg(a.arg, typ, is_list)) else: - args.append((a.arg, None, False)) + args.append(LambdaArg(a.arg, None, False)) env.push() - for a, typ, is_list in args: - env.add_hole(a, typ) + for a in args: + env.add_hole(a.name, a.typ) ret = None if isinstance(tree, ast.FunctionDef): for node in tree.body: - ret = proc(node, env, veri) + ret = proc(node, env) elif isinstance(tree, ast.Lambda): - ret = proc(tree.body, env, veri) + ret = proc(tree.body, env) asserts = env.scopes[0].asserts env.pop() return Lambda(args, ret, asserts) @@ -169,15 +200,15 @@ class Lambda: def empty() -> "Lambda": return Lambda(args=[], body=None, asserts=[]) - def apply(self, args: List[ast.expr]) -> Tuple[List[Assert], ast.expr]: + def apply(self, args: List[ast.expr]) -> Tuple[List[_Assert], ast.expr]: ret = copy.deepcopy(self.body) - subst = ArgSubstituter({k: v for (k, _, _), v in zip(self.args, args)}) + subst = ArgSubstituter({a.name: v for a, v in zip(self.args, args)}) ret = subst.visit(ret) - def visit_assert(a: Assert): + def visit_assert(a: _Assert): a = copy.deepcopy(a) pre = [subst.visit(p) for p in a.pre] cond = subst.visit(a.cond) - return Assert(cond, a.label, pre) + return _Assert(cond, a.label, pre) asserts = [visit_assert(a) for a in copy.deepcopy(self.asserts)] return asserts, ret @@ -186,7 +217,7 @@ ast_dump = lambda node, dump=False: ast.dump(node) if dump else unparse(node) @dataclass class ScopeLevel: v: Dict[str, ScopeValue] = field(default_factory=dict) - asserts: List[Assert] = field(default_factory=list) + asserts: List[_Assert] = field(default_factory=list) class ArgSubstituter(ast.NodeTransformer): args: Dict[str, ast.expr] @@ -200,22 +231,30 @@ class ArgSubstituter(ast.NodeTransformer): self.generic_visit(node) return node +@dataclass +class ModePath: + cond: Any + cond_veri: ast.expr + var: str + val: Any + val_veri: ast.expr + @dataclass class ControllerIR: - controller: Optional[Lambda] - controller_veri: Optional[Lambda] - unsafe: Optional[Lambda] - asserts: List[Assert] + args: LambdaArgs + paths: List[ModePath] + asserts: List[CompiledAssert] + asserts_veri: List[Assert] state_defs: Dict[str, StateDef] mode_defs: Dict[str, ModeDef] @staticmethod def parse(code: Optional[str] = None, fn: Optional[str] = None) -> "ControllerIR": - return ControllerIR.from_envs(*Env.parse(code, fn)) + return ControllerIR.from_env(Env.parse(code, fn)) @staticmethod def empty() -> "ControllerIR": - return ControllerIR(None, None, None, [], {}, {}) + return ControllerIR([], [], [], [], {}, {}) @staticmethod def dump(node, dump=False): @@ -229,7 +268,7 @@ class ControllerIR: return f"<Lambda args: {node.args} body: {ControllerIR.dump(node.body, dump)} asserts: {ControllerIR.dump(node.asserts, dump)}>" if isinstance(node, CondVal): return f"<CondVal [{', '.join(f'{ControllerIR.dump(e.val, dump)} if {ControllerIR.dump(e.cond, dump)}' for e in node.elems)}]>" - if isinstance(node, Assert): + if isinstance(node, _Assert): if len(node.pre) > 0: pre = f"[{', '.join(ControllerIR.dump(a, dump) for a in node.pre)}] => " else: @@ -252,27 +291,34 @@ class ControllerIR: return ControllerIR.dump(a) == ControllerIR.dump(b) # FIXME Proper equality checks; dump needed cuz asts are dumb @staticmethod - def from_envs(env, env_veri): - top, top_veri = env.scopes[0].v, env_veri.scopes[0].v + def from_env(env): + top = env.scopes[0].v if 'controller' not in top or not isinstance(top['controller'], Lambda): raise TypeError("can't find controller") - controller = Env.trans_args(top['controller'], False) - controller_veri = Env.trans_args(top_veri['controller'], True) - unsafe = Env.trans_args(top['unsafe'], False) if 'unsafe' in top else None - assert isinstance(controller, Lambda) and isinstance(controller_veri, Lambda) and isinstance(unsafe, (Lambda, type(None))) - return ControllerIR(controller, controller_veri, unsafe, env.scopes[0].asserts, env.state_defs, env.mode_defs) - - def getNextModes(self) -> List[Any]: - controller_body = self.controller_veri.body + controller = top['controller'] + asserts = [(a.cond, a.label if a.label != None else f"<assert {i}>", merge_conds(a.pre)) for i, a in enumerate(controller.asserts)] + asserts_veri = [Assert(Env.trans_args(copy.deepcopy(c), True), l, Env.trans_args(copy.deepcopy(p), True)) for c, l, p in asserts] + for a in asserts_veri: + print(ControllerIR.dump(a.pre), ControllerIR.dump(a.cond, True)) + asserts_sim = [CompiledAssert(compile_expr(Env.trans_args(c, False)), l, compile_expr(Env.trans_args(p, False))) for c, l, p in asserts] + + assert isinstance(controller, Lambda) paths = [] - for variable in controller_body: - val = controller_body[variable] + if not isinstance(controller.body, dict): + raise NotImplementedError("non-object return") + for var, val in controller.body.items(): if not isinstance(val, CondVal): continue for case in val.elems: if len(case.cond) > 0: - paths.append((case.cond, (variable, case.val))) - return paths + cond = merge_conds(case.cond) + cond_veri = Env.trans_args(copy.deepcopy(cond), True) + val_veri = Env.trans_args(copy.deepcopy(case.val), True) + cond = compile_expr(Env.trans_args(cond, False)) + val = compile_expr(Env.trans_args(case.val, False)) + paths.append(ModePath(cond, cond_veri, var, val, val_veri)) + + return ControllerIR(controller.args, paths, asserts_sim, asserts_veri, env.state_defs, env.mode_defs) @dataclass class Env(): @@ -293,12 +339,9 @@ class Env(): root = ast.parse(cont, fn) else: raise TypeError("need at least one of `code` and `fn`") - root_veri = copy.deepcopy(root) env = Env() - proc(root, env, False) - env_veri = Env() - proc(root_veri, env_veri, True) - return env, env_veri + proc(root, env) + return env def push(self): self.scopes = [ScopeLevel()] + self.scopes @@ -323,7 +366,7 @@ class Env(): self.set(name, ast.arg(name, ast.Constant(typ, None))) def add_assert(self, expr, label): - self.scopes[0].asserts.append(Assert(expr, label)) + self.scopes[0].asserts.append(_Assert(expr, label)) @staticmethod def dump_scope(env: ScopeLevel, dump=False): @@ -345,7 +388,8 @@ class Env(): @staticmethod def trans_args(sv: ScopeValue, veri: bool) -> ScopeValue: - def trans_condval(cv: CondVal): + def trans_condval(cv: CondVal, veri: bool): + raise NotImplementedError("flatten CondVal assignments") for i, case in enumerate(cv.elems): cv.elems[i].val = Env.trans_args(case.val, veri) for j, cond in enumerate(case.cond): @@ -363,14 +407,20 @@ class Env(): cond = ast.BoolOp(ast.And(), case.cond) if len(case.cond) > 1 else case.cond[0] ret = ast.IfExp(cond, case.val, ret) return ret - """Finish up parsing to turn `ast.arg` placeholders into `ast.Name`s so that the trees can be easily evaluated later""" + def trans_reduction(red: Reduction, veri: bool): + if veri: + red.expr = Env.trans_args(red.expr, True) + red.value = Env.trans_args(red.value, True) + return red + expr = Env.trans_args(red.expr, False) + value = Env.trans_args(red.value, False) + gen_expr = ast.GeneratorExp(expr, [ast.comprehension(ast.Name(red.it, ctx=ast.Store()), value, [], False)]) + return ast.Call(ast.Name(str(red.op), ctx=ast.Load()), [gen_expr], []) - if isinstance(sv, dict): - for k, v in sv.items(): - sv[k] = Env.trans_args(v, veri) - return sv + if isinstance(sv, Reduction): + return trans_reduction(sv, veri) if isinstance(sv, CondVal): - return trans_condval(sv) + return trans_condval(sv, veri) if isinstance(sv, ast.AST): class ArgTransformer(ast.NodeTransformer): def __init__(self, veri: bool): @@ -379,13 +429,27 @@ class Env(): def visit_arg(self, node): return ast.Name(node.arg, ctx=ast.Load()) def visit_CondVal(self, node): - return trans_condval(node) + return trans_condval(node, self.veri) + def visit_Reduction(self, node): + return trans_reduction(node, self.veri) + # def visit_Attribute(self, node: ast.Attribute) -> Any: + # if self.veri: + # value = super().visit(node.value) + # if isinstance(value, ast.Name): + # return ast.Name(f"{value.id}.{node.attr}", ctx=ast.Load()) + # raise ValueError(f"value of attribute node is not name?: {unparse(node)}") + # else: + # return super().generic_visit(node) return ArgTransformer(veri).visit(sv) + if isinstance(sv, dict): + for k, v in sv.items(): + sv[k] = Env.trans_args(v, veri) + return sv if isinstance(sv, Lambda): sv.body = Env.trans_args(sv.body, veri) sv.asserts = [Env.trans_args(a, veri) for a in sv.asserts] return sv - if isinstance(sv, Assert): + if isinstance(sv, _Assert): sv.cond = Env.trans_args(sv.cond, veri) sv.pre = [Env.trans_args(p, veri) for p in sv.pre] return sv @@ -393,16 +457,18 @@ class Env(): sv.expr = Env.trans_args(sv.expr, veri) sv.value = Env.trans_args(sv.value, veri) return sv + print(ControllerIR.dump(sv, True)) + raise NotImplementedError(str(sv.__class__)) ScopeValueMap = Dict[str, ScopeValue] -def merge_if(test: ast.expr, trues: Env, falses: Env, env: Env, veri: bool): +def merge_if(test: ast.expr, trues: Env, falses: Env, env: Env): # `true`, `false` and `env` should have the same level for true, false in zip(trues.scopes, falses.scopes): - merge_if_single(test, true.v, false.v, env, veri) + merge_if_single(test, true.v, false.v, env) env.scopes[0].asserts = merge_assert(test, trues.scopes[0].asserts, falses.scopes[0].asserts, env.scopes[0].asserts) -def merge_assert(test: ast.expr, trues: List[Assert], falses: List[Assert], orig: List[Assert]): +def merge_assert(test: ast.expr, trues: List[_Assert], falses: List[_Assert], orig: List[_Assert]): def merge_cond(test, asserts): for a in asserts: a.pre.append(test) @@ -415,7 +481,7 @@ def merge_assert(test: ast.expr, trues: List[Assert], falses: List[Assert], orig m_trues, m_falses = merge_cond(test, trues), merge_cond(ast.UnaryOp(ast.Not(), test), falses) return m_trues + m_falses + orig -def merge_if_single(test, true: ScopeValueMap, false: ScopeValueMap, scope: Union[Env, ScopeValueMap], veri: bool): +def merge_if_single(test, true: ScopeValueMap, false: ScopeValueMap, scope: Union[Env, ScopeValueMap]): def lookup(s, k): if isinstance(s, Env): return s.lookup(k) @@ -438,7 +504,7 @@ def merge_if_single(test, true: ScopeValueMap, false: ScopeValueMap, scope: Unio assign(scope, var, {}) var_true_emp, var_false_emp, var_scope = true.get(var, {}), false.get(var, {}), lookup(scope, var) assert isinstance(var_true_emp, dict) and isinstance(var_false_emp, dict) and isinstance(var_scope, dict) - merge_if_single(test, var_true_emp, var_false_emp, var_scope, veri) + merge_if_single(test, var_true_emp, var_false_emp, var_scope) else: var_orig = lookup(scope, var) if_val = merge_if_val(test, var_true, var_false, var_orig) @@ -480,20 +546,20 @@ def merge_if_val(test, true: Optional[ScopeValue], false: Optional[ScopeValue], return CondVal(ret.elems + orig.elems) return ret -def proc_assign(target: ast.AST, val, env: Env, veri: bool): +def proc_assign(target: ast.AST, val, env: Env): def proc_assign_attr(value, attr, val): - if proc(value, env, veri) == None: - proc_assign(value, {}, env, veri) - obj = proc(value, env, veri) + if proc(value, env) == None: + proc_assign(value, {}, env) + obj = proc(value, env) if isinstance(val, ast.AST): - val = proc(val, env, veri) + val = proc(val, env) if val != None: obj[attr] = val else: obj[attr] = val if isinstance(target, ast.Name): if isinstance(val, ast.AST): - val = proc(val, env, veri) + val = proc(val, env) if val != None: if isinstance(val, ast.arg): assert isinstance(val.annotation, ast.Constant) @@ -523,13 +589,10 @@ START_OF_MAIN = "--start-of-main--" # NOTE `ast.arg` used as a placeholder for idents we don't know the value of. # This is fine as it's never used in expressions -# NOTE `veri` as a flag to create 2 versions of ASTs, one used for simulation and one for -# verification. This is needed as one form is easier to be directly evaluated while the other easier -# for verification. The differences between them means they can't be easily converted to one another -def proc(node: ast.AST, env: Env, veri: bool) -> Any: +def proc(node: ast.AST, env: Env) -> Any: if isinstance(node, ast.Module): for node in node.body: - if proc(node, env, veri) == START_OF_MAIN: + if proc(node, env) == START_OF_MAIN: break elif not_ir_ast(node): return node @@ -539,14 +602,14 @@ def proc(node: ast.AST, env: Env, veri: bool) -> Any: elif isinstance(node, ast.If): if is_main_check(node): return START_OF_MAIN - test = proc(node.test, env, veri) + test = proc(node.test, env) true_scope = copy.deepcopy(env) for true in node.body: - proc(true, true_scope, veri) + proc(true, true_scope) false_scope = copy.deepcopy(env) for false in node.orelse: - proc(false, false_scope, veri) - merge_if(test, true_scope, false_scope, env, veri) + proc(false, false_scope) + merge_if(test, true_scope, false_scope, env) # Definition/Assignment elif isinstance(node, ast.Import) or isinstance(node, ast.ImportFrom): @@ -554,13 +617,13 @@ def proc(node: ast.AST, env: Env, veri: bool) -> Any: env.add_hole(alias.name if alias.asname == None else alias.asname, None) elif isinstance(node, ast.Assign): if len(node.targets) == 1: - proc_assign(node.targets[0], node.value, env, veri) + proc_assign(node.targets[0], node.value, env) else: raise NotImplementedError("unpacking not supported") elif isinstance(node, ast.Name):# and isinstance(node.ctx, ast.Load): return env.lookup(node.id) elif isinstance(node, ast.Attribute) and isinstance(node.ctx, ast.Load): - obj = proc(node.value, env, veri) + obj = proc(node.value, env) # TODO since we know what the mode and state types contain we can do some typo checking if not_ir_ast(obj): if obj.arg in env.mode_defs: @@ -569,9 +632,9 @@ def proc(node: ast.AST, env: Env, veri: bool) -> Any: return attr return obj[node.attr] elif isinstance(node, ast.FunctionDef): - env.set(node.name, Lambda.from_ast(node, env, veri)) + env.set(node.name, Lambda.from_ast(node, env)) elif isinstance(node, ast.Lambda): - return Lambda.from_ast(node, env, veri) + return Lambda.from_ast(node, env) elif isinstance(node, ast.ClassDef): def grab_names(nodes: List[ast.stmt]): names = [] @@ -607,7 +670,7 @@ def proc(node: ast.AST, env: Env, veri: bool) -> Any: env.state_defs[node.name] = state_vars env.add_hole(node.name, None) elif isinstance(node, ast.Assert): - cond = proc(node.test, env, veri) + cond = proc(node.test, env) if node.msg == None: env.add_assert(cond, None) elif isinstance(node.msg, ast.Constant): @@ -617,20 +680,20 @@ def proc(node: ast.AST, env: Env, veri: bool) -> Any: # Expressions elif isinstance(node, ast.UnaryOp): - return ast.UnaryOp(node.op, proc(node.operand, env, veri)) + return ast.UnaryOp(node.op, proc(node.operand, env)) elif isinstance(node, ast.BinOp): - return ast.BinOp(proc(node.left, env, veri), node.op, proc(node.right, env, veri)) + return ast.BinOp(proc(node.left, env), node.op, proc(node.right, env)) elif isinstance(node, ast.BoolOp): - return ast.BoolOp(node.op, [proc(val, env, veri) for val in node.values]) + return ast.BoolOp(node.op, [proc(val, env) for val in node.values]) elif isinstance(node, ast.Compare): if len(node.ops) > 1 or len(node.comparators) > 1: raise NotImplementedError("too many comparisons") - return ast.Compare(proc(node.left, env, veri), node.ops, [proc(node.comparators[0], env, veri)]) + return ast.Compare(proc(node.left, env), node.ops, [proc(node.comparators[0], env)]) elif isinstance(node, ast.Call): - fun = proc(node.func, env, veri) + fun = proc(node.func, env) if isinstance(fun, Lambda): - args = [proc(a, env, veri) for a in node.args] + args = [proc(a, env) for a in node.args] asserts, ret = fun.apply(args) env.scopes[0].asserts.extend(asserts) return ret @@ -638,14 +701,14 @@ def proc(node: ast.AST, env: Env, veri: bool) -> Any: if isinstance(fun.value, ast.arg) and fun.value.arg == "copy" and fun.attr == "deepcopy": if len(node.args) > 1: raise ValueError("too many args to `copy.deepcopy`") - return proc(node.args[0], env, veri) + return proc(node.args[0], env) return node if isinstance(fun, ast.arg): if fun.arg == "copy.deepcopy": raise Exception("unreachable") else: ret = copy.deepcopy(node) - ret.args = [proc(a, env, veri) for a in ret.args] + ret.args = [proc(a, env) for a in ret.args] return ret if isinstance(node.func, ast.Name): name = node.func.id @@ -663,33 +726,31 @@ def proc(node: ast.AST, env: Env, veri: bool) -> Any: raise NotImplementedError("complex generator target") env.push() env.add_hole(target.id, None) - if veri: - op = ReductionType.from_str(name) - def cond_trans(e: ast.expr, c: ast.expr) -> ast.expr: - if op == ReductionType.Any: - return ast.BoolOp(ast.And(), [e, c]) - else: - return ast.BoolOp(ast.Or(), [e, ast.UnaryOp(ast.Not(), c)]) - expr = proc(expr, env, veri) - expr = cond_trans(expr, ast.BoolOp(ast.And(), ifs)) if len(ifs) > 0 else expr - ret = Reduction(op, expr, target.id, proc(iter, env, veri)) - else: - gens.elt = proc(gens.elt, env, veri) - gen.iter = proc(gen.iter, env, veri) - gen.ifs = [proc(cond, env, veri) for cond in gen.ifs] - ret = node + op = ReductionType.from_str(name) + def cond_trans(e: ast.expr, c: ast.expr) -> ast.expr: + if op == ReductionType.Any: + return ast.BoolOp(ast.And(), [e, c]) + else: + return ast.BoolOp(ast.Or(), [e, ast.UnaryOp(ast.Not(), c)]) + expr = proc(expr, env) + expr = cond_trans(expr, ast.BoolOp(ast.And(), ifs)) if len(ifs) > 0 else expr + ret = Reduction(op, expr, target.id, proc(iter, env)) env.pop() return ret elif isinstance(node, ast.Return): - return proc(node.value, env, veri) if node.value != None else None + return proc(node.value, env) if node.value != None else None elif isinstance(node, ast.IfExp): return node + elif isinstance(node, ast.Expr): + if isinstance(node.value, ast.Call): + warnings.warn(f"Effects of this call will not be included in the result: \"{unparse(node.value)}\"") + return None # Literals elif isinstance(node, ast.List): - return ast.List([proc(e, env, veri) for e in node.elts]) + return ast.List([proc(e, env) for e in node.elts]) elif isinstance(node, ast.Tuple): - return ast.Tuple([proc(e, env, veri) for e in node.elts]) + return ast.Tuple([proc(e, env) for e in node.elts]) elif isinstance(node, ast.Constant): return node # XXX simplification? else: diff --git a/dryvr_plus_plus/plotter/__init__.py b/verse/plotter/__init__.py similarity index 100% rename from dryvr_plus_plus/plotter/__init__.py rename to verse/plotter/__init__.py diff --git a/dryvr_plus_plus/plotter/parser.py b/verse/plotter/parser.py similarity index 100% rename from dryvr_plus_plus/plotter/parser.py rename to verse/plotter/parser.py diff --git a/dryvr_plus_plus/plotter/plotter2D.py b/verse/plotter/plotter2D.py similarity index 89% rename from dryvr_plus_plus/plotter/plotter2D.py rename to verse/plotter/plotter2D.py index 57bb05f53e9a92d88da31c76a77e00513b13e8f9..d29af2b4350c1ad6aec7df0202dd9ec37d69fbaf 100644 --- a/dryvr_plus_plus/plotter/plotter2D.py +++ b/verse/plotter/plotter2D.py @@ -55,11 +55,12 @@ These 5 functions share the same API. """ -def reachtube_anime(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim: int = 2, map_type='lines', scale_type='trace', print_dim_list=None, label_mode='None'): +def reachtube_anime(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim: int = 2, map_type='lines', scale_type='trace', print_dim_list=None, label_mode='None', sample_rate=1, speed_rate=1): """It gives the animation of the verfication.""" + root = sample_trace(root, sample_rate) agent_list = list(root.agent.keys()) timed_point_dict = {} - stack = [root] + queue = [root] x_min, x_max = float('inf'), -float('inf') y_min, y_max = float('inf'), -float('inf') # input check @@ -68,14 +69,14 @@ def reachtube_anime(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim: int if print_dim_list is None: print_dim_list = range(0, num_dim) scheme_list = list(scheme_dict.keys()) - - while stack != []: - node = stack.pop() + num_points = 0 + while queue != []: + node = queue.pop() traces = node.trace for agent_id in traces: trace = np.array(traces[agent_id]) if trace[0][0] > 0: - trace = trace[4:] + trace = trace[8:] for i in range(0, len(trace)-1, 2): x_min = min(x_min, trace[i][x_dim]) x_max = max(x_max, trace[i][x_dim]) @@ -84,6 +85,7 @@ def reachtube_anime(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim: int time_point = round(trace[i][0], 2) rect = [trace[i][0:].tolist(), trace[i+1][0:].tolist()] if time_point not in timed_point_dict: + num_points += 1 timed_point_dict[time_point] = {agent_id: [rect]} else: if agent_id in timed_point_dict[time_point].keys(): @@ -91,11 +93,12 @@ def reachtube_anime(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim: int else: timed_point_dict[time_point][agent_id] = [rect] - stack += node.child + queue += node.child + duration = int(5000/num_points/speed_rate) fig_dict, sliders_dict = create_anime_dict(duration) for time_point in timed_point_dict: frame = {"data": [], "layout": { - "annotations": [], "shapes": []}, "name": str(time_point)} + "annotations": [], "shapes": []}, "name": '{:.3f}'.format(time_point)} agent_dict = timed_point_dict[time_point] for agent_id, rect_list in agent_dict.items(): for rect in rect_list: @@ -105,21 +108,20 @@ def reachtube_anime(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim: int "y0": rect[0][y_dim], "x1": rect[1][x_dim], "y1": rect[1][y_dim], - "fillcolor": 'rgba(0,0,0,0.5)', - "line": dict(color='rgba(255,255,255,0)'), + "fillcolor": 'rgba(0,0,0,0.7)', + "line": dict(color='rgba(0,0,0,0.7)'), "visible": True - } frame["layout"]["shapes"].append(shape_dict) fig_dict["frames"].append(frame) slider_step = {"args": [ - ['{:.2f}'.format(time_point)], + ['{:.3f}'.format(time_point)], {"frame": {"duration": duration, "redraw": False}, "mode": "immediate", "transition": {"duration": duration}} ], - "label": '{:.2f}'.format(time_point), + "label": '{:.3f}'.format(time_point), "method": "animate"} sliders_dict["steps"].append(slider_step) @@ -182,8 +184,9 @@ def reachtube_anime(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim: int return fig -def reachtube_tree(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim=2, map_type='lines', scale_type='trace', print_dim_list=None, label_mode='None'): +def reachtube_tree(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim=2, map_type='lines', scale_type='trace', print_dim_list=None, label_mode='None', sample_rate=1): """It statically shows all the traces of the verfication.""" + root = sample_trace(root, sample_rate) fig = draw_map(map=map, fig=fig, fill_type=map_type) agent_list = list(root.agent.keys()) # input check @@ -246,8 +249,9 @@ def reachtube_tree(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim=2, map return fig -def simulation_tree(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type='lines', scale_type='trace', print_dim_list=None, label_mode='None'): +def simulation_tree(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type='lines', scale_type='trace', print_dim_list=None, label_mode='None', sample_rate=1): """It statically shows all the traces of the simulation.""" + root = sample_trace(root, sample_rate) fig = draw_map(map=map, fig=fig, fill_type=map_type) agent_list = list(root.agent.keys()) # input check @@ -313,10 +317,11 @@ def simulation_tree(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type= return fig -def simulation_anime(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type='lines', scale_type='trace', print_dim_list=None, label_mode='None'): +def simulation_anime(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type='lines', scale_type='trace', print_dim_list=None, label_mode='None', sample_rate=1, speed_rate=1): """It gives the animation of the simulation without trail but is faster.""" + root = sample_trace(root, sample_rate) timed_point_dict = {} - stack = [root] + queue = [root] x_min, x_max = float('inf'), -float('inf') y_min, y_max = float('inf'), -float('inf') # input check @@ -325,8 +330,9 @@ def simulation_anime(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type if print_dim_list is None: print_dim_list = range(0, num_dim) agent_list = list(root.agent.keys()) - while stack != []: - node = stack.pop() + num_points = 0 + while queue != []: + node = queue.pop() traces = node.trace for agent_id in traces: trace = np.array(traces[agent_id]) @@ -338,6 +344,7 @@ def simulation_anime(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type time_point = round(trace[i][0], 2) tmp_trace = trace[i][0:].tolist() if time_point not in timed_point_dict: + num_points += 1 timed_point_dict[time_point] = {agent_id: [tmp_trace]} else: if agent_id not in timed_point_dict[time_point].keys(): @@ -345,8 +352,8 @@ def simulation_anime(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type elif tmp_trace not in timed_point_dict[time_point][agent_id]: timed_point_dict[time_point][agent_id].append( tmp_trace) - time = round(trace[i][0], 2) - stack += node.child + queue += node.child + duration = int(5000/num_points/speed_rate) fig_dict, sliders_dict = create_anime_dict(duration) # make data trace_dict = timed_point_dict[0] @@ -379,7 +386,7 @@ def simulation_anime(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type # make frames for time_point in timed_point_dict: frame = {"data": [], "layout": { - "annotations": []}, "name": '{:.2f}'.format(time_point)} + "annotations": []}, "name": '{:.3f}'.format(time_point)} point_list = timed_point_dict[time_point] for agent_id, trace_list in point_list.items(): color = colors[agent_list.index(agent_id) % 12][1] @@ -410,12 +417,12 @@ def simulation_anime(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type frame["data"].append(data_dict) fig_dict["frames"].append(frame) slider_step = {"args": [ - ['{:.2f}'.format(time_point)], + ['{:.3f}'.format(time_point)], {"frame": {"duration": duration, "redraw": True}, "mode": "immediate", "transition": {"duration": duration}} ], - "label": '{:.2f}'.format(time_point), + "label": '{:.3f}'.format(time_point), "method": "animate"} sliders_dict["steps"].append(slider_step) @@ -461,10 +468,11 @@ def simulation_anime(root, map=None, fig=None, x_dim: int = 1, y_dim=2, map_type return fig -def simulation_anime_trail(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim=2, map_type='lines', scale_type='trace', print_dim_list=None, label_mode='None'): +def simulation_anime_trail(root, map=None, fig=go.Figure(), x_dim: int = 1, y_dim=2, map_type='lines', scale_type='trace', print_dim_list=None, label_mode='None', sample_rate=1, speed_rate=1): """It gives the animation of the simulation with trail.""" + root = sample_trace(root, sample_rate) timed_point_dict = {} - stack = [root] + queue = [root] x_min, x_max = float('inf'), -float('inf') y_min, y_max = float('inf'), -float('inf') # input check @@ -472,9 +480,9 @@ def simulation_anime_trail(root, map=None, fig=go.Figure(), x_dim: int = 1, y_di check_dim(num_dim, x_dim, y_dim, print_dim_list) if print_dim_list is None: print_dim_list = range(0, num_dim) - - while stack != []: - node = stack.pop() + num_points = 0 + while queue != []: + node = queue.pop() traces = node.trace for agent_id in traces: trace = np.array(traces[agent_id]) @@ -486,6 +494,7 @@ def simulation_anime_trail(root, map=None, fig=go.Figure(), x_dim: int = 1, y_di time_point = round(trace[i][0], 3) tmp_trace = trace[i][0:].tolist() if time_point not in timed_point_dict: + num_points += 1 timed_point_dict[time_point] = {agent_id: [tmp_trace]} else: if agent_id not in timed_point_dict[time_point].keys(): @@ -494,7 +503,8 @@ def simulation_anime_trail(root, map=None, fig=go.Figure(), x_dim: int = 1, y_di timed_point_dict[time_point][agent_id].append( tmp_trace) time = round(trace[i][0], 2) - stack += node.child + queue += node.child + duration = int(5000/num_points/speed_rate) fig_dict, sliders_dict = create_anime_dict(duration) time_list = list(timed_point_dict.keys()) agent_list = list(root.agent.keys()) @@ -534,7 +544,7 @@ def simulation_anime_trail(root, map=None, fig=go.Figure(), x_dim: int = 1, y_di for time_point_id in range(trail_limit, len(time_list)): time_point = time_list[time_point_id] frame = {"data": [], "layout": { - "annotations": []}, "name": '{:.2f}'.format(time_point)} + "annotations": []}, "name": '{:.3f}'.format(time_point)} for agent_id in agent_list: color = colors[agent_list.index(agent_id) % 12][1] for id in range(0, trail_len, step): @@ -583,12 +593,12 @@ def simulation_anime_trail(root, map=None, fig=go.Figure(), x_dim: int = 1, y_di fig_dict["frames"].append(frame) slider_step = {"args": [ - ['{:.2f}'.format(time_point)], + ['{:.3f}'.format(time_point)], {"frame": {"duration": duration, "redraw": False}, "mode": "immediate", "transition": {"duration": duration}} ], - "label": '{:.2f}'.format(time_point), + "label": '{:.3f}'.format(time_point), "method": "animate"} sliders_dict["steps"].append(slider_step) @@ -662,73 +672,24 @@ def reachtube_tree_single(root, agent_id, fig=go.Figure(), x_dim: int = 1, y_dim trace_y_odd = np.array([trace[i][y_dim] for i in range(0, max_id, 2)]) trace_y_even = np.array([trace[i][y_dim] for i in range(1, max_id+1, 2)]) - # trace_y_new = [0]*len(trace) - # trace_y_new[0] = trace[0][y_dim] - # trace_y_new[int(len(trace)/2)] = trace[-1][y_dim] - # for i in range(1, max_id, 2): - # if trace[i][y_dim] > trace[i+1][y_dim]: - # trace_y_new[i] = trace[i][y_dim] - # trace_y_new[max_id+1-i] = trace[i+1][y_dim] - # else: - # trace_y_new[i] = trace[i+1][y_dim] - # trace_y_new[max_id+1-i] = trace[i][y_dim] - # trace_y_new=np.array(trace_y_new) - # fig.add_trace(go.Scatter(x=trace_x_odd.tolist()+trace_x_even[::-1].tolist(), y=trace_y_new, mode='lines', - # fill='toself', - # fillcolor=fillcolor, - # opacity=0.5, - # line_color='rgba(255,255,255,0)', - # showlegend=show_legend - # )) - # fig.add_trace(go.Scatter(x=trace_x_odd.tolist()+trace_x_odd[::-1].tolist(), y=trace_y_odd.tolist()+trace_y_even[::-1].tolist(), mode='lines', - # fill='toself', - # fillcolor=fillcolor, - # opacity=0.5, - # line_color='rgba(255,255,255,0)', - # showlegend=show_legend - # )) - # fig.add_trace(go.Scatter(x=trace_x_even.tolist()+trace_x_even[::-1].tolist(), y=trace_y_odd.tolist()+trace_y_even[::-1].tolist(), mode='lines', - # fill='toself', - # fillcolor=fillcolor, - # opacity=0.5, - # line_color='rgba(255,255,255,0)', - # showlegend=show_legend)) fig.add_trace(go.Scatter(x=trace_x_odd.tolist()+trace_x_even[::-1].tolist()+[trace_x_odd[0]], y=trace_y_odd.tolist()+trace_y_even[::-1].tolist()+[trace_y_odd[0]], mode='markers+lines', fill='toself', fillcolor=fillcolor, # opacity=0.5, marker={'size': 1}, - line_color=colors[scheme_dict[color]][2], + line_color=colors[scheme_dict[color]][4], line={'width': 1}, showlegend=show_legend )) - # fig.add_trace(go.Scatter(x=trace_x_even.tolist()+trace_x_odd[::-1].tolist(), y=trace_y_odd.tolist()+trace_y_even[::-1].tolist(), mode='lines', - # fill='toself', - # fillcolor=fillcolor, - # opacity=0.5, - # line_color='rgba(255,255,255,0)', - # showlegend=show_legend)) + if node.assert_hits != None and agent_id in node.assert_hits: + fig.add_trace(go.Scatter(x=[trace[-1, x_dim]], y=[trace[-1, y_dim]], + mode='markers+text', + text=['HIT:\n' + + a for a in node.assert_hits[agent_id]], + textfont={'color': 'grey'}, + marker={'size': 4, 'color': 'black'}, + showlegend=False)) queue += node.child - - # queue = [root] - # while queue != []: - # node = queue.pop(0) - # traces = node.trace - # trace = np.array(traces[agent_id]) - # max_id = len(trace)-1 - # fig.add_trace(go.Scatter(x=trace[:, x_dim], y=trace[:, y_dim], - # mode='markers', - # text=[ - # ['{:.2f}'.format(trace[i, j])for j in print_dim_list] for i in range(0, trace.shape[0])], - # line_color=colors[scheme_dict[color]][0], - # marker={ - # "sizemode": "area", - # "sizeref": 200000, - # "size": 2 - # }, - # name='lines', - # showlegend=False)) - # queue += node.child return fig @@ -775,16 +736,15 @@ def simulation_tree_single(root, agent_id, fig: go.Figure() = go.Figure(), x_dim if node.assert_hits != None and agent_id in node.assert_hits: fig.add_trace(go.Scatter(x=[trace[-1, x_dim]], y=[trace[-1, y_dim]], mode='markers+text', - # line_color='grey', text=['HIT:\n' + a for a in node.assert_hits[agent_id]], textfont={'color': 'grey'}, - legendgroup=agent_id, marker={'size': 4, 'color': 'black'}, - legendgrouptitle_text=agent_id, - name=str(round(start[0], 2))+'-'+str(round(end[0], 2)) + - '-'+str(count_dict[time])+'hit', - showlegend=True)) + # legendgroup=agent_id, + # legendgrouptitle_text=agent_id, + # name=str(round(start[0], 2))+'-'+str(round(end[0], 2)) + + # '-'+str(count_dict[time])+'hit', + showlegend=False)) color_id = (color_id+4) % 5 queue += node.child @@ -1018,3 +978,29 @@ def get_text_pos(veh_mode): text_pos = 'middle center' text = veh_mode return text_pos, text + + +def sample_trace(root, sample_rate: int = 1): + queue = [root] + # print(root.trace) + if root.type == 'reachtube': + sample_rate = sample_rate*2 + while queue != []: + node = queue.pop() + for agent_id in node.agent: + trace_length = len(node.trace[agent_id]) + tmp = [] + for i in range(0, trace_length, sample_rate): + if i+sample_rate-1 < trace_length: + tmp.append(node.trace[agent_id][i]) + tmp.append(node.trace[agent_id][i+sample_rate-1]) + node.trace[agent_id] = tmp + queue += node.child + else: + while queue != []: + node = queue.pop() + for agent_id in node.agent: + node.trace[agent_id] = [node.trace[agent_id][i] + for i in range(0, len(node.trace[agent_id]), sample_rate)] + queue += node.child + return root diff --git a/dryvr_plus_plus/plotter/plotter3D.py b/verse/plotter/plotter3D.py similarity index 100% rename from dryvr_plus_plus/plotter/plotter3D.py rename to verse/plotter/plotter3D.py diff --git a/dryvr_plus_plus/plotter/plotter_README.md b/verse/plotter/plotter_README.md similarity index 100% rename from dryvr_plus_plus/plotter/plotter_README.md rename to verse/plotter/plotter_README.md diff --git a/verse/scenario/__init__.py b/verse/scenario/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..d0b85f91a62a505230b77bc564bbb59815dd314b --- /dev/null +++ b/verse/scenario/__init__.py @@ -0,0 +1,2 @@ +from . import scenario +from .scenario import * \ No newline at end of file diff --git a/dryvr_plus_plus/scene_verifier/scenario/scenario.py b/verse/scenario/scenario.py similarity index 68% rename from dryvr_plus_plus/scene_verifier/scenario/scenario.py rename to verse/scenario/scenario.py index dfe395b3c53b3300a580502e6882bd773aa81b08..53e684fed3d1890ee88fcbd7ffb23171c00c9451 100644 --- a/dryvr_plus_plus/scene_verifier/scenario/scenario.py +++ b/verse/scenario/scenario.py @@ -7,17 +7,12 @@ import ast import numpy as np -from dryvr_plus_plus.scene_verifier.agents.base_agent import BaseAgent -from dryvr_plus_plus.scene_verifier.automaton.guard import GuardExpressionAst -from dryvr_plus_plus.scene_verifier.automaton.reset import ResetExpression -from dryvr_plus_plus.scene_verifier.code_parser.parser import ControllerIR, unparse -from dryvr_plus_plus.scene_verifier.analysis.simulator import Simulator -from dryvr_plus_plus.scene_verifier.analysis.verifier import Verifier -from dryvr_plus_plus.scene_verifier.map.lane_map import LaneMap -from dryvr_plus_plus.scene_verifier.utils.utils import find, sample_rect -from dryvr_plus_plus.scene_verifier.analysis.analysis_tree_node import AnalysisTreeNode -from dryvr_plus_plus.scene_verifier.sensor.base_sensor import BaseSensor -from dryvr_plus_plus.scene_verifier.map.lane_map import LaneMap +from verse.agents.base_agent import BaseAgent +from verse.automaton import GuardExpressionAst, ResetExpression +from verse.analysis import Simulator, Verifier, AnalysisTreeNode, AnalysisTree +from verse.analysis.utils import find, sample_rect +from verse.sensor.base_sensor import BaseSensor +from verse.map.lane_map import LaneMap EGO, OTHERS = "ego", "others" @@ -30,10 +25,14 @@ class Scenario: self.init_dict = {} self.init_mode_dict = {} self.static_dict = {} - self.static_dict = {} + self.uncertain_param_dict = {} self.map = LaneMap() self.sensor = BaseSensor() + # Parameters + self.init_seg_length = 1000 + self.reachability_method = 'DRYVR' + def set_sensor(self, sensor): self.sensor = sensor @@ -59,11 +58,13 @@ class Scenario: # agent.controller.vertices = list(itertools.product(*mode_vals)) # agent.controller.vertexStrings = [','.join(elem) for elem in agent.controller.vertices] - def set_init(self, init_list, init_mode_list, static_list=[]): + def set_init(self, init_list, init_mode_list, static_list=[], uncertain_param_list = []): assert len(init_list) == len(self.agent_dict) assert len(init_mode_list) == len(self.agent_dict) assert len(static_list) == len( self.agent_dict) or len(static_list) == 0 + assert len(uncertain_param_list) == len(self.agent_dict)\ + or len(uncertain_param_list) == 0 print(init_mode_list) print(type(init_mode_list)) for i, agent_id in enumerate(self.agent_dict.keys()): @@ -73,6 +74,10 @@ class Scenario: self.static_dict[agent_id] = copy.deepcopy(static_list[i]) else: self.static_dict[agent_id] = [] + if uncertain_param_list: + self.uncertain_param_dict[agent_id] = copy.deepcopy(uncertain_param_list[i]) + else: + self.uncertain_param_dict[agent_id] = [] def simulate_multi(self, time_horizon, num_sim): res_list = [] @@ -81,24 +86,27 @@ class Scenario: res_list.append(trace) return res_list - def simulate(self, time_horizon, time_step): + def simulate(self, time_horizon, time_step) -> AnalysisTree: init_list = [] init_mode_list = [] static_list = [] agent_list = [] + uncertain_param_list = [] for agent_id in self.agent_dict: init_list.append(sample_rect(self.init_dict[agent_id])) init_mode_list.append(self.init_mode_dict[agent_id]) static_list.append(self.static_dict[agent_id]) + uncertain_param_list.append(self.uncertain_param_dict[agent_id]) agent_list.append(self.agent_dict[agent_id]) print(init_list) - return self.simulator.simulate(init_list, init_mode_list, static_list, agent_list, self, time_horizon, time_step, self.map) + return self.simulator.simulate(init_list, init_mode_list, static_list, uncertain_param_list, agent_list, self, time_horizon, time_step, self.map) - def verify(self, time_horizon, time_step): + def verify(self, time_horizon, time_step, reachability_method = 'DRYVR', params = {}) -> AnalysisTree: init_list = [] init_mode_list = [] static_list = [] agent_list = [] + uncertain_param_list = [] for agent_id in self.agent_dict: init = self.init_dict[agent_id] tmp = np.array(init) @@ -107,8 +115,11 @@ class Scenario: init_list.append(init) init_mode_list.append(self.init_mode_dict[agent_id]) static_list.append(self.static_dict[agent_id]) + uncertain_param_list.append(self.uncertain_param_dict[agent_id]) agent_list.append(self.agent_dict[agent_id]) - return self.verifier.compute_full_reachtube(init_list, init_mode_list, static_list, agent_list, self, time_horizon, time_step, self.map) + + res = self.verifier.compute_full_reachtube(init_list, init_mode_list, static_list, uncertain_param_list, agent_list, self, time_horizon, time_step, self.map, self.init_seg_length, reachability_method, params) + return res def apply_reset(self, agent: BaseAgent, reset_list, all_agent_state) -> Tuple[str, np.ndarray]: lane_map = self.map @@ -119,8 +130,7 @@ class Scenario: dest = copy.deepcopy(agent_mode) possible_dest = [[elem] for elem in dest] - ego_type = find(agent.controller.controller.args, - lambda a: a[0] == EGO)[1] + ego_type = find(agent.controller.args, lambda a: a.name == EGO).typ rect = copy.deepcopy([agent_state[0][1:], agent_state[1][1:]]) # The reset_list here are all the resets for a single transition. Need to evaluate each of them @@ -166,8 +176,7 @@ class Scenario: found = True break if not found: - raise ValueError( - f'Reset continuous variable {cts_variable} not found') + raise ValueError(f'Reset continuous variable {cts_variable} not found') # substituting low variables symbols = [] @@ -231,26 +240,15 @@ class Scenario: # Get guard agent: BaseAgent = self.agent_dict[agent_id] agent_mode = node.mode[agent_id] - if agent.controller.controller == None: + if len(agent.controller.args) == 0: continue - # TODO-PARSER: update how we get all next modes - # The getNextModes function will return state_dict = {} for tmp in node.agent: - state_dict[tmp] = (node.trace[tmp][0], - node.mode[tmp], node.static[tmp]) - cont_var_dict_template, discrete_variable_dict, len_dict = self.sensor.sense( - self, agent, state_dict, self.map) - paths = agent.controller.getNextModes() - for guard_list, reset in paths: - guard_expression = GuardExpressionAst(guard_list) - - # copy.deepcopy(guard_expression.ast_list[0].operand) - # can_satisfy = guard_expression.fast_pre_process(discrete_variable_dict) - continuous_variable_updater = guard_expression.parse_any_all_new( - cont_var_dict_template, discrete_variable_dict, len_dict) - agent_guard_dict[agent_id].append( - (guard_expression, continuous_variable_updater, copy.deepcopy(discrete_variable_dict), reset)) + state_dict[tmp] = (node.trace[tmp][0], node.mode[tmp], node.static[tmp]) + cont_var_dict_template, discrete_variable_dict, len_dict = self.sensor.sense(self, agent, state_dict, self.map) + paths = agent.controller.paths + for path in paths: + agent_guard_dict[agent_id].append((path.cond, discrete_variable_dict, path.var, path.val)) transitions = defaultdict(list) # TODO: We can probably rewrite how guard hit are detected and resets are handled for simulation @@ -268,9 +266,7 @@ class Scenario: continuous_variable_dict, orig_disc_vars, _ = self.sensor.sense( self, agent, state_dict, self.map) # Unsafety checking - ego_ty_name = find( - agent.controller.controller.args, lambda a: a[0] == EGO)[1] - + ego_ty_name = find(agent.controller.args, lambda a: a.name == EGO).typ def pack_env(agent: BaseAgent, cont, disc, map): env = copy.deepcopy(cont) env.update(disc) @@ -281,66 +277,48 @@ class Scenario: for k, v in env.items(): k = k.split(".") packed[k[0]][k[1]] = v - for arg, arg_type, is_list in agent.controller.controller.args: - if arg != EGO and 'map' not in arg: - other = arg - others_keys = list(packed[other].keys()) - if is_list: - packed[other] = [state_ty( - **{k: packed[other][k][i] for k in others_keys}) for i in range(len(packed[other][others_keys[0]]))] + for arg in agent.controller.args: + if arg.name != EGO and 'map' not in arg.name: + other = arg.name + if other in packed: + others_keys = list(packed[other].keys()) + packed[other] = [state_ty(**{k: packed[other][k][i] for k in others_keys}) for i in range(len(packed[other][others_keys[0]]))] + if not arg.is_list: + packed[other] = packed[other][0] else: - packed[other] = state_ty( - **{k: packed[other][k] for k in others_keys}) + if arg.is_list: + packed[other] = [] + else: + raise ValueError(f"Expected one {ego_ty_name} for {other}, got none") packed[EGO] = state_ty(**packed[EGO]) - map_var = find(agent.controller.controller.args, - lambda a: "map" in a[0]) + map_var = find(agent.controller.args, lambda a: "map" in a.name) if map_var != None: - packed[map_var[0]] = map + packed[map_var.name] = map packed: Dict[str, Any] = dict(packed.items()) - packed.update(env) + # packed.update(env) return packed - packed_env = pack_env( - agent, continuous_variable_dict, orig_disc_vars, self.map) - - def eval_expr(expr, env): - return eval(compile(ast.fix_missing_locations(ast.Expression(expr)), "", "eval"), env) + packed_env = pack_env(agent, continuous_variable_dict, orig_disc_vars, self.map) # Check safety conditions - for i, a in enumerate(agent.controller.controller.asserts): - pre_sat = all(eval_expr(p, packed_env) for p in a.pre) - if pre_sat: - cond_sat = eval_expr(a.cond, packed_env) - if not cond_sat: - label = a.label if a.label != None else f"<assert {i}>" + for assertion in agent.controller.asserts: + if eval(assertion.pre, packed_env): + if not eval(assertion.cond, packed_env): del packed_env["__builtins__"] - print( - f"assert hit for {agent_id}: \"{label}\" @ {packed_env}") - asserts[agent_id].append(label) + print(f"assert hit for {agent_id}: \"{assertion.label}\" @ {packed_env}") + asserts[agent_id].append(assertion.label) if agent_id in asserts: continue all_resets = defaultdict(list) - for guard_expression, continuous_variable_updater, discrete_variable_dict, reset in agent_guard_dict[agent_id]: + for guard_comp, discrete_variable_dict, var, reset in agent_guard_dict[agent_id]: new_cont_var_dict = copy.deepcopy(continuous_variable_dict) - one_step_guard = guard_expression.ast_list - self.apply_cont_var_updater( - new_cont_var_dict, continuous_variable_updater) - env = pack_env(agent, new_cont_var_dict, - discrete_variable_dict, self.map) - if len(one_step_guard) == 0: - raise ValueError("empty guard") - if len(one_step_guard) == 1: - one_step_guard = one_step_guard[0] - elif len(one_step_guard) > 1: - one_step_guard = ast.BoolOp(ast.And(), one_step_guard) - guard_satisfied = eval_expr(one_step_guard, env) + env = pack_env(agent, new_cont_var_dict, discrete_variable_dict, self.map) # Collect all the hit guards for this agent at this time step - if guard_satisfied: + if eval(guard_comp, env): # If the guard can be satisfied, handle resets - reset_expr = ResetExpression(reset) - all_resets[reset_expr.var].append(reset_expr) + all_resets[var].append(reset) iter_list = [] for reset_var in all_resets: @@ -355,8 +333,7 @@ class Scenario: possible_dest = [[elem] for elem in dest] for j, reset_idx in enumerate(pos): reset_variable = list(all_resets.keys())[j] - reset_expr: ResetExpression = all_resets[reset_variable][reset_idx] - res = eval_expr(reset_expr.val_ast, packed_env) + res = eval(all_resets[reset_variable][reset_idx], packed_env) ego_type = agent.controller.state_defs[ego_ty_name] if "mode" in reset_variable: var_loc = ego_type.disc.index(reset_variable) @@ -383,68 +360,81 @@ class Scenario: break return None, transitions, idx - def get_transition_verify_new(self, node: AnalysisTreeNode): + def get_transition_verify_new(self, node:AnalysisTreeNode): lane_map = self.map - possible_transitions = [] - agent_guard_dict = {} + agent_guard_dict = defaultdict(list) for agent_id in node.agent: - agent: BaseAgent = self.agent_dict[agent_id] - if agent.controller.controller == None: + agent:BaseAgent = self.agent_dict[agent_id] + if len(agent.controller.args) == 0: continue agent_mode = node.mode[agent_id] state_dict = {} for tmp in node.agent: - state_dict[tmp] = (node.trace[tmp][0*2:0*2+2], - node.mode[tmp], node.static[tmp]) + state_dict[tmp] = (node.trace[tmp][0*2:0*2+2], node.mode[tmp], node.static[tmp]) - cont_var_dict_template, discrete_variable_dict, length_dict = self.sensor.sense( - self, agent, state_dict, self.map) + cont_var_dict_template, discrete_variable_dict, length_dict = self.sensor.sense(self, agent, state_dict, self.map) # TODO-PARSER: Get equivalent for this function - paths = agent.controller.getNextModes() + paths = agent.controller.paths for guard_idx, path in enumerate(paths): # Construct the guard expression - guard_list = path[0] - reset = path[1] - guard_expression = GuardExpressionAst(guard_list, guard_idx) - - cont_var_updater = guard_expression.parse_any_all_new( - cont_var_dict_template, discrete_variable_dict, length_dict) - self.apply_cont_var_updater( - cont_var_dict_template, cont_var_updater) - guard_can_satisfied = guard_expression.evaluate_guard_disc( - agent, discrete_variable_dict, cont_var_dict_template, self.map) + reset = (path.var, path.val_veri) + guard_expression = GuardExpressionAst([path.cond_veri], guard_idx) + + cont_var_updater = guard_expression.parse_any_all_new(cont_var_dict_template, discrete_variable_dict, length_dict) + self.apply_cont_var_updater(cont_var_dict_template, cont_var_updater) + guard_can_satisfied = guard_expression.evaluate_guard_disc(agent, discrete_variable_dict, cont_var_dict_template, self.map) if not guard_can_satisfied: continue - if agent_id not in agent_guard_dict: - agent_guard_dict[agent_id] = [ - (guard_expression, cont_var_updater, copy.deepcopy(discrete_variable_dict), reset)] - else: - agent_guard_dict[agent_id].append( - (guard_expression, cont_var_updater, copy.deepcopy(discrete_variable_dict), reset)) + agent_guard_dict[agent_id].append((guard_expression, cont_var_updater, copy.deepcopy(discrete_variable_dict), reset)) trace_length = int(len(list(node.trace.values())[0])/2) guard_hits = [] - guard_hit_bool = False - for idx in range(0, trace_length): + guard_hit = False + for idx in range(0,trace_length): any_contained = False hits = [] state_dict = {} for tmp in node.agent: - state_dict[tmp] = (node.trace[tmp][idx*2:idx*2+2], - node.mode[tmp], node.static[tmp]) + state_dict[tmp] = (node.trace[tmp][idx*2:idx*2+2], node.mode[tmp], node.static[tmp]) - for agent_id in agent_guard_dict: - agent: BaseAgent = self.agent_dict[agent_id] + asserts = defaultdict(list) + for agent_id in self.agent_dict.keys(): + agent:BaseAgent = self.agent_dict[agent_id] + if len(agent.controller.args) == 0: + continue agent_state, agent_mode, agent_static = state_dict[agent_id] agent_state = agent_state[1:] - continuous_variable_dict, _, _ = self.sensor.sense( - self, agent, state_dict, self.map) + cont_vars, disc_vars, len_dict = self.sensor.sense(self, agent, state_dict, self.map) resets = defaultdict(list) + # Check safety conditions + for i, a in enumerate(agent.controller.asserts_veri): + pre_expr = a.pre + def eval_expr(expr): + ge = GuardExpressionAst([copy.deepcopy(expr)]) + cont_var_updater = ge.parse_any_all_new(cont_vars, disc_vars, len_dict) + self.apply_cont_var_updater(cont_vars, cont_var_updater) + sat = ge.evaluate_guard_disc(agent, disc_vars, cont_vars, self.map) + if sat: + sat = ge.evaluate_guard_hybrid(agent, disc_vars, cont_vars, self.map) + if sat: + sat, contained = ge.evaluate_guard_cont(agent, cont_vars, self.map) + sat = sat and contained + return sat + if eval_expr(pre_expr): + if not eval_expr(a.cond): + label = a.label if a.label != None else f"<assert {i}>" + print(f"assert hit for {agent_id}: \"{label}\"") + print(idx) + asserts[agent_id].append(label) + if agent_id in asserts: + continue + if agent_id not in agent_guard_dict: + continue + for guard_expression, continuous_variable_updater, discrete_variable_dict, reset in agent_guard_dict[agent_id]: - new_cont_var_dict = copy.deepcopy(continuous_variable_dict) - one_step_guard: GuardExpressionAst = copy.deepcopy( - guard_expression) + new_cont_var_dict = copy.deepcopy(cont_vars) + one_step_guard:GuardExpressionAst = copy.deepcopy(guard_expression) self.apply_cont_var_updater( new_cont_var_dict, continuous_variable_updater) @@ -473,21 +463,22 @@ class Scenario: # a list of reset expression hits.append((agent_id, tuple(reset_idx), combined_reset_list[i])) + if len(asserts) > 0: + return (asserts, idx), None if hits != []: guard_hits.append((hits, state_dict, idx)) - guard_hit_bool = True - if hits == [] and guard_hit_bool: + guard_hit = True + elif guard_hit: break if any_contained: break - reset_dict = {} - reset_idx_dict = {} + reset_dict = {}#defaultdict(lambda: defaultdict(list)) + reset_idx_dict = {}#defaultdict(lambda: defaultdict(list)) for hits, all_agent_state, hit_idx in guard_hits: for agent_id, reset_idx, reset_list in hits: # TODO: Need to change this function to handle the new reset expression and then I am done - dest_list, reset_rect = self.apply_reset( - node.agent[agent_id], reset_list, all_agent_state) + dest_list,reset_rect = self.apply_reset(node.agent[agent_id], reset_list, all_agent_state) if agent_id not in reset_dict: reset_dict[agent_id] = {} reset_idx_dict[agent_id] = {} @@ -505,25 +496,13 @@ class Scenario: reset_dict[agent_id][reset_idx][dest].append(reset_rect) reset_idx_dict[agent_id][reset_idx][dest].append(hit_idx) + possible_transitions = [] # Combine reset rects and construct transitions for agent in reset_dict: for reset_idx in reset_dict[agent]: for dest in reset_dict[agent][reset_idx]: - combined_rect = None - for rect in reset_dict[agent][reset_idx][dest]: - rect = np.array(rect) - if combined_rect is None: - combined_rect = rect - else: - combined_rect[0, :] = np.minimum( - combined_rect[0, :], rect[0, :]) - combined_rect[1, :] = np.maximum( - combined_rect[1, :], rect[1, :]) - combined_rect = combined_rect.tolist() - min_idx = min(reset_idx_dict[agent][reset_idx][dest]) - max_idx = max(reset_idx_dict[agent][reset_idx][dest]) transition = ( - agent, node.mode[agent], dest, combined_rect, (min_idx, max_idx)) + agent, node.mode[agent], dest, reset_dict[agent][reset_idx][dest], reset_idx_dict[agent][reset_idx][dest]) possible_transitions.append(transition) # Return result - return possible_transitions + return None, possible_transitions diff --git a/verse/sensor/__init__.py b/verse/sensor/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..84c25cb04182a74b366fb85fcc606fd2db862ab8 --- /dev/null +++ b/verse/sensor/__init__.py @@ -0,0 +1,2 @@ +from . import base_sensor +from .base_sensor import BaseSensor diff --git a/dryvr_plus_plus/scene_verifier/sensor/base_sensor.py b/verse/sensor/base_sensor.py similarity index 75% rename from dryvr_plus_plus/scene_verifier/sensor/base_sensor.py rename to verse/sensor/base_sensor.py index dca18c973c2059dca30fc601aecbf8f77721a3a8..4cc9217c92ab934fcee929a1b8eead3a82e4728f 100644 --- a/dryvr_plus_plus/scene_verifier/sensor/base_sensor.py +++ b/verse/sensor/base_sensor.py @@ -1,5 +1,5 @@ import numpy as np -from dryvr_plus_plus.scene_verifier.agents.base_agent import BaseAgent +from verse.agents.base_agent import BaseAgent def sets(d, thing, attrs, vals): @@ -16,14 +16,14 @@ def adds(d, thing, attrs, vals): def set_states_2d(cnts, disc, thing, val, cont_var, disc_var, stat_var): state, mode, static = val - sets(cnts, thing, cont_var, state[1:5]) + sets(cnts, thing, cont_var, state[1:]) sets(disc, thing, disc_var, mode) sets(disc, thing, stat_var, static) def set_states_3d(cnts, disc, thing, val, cont_var, disc_var, stat_var): state, mode, static = val - transp = np.transpose(np.array(state)[:, 1:5]) + transp = np.transpose(np.array(state)[:, 1:]) # assert len(transp) == 4 sets(cnts, thing, cont_var, transp) sets(disc, thing, disc_var, mode) @@ -32,14 +32,14 @@ def set_states_3d(cnts, disc, thing, val, cont_var, disc_var, stat_var): def add_states_2d(cont, disc, thing, val, cont_var, disc_var, stat_var): state, mode, static = val - adds(cont, thing, cont_var, state[1:5]) + adds(cont, thing, cont_var, state[1:]) adds(disc, thing, disc_var, mode) adds(disc, thing, stat_var, static) def add_states_3d(cont, disc, thing, val, cont_var, disc_var, stat_var): state, mode, static = val - transp = np.transpose(np.array(state)[:, 1:5]) + transp = np.transpose(np.array(state)[:, 1:]) assert len(transp) == 4 adds(cont, thing, cont_var, transp) adds(disc, thing, disc_var, mode) @@ -59,12 +59,12 @@ class BaseSensor(): for agent_id in state_dict: if agent_id == agent.id: # Get type of ego - controller_args = agent.controller.controller.args + controller_args = agent.controller.args arg_type = None for arg in controller_args: - if arg[0] == 'ego': - arg_type = arg[1] - break + if arg.name == 'ego': + arg_type = arg.typ + break if arg_type is None: continue raise ValueError(f"Invalid arg for ego") @@ -74,14 +74,14 @@ class BaseSensor(): set_states_2d( cont, disc, 'ego', state_dict[agent_id], cont_var, disc_var, stat_var) else: - controller_args = agent.controller.controller.args + controller_args = agent.controller.args arg_type = None arg_name = None for arg in controller_args: - if arg[0] != 'ego' and 'map' not in arg[0]: - arg_name = arg[0] - arg_type = arg[1] - break + if arg.name != 'ego' and 'map' not in arg.name: + arg_name = arg.name + arg_type = arg.typ + break if arg_type is None: continue raise ValueError(f"Invalid arg for others") @@ -95,12 +95,12 @@ class BaseSensor(): for agent_id in state_dict: if agent_id == agent.id: # Get type of ego - controller_args = agent.controller.controller.args + controller_args = agent.controller.args arg_type = None for arg in controller_args: - if arg[0] == 'ego': - arg_type = arg[1] - break + if arg.name == 'ego': + arg_type = arg.typ + break if arg_type is None: raise ValueError(f"Invalid arg for ego") cont_var = agent.controller.state_defs[arg_type].cont @@ -109,20 +109,19 @@ class BaseSensor(): set_states_3d( cont, disc, 'ego', state_dict[agent_id], cont_var, disc_var, stat_var) else: - controller_args = agent.controller.controller.args + controller_args = agent.controller.args arg_type = None arg_name = None for arg in controller_args: - if arg[0] != 'ego' and 'map' not in arg[0]: - arg_name = arg[0] - arg_type = arg[1] - break + if arg.name != 'ego' and 'map' not in arg.name: + arg_name = arg.name + arg_type = arg.typ + break if arg_type is None: raise ValueError(f"Invalid arg for others") cont_var = agent.controller.state_defs[arg_type].cont disc_var = agent.controller.state_defs[arg_type].disc stat_var = agent.controller.state_defs[arg_type].static - add_states_3d( - cont, disc, arg_name, state_dict[agent_id], cont_var, disc_var, stat_var) - + add_states_3d(cont, disc, arg_name, state_dict[agent_id], cont_var, disc_var, stat_var) + return cont, disc, len_dict diff --git a/dryvr_plus_plus/example/example_agent/__init__.py b/verse/sensor/example_sensor/__init__.py similarity index 100% rename from dryvr_plus_plus/example/example_agent/__init__.py rename to verse/sensor/example_sensor/__init__.py diff --git a/dryvr_plus_plus/example/example_sensor/craft_sensor.py b/verse/sensor/example_sensor/craft_sensor.py similarity index 100% rename from dryvr_plus_plus/example/example_sensor/craft_sensor.py rename to verse/sensor/example_sensor/craft_sensor.py diff --git a/dryvr_plus_plus/example/example_sensor/fake_sensor.py b/verse/sensor/example_sensor/fake_sensor.py similarity index 100% rename from dryvr_plus_plus/example/example_sensor/fake_sensor.py rename to verse/sensor/example_sensor/fake_sensor.py diff --git a/dryvr_plus_plus/example/example_sensor/quadrotor_sensor.py b/verse/sensor/example_sensor/quadrotor_sensor.py similarity index 100% rename from dryvr_plus_plus/example/example_sensor/quadrotor_sensor.py rename to verse/sensor/example_sensor/quadrotor_sensor.py diff --git a/dryvr_plus_plus/example/example_sensor/thermo_sensor.py b/verse/sensor/example_sensor/thermo_sensor.py similarity index 100% rename from dryvr_plus_plus/example/example_sensor/thermo_sensor.py rename to verse/sensor/example_sensor/thermo_sensor.py