From 77ac659298b68b5a434703132019a2118f921f08 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Tue, 22 Aug 2023 20:46:52 +0200 Subject: [PATCH 1/9] Update mix.installs --- notebooks/cv_gradient_boosting_tree.livemd | 2 +- notebooks/linear_regression.livemd | 137 +++++++++------------ 2 files changed, 59 insertions(+), 80 deletions(-) diff --git a/notebooks/cv_gradient_boosting_tree.livemd b/notebooks/cv_gradient_boosting_tree.livemd index 721f8641..6334479a 100644 --- a/notebooks/cv_gradient_boosting_tree.livemd +++ b/notebooks/cv_gradient_boosting_tree.livemd @@ -2,7 +2,7 @@ ```elixir Mix.install([ - {:scholar, github: "elixir-nx/scholar", override: true}, + {:scholar, "~> 0.2.0"}, {:explorer, "~> 0.6.1"}, {:exla, "~> 0.6.0"}, {:nx, "~> 0.6.0", override: true}, diff --git a/notebooks/linear_regression.livemd b/notebooks/linear_regression.livemd index 6249419e..62117367 100644 --- a/notebooks/linear_regression.livemd +++ b/notebooks/linear_regression.livemd @@ -4,10 +4,11 @@ ```elixir Mix.install([ - {:scholar, github: "elixir-nx/scholar", override: true}, + {:scholar, "~> 0.2.0"}, {:explorer, "~> 0.6.1"}, - {:exla, "~> 0.5.3"}, - {:nx, github: "elixir-nx/nx", sparse: "nx", override: true}, + {:exla, "~> 0.6.0"}, + {:nx, "~> 0.6.0", override: true}, + {:vega_lite, github: "livebook-dev/vega_lite", override: true}, {:req, "~> 0.3.9"}, {:kino_vega_lite, "~> 0.1.9"}, {:kino, "~> 0.10.0"}, @@ -27,6 +28,7 @@ In the livebook, we will cover the typical use cases of linear regression on pra ```elixir alias VegaLite, as: Vl +alias VegaLite.Data require Explorer.DataFrame, as: DF require Explorer.Series, as: S alias Scholar.Linear.LinearRegression, as: LR @@ -40,10 +42,18 @@ key = Nx.Random.key(42) +``` + +02:37:23.509 [info] TfrtCpuClient created. + +``` + + + ``` #Nx.Tensor< u32[2] - EXLA.Backend + EXLA.Backend [0, 42] > ``` @@ -100,7 +110,11 @@ Vl.new( scale: [domain: [-0.05, 2.05]], axis: [grid: false] ) -|> Vl.encode_field(:y, "y", type: :quantitative, scale: [domain: [2.5, 12]], axis: [grid: false]) +|> Vl.encode_field(:y, "y", + type: :quantitative, + scale: [domain: [2.5, 12]], + axis: [grid: false] +) ``` @@ -121,14 +135,14 @@ model = LR.fit(x, y) %Scholar.Linear.LinearRegression{ coefficients: #Nx.Tensor< f64[1][1] - EXLA.Backend + EXLA.Backend [ [2.9578183089017] ] >, intercept: #Nx.Tensor< f64[1] - EXLA.Backend + EXLA.Backend [4.023067929858136] > } @@ -175,18 +189,14 @@ Vl.new( scale: y_scale, axis: [grid: false] ), - Vl.new() - |> Vl.data_from_values(line) - |> Vl.mark(:line, color: :green) - |> Vl.encode_field(:x, "x", type: :quantitative, scale: x_scale) - |> Vl.encode_field(:y, "y", type: :quantitative, scale: y_scale) + Data.chart(line, [type: :line, color: :green], x: "x", y: "y") ]) ``` ```vega-lite -{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","height":630,"layer":[{"data":{"values":[{"x":1.9004864711486005,"y":9.588568089587561},{"x":1.4863498556419192,"y":8.128091393416636},{"x":1.7991174211376775,"y":9.789160149027026},{"x":0.12072062082750934,"y":3.9726630516564603},{"x":1.857364920863604,"y":9.25767072810677},{"x":0.3501109776898361,"y":5.016196041913261},{"x":1.0511571984036023,"y":7.0072175252613835},{"x":0.2684341945193349,"y":4.529725798132315},{"x":1.2610012264029522,"y":7.981418930695978},{"x":0.4076748594070785,"y":4.789392547766224},{"x":0.6277976898420019,"y":5.473504548640071},{"x":1.1925149126570633,"y":7.979905959554976},{"x":1.9099838593057608,"y":9.933633616185963},{"x":1.11272036330339,"y":7.576762743580341},{"x":1.802092739386969,"y":9.325967122317106},{"x":1.196864286097009,"y":7.638266926193305},{"x":0.03815120245380177,"y":4.518300718070865},{"x":0.6918418995897215,"y":5.594422797388837},{"x":0.04790910633931178,"y":4.622640731795469},{"x":1.0082350389606831,"y":6.573314789785342},{"x":1.3268160391024382,"y":8.167074289870962},{"x":1.116235950693984,"y":7.205542036877259},{"x":1.5635870611482732,"y":9.11314041027242},{"x":1.5325239230646464,"y":8.46042736714775},{"x":0.22518938365611207,"y":4.359911858835845},{"x":1.8818046241717257,"y":9.422655165383151},{"x":0.866399894741126,"y":6.273503204133702},{"x":1.7074705527133416,"y":9.1952114549056},{"x":0.7228909843461526,"y":6.399740242846538},{"x":0.8645396760222455,"y":6.921156361139643},{"x":1.8376110894013347,"y":9.599848131970901},{"x":1.442060988129032,"y":8.259326839274358},{"x":1.1443219627898706,"y":7.398380325540283},{"x":1.9442669979686977,"y":9.916636301589834},{"x":1.7051984640589528,"y":8.810676014365272},{"x":0.9316907243298531,"y":6.706793253908984},{"x":0.32105137135146666,"y":5.33310397346077},{"x":1.4251172135313435,"y":8.204359875917337},{"x":0.21636814613954103,"y":5.060604277707321},{"x":0.8400572418693812,"y":6.803452904281498},{"x":0.9280411984247863,"y":6.879738120117415},{"x":0.6748888124318428,"y":5.668202282091746},{"x":0.9269337184466582,"y":6.309717290697355},{"x":1.614491258449418,"y":8.584383516652984},{"x":1.7556955423296916,"y":8.88204901427903},{"x":0.742569049365005,"y":6.3831292487291265},{"x":0.04689839244109928,"y":4.047375477112247},{"x":1.3063798501777497,"y":7.7838559727772125},{"x":0.7399148832784985,"y":5.7390385507242065},{"x":0.609370240470565,"y":5.496753043300161},{"x":0.5288005556403474,"y":5.710591843063962},{"x":1.8613281986490335,"y":9.617393755825786},{"x":1.4934621266846162,"y":8.775190727806926},{"x":1.3841503724034614,"y":8.097058620455151},{"x":1.4411812067428929,"y":8.714222294939118},{"x":0.07275682745349732,"y":3.8582708188217256},{"x":1.6964330896073725,"y":9.558937877400908},{"x":0.9736420283819163,"y":6.666882792923979},{"x":1.5039805870455312,"y":8.704474518801195},{"x":0.2945974391450479,"y":4.7723887278383},{"x":0.1868592779917515,"y":4.731889701559963},{"x":1.335963209381183,"y":8.49731857456425},{"x":1.12438463727741,"y":7.846542179584407},{"x":0.9611253246535423,"y":7.302305818866566},{"x":0.944121396326294,"y":6.59392561989239},{"x":0.9160306018359226,"y":6.537631541250617},{"x":1.8140749900473794,"y":8.956656518284662},{"x":1.2494284448899267,"y":7.462139448629185},{"x":1.5981009200282497,"y":8.488717108113233},{"x":1.5216871497808855,"y":8.239844283942187},{"x":1.0141522485693928,"y":7.119631726438168},{"x":0.24505073662469545,"y":4.76994960528683},{"x":0.23453054126675754,"y":4.740933976429053},{"x":0.8375073700191651,"y":6.203902724203168},{"x":0.9555904929091139,"y":6.539672305648001},{"x":1.5116208882261697,"y":8.251922682601373},{"x":0.5430644133381208,"y":5.94392000741476},{"x":1.5396799405255837,"y":8.562605860505936},{"x":1.3288332597446675,"y":8.394908971950938},{"x":0.8098737558236753,"y":6.119922380724123},{"x":0.7300870101089743,"y":5.820357872554606},{"x":0.6003486177307833,"y":6.046316972091446},{"x":1.6984776836543856,"y":8.777896137233139},{"x":0.7881943630297616,"y":6.2074823217226704},{"x":0.8022304689606252,"y":6.421563438226328},{"x":0.9461487553849501,"y":7.224992163390045},{"x":1.1062159638629834,"y":7.778505164261029},{"x":0.5336394605277772,"y":5.208679631530884},{"x":0.4584282301025495,"y":5.523717683548369},{"x":0.274737610635972,"y":5.32305240175822},{"x":1.2533091829664782,"y":7.266026618765184},{"x":0.10113017428721793,"y":4.752841138832883},{"x":0.14571861443282952,"y":4.726179278830611},{"x":1.15906054645597,"y":7.915833252969062},{"x":0.27790158114728714,"y":5.013847161673044},{"x":1.239949192481978,"y":7.517406034765404},{"x":0.6661499949625322,"y":5.568160896538142},{"x":1.2693312956846792,"y":7.889092741514168},{"x":1.2086907347723854,"y":7.6883993210876},{"x":1.7333203144056522,"y":8.889281033197426}]},"encoding":{"x":{"axis":{"grid":false},"field":"x","scale":{"domain":[-0.05,2.05]},"type":"quantitative"},"y":{"axis":{"grid":false},"field":"y","scale":{"domain":[2.5,12]},"type":"quantitative"}},"mark":"circle"},{"data":{"values":[{"x":0,"y":4.023067929858136},{"x":2,"y":9.938704547661537}]},"encoding":{"x":{"field":"x","scale":{"domain":[-0.05,2.05]},"type":"quantitative"},"y":{"field":"y","scale":{"domain":[2.5,12]},"type":"quantitative"}},"mark":{"color":"green","type":"line"}}],"title":{"offset":20,"text":"Scatterplot of Generated Data"},"width":630} +{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","height":630,"layer":[{"data":{"values":[{"x":1.9004864711486005,"y":9.588568089587561},{"x":1.4863498556419192,"y":8.128091393416636},{"x":1.7991174211376775,"y":9.789160149027026},{"x":0.12072062082750934,"y":3.9726630516564603},{"x":1.857364920863604,"y":9.25767072810677},{"x":0.3501109776898361,"y":5.016196041913261},{"x":1.0511571984036023,"y":7.0072175252613835},{"x":0.2684341945193349,"y":4.529725798132315},{"x":1.2610012264029522,"y":7.981418930695978},{"x":0.4076748594070785,"y":4.789392547766224},{"x":0.6277976898420019,"y":5.473504548640071},{"x":1.1925149126570633,"y":7.979905959554976},{"x":1.9099838593057608,"y":9.933633616185963},{"x":1.11272036330339,"y":7.576762743580341},{"x":1.802092739386969,"y":9.325967122317106},{"x":1.196864286097009,"y":7.638266926193305},{"x":0.03815120245380177,"y":4.518300718070865},{"x":0.6918418995897215,"y":5.594422797388837},{"x":0.04790910633931178,"y":4.622640731795469},{"x":1.0082350389606831,"y":6.573314789785342},{"x":1.3268160391024382,"y":8.167074289870962},{"x":1.116235950693984,"y":7.205542036877259},{"x":1.5635870611482732,"y":9.11314041027242},{"x":1.5325239230646464,"y":8.46042736714775},{"x":0.22518938365611207,"y":4.359911858835845},{"x":1.8818046241717257,"y":9.422655165383151},{"x":0.866399894741126,"y":6.273503204133702},{"x":1.7074705527133416,"y":9.1952114549056},{"x":0.7228909843461526,"y":6.399740242846538},{"x":0.8645396760222455,"y":6.921156361139643},{"x":1.8376110894013347,"y":9.599848131970901},{"x":1.442060988129032,"y":8.259326839274358},{"x":1.1443219627898706,"y":7.398380325540283},{"x":1.9442669979686977,"y":9.916636301589834},{"x":1.7051984640589528,"y":8.810676014365272},{"x":0.9316907243298531,"y":6.706793253908984},{"x":0.32105137135146666,"y":5.33310397346077},{"x":1.4251172135313435,"y":8.204359875917337},{"x":0.21636814613954103,"y":5.060604277707321},{"x":0.8400572418693812,"y":6.803452904281498},{"x":0.9280411984247863,"y":6.879738120117415},{"x":0.6748888124318428,"y":5.668202282091746},{"x":0.9269337184466582,"y":6.309717290697355},{"x":1.614491258449418,"y":8.584383516652984},{"x":1.7556955423296916,"y":8.88204901427903},{"x":0.742569049365005,"y":6.3831292487291265},{"x":0.04689839244109928,"y":4.047375477112247},{"x":1.3063798501777497,"y":7.7838559727772125},{"x":0.7399148832784985,"y":5.7390385507242065},{"x":0.609370240470565,"y":5.496753043300161},{"x":0.5288005556403474,"y":5.710591843063962},{"x":1.8613281986490335,"y":9.617393755825786},{"x":1.4934621266846162,"y":8.775190727806926},{"x":1.3841503724034614,"y":8.097058620455151},{"x":1.4411812067428929,"y":8.714222294939118},{"x":0.07275682745349732,"y":3.8582708188217256},{"x":1.6964330896073725,"y":9.558937877400908},{"x":0.9736420283819163,"y":6.666882792923979},{"x":1.5039805870455312,"y":8.704474518801195},{"x":0.2945974391450479,"y":4.7723887278383},{"x":0.1868592779917515,"y":4.731889701559963},{"x":1.335963209381183,"y":8.49731857456425},{"x":1.12438463727741,"y":7.846542179584407},{"x":0.9611253246535423,"y":7.302305818866566},{"x":0.944121396326294,"y":6.59392561989239},{"x":0.9160306018359226,"y":6.537631541250617},{"x":1.8140749900473794,"y":8.956656518284662},{"x":1.2494284448899267,"y":7.462139448629185},{"x":1.5981009200282497,"y":8.488717108113233},{"x":1.5216871497808855,"y":8.239844283942187},{"x":1.0141522485693928,"y":7.119631726438168},{"x":0.24505073662469545,"y":4.76994960528683},{"x":0.23453054126675754,"y":4.740933976429053},{"x":0.8375073700191651,"y":6.203902724203168},{"x":0.9555904929091139,"y":6.539672305648001},{"x":1.5116208882261697,"y":8.251922682601373},{"x":0.5430644133381208,"y":5.94392000741476},{"x":1.5396799405255837,"y":8.562605860505936},{"x":1.3288332597446675,"y":8.394908971950938},{"x":0.8098737558236753,"y":6.119922380724123},{"x":0.7300870101089743,"y":5.820357872554606},{"x":0.6003486177307833,"y":6.046316972091446},{"x":1.6984776836543856,"y":8.777896137233139},{"x":0.7881943630297616,"y":6.2074823217226704},{"x":0.8022304689606252,"y":6.421563438226328},{"x":0.9461487553849501,"y":7.224992163390045},{"x":1.1062159638629834,"y":7.778505164261029},{"x":0.5336394605277772,"y":5.208679631530884},{"x":0.4584282301025495,"y":5.523717683548369},{"x":0.274737610635972,"y":5.32305240175822},{"x":1.2533091829664782,"y":7.266026618765184},{"x":0.10113017428721793,"y":4.752841138832883},{"x":0.14571861443282952,"y":4.726179278830611},{"x":1.15906054645597,"y":7.915833252969062},{"x":0.27790158114728714,"y":5.013847161673044},{"x":1.239949192481978,"y":7.517406034765404},{"x":0.6661499949625322,"y":5.568160896538142},{"x":1.2693312956846792,"y":7.889092741514168},{"x":1.2086907347723854,"y":7.6883993210876},{"x":1.7333203144056522,"y":8.889281033197426}]},"encoding":{"x":{"axis":{"grid":false},"field":"x","scale":{"domain":[-0.05,2.05]},"type":"quantitative"},"y":{"axis":{"grid":false},"field":"y","scale":{"domain":[2.5,12]},"type":"quantitative"}},"mark":"circle"},{"data":{"values":[{"x":0,"y":4.023067929858136},{"x":2,"y":9.938704547661537}]},"encoding":{"x":{"field":"x","type":"quantitative"},"y":{"field":"y","type":"quantitative"}},"mark":{"color":"green","type":"line"}}],"title":{"offset":20,"text":"Scatterplot of Generated Data"},"width":630} ``` Using `Scholar.Linear.LinearRegression.predict`, we can predict an expected value for a given input. However, we must remember that our prediction will be valid only if we consider linearly dependent data. Fortunately, our data set is perfect for this kind of prediction. @@ -239,23 +249,15 @@ Vl.new( scale: y_scale, axis: [grid: false] ), - Vl.new() - |> Vl.data_from_values(line) - |> Vl.mark(:line, color: :green) - |> Vl.encode_field(:x, "x", type: :quantitative, scale: x_scale) - |> Vl.encode_field(:y, "y", type: :quantitative, scale: y_scale), - Vl.new() - |> Vl.data_from_values(prediction) - |> Vl.mark(:circle, color: :red, size: 80) - |> Vl.encode_field(:x, "x", type: :quantitative) - |> Vl.encode_field(:y, "y", type: :quantitative) + Data.chart(line, [type: :line, color: :green], x: "x", y: "y"), + Data.chart(prediction, [type: :circle, color: :red, size: 80], x: "x", y: "y") ]) ``` ```vega-lite -{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","height":630,"layer":[{"data":{"values":[{"x":1.9004864711486005,"y":9.588568089587561},{"x":1.4863498556419192,"y":8.128091393416636},{"x":1.7991174211376775,"y":9.789160149027026},{"x":0.12072062082750934,"y":3.9726630516564603},{"x":1.857364920863604,"y":9.25767072810677},{"x":0.3501109776898361,"y":5.016196041913261},{"x":1.0511571984036023,"y":7.0072175252613835},{"x":0.2684341945193349,"y":4.529725798132315},{"x":1.2610012264029522,"y":7.981418930695978},{"x":0.4076748594070785,"y":4.789392547766224},{"x":0.6277976898420019,"y":5.473504548640071},{"x":1.1925149126570633,"y":7.979905959554976},{"x":1.9099838593057608,"y":9.933633616185963},{"x":1.11272036330339,"y":7.576762743580341},{"x":1.802092739386969,"y":9.325967122317106},{"x":1.196864286097009,"y":7.638266926193305},{"x":0.03815120245380177,"y":4.518300718070865},{"x":0.6918418995897215,"y":5.594422797388837},{"x":0.04790910633931178,"y":4.622640731795469},{"x":1.0082350389606831,"y":6.573314789785342},{"x":1.3268160391024382,"y":8.167074289870962},{"x":1.116235950693984,"y":7.205542036877259},{"x":1.5635870611482732,"y":9.11314041027242},{"x":1.5325239230646464,"y":8.46042736714775},{"x":0.22518938365611207,"y":4.359911858835845},{"x":1.8818046241717257,"y":9.422655165383151},{"x":0.866399894741126,"y":6.273503204133702},{"x":1.7074705527133416,"y":9.1952114549056},{"x":0.7228909843461526,"y":6.399740242846538},{"x":0.8645396760222455,"y":6.921156361139643},{"x":1.8376110894013347,"y":9.599848131970901},{"x":1.442060988129032,"y":8.259326839274358},{"x":1.1443219627898706,"y":7.398380325540283},{"x":1.9442669979686977,"y":9.916636301589834},{"x":1.7051984640589528,"y":8.810676014365272},{"x":0.9316907243298531,"y":6.706793253908984},{"x":0.32105137135146666,"y":5.33310397346077},{"x":1.4251172135313435,"y":8.204359875917337},{"x":0.21636814613954103,"y":5.060604277707321},{"x":0.8400572418693812,"y":6.803452904281498},{"x":0.9280411984247863,"y":6.879738120117415},{"x":0.6748888124318428,"y":5.668202282091746},{"x":0.9269337184466582,"y":6.309717290697355},{"x":1.614491258449418,"y":8.584383516652984},{"x":1.7556955423296916,"y":8.88204901427903},{"x":0.742569049365005,"y":6.3831292487291265},{"x":0.04689839244109928,"y":4.047375477112247},{"x":1.3063798501777497,"y":7.7838559727772125},{"x":0.7399148832784985,"y":5.7390385507242065},{"x":0.609370240470565,"y":5.496753043300161},{"x":0.5288005556403474,"y":5.710591843063962},{"x":1.8613281986490335,"y":9.617393755825786},{"x":1.4934621266846162,"y":8.775190727806926},{"x":1.3841503724034614,"y":8.097058620455151},{"x":1.4411812067428929,"y":8.714222294939118},{"x":0.07275682745349732,"y":3.8582708188217256},{"x":1.6964330896073725,"y":9.558937877400908},{"x":0.9736420283819163,"y":6.666882792923979},{"x":1.5039805870455312,"y":8.704474518801195},{"x":0.2945974391450479,"y":4.7723887278383},{"x":0.1868592779917515,"y":4.731889701559963},{"x":1.335963209381183,"y":8.49731857456425},{"x":1.12438463727741,"y":7.846542179584407},{"x":0.9611253246535423,"y":7.302305818866566},{"x":0.944121396326294,"y":6.59392561989239},{"x":0.9160306018359226,"y":6.537631541250617},{"x":1.8140749900473794,"y":8.956656518284662},{"x":1.2494284448899267,"y":7.462139448629185},{"x":1.5981009200282497,"y":8.488717108113233},{"x":1.5216871497808855,"y":8.239844283942187},{"x":1.0141522485693928,"y":7.119631726438168},{"x":0.24505073662469545,"y":4.76994960528683},{"x":0.23453054126675754,"y":4.740933976429053},{"x":0.8375073700191651,"y":6.203902724203168},{"x":0.9555904929091139,"y":6.539672305648001},{"x":1.5116208882261697,"y":8.251922682601373},{"x":0.5430644133381208,"y":5.94392000741476},{"x":1.5396799405255837,"y":8.562605860505936},{"x":1.3288332597446675,"y":8.394908971950938},{"x":0.8098737558236753,"y":6.119922380724123},{"x":0.7300870101089743,"y":5.820357872554606},{"x":0.6003486177307833,"y":6.046316972091446},{"x":1.6984776836543856,"y":8.777896137233139},{"x":0.7881943630297616,"y":6.2074823217226704},{"x":0.8022304689606252,"y":6.421563438226328},{"x":0.9461487553849501,"y":7.224992163390045},{"x":1.1062159638629834,"y":7.778505164261029},{"x":0.5336394605277772,"y":5.208679631530884},{"x":0.4584282301025495,"y":5.523717683548369},{"x":0.274737610635972,"y":5.32305240175822},{"x":1.2533091829664782,"y":7.266026618765184},{"x":0.10113017428721793,"y":4.752841138832883},{"x":0.14571861443282952,"y":4.726179278830611},{"x":1.15906054645597,"y":7.915833252969062},{"x":0.27790158114728714,"y":5.013847161673044},{"x":1.239949192481978,"y":7.517406034765404},{"x":0.6661499949625322,"y":5.568160896538142},{"x":1.2693312956846792,"y":7.889092741514168},{"x":1.2086907347723854,"y":7.6883993210876},{"x":1.7333203144056522,"y":8.889281033197426}]},"encoding":{"x":{"axis":{"grid":false},"field":"x","scale":{"domain":[-0.05,2.05]},"type":"quantitative"},"y":{"axis":{"grid":false},"field":"y","scale":{"domain":[2.5,12]},"type":"quantitative"}},"mark":"circle"},{"data":{"values":[{"x":0,"y":4.023067929858136},{"x":2,"y":9.938704547661537}]},"encoding":{"x":{"field":"x","scale":{"domain":[-0.05,2.05]},"type":"quantitative"},"y":{"field":"y","scale":{"domain":[2.5,12]},"type":"quantitative"}},"mark":{"color":"green","type":"line"}},{"data":{"values":[{"x":0.8299999833106995,"y":6.478057076882628}]},"encoding":{"x":{"field":"x","type":"quantitative"},"y":{"field":"y","type":"quantitative"}},"mark":{"color":"red","size":80,"type":"circle"}}],"title":{"offset":20,"text":"Scatterplot of Generated Data"},"width":630} +{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","height":630,"layer":[{"data":{"values":[{"x":1.9004864711486005,"y":9.588568089587561},{"x":1.4863498556419192,"y":8.128091393416636},{"x":1.7991174211376775,"y":9.789160149027026},{"x":0.12072062082750934,"y":3.9726630516564603},{"x":1.857364920863604,"y":9.25767072810677},{"x":0.3501109776898361,"y":5.016196041913261},{"x":1.0511571984036023,"y":7.0072175252613835},{"x":0.2684341945193349,"y":4.529725798132315},{"x":1.2610012264029522,"y":7.981418930695978},{"x":0.4076748594070785,"y":4.789392547766224},{"x":0.6277976898420019,"y":5.473504548640071},{"x":1.1925149126570633,"y":7.979905959554976},{"x":1.9099838593057608,"y":9.933633616185963},{"x":1.11272036330339,"y":7.576762743580341},{"x":1.802092739386969,"y":9.325967122317106},{"x":1.196864286097009,"y":7.638266926193305},{"x":0.03815120245380177,"y":4.518300718070865},{"x":0.6918418995897215,"y":5.594422797388837},{"x":0.04790910633931178,"y":4.622640731795469},{"x":1.0082350389606831,"y":6.573314789785342},{"x":1.3268160391024382,"y":8.167074289870962},{"x":1.116235950693984,"y":7.205542036877259},{"x":1.5635870611482732,"y":9.11314041027242},{"x":1.5325239230646464,"y":8.46042736714775},{"x":0.22518938365611207,"y":4.359911858835845},{"x":1.8818046241717257,"y":9.422655165383151},{"x":0.866399894741126,"y":6.273503204133702},{"x":1.7074705527133416,"y":9.1952114549056},{"x":0.7228909843461526,"y":6.399740242846538},{"x":0.8645396760222455,"y":6.921156361139643},{"x":1.8376110894013347,"y":9.599848131970901},{"x":1.442060988129032,"y":8.259326839274358},{"x":1.1443219627898706,"y":7.398380325540283},{"x":1.9442669979686977,"y":9.916636301589834},{"x":1.7051984640589528,"y":8.810676014365272},{"x":0.9316907243298531,"y":6.706793253908984},{"x":0.32105137135146666,"y":5.33310397346077},{"x":1.4251172135313435,"y":8.204359875917337},{"x":0.21636814613954103,"y":5.060604277707321},{"x":0.8400572418693812,"y":6.803452904281498},{"x":0.9280411984247863,"y":6.879738120117415},{"x":0.6748888124318428,"y":5.668202282091746},{"x":0.9269337184466582,"y":6.309717290697355},{"x":1.614491258449418,"y":8.584383516652984},{"x":1.7556955423296916,"y":8.88204901427903},{"x":0.742569049365005,"y":6.3831292487291265},{"x":0.04689839244109928,"y":4.047375477112247},{"x":1.3063798501777497,"y":7.7838559727772125},{"x":0.7399148832784985,"y":5.7390385507242065},{"x":0.609370240470565,"y":5.496753043300161},{"x":0.5288005556403474,"y":5.710591843063962},{"x":1.8613281986490335,"y":9.617393755825786},{"x":1.4934621266846162,"y":8.775190727806926},{"x":1.3841503724034614,"y":8.097058620455151},{"x":1.4411812067428929,"y":8.714222294939118},{"x":0.07275682745349732,"y":3.8582708188217256},{"x":1.6964330896073725,"y":9.558937877400908},{"x":0.9736420283819163,"y":6.666882792923979},{"x":1.5039805870455312,"y":8.704474518801195},{"x":0.2945974391450479,"y":4.7723887278383},{"x":0.1868592779917515,"y":4.731889701559963},{"x":1.335963209381183,"y":8.49731857456425},{"x":1.12438463727741,"y":7.846542179584407},{"x":0.9611253246535423,"y":7.302305818866566},{"x":0.944121396326294,"y":6.59392561989239},{"x":0.9160306018359226,"y":6.537631541250617},{"x":1.8140749900473794,"y":8.956656518284662},{"x":1.2494284448899267,"y":7.462139448629185},{"x":1.5981009200282497,"y":8.488717108113233},{"x":1.5216871497808855,"y":8.239844283942187},{"x":1.0141522485693928,"y":7.119631726438168},{"x":0.24505073662469545,"y":4.76994960528683},{"x":0.23453054126675754,"y":4.740933976429053},{"x":0.8375073700191651,"y":6.203902724203168},{"x":0.9555904929091139,"y":6.539672305648001},{"x":1.5116208882261697,"y":8.251922682601373},{"x":0.5430644133381208,"y":5.94392000741476},{"x":1.5396799405255837,"y":8.562605860505936},{"x":1.3288332597446675,"y":8.394908971950938},{"x":0.8098737558236753,"y":6.119922380724123},{"x":0.7300870101089743,"y":5.820357872554606},{"x":0.6003486177307833,"y":6.046316972091446},{"x":1.6984776836543856,"y":8.777896137233139},{"x":0.7881943630297616,"y":6.2074823217226704},{"x":0.8022304689606252,"y":6.421563438226328},{"x":0.9461487553849501,"y":7.224992163390045},{"x":1.1062159638629834,"y":7.778505164261029},{"x":0.5336394605277772,"y":5.208679631530884},{"x":0.4584282301025495,"y":5.523717683548369},{"x":0.274737610635972,"y":5.32305240175822},{"x":1.2533091829664782,"y":7.266026618765184},{"x":0.10113017428721793,"y":4.752841138832883},{"x":0.14571861443282952,"y":4.726179278830611},{"x":1.15906054645597,"y":7.915833252969062},{"x":0.27790158114728714,"y":5.013847161673044},{"x":1.239949192481978,"y":7.517406034765404},{"x":0.6661499949625322,"y":5.568160896538142},{"x":1.2693312956846792,"y":7.889092741514168},{"x":1.2086907347723854,"y":7.6883993210876},{"x":1.7333203144056522,"y":8.889281033197426}]},"encoding":{"x":{"axis":{"grid":false},"field":"x","scale":{"domain":[-0.05,2.05]},"type":"quantitative"},"y":{"axis":{"grid":false},"field":"y","scale":{"domain":[2.5,12]},"type":"quantitative"}},"mark":"circle"},{"data":{"values":[{"x":0,"y":4.023067929858136},{"x":2,"y":9.938704547661537}]},"encoding":{"x":{"field":"x","type":"quantitative"},"y":{"field":"y","type":"quantitative"}},"mark":{"color":"green","type":"line"}},{"data":{"values":[{"x":0.8299999833106995,"y":6.478057076882628}]},"encoding":{"x":{"field":"x","type":"quantitative"},"y":{"field":"y","type":"quantitative"}},"mark":{"color":"red","size":80,"type":"circle"}}],"title":{"offset":20,"text":"Scatterplot of Generated Data"},"width":630} ``` As we expected, the red dot lies on the regression line. @@ -272,7 +274,7 @@ x_b |> Nx.LinAlg.pinv() |> Nx.dot(y) ``` #Nx.Tensor< f64[2][1] - EXLA.Backend + EXLA.Backend [ [4.023067929858136], [2.957818308901698] @@ -457,7 +459,7 @@ model.coefficients ``` #Nx.Tensor< f32[1][2] - EXLA.Backend + EXLA.Backend [ [3.023973226547241, 2.013108730316162] ] @@ -482,7 +484,7 @@ Nx.iota({n_samples, n_variables}) ``` #Nx.Tensor< s64[5][3] - EXLA.Backend + EXLA.Backend [ [0, 0, 0], [1, 1, 1], @@ -531,28 +533,19 @@ Vl.new( height: 630 ) |> Vl.layers([ - Vl.new() - |> Vl.data_from_values(df) - |> Vl.mark(:circle) - |> Vl.encode_field(:x, "x", type: :quantitative, scale: x_scale, axis: [grid: false]) - |> Vl.encode_field(:y, "y", type: :quantitative, scale: y_scale, axis: [grid: false]), - Vl.new() - |> Vl.data_from_values(df_results) - |> Vl.mark(:line, color: :green) - |> Vl.encode_field(:x, "x", type: :quantitative, scale: x_scale) - |> Vl.encode_field(:y, "y", type: :quantitative, scale: y_scale), - Vl.new() - |> Vl.data_from_values(df_prediction) - |> Vl.mark(:circle, color: :red, size: 80) - |> Vl.encode_field(:x, "x", type: :quantitative, scale: x_scale) - |> Vl.encode_field(:y, "y", type: :quantitative, scale: y_scale) + Data.chart(df, :circle, + x: [field: "x", type: :quantitative, scale: x_scale, axis: [grid: false]], + y: [field: "y", type: :quantitative, scale: y_scale, axis: [grid: false]] + ), + Data.chart(df_results, [type: :line, color: :green], x: "x", y: "y"), + Data.chart(df_prediction, [type: :circle, color: :red, size: 80], x: "x", y: "y") ]) ``` ```vega-lite -{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","height":630,"layer":[{"data":{"values":[{"x":-0.8965015411376953,"y":3.8109235763549805},{"x":0.021173477172851562,"y":5.0468549728393555},{"x":1.0788373947143555,"y":10.559005737304688},{"x":0.34316205978393555,"y":5.828140735626221},{"x":1.5906281471252441,"y":14.507883071899414},{"x":0.13052892684936523,"y":5.494438171386719},{"x":-0.017606735229492188,"y":5.139791965484619},{"x":-1.7063984870910645,"y":6.048481464385986},{"x":-0.8232769966125488,"y":4.1755475997924805},{"x":1.239438533782959,"y":11.804141998291016},{"x":-0.7493696212768555,"y":3.7624857425689697},{"x":1.5685210227966309,"y":15.080747604370117},{"x":1.2736377716064453,"y":11.830965042114258},{"x":0.28627920150756836,"y":6.291994571685791},{"x":-0.8452377319335938,"y":4.183845043182373},{"x":1.0702204704284668,"y":10.536632537841797},{"x":0.5425329208374023,"y":6.9816107749938965},{"x":0.8072428703308105,"y":8.398423194885254},{"x":0.06005859375,"y":5.642594337463379},{"x":-1.6828784942626953,"y":5.228835582733154},{"x":-1.6979928016662598,"y":5.282017707824707},{"x":-1.339439868927002,"y":4.808953762054443},{"x":-1.6378440856933594,"y":5.889084815979004},{"x":-0.9949426651000977,"y":4.288919448852539},{"x":-0.1635441780090332,"y":4.933962345123291},{"x":0.5056014060974121,"y":7.2391276359558105},{"x":-0.6962909698486328,"y":4.337333679199219},{"x":-0.011175155639648438,"y":5.329751968383789},{"x":1.9765315055847168,"y":18.869409561157227},{"x":-0.7610149383544922,"y":3.423267126083374},{"x":-1.946864128112793,"y":6.530677795410156},{"x":-0.021459579467773438,"y":5.185998916625977},{"x":0.5230484008789062,"y":7.557127475738525},{"x":1.1505427360534668,"y":11.130593299865723},{"x":0.33158349990844727,"y":6.636468887329102},{"x":1.9051923751831055,"y":18.391712188720703},{"x":0.7064709663391113,"y":8.222036361694336},{"x":0.832550048828125,"y":8.481558799743652},{"x":-1.5429472923278809,"y":4.780819892883301},{"x":1.910013198852539,"y":18.196731567382812},{"x":0.2634763717651367,"y":6.009212970733643},{"x":1.823348045349121,"y":17.614534378051758},{"x":-0.2560157775878906,"y":4.535557270050049},{"x":1.5738868713378906,"y":14.52468204498291},{"x":0.24407672882080078,"y":5.911610126495361},{"x":1.7351713180541992,"y":16.576759338378906},{"x":0.022307872772216797,"y":5.328531265258789},{"x":1.665010929107666,"y":15.157777786254883},{"x":-0.5437688827514648,"y":3.5709950923919678},{"x":1.312476634979248,"y":11.939286231994629},{"x":-1.4770846366882324,"y":4.936985492706299},{"x":1.6605911254882812,"y":15.417658805847168},{"x":1.7454309463500977,"y":15.889360427856445},{"x":-1.189291000366211,"y":4.214474678039551},{"x":-0.6745319366455078,"y":3.46466064453125},{"x":-1.3367595672607422,"y":4.8975324630737305},{"x":-0.0439295768737793,"y":5.127323627471924},{"x":-0.9130129814147949,"y":3.7275986671447754},{"x":1.0283713340759277,"y":10.355329513549805},{"x":-1.742908000946045,"y":6.096266746520996},{"x":1.6933608055114746,"y":16.230039596557617},{"x":-1.065746784210205,"y":3.970182418823242},{"x":0.9606437683105469,"y":9.539725303649902},{"x":0.04618549346923828,"y":4.721081733703613},{"x":-1.1336445808410645,"y":4.19744873046875},{"x":-1.0706229209899902,"y":3.8512279987335205},{"x":-1.884141445159912,"y":6.373000144958496},{"x":-0.14725208282470703,"y":4.171361923217773},{"x":1.1883292198181152,"y":11.732460021972656},{"x":0.1410541534423828,"y":5.41363525390625},{"x":1.3752241134643555,"y":12.717113494873047},{"x":-1.3611302375793457,"y":4.9649810791015625},{"x":0.08020591735839844,"y":5.477242946624756},{"x":1.7457842826843262,"y":16.750232696533203},{"x":-1.6559224128723145,"y":5.075651168823242},{"x":0.5720343589782715,"y":7.4426116943359375},{"x":-1.715710163116455,"y":6.0133891105651855},{"x":-1.6484870910644531,"y":5.388364791870117},{"x":-1.13641357421875,"y":4.0211639404296875},{"x":-1.8201804161071777,"y":5.7477922439575195},{"x":0.16124916076660156,"y":5.036750793457031},{"x":1.6229968070983887,"y":14.848661422729492},{"x":0.9078593254089355,"y":9.316896438598633},{"x":-1.973616123199463,"y":7.31505823135376},{"x":-1.08573579788208,"y":4.497128963470459},{"x":-1.9856038093566895,"y":7.066302299499512},{"x":1.0161328315734863,"y":9.7346830368042},{"x":1.637150764465332,"y":15.480567932128906},{"x":-0.8749380111694336,"y":3.704550266265869},{"x":0.5326972007751465,"y":7.397686958312988},{"x":-0.8989872932434082,"y":3.6920485496520996},{"x":1.6606526374816895,"y":15.98570442199707},{"x":1.3893942832946777,"y":13.498802185058594},{"x":-1.3748388290405273,"y":4.680605411529541},{"x":-0.22421789169311523,"y":4.457881927490234},{"x":-0.04375505447387695,"y":5.263555526733398},{"x":1.2894659042358398,"y":12.095159530639648},{"x":1.116281509399414,"y":10.542726516723633},{"x":1.725419044494629,"y":16.511856079101562},{"x":-1.203160285949707,"y":3.808946132659912}]},"encoding":{"x":{"axis":{"grid":false},"field":"x","scale":{"domain":[-2.05,2.05]},"type":"quantitative"},"y":{"axis":{"grid":false},"field":"y","scale":{"domain":[2.5,20]},"type":"quantitative"}},"mark":"circle"},{"data":{"values":[{"x":-2.0,"y":7.010737419128418},{"x":-1.999,"y":7.005710601806641},{"x":-1.998,"y":7.0006890296936035},{"x":-1.997,"y":6.995669841766357},{"x":-1.996,"y":6.99065637588501},{"x":-1.995,"y":6.985645771026611},{"x":-1.994,"y":6.9806389808654785},{"x":-1.993,"y":6.975637435913086},{"x":-1.992,"y":6.970638275146484},{"x":-1.991,"y":6.965644836425781},{"x":-1.99,"y":6.960653781890869},{"x":-1.989,"y":6.955667972564697},{"x":-1.988,"y":6.950685977935791},{"x":-1.987,"y":6.94570779800415},{"x":-1.986,"y":6.940733432769775},{"x":-1.985,"y":6.935763835906982},{"x":-1.984,"y":6.930797576904297},{"x":-1.983,"y":6.925835609436035},{"x":-1.982,"y":6.920877456665039},{"x":-1.981,"y":6.915923118591309},{"x":-1.98,"y":6.910974025726318},{"x":-1.979,"y":6.906027793884277},{"x":-1.978,"y":6.90108585357666},{"x":-1.977,"y":6.896147727966309},{"x":-1.976,"y":6.891213893890381},{"x":-1.975,"y":6.886283874511719},{"x":-1.974,"y":6.8813581466674805},{"x":-1.973,"y":6.876436710357666},{"x":-1.972,"y":6.871518611907959},{"x":-1.971,"y":6.866604328155518},{"x":-1.97,"y":6.861695766448975},{"x":-1.969,"y":6.856790065765381},{"x":-1.968,"y":6.851888179779053},{"x":-1.967,"y":6.846990585327148},{"x":-1.966,"y":6.84209680557251},{"x":-1.965,"y":6.837207317352295},{"x":-1.964,"y":6.832321643829346},{"x":-1.963,"y":6.8274407386779785},{"x":-1.962,"y":6.822563171386719},{"x":-1.961,"y":6.817689418792725},{"x":-1.96,"y":6.812819957733154},{"x":-1.959,"y":6.807954788208008},{"x":-1.958,"y":6.803092956542969},{"x":-1.957,"y":6.7982354164123535},{"x":-1.956,"y":6.793382167816162},{"x":-1.955,"y":6.7885332107543945},{"x":-1.954,"y":6.783688068389893},{"x":-1.953,"y":6.778846263885498},{"x":-1.952,"y":6.774009704589844},{"x":-1.951,"y":6.769176483154297},{"x":-1.95,"y":6.764347553253174},{"x":-1.949,"y":6.759521484375},{"x":-1.948,"y":6.754700183868408},{"x":-1.947,"y":6.749884128570557},{"x":-1.946,"y":6.745070934295654},{"x":-1.945,"y":6.740262031555176},{"x":-1.944,"y":6.735456466674805},{"x":-1.943,"y":6.730655193328857},{"x":-1.942,"y":6.72585916519165},{"x":-1.941,"y":6.721065521240234},{"x":-1.94,"y":6.716277122497559},{"x":-1.939,"y":6.71149206161499},{"x":-1.938,"y":6.706711292266846},{"x":-1.937,"y":6.701934337615967},{"x":-1.936,"y":6.697161674499512},{"x":-1.935,"y":6.692392349243164},{"x":-1.934,"y":6.687627792358398},{"x":-1.933,"y":6.682867050170898},{"x":-1.932,"y":6.678110599517822},{"x":-1.931,"y":6.673357963562012},{"x":-1.93,"y":6.668609142303467},{"x":-1.929,"y":6.663864612579346},{"x":-1.928,"y":6.65912389755249},{"x":-1.927,"y":6.654387474060059},{"x":-1.926,"y":6.649654865264893},{"x":-1.925,"y":6.644926071166992},{"x":-1.924,"y":6.640202045440674},{"x":-1.923,"y":6.635481357574463},{"x":-1.922,"y":6.630765438079834},{"x":-1.921,"y":6.6260528564453125},{"x":-1.92,"y":6.621344566345215},{"x":-1.919,"y":6.616640090942383},{"x":-1.918,"y":6.611939907073975},{"x":-1.917,"y":6.607243537902832},{"x":-1.916,"y":6.602550983428955},{"x":-1.915,"y":6.597862720489502},{"x":-1.914,"y":6.593178749084473},{"x":-1.913,"y":6.588498592376709},{"x":-1.912,"y":6.583822250366211},{"x":-1.911,"y":6.579150199890137},{"x":-1.91,"y":6.574481964111328},{"x":-1.909,"y":6.569818019866943},{"x":-1.908,"y":6.565157890319824},{"x":-1.907,"y":6.560501575469971},{"x":-1.906,"y":6.555850028991699},{"x":-1.905,"y":6.551202297210693},{"x":-1.904,"y":6.546558380126953},{"x":-1.903,"y":6.54191780090332},{"x":-1.902,"y":6.5372819900512695},{"x":-1.901,"y":6.532649993896484},{"x":-1.9,"y":6.528022289276123},{"x":-1.899,"y":6.5233988761901855},{"x":-1.898,"y":6.518779277801514},{"x":-1.897,"y":6.514162540435791},{"x":-1.896,"y":6.509551525115967},{"x":-1.895,"y":6.504943370819092},{"x":-1.894,"y":6.500339984893799},{"x":-1.893,"y":6.4957404136657715},{"x":-1.892,"y":6.491144180297852},{"x":-1.891,"y":6.486553192138672},{"x":-1.89,"y":6.4819655418396},{"x":-1.889,"y":6.477382183074951},{"x":-1.888,"y":6.47280216217041},{"x":-1.887,"y":6.468226432800293},{"x":-1.886,"y":6.4636549949646},{"x":-1.885,"y":6.45908784866333},{"x":-1.884,"y":6.454524040222168},{"x":-1.883,"y":6.449965000152588},{"x":-1.882,"y":6.445409774780273},{"x":-1.881,"y":6.440858364105225},{"x":-1.88,"y":6.436310768127441},{"x":-1.879,"y":6.431767463684082},{"x":-1.878,"y":6.4272284507751465},{"x":-1.877,"y":6.422692775726318},{"x":-1.876,"y":6.418161869049072},{"x":-1.875,"y":6.413634300231934},{"x":-1.874,"y":6.409111022949219},{"x":-1.873,"y":6.404592514038086},{"x":-1.872,"y":6.400076866149902},{"x":-1.871,"y":6.395565986633301},{"x":-1.87,"y":6.391058921813965},{"x":-1.869,"y":6.386555194854736},{"x":-1.868,"y":6.382057189941406},{"x":-1.867,"y":6.377561569213867},{"x":-1.866,"y":6.373071193695068},{"x":-1.865,"y":6.368584156036377},{"x":-1.864,"y":6.364100933074951},{"x":-1.863,"y":6.359622478485107},{"x":-1.862,"y":6.355147361755371},{"x":-1.861,"y":6.3506760597229},{"x":-1.86,"y":6.346209526062012},{"x":-1.859,"y":6.341746807098389},{"x":-1.858,"y":6.3372883796691895},{"x":-1.857,"y":6.332833290100098},{"x":-1.856,"y":6.32838249206543},{"x":-1.855,"y":6.3239359855651855},{"x":-1.854,"y":6.319493293762207},{"x":-1.853,"y":6.315054893493652},{"x":-1.852,"y":6.310619831085205},{"x":-1.851,"y":6.30618953704834},{"x":-1.85,"y":6.301763534545898},{"x":-1.849,"y":6.297340393066406},{"x":-1.848,"y":6.292922496795654},{"x":-1.847,"y":6.288507461547852},{"x":-1.846,"y":6.284097194671631},{"x":-1.845,"y":6.279690742492676},{"x":-1.844,"y":6.2752885818481445},{"x":-1.843,"y":6.270890235900879},{"x":-1.842,"y":6.266496181488037},{"x":-1.841,"y":6.262105464935303},{"x":-1.84,"y":6.25771951675415},{"x":-1.839,"y":6.2533369064331055},{"x":-1.838,"y":6.248958587646484},{"x":-1.837,"y":6.244584083557129},{"x":-1.836,"y":6.240213871002197},{"x":-1.835,"y":6.2358479499816895},{"x":-1.834,"y":6.231485843658447},{"x":-1.833,"y":6.227128028869629},{"x":-1.832,"y":6.222774028778076},{"x":-1.831,"y":6.218423843383789},{"x":-1.83,"y":6.214077949523926},{"x":-1.829,"y":6.209735870361328},{"x":-1.828,"y":6.205397129058838},{"x":-1.827,"y":6.201063632965088},{"x":-1.826,"y":6.1967339515686035},{"x":-1.825,"y":6.192408084869385},{"x":-1.824,"y":6.18808650970459},{"x":-1.823,"y":6.183768272399902},{"x":-1.822,"y":6.179454326629639},{"x":-1.821,"y":6.175144672393799},{"x":-1.82,"y":6.170838832855225},{"x":-1.819,"y":6.166537284851074},{"x":-1.818,"y":6.162239074707031},{"x":-1.817,"y":6.1579461097717285},{"x":-1.816,"y":6.153656005859375},{"x":-1.815,"y":6.149371147155762},{"x":-1.814,"y":6.145089149475098},{"x":-1.813,"y":6.140811443328857},{"x":-1.812,"y":6.136537551879883},{"x":-1.811,"y":6.13226842880249},{"x":-1.81,"y":6.128002166748047},{"x":-1.809,"y":6.123741626739502},{"x":-1.808,"y":6.119483947753906},{"x":-1.807,"y":6.115231037139893},{"x":-1.806,"y":6.110981464385986},{"x":-1.805,"y":6.1067352294921875},{"x":-1.804,"y":6.102494239807129},{"x":-1.803,"y":6.098257064819336},{"x":-1.802,"y":6.094024181365967},{"x":-1.801,"y":6.089795112609863},{"x":-1.8,"y":6.085569381713867},{"x":-1.799,"y":6.081348419189453},{"x":-1.798,"y":6.0771307945251465},{"x":-1.797,"y":6.072917938232422},{"x":-1.796,"y":6.068708419799805},{"x":-1.795,"y":6.0645036697387695},{"x":-1.794,"y":6.060302734375},{"x":-1.793,"y":6.056105613708496},{"x":-1.792,"y":6.051912784576416},{"x":-1.791,"y":6.047723293304443},{"x":-1.79,"y":6.043538570404053},{"x":-1.789,"y":6.039358139038086},{"x":-1.788,"y":6.035180568695068},{"x":-1.787,"y":6.031007289886475},{"x":-1.786,"y":6.026838779449463},{"x":-1.785,"y":6.022674083709717},{"x":-1.784,"y":6.018513202667236},{"x":-1.783,"y":6.01435661315918},{"x":-1.782,"y":6.0102033615112305},{"x":-1.781,"y":6.006054878234863},{"x":-1.78,"y":6.0019097328186035},{"x":-1.779,"y":5.997769832611084},{"x":-1.778,"y":5.993632793426514},{"x":-1.777,"y":5.989500045776367},{"x":-1.776,"y":5.9853715896606445},{"x":-1.775,"y":5.981247425079346},{"x":-1.774,"y":5.977126598358154},{"x":-1.773,"y":5.973010063171387},{"x":-1.772,"y":5.968897342681885},{"x":-1.771,"y":5.964788913726807},{"x":-1.77,"y":5.960684776306152},{"x":-1.769,"y":5.956584453582764},{"x":-1.768,"y":5.952487945556641},{"x":-1.767,"y":5.948395729064941},{"x":-1.766,"y":5.944307327270508},{"x":-1.765,"y":5.94022274017334},{"x":-1.764,"y":5.936142921447754},{"x":-1.763,"y":5.932066440582275},{"x":-1.762,"y":5.9279937744140625},{"x":-1.761,"y":5.92392635345459},{"x":-1.76,"y":5.919861793518066},{"x":-1.759,"y":5.915801048278809},{"x":-1.758,"y":5.911745548248291},{"x":-1.757,"y":5.907693386077881},{"x":-1.756,"y":5.903645038604736},{"x":-1.755,"y":5.899600982666016},{"x":-1.754,"y":5.8955607414245605},{"x":-1.753,"y":5.8915252685546875},{"x":-1.752,"y":5.88749361038208},{"x":-1.751,"y":5.88346529006958},{"x":-1.75,"y":5.879441261291504},{"x":-1.749,"y":5.875421047210693},{"x":-1.748,"y":5.871405601501465},{"x":-1.747,"y":5.867393493652344},{"x":-1.746,"y":5.863386154174805},{"x":-1.745,"y":5.859382629394531},{"x":-1.744,"y":5.855382442474365},{"x":-1.743,"y":5.851387023925781},{"x":-1.742,"y":5.847394943237305},{"x":-1.741,"y":5.843407154083252},{"x":-1.74,"y":5.839423656463623},{"x":-1.739,"y":5.835443496704102},{"x":-1.738,"y":5.83146858215332},{"x":-1.737,"y":5.827496528625488},{"x":-1.736,"y":5.82352876663208},{"x":-1.735,"y":5.819565773010254},{"x":-1.734,"y":5.815606117248535},{"x":-1.733,"y":5.81165075302124},{"x":-1.732,"y":5.807699203491211},{"x":-1.731,"y":5.803751468658447},{"x":-1.73,"y":5.799808502197266},{"x":-1.729,"y":5.795868873596191},{"x":-1.728,"y":5.791934013366699},{"x":-1.727,"y":5.7880024909973145},{"x":-1.726,"y":5.7840752601623535},{"x":-1.725,"y":5.780151844024658},{"x":-1.724,"y":5.7762322425842285},{"x":-1.723,"y":5.772317409515381},{"x":-1.722,"y":5.768406391143799},{"x":-1.721,"y":5.764498710632324},{"x":-1.72,"y":5.760595798492432},{"x":-1.719,"y":5.756696701049805},{"x":-1.718,"y":5.752801895141602},{"x":-1.717,"y":5.748910903930664},{"x":-1.716,"y":5.745023727416992},{"x":-1.715,"y":5.741140365600586},{"x":-1.714,"y":5.7372612953186035},{"x":-1.713,"y":5.733386993408203},{"x":-1.712,"y":5.72951602935791},{"x":-1.711,"y":5.725648880004883},{"x":-1.71,"y":5.721786022186279},{"x":-1.709,"y":5.717926979064941},{"x":-1.708,"y":5.714071750640869},{"x":-1.707,"y":5.710221767425537},{"x":-1.706,"y":5.706374645233154},{"x":-1.705,"y":5.7025322914123535},{"x":-1.704,"y":5.69869327545166},{"x":-1.703,"y":5.694858551025391},{"x":-1.702,"y":5.691028118133545},{"x":-1.701,"y":5.687201023101807},{"x":-1.7,"y":5.68337869644165},{"x":-1.699,"y":5.67956018447876},{"x":-1.698,"y":5.675745010375977},{"x":-1.697,"y":5.671935081481934},{"x":-1.696,"y":5.668128967285156},{"x":-1.695,"y":5.664326190948486},{"x":-1.694,"y":5.66052770614624},{"x":-1.693,"y":5.65673303604126},{"x":-1.692,"y":5.652942657470703},{"x":-1.691,"y":5.649156093597412},{"x":-1.69,"y":5.645373821258545},{"x":-1.689,"y":5.641595363616943},{"x":-1.688,"y":5.637820720672607},{"x":-1.687,"y":5.63405179977417},{"x":-1.686,"y":5.630285263061523},{"x":-1.685,"y":5.626522541046143},{"x":-1.684,"y":5.622764587402344},{"x":-1.683,"y":5.619009971618652},{"x":-1.682,"y":5.615260124206543},{"x":-1.681,"y":5.611514091491699},{"x":-1.68,"y":5.607771873474121},{"x":-1.679,"y":5.604033946990967},{"x":-1.678,"y":5.600299835205078},{"x":-1.677,"y":5.596570014953613},{"x":-1.676,"y":5.592844009399414},{"x":-1.675,"y":5.589121341705322},{"x":-1.674,"y":5.585403919219971},{"x":-1.673,"y":5.581689834594727},{"x":-1.672,"y":5.5779805183410645},{"x":-1.671,"y":5.57427453994751},{"x":-1.67,"y":5.570572853088379},{"x":-1.669,"y":5.566874980926514},{"x":-1.668,"y":5.563180923461914},{"x":-1.667,"y":5.559491157531738},{"x":-1.666,"y":5.555805683135986},{"x":-1.665,"y":5.552123546600342},{"x":-1.664,"y":5.5484466552734375},{"x":-1.663,"y":5.544772624969482},{"x":-1.662,"y":5.541102886199951},{"x":-1.661,"y":5.537437915802002},{"x":-1.66,"y":5.533775806427002},{"x":-1.659,"y":5.530118465423584},{"x":-1.658,"y":5.526464939117432},{"x":-1.657,"y":5.522815227508545},{"x":-1.656,"y":5.51917028427124},{"x":-1.655,"y":5.515528678894043},{"x":-1.654,"y":5.5118913650512695},{"x":-1.653,"y":5.508257865905762},{"x":-1.652,"y":5.5046281814575195},{"x":-1.651,"y":5.501002788543701},{"x":-1.65,"y":5.497381210327148},{"x":-1.649,"y":5.493764400482178},{"x":-1.648,"y":5.4901509284973145},{"x":-1.647,"y":5.486541748046875},{"x":-1.646,"y":5.482936859130859},{"x":-1.645,"y":5.479335308074951},{"x":-1.644,"y":5.475738525390625},{"x":-1.643,"y":5.4721455574035645},{"x":-1.642,"y":5.468555927276611},{"x":-1.641,"y":5.46497106552124},{"x":-1.64,"y":5.461390018463135},{"x":-1.639,"y":5.457813739776611},{"x":-1.638,"y":5.454240322113037},{"x":-1.637,"y":5.450671195983887},{"x":-1.636,"y":5.44710636138916},{"x":-1.635,"y":5.443545341491699},{"x":-1.634,"y":5.439988136291504},{"x":-1.633,"y":5.436435699462891},{"x":-1.632,"y":5.432886600494385},{"x":-1.631,"y":5.429341793060303},{"x":-1.63,"y":5.4258012771606445},{"x":-1.629,"y":5.422264099121094},{"x":-1.628,"y":5.418731689453125},{"x":-1.627,"y":5.415202617645264},{"x":-1.626,"y":5.411678314208984},{"x":-1.625,"y":5.4081573486328125},{"x":-1.624,"y":5.4046406745910645},{"x":-1.623,"y":5.401128768920898},{"x":-1.622,"y":5.39762020111084},{"x":-1.621,"y":5.394115447998047},{"x":-1.62,"y":5.3906145095825195},{"x":-1.619,"y":5.387117862701416},{"x":-1.618,"y":5.3836259841918945},{"x":-1.617,"y":5.380136966705322},{"x":-1.616,"y":5.376653671264648},{"x":-1.615,"y":5.373173236846924},{"x":-1.614,"y":5.369696617126465},{"x":-1.613,"y":5.36622428894043},{"x":-1.612,"y":5.36275577545166},{"x":-1.611,"y":5.359291076660156},{"x":-1.61,"y":5.355831146240234},{"x":-1.609,"y":5.35237455368042},{"x":-1.608,"y":5.348922252655029},{"x":-1.607,"y":5.345474720001221},{"x":-1.606,"y":5.3420305252075195},{"x":-1.605,"y":5.338590621948242},{"x":-1.604,"y":5.335154056549072},{"x":-1.603,"y":5.331722259521484},{"x":-1.602,"y":5.328294277191162},{"x":-1.601,"y":5.3248701095581055},{"x":-1.6,"y":5.321450233459473},{"x":-1.599,"y":5.318033695220947},{"x":-1.598,"y":5.314622402191162},{"x":-1.597,"y":5.311214447021484},{"x":-1.596,"y":5.3078107833862305},{"x":-1.595,"y":5.304410934448242},{"x":-1.594,"y":5.301014423370361},{"x":-1.593,"y":5.297623157501221},{"x":-1.592,"y":5.2942352294921875},{"x":-1.591,"y":5.29085111618042},{"x":-1.59,"y":5.287471771240234},{"x":-1.589,"y":5.2840962409973145},{"x":-1.588,"y":5.28072452545166},{"x":-1.587,"y":5.2773566246032715},{"x":-1.586,"y":5.273993015289307},{"x":-1.585,"y":5.270633697509766},{"x":-1.584,"y":5.267277717590332},{"x":-1.583,"y":5.263926029205322},{"x":-1.582,"y":5.2605791091918945},{"x":-1.581,"y":5.257235050201416},{"x":-1.58,"y":5.253896236419678},{"x":-1.579,"y":5.250560760498047},{"x":-1.578,"y":5.247229099273682},{"x":-1.577,"y":5.24390172958374},{"x":-1.576,"y":5.240577697753906},{"x":-1.575,"y":5.237259387969971},{"x":-1.574,"y":5.233943939208984},{"x":-1.573,"y":5.230632305145264},{"x":-1.572,"y":5.227324962615967},{"x":-1.571,"y":5.224021911621094},{"x":-1.57,"y":5.2207231521606445},{"x":-1.569,"y":5.2174272537231445},{"x":-1.568,"y":5.214136123657227},{"x":-1.567,"y":5.210849761962891},{"x":-1.566,"y":5.207566261291504},{"x":-1.565,"y":5.204287528991699},{"x":-1.564,"y":5.201012134552002},{"x":-1.563,"y":5.1977410316467285},{"x":-1.562,"y":5.194474220275879},{"x":-1.561,"y":5.191210746765137},{"x":-1.56,"y":5.187951564788818},{"x":-1.559,"y":5.184696674346924},{"x":-1.558,"y":5.181446552276611},{"x":-1.557,"y":5.178199768066406},{"x":-1.556,"y":5.174956321716309},{"x":-1.555,"y":5.171717643737793},{"x":-1.554,"y":5.168482780456543},{"x":-1.553,"y":5.165252208709717},{"x":-1.552,"y":5.162025451660156},{"x":-1.551,"y":5.158802509307861},{"x":-1.55,"y":5.15558385848999},{"x":-1.549,"y":5.152369976043701},{"x":-1.548,"y":5.149158954620361},{"x":-1.547,"y":5.1459527015686035},{"x":-1.546,"y":5.142749786376953},{"x":-1.545,"y":5.139551162719727},{"x":-1.544,"y":5.136356830596924},{"x":-1.543,"y":5.1331658363342285},{"x":-1.542,"y":5.129980087280273},{"x":-1.541,"y":5.126797199249268},{"x":-1.54,"y":5.123619079589844},{"x":-1.539,"y":5.1204447746276855},{"x":-1.538,"y":5.117273807525635},{"x":-1.537,"y":5.114107608795166},{"x":-1.536,"y":5.110945224761963},{"x":-1.535,"y":5.107787132263184},{"x":-1.534,"y":5.104633331298828},{"x":-1.533,"y":5.10148286819458},{"x":-1.532,"y":5.098336219787598},{"x":-1.531,"y":5.095194339752197},{"x":-1.53,"y":5.0920562744140625},{"x":-1.529,"y":5.088922023773193},{"x":-1.528,"y":5.085792064666748},{"x":-1.527,"y":5.082665920257568},{"x":-1.526,"y":5.0795440673828125},{"x":-1.525,"y":5.076426029205322},{"x":-1.524,"y":5.073311805725098},{"x":-1.523,"y":5.070201873779297},{"x":-1.522,"y":5.067095756530762},{"x":-1.521,"y":5.06399393081665},{"x":-1.52,"y":5.060895919799805},{"x":-1.519,"y":5.057802677154541},{"x":-1.518,"y":5.054712295532227},{"x":-1.517,"y":5.051626682281494},{"x":-1.516,"y":5.048544883728027},{"x":-1.515,"y":5.045466899871826},{"x":-1.514,"y":5.042393684387207},{"x":-1.513,"y":5.039323806762695},{"x":-1.512,"y":5.036257266998291},{"x":-1.511,"y":5.033195972442627},{"x":-1.51,"y":5.03013801574707},{"x":-1.509,"y":5.027084827423096},{"x":-1.508,"y":5.024035453796387},{"x":-1.507,"y":5.020989894866943},{"x":-1.506,"y":5.017948627471924},{"x":-1.505,"y":5.014910697937012},{"x":-1.504,"y":5.011877059936523},{"x":-1.503,"y":5.008847713470459},{"x":-1.502,"y":5.00582218170166},{"x":-1.501,"y":5.002801418304443},{"x":-1.5,"y":4.999783992767334},{"x":-1.499,"y":4.99677038192749},{"x":-1.498,"y":4.99376106262207},{"x":-1.497,"y":4.990756034851074},{"x":-1.496,"y":4.9877543449401855},{"x":-1.495,"y":4.984756946563721},{"x":-1.494,"y":4.98176383972168},{"x":-1.493,"y":4.978775501251221},{"x":-1.492,"y":4.975790023803711},{"x":-1.491,"y":4.972808837890625},{"x":-1.49,"y":4.969831466674805},{"x":-1.489,"y":4.966858386993408},{"x":-1.488,"y":4.963889122009277},{"x":-1.487,"y":4.96092414855957},{"x":-1.486,"y":4.957963466644287},{"x":-1.485,"y":4.9550065994262695},{"x":-1.484,"y":4.952053546905518},{"x":-1.483,"y":4.9491047859191895},{"x":-1.482,"y":4.946159362792969},{"x":-1.481,"y":4.94321870803833},{"x":-1.48,"y":4.940281867980957},{"x":-1.479,"y":4.93734884262085},{"x":-1.478,"y":4.934421062469482},{"x":-1.477,"y":4.931495666503906},{"x":-1.476,"y":4.928574562072754},{"x":-1.475,"y":4.925658226013184},{"x":-1.474,"y":4.922745227813721},{"x":-1.473,"y":4.91983699798584},{"x":-1.472,"y":4.916932106018066},{"x":-1.471,"y":4.914031028747559},{"x":-1.47,"y":4.911135196685791},{"x":-1.469,"y":4.908242702484131},{"x":-1.468,"y":4.905354022979736},{"x":-1.467,"y":4.902469635009766},{"x":-1.466,"y":4.899588584899902},{"x":-1.465,"y":4.896712779998779},{"x":-1.464,"y":4.8938398361206055},{"x":-1.463,"y":4.890971660614014},{"x":-1.462,"y":4.888106822967529},{"x":-1.461,"y":4.885246753692627},{"x":-1.46,"y":4.882390975952148},{"x":-1.459,"y":4.879538536071777},{"x":-1.458,"y":4.876689910888672},{"x":-1.457,"y":4.87384557723999},{"x":-1.456,"y":4.871005535125732},{"x":-1.455,"y":4.86816930770874},{"x":-1.454,"y":4.865336894989014},{"x":-1.453,"y":4.862508773803711},{"x":-1.452,"y":4.859684944152832},{"x":-1.451,"y":4.856865406036377},{"x":-1.45,"y":4.854049205780029},{"x":-1.449,"y":4.851236820220947},{"x":-1.448,"y":4.848428249359131},{"x":-1.447,"y":4.845624923706055},{"x":-1.446,"y":4.842824459075928},{"x":-1.445,"y":4.840029239654541},{"x":-1.444,"y":4.8372368812561035},{"x":-1.443,"y":4.834449291229248},{"x":-1.442,"y":4.831665515899658},{"x":-1.441,"y":4.828885555267334},{"x":-1.44,"y":4.826109409332275},{"x":-1.439,"y":4.823337554931641},{"x":-1.438,"y":4.82056999206543},{"x":-1.437,"y":4.817806720733643},{"x":-1.436,"y":4.815046787261963},{"x":-1.435,"y":4.812291145324707},{"x":-1.434,"y":4.809539318084717},{"x":-1.433,"y":4.80679178237915},{"x":-1.432,"y":4.804048538208008},{"x":-1.431,"y":4.801308631896973},{"x":-1.43,"y":4.798573017120361},{"x":-1.429,"y":4.795842170715332},{"x":-1.428,"y":4.793114185333252},{"x":-1.427,"y":4.790390968322754},{"x":-1.426,"y":4.7876715660095215},{"x":-1.425,"y":4.784955978393555},{"x":-1.424,"y":4.782244682312012},{"x":-1.423,"y":4.779537200927734},{"x":-1.422,"y":4.776834011077881},{"x":-1.421,"y":4.774135112762451},{"x":-1.42,"y":4.771439552307129},{"x":-1.419,"y":4.7687482833862305},{"x":-1.418,"y":4.766061305999756},{"x":-1.417,"y":4.763378143310547},{"x":-1.416,"y":4.7606987953186035},{"x":-1.415,"y":4.758023262023926},{"x":-1.414,"y":4.755352020263672},{"x":-1.413,"y":4.752685070037842},{"x":-1.412,"y":4.750021934509277},{"x":-1.411,"y":4.747363090515137},{"x":-1.41,"y":4.744708061218262},{"x":-1.409,"y":4.7420573234558105},{"x":-1.408,"y":4.739410400390625},{"x":-1.407,"y":4.736766815185547},{"x":-1.406,"y":4.734127998352051},{"x":-1.405,"y":4.73149299621582},{"x":-1.404,"y":4.728862762451172},{"x":-1.403,"y":4.726235866546631},{"x":-1.402,"y":4.7236127853393555},{"x":-1.401,"y":4.720994472503662},{"x":-1.4,"y":4.718379497528076},{"x":-1.399,"y":4.715768814086914},{"x":-1.398,"y":4.713161945343018},{"x":-1.397,"y":4.710558891296387},{"x":-1.396,"y":4.707961082458496},{"x":-1.395,"y":4.705366134643555},{"x":-1.394,"y":4.702775955200195},{"x":-1.393,"y":4.700189113616943},{"x":-1.392,"y":4.697606563568115},{"x":-1.391,"y":4.695028305053711},{"x":-1.39,"y":4.692453384399414},{"x":-1.389,"y":4.689883232116699},{"x":-1.388,"y":4.68731689453125},{"x":-1.387,"y":4.684754371643066},{"x":-1.386,"y":4.682195663452148},{"x":-1.385,"y":4.6796417236328125},{"x":-1.384,"y":4.677091121673584},{"x":-1.383,"y":4.674544811248779},{"x":-1.382,"y":4.67200231552124},{"x":-1.381,"y":4.669465065002441},{"x":-1.38,"y":4.666930198669434},{"x":-1.379,"y":4.664400100708008},{"x":-1.378,"y":4.661873817443848},{"x":-1.377,"y":4.659351348876953},{"x":-1.376,"y":4.656833648681641},{"x":-1.375,"y":4.6543192863464355},{"x":-1.374,"y":4.651809215545654},{"x":-1.373,"y":4.649303436279297},{"x":-1.372,"y":4.646801471710205},{"x":-1.371,"y":4.644303321838379},{"x":-1.37,"y":4.641809463500977},{"x":-1.369,"y":4.63931941986084},{"x":-1.368,"y":4.636833667755127},{"x":-1.367,"y":4.63435173034668},{"x":-1.366,"y":4.631874084472656},{"x":-1.365,"y":4.62939977645874},{"x":-1.364,"y":4.626930236816406},{"x":-1.363,"y":4.624464988708496},{"x":-1.362,"y":4.622002601623535},{"x":-1.361,"y":4.619544982910156},{"x":-1.36,"y":4.617091178894043},{"x":-1.359,"y":4.614641189575195},{"x":-1.358,"y":4.61219596862793},{"x":-1.357,"y":4.60975456237793},{"x":-1.356,"y":4.607316017150879},{"x":-1.355,"y":4.604883193969727},{"x":-1.354,"y":4.602453708648682},{"x":-1.353,"y":4.600028038024902},{"x":-1.352,"y":4.597606658935547},{"x":-1.351,"y":4.595189094543457},{"x":-1.35,"y":4.592775821685791},{"x":-1.349,"y":4.590366363525391},{"x":-1.348,"y":4.587961196899414},{"x":-1.347,"y":4.585559844970703},{"x":-1.346,"y":4.583162307739258},{"x":-1.345,"y":4.580769062042236},{"x":-1.344,"y":4.5783796310424805},{"x":-1.343,"y":4.575994491577148},{"x":-1.342,"y":4.573613166809082},{"x":-1.341,"y":4.571235656738281},{"x":-1.34,"y":4.5688629150390625},{"x":-1.339,"y":4.566493988037109},{"x":-1.338,"y":4.564128875732422},{"x":-1.337,"y":4.561767578125},{"x":-1.336,"y":4.559410095214844},{"x":-1.335,"y":4.5570573806762695},{"x":-1.334,"y":4.554708480834961},{"x":-1.333,"y":4.552363395690918},{"x":-1.332,"y":4.550022602081299},{"x":-1.331,"y":4.547685623168945},{"x":-1.33,"y":4.545352935791016},{"x":-1.329,"y":4.543023586273193},{"x":-1.328,"y":4.540699005126953},{"x":-1.327,"y":4.53837776184082},{"x":-1.326,"y":4.5360612869262695},{"x":-1.325,"y":4.533748626708984},{"x":-1.324,"y":4.531439781188965},{"x":-1.323,"y":4.529135227203369},{"x":-1.322,"y":4.526834487915039},{"x":-1.321,"y":4.524537563323975},{"x":-1.32,"y":4.522245407104492},{"x":-1.319,"y":4.519956588745117},{"x":-1.318,"y":4.517671585083008},{"x":-1.317,"y":4.5153913497924805},{"x":-1.316,"y":4.513114929199219},{"x":-1.315,"y":4.510842323303223},{"x":-1.314,"y":4.508573532104492},{"x":-1.313,"y":4.5063090324401855},{"x":-1.312,"y":4.504048824310303},{"x":-1.311,"y":4.501791954040527},{"x":-1.31,"y":4.499539852142334},{"x":-1.309,"y":4.497291564941406},{"x":-1.308,"y":4.495047569274902},{"x":-1.307,"y":4.492806911468506},{"x":-1.306,"y":4.490570545196533},{"x":-1.305,"y":4.488338470458984},{"x":-1.304,"y":4.486110210418701},{"x":-1.303,"y":4.483885765075684},{"x":-1.302,"y":4.481666088104248},{"x":-1.301,"y":4.47944974899292},{"x":-1.3,"y":4.477237701416016},{"x":-1.299,"y":4.475029468536377},{"x":-1.298,"y":4.472825050354004},{"x":-1.297,"y":4.470625400543213},{"x":-1.296,"y":4.4684295654296875},{"x":-1.295,"y":4.4662370681762695},{"x":-1.294,"y":4.464049339294434},{"x":-1.293,"y":4.461865425109863},{"x":-1.292,"y":4.459685325622559},{"x":-1.291,"y":4.457509517669678},{"x":-1.29,"y":4.4553375244140625},{"x":-1.289,"y":4.453169822692871},{"x":-1.288,"y":4.451005935668945},{"x":-1.287,"y":4.448845863342285},{"x":-1.286,"y":4.446690559387207},{"x":-1.285,"y":4.4445390701293945},{"x":-1.284,"y":4.442391395568848},{"x":-1.283,"y":4.440247535705566},{"x":-1.282,"y":4.438107490539551},{"x":-1.281,"y":4.435972213745117},{"x":-1.28,"y":4.433840751647949},{"x":-1.279,"y":4.431713104248047},{"x":-1.278,"y":4.42958927154541},{"x":-1.277,"y":4.427469730377197},{"x":-1.276,"y":4.425354480743408},{"x":-1.275,"y":4.423242568969727},{"x":-1.274,"y":4.421135902404785},{"x":-1.273,"y":4.419032096862793},{"x":-1.272,"y":4.416933059692383},{"x":-1.271,"y":4.41483736038208},{"x":-1.27,"y":4.412745475769043},{"x":-1.269,"y":4.410658836364746},{"x":-1.268,"y":4.408575057983398},{"x":-1.267,"y":4.406496047973633},{"x":-1.266,"y":4.404420852661133},{"x":-1.265,"y":4.402349472045898},{"x":-1.264,"y":4.400282859802246},{"x":-1.263,"y":4.398219585418701},{"x":-1.262,"y":4.396160125732422},{"x":-1.261,"y":4.394105434417725},{"x":-1.26,"y":4.392054080963135},{"x":-1.259,"y":4.390007019042969},{"x":-1.258,"y":4.387964248657227},{"x":-1.257,"y":4.385924816131592},{"x":-1.256,"y":4.383890151977539},{"x":-1.255,"y":4.381858825683594},{"x":-1.254,"y":4.3798322677612305},{"x":-1.253,"y":4.377809524536133},{"x":-1.252,"y":4.375790596008301},{"x":-1.251,"y":4.373775482177734},{"x":-1.25,"y":4.371764659881592},{"x":-1.249,"y":4.369757652282715},{"x":-1.248,"y":4.36775541305542},{"x":-1.247,"y":4.365756034851074},{"x":-1.246,"y":4.363761901855469},{"x":-1.245,"y":4.361771106719971},{"x":-1.244,"y":4.3597846031188965},{"x":-1.243,"y":4.357801914215088},{"x":-1.242,"y":4.355823040008545},{"x":-1.241,"y":4.353848934173584},{"x":-1.24,"y":4.3518781661987305},{"x":-1.239,"y":4.349911689758301},{"x":-1.238,"y":4.347949028015137},{"x":-1.237,"y":4.3459906578063965},{"x":-1.236,"y":4.344036102294922},{"x":-1.235,"y":4.342085838317871},{"x":-1.234,"y":4.340139389038086},{"x":-1.233,"y":4.338197231292725},{"x":-1.232,"y":4.336258888244629},{"x":-1.231,"y":4.334324359893799},{"x":-1.23,"y":4.332393646240234},{"x":-1.229,"y":4.330467700958252},{"x":-1.228,"y":4.328545570373535},{"x":-1.227,"y":4.326627731323242},{"x":-1.226,"y":4.324712753295898},{"x":-1.225,"y":4.322803020477295},{"x":-1.224,"y":4.320897102355957},{"x":-1.223,"y":4.318994522094727},{"x":-1.222,"y":4.317096710205078},{"x":-1.221,"y":4.315202713012695},{"x":-1.22,"y":4.313312530517578},{"x":-1.219,"y":4.311426639556885},{"x":-1.218,"y":4.309544563293457},{"x":-1.217,"y":4.307666778564453},{"x":-1.216,"y":4.305792808532715},{"x":-1.215,"y":4.3039231300354},{"x":-1.214,"y":4.302057266235352},{"x":-1.213,"y":4.300195693969727},{"x":-1.212,"y":4.298337459564209},{"x":-1.211,"y":4.296483516693115},{"x":-1.21,"y":4.294633865356445},{"x":-1.209,"y":4.292788028717041},{"x":-1.208,"y":4.290946006774902},{"x":-1.207,"y":4.289108753204346},{"x":-1.206,"y":4.287275314331055},{"x":-1.205,"y":4.285445213317871},{"x":-1.204,"y":4.2836198806762695},{"x":-1.203,"y":4.281798362731934},{"x":-1.202,"y":4.279980659484863},{"x":-1.201,"y":4.278166770935059},{"x":-1.2,"y":4.276357650756836},{"x":-1.199,"y":4.274552345275879},{"x":-1.198,"y":4.2727508544921875},{"x":-1.197,"y":4.270953178405762},{"x":-1.196,"y":4.269160270690918},{"x":-1.195,"y":4.267370700836182},{"x":-1.194,"y":4.265584945678711},{"x":-1.193,"y":4.263803482055664},{"x":-1.192,"y":4.262026786804199},{"x":-1.191,"y":4.260253429412842},{"x":-1.19,"y":4.25848388671875},{"x":-1.189,"y":4.256718635559082},{"x":-1.188,"y":4.254957675933838},{"x":-1.187,"y":4.253200531005859},{"x":-1.186,"y":4.2514472007751465},{"x":-1.185,"y":4.249698162078857},{"x":-1.184,"y":4.247953414916992},{"x":-1.183,"y":4.246212005615234},{"x":-1.182,"y":4.244475364685059},{"x":-1.181,"y":4.24274206161499},{"x":-1.18,"y":4.241013050079346},{"x":-1.179,"y":4.239288330078125},{"x":-1.178,"y":4.23756742477417},{"x":-1.177,"y":4.2358503341674805},{"x":-1.176,"y":4.234137535095215},{"x":-1.175,"y":4.232428550720215},{"x":-1.174,"y":4.230723857879639},{"x":-1.173,"y":4.229022979736328},{"x":-1.172,"y":4.227326393127441},{"x":-1.171,"y":4.22563362121582},{"x":-1.17,"y":4.223944664001465},{"x":-1.169,"y":4.222259998321533},{"x":-1.168,"y":4.220579147338867},{"x":-1.167,"y":4.218902587890625},{"x":-1.166,"y":4.217230319976807},{"x":-1.165,"y":4.215561866760254},{"x":-1.164,"y":4.213897228240967},{"x":-1.163,"y":4.212236404418945},{"x":-1.162,"y":4.210579872131348},{"x":-1.161,"y":4.208927154541016},{"x":-1.16,"y":4.207279205322266},{"x":-1.159,"y":4.205635070800781},{"x":-1.158,"y":4.203994274139404},{"x":-1.157,"y":4.202358245849609},{"x":-1.156,"y":4.200725555419922},{"x":-1.155,"y":4.199097156524658},{"x":-1.154,"y":4.19747257232666},{"x":-1.153,"y":4.195852756500244},{"x":-1.152,"y":4.1942362785339355},{"x":-1.151,"y":4.192624092102051},{"x":-1.15,"y":4.19101619720459},{"x":-1.149,"y":4.1894121170043945},{"x":-1.148,"y":4.187811851501465},{"x":-1.147,"y":4.186215400695801},{"x":-1.146,"y":4.184623718261719},{"x":-1.145,"y":4.183035373687744},{"x":-1.144,"y":4.181451797485352},{"x":-1.143,"y":4.179871559143066},{"x":-1.142,"y":4.178295612335205},{"x":-1.141,"y":4.176723480224609},{"x":-1.14,"y":4.1751556396484375},{"x":-1.139,"y":4.173591613769531},{"x":-1.138,"y":4.172031879425049},{"x":-1.137,"y":4.170475959777832},{"x":-1.136,"y":4.168924331665039},{"x":-1.135,"y":4.167376518249512},{"x":-1.134,"y":4.16583251953125},{"x":-1.133,"y":4.164292812347412},{"x":-1.132,"y":4.16275691986084},{"x":-1.131,"y":4.161225318908691},{"x":-1.13,"y":4.159697532653809},{"x":-1.129,"y":4.15817403793335},{"x":-1.128,"y":4.156654357910156},{"x":-1.127,"y":4.155138969421387},{"x":-1.126,"y":4.153627395629883},{"x":-1.125,"y":4.1521196365356445},{"x":-1.124,"y":4.15061616897583},{"x":-1.123,"y":4.149116516113281},{"x":-1.122,"y":4.147621154785156},{"x":-1.121,"y":4.146130084991455},{"x":-1.12,"y":4.144642353057861},{"x":-1.119,"y":4.143158912658691},{"x":-1.118,"y":4.141679763793945},{"x":-1.117,"y":4.140204429626465},{"x":-1.116,"y":4.138733386993408},{"x":-1.115,"y":4.137266159057617},{"x":-1.114,"y":4.135802268981934},{"x":-1.113,"y":4.134343147277832},{"x":-1.112,"y":4.132888317108154},{"x":-1.111,"y":4.131436824798584},{"x":-1.11,"y":4.1299896240234375},{"x":-1.109,"y":4.128546714782715},{"x":-1.108,"y":4.127107620239258},{"x":-1.107,"y":4.125672817230225},{"x":-1.106,"y":4.124241828918457},{"x":-1.105,"y":4.122814178466797},{"x":-1.104,"y":4.121391296386719},{"x":-1.103,"y":4.119973182678223},{"x":-1.102,"y":4.118557929992676},{"x":-1.101,"y":4.1171464920043945},{"x":-1.1,"y":4.115739822387695},{"x":-1.099,"y":4.114336967468262},{"x":-1.098,"y":4.112938404083252},{"x":-1.097,"y":4.111543655395508},{"x":-1.096,"y":4.110152244567871},{"x":-1.095,"y":4.108766078948975},{"x":-1.094,"y":4.1073832511901855},{"x":-1.093,"y":4.10600471496582},{"x":-1.092,"y":4.1046295166015625},{"x":-1.091,"y":4.103259086608887},{"x":-1.09,"y":4.101892471313477},{"x":-1.089,"y":4.100529670715332},{"x":-1.088,"y":4.0991716384887695},{"x":-1.087,"y":4.0978169441223145},{"x":-1.086,"y":4.096466541290283},{"x":-1.085,"y":4.095119953155518},{"x":-1.084,"y":4.093777656555176},{"x":-1.083,"y":4.092438697814941},{"x":-1.082,"y":4.091104507446289},{"x":-1.081,"y":4.089774131774902},{"x":-1.08,"y":4.088447570800781},{"x":-1.079,"y":4.087125301361084},{"x":-1.078,"y":4.0858073234558105},{"x":-1.077,"y":4.0844926834106445},{"x":-1.076,"y":4.0831828117370605},{"x":-1.075,"y":4.081876754760742},{"x":-1.074,"y":4.080574035644531},{"x":-1.073,"y":4.079276084899902},{"x":-1.072,"y":4.077981948852539},{"x":-1.071,"y":4.076691627502441},{"x":-1.07,"y":4.075406074523926},{"x":-1.069,"y":4.074123382568359},{"x":-1.068,"y":4.072845458984375},{"x":-1.067,"y":4.071571350097656},{"x":-1.066,"y":4.0703020095825195},{"x":-1.065,"y":4.069035530090332},{"x":-1.064,"y":4.067773818969727},{"x":-1.063,"y":4.066515922546387},{"x":-1.062,"y":4.0652618408203125},{"x":-1.061,"y":4.064012050628662},{"x":-1.06,"y":4.062766075134277},{"x":-1.059,"y":4.061524391174316},{"x":-1.058,"y":4.060286521911621},{"x":-1.057,"y":4.059053421020508},{"x":-1.056,"y":4.057823181152344},{"x":-1.055,"y":4.0565972328186035},{"x":-1.054,"y":4.055376052856445},{"x":-1.053,"y":4.0541582107543945},{"x":-1.052,"y":4.052944660186768},{"x":-1.051,"y":4.051734924316406},{"x":-1.05,"y":4.050529479980469},{"x":-1.049,"y":4.049327850341797},{"x":-1.048,"y":4.048130035400391},{"x":-1.047,"y":4.046936988830566},{"x":-1.046,"y":4.045747756958008},{"x":-1.045,"y":4.044562339782715},{"x":-1.044,"y":4.0433807373046875},{"x":-1.043,"y":4.042202949523926},{"x":-1.042,"y":4.041029930114746},{"x":-1.041,"y":4.039860725402832},{"x":-1.04,"y":4.038695335388184},{"x":-1.039,"y":4.037533760070801},{"x":-1.038,"y":4.036376953125},{"x":-1.037,"y":4.035223484039307},{"x":-1.036,"y":4.034074306488037},{"x":-1.035,"y":4.032928943634033},{"x":-1.034,"y":4.031787872314453},{"x":-1.033,"y":4.030651092529297},{"x":-1.032,"y":4.029517650604248},{"x":-1.031,"y":4.028388500213623},{"x":-1.03,"y":4.027263641357422},{"x":-1.029,"y":4.026142597198486},{"x":-1.028,"y":4.025025367736816},{"x":-1.027,"y":4.02391242980957},{"x":-1.026,"y":4.022803783416748},{"x":-1.025,"y":4.021698951721191},{"x":-1.024,"y":4.0205979347229},{"x":-1.023,"y":4.019500732421875},{"x":-1.022,"y":4.018407821655273},{"x":-1.021,"y":4.017319202423096},{"x":-1.02,"y":4.016234397888184},{"x":-1.019,"y":4.015153884887695},{"x":-1.018,"y":4.014077186584473},{"x":-1.017,"y":4.013004302978516},{"x":-1.016,"y":4.011935234069824},{"x":-1.015,"y":4.010870933532715},{"x":-1.014,"y":4.009810447692871},{"x":-1.013,"y":4.008753776550293},{"x":-1.012,"y":4.0077009201049805},{"x":-1.011,"y":4.00665283203125},{"x":-1.01,"y":4.005608081817627},{"x":-1.009,"y":4.004567623138428},{"x":-1.008,"y":4.003531455993652},{"x":-1.007,"y":4.002498626708984},{"x":-1.006,"y":4.001470565795898},{"x":-1.005,"y":4.000446319580078},{"x":-1.004,"y":3.9994256496429443},{"x":-1.003,"y":3.9984090328216553},{"x":-1.002,"y":3.997396945953369},{"x":-1.001,"y":3.9963886737823486},{"x":-1.0,"y":3.995384454727173},{"x":-0.999,"y":3.994384288787842},{"x":-0.998,"y":3.9933881759643555},{"x":-0.997,"y":3.9923958778381348},{"x":-0.996,"y":3.991407632827759},{"x":-0.995,"y":3.9904234409332275},{"x":-0.994,"y":3.98944354057312},{"x":-0.993,"y":3.9884674549102783},{"x":-0.992,"y":3.9874954223632812},{"x":-0.991,"y":3.986527442932129},{"x":-0.99,"y":3.9855635166168213},{"x":-0.989,"y":3.9846034049987793},{"x":-0.988,"y":3.983647346496582},{"x":-0.987,"y":3.9826955795288086},{"x":-0.986,"y":3.981747627258301},{"x":-0.985,"y":3.980803966522217},{"x":-0.984,"y":3.9798638820648193},{"x":-0.983,"y":3.9789280891418457},{"x":-0.982,"y":3.977996349334717},{"x":-0.981,"y":3.9770686626434326},{"x":-0.98,"y":3.976144790649414},{"x":-0.979,"y":3.9752249717712402},{"x":-0.978,"y":3.9743094444274902},{"x":-0.977,"y":3.973397731781006},{"x":-0.976,"y":3.9724903106689453},{"x":-0.975,"y":3.9715867042541504},{"x":-0.974,"y":3.970686912536621},{"x":-0.973,"y":3.9697914123535156},{"x":-0.972,"y":3.968899726867676},{"x":-0.971,"y":3.9680123329162598},{"x":-0.97,"y":3.9671289920806885},{"x":-0.969,"y":3.966249465942383},{"x":-0.968,"y":3.965373992919922},{"x":-0.967,"y":3.9645025730133057},{"x":-0.966,"y":3.963635206222534},{"x":-0.965,"y":3.9627718925476074},{"x":-0.964,"y":3.9619126319885254},{"x":-0.963,"y":3.961057186126709},{"x":-0.962,"y":3.9602060317993164},{"x":-0.961,"y":3.9593589305877686},{"x":-0.96,"y":3.9585156440734863},{"x":-0.959,"y":3.957676410675049},{"x":-0.958,"y":3.956841230392456},{"x":-0.957,"y":3.956010341644287},{"x":-0.956,"y":3.9551830291748047},{"x":-0.955,"y":3.954360008239746},{"x":-0.954,"y":3.953540802001953},{"x":-0.953,"y":3.952725887298584},{"x":-0.952,"y":3.9519150257110596},{"x":-0.951,"y":3.951107978820801},{"x":-0.95,"y":3.9503049850463867},{"x":-0.949,"y":3.9495062828063965},{"x":-0.948,"y":3.948711395263672},{"x":-0.947,"y":3.947920322418213},{"x":-0.946,"y":3.9471335411071777},{"x":-0.945,"y":3.9463508129119873},{"x":-0.944,"y":3.9455718994140625},{"x":-0.943,"y":3.9447970390319824},{"x":-0.942,"y":3.944026470184326},{"x":-0.941,"y":3.9432597160339355},{"x":-0.94,"y":3.9424970149993896},{"x":-0.939,"y":3.9417383670806885},{"x":-0.938,"y":3.940983772277832},{"x":-0.937,"y":3.940232992172241},{"x":-0.936,"y":3.939486503601074},{"x":-0.935,"y":3.938744068145752},{"x":-0.934,"y":3.9380054473876953},{"x":-0.933,"y":3.9372711181640625},{"x":-0.932,"y":3.9365406036376953},{"x":-0.931,"y":3.9358139038085938},{"x":-0.93,"y":3.935091495513916},{"x":-0.929,"y":3.934373378753662},{"x":-0.928,"y":3.9336588382720947},{"x":-0.927,"y":3.932948589324951},{"x":-0.926,"y":3.932241916656494},{"x":-0.925,"y":3.931540012359619},{"x":-0.924,"y":3.9308416843414307},{"x":-0.923,"y":3.930147409439087},{"x":-0.922,"y":3.929457187652588},{"x":-0.921,"y":3.9287710189819336},{"x":-0.92,"y":3.928088903427124},{"x":-0.919,"y":3.92741060256958},{"x":-0.918,"y":3.926736354827881},{"x":-0.917,"y":3.9260663986206055},{"x":-0.916,"y":3.925400495529175},{"x":-0.915,"y":3.9247384071350098},{"x":-0.914,"y":3.9240803718566895},{"x":-0.913,"y":3.923426389694214},{"x":-0.912,"y":3.922776699066162},{"x":-0.911,"y":3.922130584716797},{"x":-0.91,"y":3.9214885234832764},{"x":-0.909,"y":3.9208507537841797},{"x":-0.908,"y":3.9202170372009277},{"x":-0.907,"y":3.9195871353149414},{"x":-0.906,"y":3.9189610481262207},{"x":-0.905,"y":3.918339252471924},{"x":-0.904,"y":3.917721748352051},{"x":-0.903,"y":3.9171080589294434},{"x":-0.902,"y":3.9164981842041016},{"x":-0.901,"y":3.9158928394317627},{"x":-0.9,"y":3.9152913093566895},{"x":-0.899,"y":3.9146933555603027},{"x":-0.898,"y":3.91409969329834},{"x":-0.897,"y":3.913510322570801},{"x":-0.896,"y":3.9129247665405273},{"x":-0.895,"y":3.9123435020446777},{"x":-0.894,"y":3.9117658138275146},{"x":-0.893,"y":3.9111924171447754},{"x":-0.892,"y":3.910623073577881},{"x":-0.891,"y":3.910057544708252},{"x":-0.89,"y":3.9094960689544678},{"x":-0.889,"y":3.9089388847351074},{"x":-0.888,"y":3.9083855152130127},{"x":-0.887,"y":3.9078361988067627},{"x":-0.886,"y":3.9072909355163574},{"x":-0.885,"y":3.906749725341797},{"x":-0.884,"y":3.906212568283081},{"x":-0.883,"y":3.905679225921631},{"x":-0.882,"y":3.9051501750946045},{"x":-0.881,"y":3.9046249389648438},{"x":-0.88,"y":3.904103994369507},{"x":-0.879,"y":3.9035868644714355},{"x":-0.878,"y":3.903073787689209},{"x":-0.877,"y":3.902564525604248},{"x":-0.876,"y":3.902060031890869},{"x":-0.875,"y":3.9015588760375977},{"x":-0.874,"y":3.901061773300171},{"x":-0.873,"y":3.900568962097168},{"x":-0.872,"y":3.9000802040100098},{"x":-0.871,"y":3.899595260620117},{"x":-0.87,"y":3.8991141319274902},{"x":-0.869,"y":3.898637294769287},{"x":-0.868,"y":3.8981645107269287},{"x":-0.867,"y":3.897696018218994},{"x":-0.866,"y":3.897231101989746},{"x":-0.865,"y":3.896770477294922},{"x":-0.864,"y":3.8963136672973633},{"x":-0.863,"y":3.8958611488342285},{"x":-0.862,"y":3.8954124450683594},{"x":-0.861,"y":3.894967794418335},{"x":-0.86,"y":3.8945271968841553},{"x":-0.859,"y":3.8940906524658203},{"x":-0.858,"y":3.89365816116333},{"x":-0.857,"y":3.8932294845581055},{"x":-0.856,"y":3.8928050994873047},{"x":-0.855,"y":3.8923845291137695},{"x":-0.854,"y":3.891968250274658},{"x":-0.853,"y":3.8915557861328125},{"x":-0.852,"y":3.8911476135253906},{"x":-0.851,"y":3.8907432556152344},{"x":-0.85,"y":3.8903427124023438},{"x":-0.849,"y":3.889946460723877},{"x":-0.848,"y":3.889554500579834},{"x":-0.847,"y":3.8891658782958984},{"x":-0.846,"y":3.8887815475463867},{"x":-0.845,"y":3.888401508331299},{"x":-0.844,"y":3.8880252838134766},{"x":-0.843,"y":3.887653350830078},{"x":-0.842,"y":3.8872852325439453},{"x":-0.841,"y":3.886920928955078},{"x":-0.84,"y":3.8865609169006348},{"x":-0.839,"y":3.886204957962036},{"x":-0.838,"y":3.885852813720703},{"x":-0.837,"y":3.885504722595215},{"x":-0.836,"y":3.8851609230041504},{"x":-0.835,"y":3.8848211765289307},{"x":-0.834,"y":3.8844852447509766},{"x":-0.833,"y":3.884153366088867},{"x":-0.832,"y":3.8838255405426025},{"x":-0.831,"y":3.8835015296936035},{"x":-0.83,"y":3.8831818103790283},{"x":-0.829,"y":3.8828659057617188},{"x":-0.828,"y":3.882554531097412},{"x":-0.827,"y":3.882246494293213},{"x":-0.826,"y":3.8819427490234375},{"x":-0.825,"y":3.881643056869507},{"x":-0.824,"y":3.881347417831421},{"x":-0.823,"y":3.8810558319091797},{"x":-0.822,"y":3.880768299102783},{"x":-0.821,"y":3.8804845809936523},{"x":-0.82,"y":3.8802051544189453},{"x":-0.819,"y":3.879929780960083},{"x":-0.818,"y":3.8796582221984863},{"x":-0.817,"y":3.8793907165527344},{"x":-0.816,"y":3.879127264022827},{"x":-0.815,"y":3.8788681030273438},{"x":-0.814,"y":3.878612518310547},{"x":-0.813,"y":3.878361225128174},{"x":-0.812,"y":3.8781137466430664},{"x":-0.811,"y":3.877870559692383},{"x":-0.81,"y":3.877631187438965},{"x":-0.809,"y":3.8773961067199707},{"x":-0.808,"y":3.877164840698242},{"x":-0.807,"y":3.8769378662109375},{"x":-0.806,"y":3.8767144680023193},{"x":-0.805,"y":3.876495361328125},{"x":-0.804,"y":3.876279830932617},{"x":-0.803,"y":3.8760690689086914},{"x":-0.802,"y":3.8758621215820312},{"x":-0.801,"y":3.8756589889526367},{"x":-0.8,"y":3.875459909439087},{"x":-0.799,"y":3.875265121459961},{"x":-0.798,"y":3.8750741481781006},{"x":-0.797,"y":3.874886989593506},{"x":-0.796,"y":3.874704122543335},{"x":-0.795,"y":3.874525308609009},{"x":-0.794,"y":3.8743505477905273},{"x":-0.793,"y":3.8741796016693115},{"x":-0.792,"y":3.8740127086639404},{"x":-0.791,"y":3.873850107192993},{"x":-0.79,"y":3.8736913204193115},{"x":-0.789,"y":3.8735365867614746},{"x":-0.788,"y":3.8733856678009033},{"x":-0.787,"y":3.873239278793335},{"x":-0.786,"y":3.873096466064453},{"x":-0.785,"y":3.872957944869995},{"x":-0.784,"y":3.8728232383728027},{"x":-0.783,"y":3.872692823410034},{"x":-0.782,"y":3.8725662231445312},{"x":-0.781,"y":3.872443675994873},{"x":-0.78,"y":3.8723249435424805},{"x":-0.779,"y":3.87221097946167},{"x":-0.778,"y":3.872100353240967},{"x":-0.777,"y":3.8719937801361084},{"x":-0.776,"y":3.871891498565674},{"x":-0.775,"y":3.871793031692505},{"x":-0.774,"y":3.8716988563537598},{"x":-0.773,"y":3.8716084957122803},{"x":-0.772,"y":3.8715221881866455},{"x":-0.771,"y":3.8714399337768555},{"x":-0.77,"y":3.87136173248291},{"x":-0.769,"y":3.8712873458862305},{"x":-0.768,"y":3.8712172508239746},{"x":-0.767,"y":3.8711514472961426},{"x":-0.766,"y":3.871088981628418},{"x":-0.765,"y":3.8710310459136963},{"x":-0.764,"y":3.8709769248962402},{"x":-0.763,"y":3.870926856994629},{"x":-0.762,"y":3.8708808422088623},{"x":-0.761,"y":3.8708388805389404},{"x":-0.76,"y":3.8708009719848633},{"x":-0.759,"y":3.870767116546631},{"x":-0.758,"y":3.870737075805664},{"x":-0.757,"y":3.870711326599121},{"x":-0.756,"y":3.8706891536712646},{"x":-0.755,"y":3.870671272277832},{"x":-0.754,"y":3.8706576824188232},{"x":-0.753,"y":3.87064790725708},{"x":-0.752,"y":3.8706421852111816},{"x":-0.751,"y":3.870640277862549},{"x":-0.75,"y":3.87064266204834},{"x":-0.749,"y":3.8706488609313965},{"x":-0.748,"y":3.870659351348877},{"x":-0.747,"y":3.870673656463623},{"x":-0.746,"y":3.870692253112793},{"x":-0.745,"y":3.8707146644592285},{"x":-0.744,"y":3.8707408905029297},{"x":-0.743,"y":3.8707714080810547},{"x":-0.742,"y":3.8708062171936035},{"x":-0.741,"y":3.8708443641662598},{"x":-0.74,"y":3.870887041091919},{"x":-0.739,"y":3.870934009552002},{"x":-0.738,"y":3.8709843158721924},{"x":-0.737,"y":3.8710389137268066},{"x":-0.736,"y":3.8710975646972656},{"x":-0.735,"y":3.8711605072021484},{"x":-0.734,"y":3.8712270259857178},{"x":-0.733,"y":3.871297836303711},{"x":-0.732,"y":3.8713724613189697},{"x":-0.731,"y":3.8714511394500732},{"x":-0.73,"y":3.8715343475341797},{"x":-0.729,"y":3.8716211318969727},{"x":-0.728,"y":3.8717117309570312},{"x":-0.727,"y":3.8718066215515137},{"x":-0.726,"y":3.87190580368042},{"x":-0.725,"y":3.872008800506592},{"x":-0.724,"y":3.8721156120300293},{"x":-0.723,"y":3.8722264766693115},{"x":-0.722,"y":3.8723416328430176},{"x":-0.721,"y":3.8724608421325684},{"x":-0.72,"y":3.8725836277008057},{"x":-0.719,"y":3.872710704803467},{"x":-0.718,"y":3.8728420734405518},{"x":-0.717,"y":3.8729772567749023},{"x":-0.716,"y":3.8731164932250977},{"x":-0.715,"y":3.8732595443725586},{"x":-0.714,"y":3.8734068870544434},{"x":-0.713,"y":3.8735580444335938},{"x":-0.712,"y":3.873713493347168},{"x":-0.711,"y":3.873872756958008},{"x":-0.71,"y":3.8740363121032715},{"x":-0.709,"y":3.874203681945801},{"x":-0.708,"y":3.8743748664855957},{"x":-0.707,"y":3.8745501041412354},{"x":-0.706,"y":3.874729633331299},{"x":-0.705,"y":3.874913215637207},{"x":-0.704,"y":3.875100612640381},{"x":-0.703,"y":3.8752920627593994},{"x":-0.702,"y":3.875487804412842},{"x":-0.701,"y":3.87568736076355},{"x":-0.7,"y":3.8758909702301025},{"x":-0.699,"y":3.8760986328125},{"x":-0.698,"y":3.876310348510742},{"x":-0.697,"y":3.87652587890625},{"x":-0.696,"y":3.8767457008361816},{"x":-0.695,"y":3.876969337463379},{"x":-0.694,"y":3.877197265625},{"x":-0.693,"y":3.8774290084838867},{"x":-0.692,"y":3.877664804458618},{"x":-0.691,"y":3.8779044151306152},{"x":-0.69,"y":3.8781485557556152},{"x":-0.689,"y":3.878396511077881},{"x":-0.688,"y":3.878648281097412},{"x":-0.687,"y":3.878904342651367},{"x":-0.686,"y":3.879164218902588},{"x":-0.685,"y":3.8794283866882324},{"x":-0.684,"y":3.8796963691711426},{"x":-0.683,"y":3.8799681663513184},{"x":-0.682,"y":3.880244255065918},{"x":-0.681,"y":3.8805246353149414},{"x":-0.68,"y":3.8808085918426514},{"x":-0.679,"y":3.881096839904785},{"x":-0.678,"y":3.8813889026641846},{"x":-0.677,"y":3.881685256958008},{"x":-0.676,"y":3.8819854259490967},{"x":-0.675,"y":3.8822896480560303},{"x":-0.674,"y":3.8825979232788086},{"x":-0.673,"y":3.8829102516174316},{"x":-0.672,"y":3.8832266330718994},{"x":-0.671,"y":3.883546829223633},{"x":-0.67,"y":3.883871555328369},{"x":-0.669,"y":3.884199857711792},{"x":-0.668,"y":3.8845322132110596},{"x":-0.667,"y":3.884868621826172},{"x":-0.666,"y":3.885209321975708},{"x":-0.665,"y":3.8855538368225098},{"x":-0.664,"y":3.8859024047851562},{"x":-0.663,"y":3.8862547874450684},{"x":-0.662,"y":3.8866114616394043},{"x":-0.661,"y":3.886972188949585},{"x":-0.66,"y":3.8873367309570312},{"x":-0.659,"y":3.8877053260803223},{"x":-0.658,"y":3.888078212738037},{"x":-0.657,"y":3.8884549140930176},{"x":-0.656,"y":3.8888356685638428},{"x":-0.655,"y":3.8892204761505127},{"x":-0.654,"y":3.8896093368530273},{"x":-0.653,"y":3.8900020122528076},{"x":-0.652,"y":3.8903989791870117},{"x":-0.651,"y":3.8907999992370605},{"x":-0.65,"y":3.891204833984375},{"x":-0.649,"y":3.891613721847534},{"x":-0.648,"y":3.892026662826538},{"x":-0.647,"y":3.8924436569213867},{"x":-0.646,"y":3.89286470413208},{"x":-0.645,"y":3.893289804458618},{"x":-0.644,"y":3.893718957901001},{"x":-0.643,"y":3.8941519260406494},{"x":-0.642,"y":3.8945889472961426},{"x":-0.641,"y":3.8950302600860596},{"x":-0.64,"y":3.895475387573242},{"x":-0.639,"y":3.8959245681762695},{"x":-0.638,"y":3.8963778018951416},{"x":-0.637,"y":3.8968350887298584},{"x":-0.636,"y":3.89729642868042},{"x":-0.635,"y":3.897761583328247},{"x":-0.634,"y":3.898231029510498},{"x":-0.633,"y":3.8987042903900146},{"x":-0.632,"y":3.899181842803955},{"x":-0.631,"y":3.899663209915161},{"x":-0.63,"y":3.900148630142212},{"x":-0.629,"y":3.9006381034851074},{"x":-0.628,"y":3.9011316299438477},{"x":-0.627,"y":3.9016292095184326},{"x":-0.626,"y":3.9021308422088623},{"x":-0.625,"y":3.9026362895965576},{"x":-0.624,"y":3.9031457901000977},{"x":-0.623,"y":3.9036593437194824},{"x":-0.622,"y":3.904177188873291},{"x":-0.621,"y":3.9046988487243652},{"x":-0.62,"y":3.905224561691284},{"x":-0.619,"y":3.9057540893554688},{"x":-0.618,"y":3.9062881469726562},{"x":-0.617,"y":3.9068257808685303},{"x":-0.616,"y":3.907367706298828},{"x":-0.615,"y":3.9079134464263916},{"x":-0.614,"y":3.908463478088379},{"x":-0.613,"y":3.9090170860290527},{"x":-0.612,"y":3.9095752239227295},{"x":-0.611,"y":3.910137176513672},{"x":-0.61,"y":3.910703182220459},{"x":-0.609,"y":3.9112730026245117},{"x":-0.608,"y":3.9118471145629883},{"x":-0.607,"y":3.9124250411987305},{"x":-0.606,"y":3.9130072593688965},{"x":-0.605,"y":3.913593292236328},{"x":-0.604,"y":3.9141833782196045},{"x":-0.603,"y":3.9147775173187256},{"x":-0.602,"y":3.9153757095336914},{"x":-0.601,"y":3.915977954864502},{"x":-0.6,"y":3.916584014892578},{"x":-0.599,"y":3.917194366455078},{"x":-0.598,"y":3.917808771133423},{"x":-0.597,"y":3.918426990509033},{"x":-0.596,"y":3.9190492630004883},{"x":-0.595,"y":3.919675588607788},{"x":-0.594,"y":3.9203062057495117},{"x":-0.593,"y":3.920940399169922},{"x":-0.592,"y":3.921578884124756},{"x":-0.591,"y":3.9222214221954346},{"x":-0.59,"y":3.922867774963379},{"x":-0.589,"y":3.923518419265747},{"x":-0.588,"y":3.92417311668396},{"x":-0.587,"y":3.9248313903808594},{"x":-0.586,"y":3.9254941940307617},{"x":-0.585,"y":3.9261608123779297},{"x":-0.584,"y":3.9268312454223633},{"x":-0.583,"y":3.9275059700012207},{"x":-0.582,"y":3.928184747695923},{"x":-0.581,"y":3.9288675785064697},{"x":-0.58,"y":3.9295542240142822},{"x":-0.579,"y":3.9302449226379395},{"x":-0.578,"y":3.9309399127960205},{"x":-0.577,"y":3.931638717651367},{"x":-0.576,"y":3.9323415756225586},{"x":-0.575,"y":3.9330484867095947},{"x":-0.574,"y":3.9337592124938965},{"x":-0.573,"y":3.934474229812622},{"x":-0.572,"y":3.9351933002471924},{"x":-0.571,"y":3.9359164237976074},{"x":-0.57,"y":3.936643123626709},{"x":-0.569,"y":3.9373743534088135},{"x":-0.568,"y":3.9381093978881836},{"x":-0.567,"y":3.9388484954833984},{"x":-0.566,"y":3.939591407775879},{"x":-0.565,"y":3.940338611602783},{"x":-0.564,"y":3.9410898685455322},{"x":-0.563,"y":3.941844940185547},{"x":-0.562,"y":3.9426043033599854},{"x":-0.561,"y":3.9433674812316895},{"x":-0.56,"y":3.9441347122192383},{"x":-0.559,"y":3.944906234741211},{"x":-0.558,"y":3.945681571960449},{"x":-0.557,"y":3.946460723876953},{"x":-0.556,"y":3.947244167327881},{"x":-0.555,"y":3.9480316638946533},{"x":-0.554,"y":3.9488229751586914},{"x":-0.553,"y":3.9496185779571533},{"x":-0.552,"y":3.950417995452881},{"x":-0.551,"y":3.951221466064453},{"x":-0.55,"y":3.95202898979187},{"x":-0.549,"y":3.952840566635132},{"x":-0.548,"y":3.9536561965942383},{"x":-0.547,"y":3.9544758796691895},{"x":-0.546,"y":3.9552993774414062},{"x":-0.545,"y":3.956127166748047},{"x":-0.544,"y":3.956958770751953},{"x":-0.543,"y":3.957794666290283},{"x":-0.542,"y":3.958634376525879},{"x":-0.541,"y":3.9594781398773193},{"x":-0.54,"y":3.9603257179260254},{"x":-0.539,"y":3.9611778259277344},{"x":-0.538,"y":3.962033748626709},{"x":-0.537,"y":3.962893486022949},{"x":-0.536,"y":3.963757276535034},{"x":-0.535,"y":3.964625358581543},{"x":-0.534,"y":3.9654972553253174},{"x":-0.533,"y":3.9663734436035156},{"x":-0.532,"y":3.9672532081604004},{"x":-0.531,"y":3.968137264251709},{"x":-0.53,"y":3.9690253734588623},{"x":-0.529,"y":3.9699175357818604},{"x":-0.528,"y":3.970813512802124},{"x":-0.527,"y":3.9717137813568115},{"x":-0.526,"y":3.9726178646087646},{"x":-0.525,"y":3.9735260009765625},{"x":-0.524,"y":3.974438190460205},{"x":-0.523,"y":3.9753546714782715},{"x":-0.522,"y":3.9762747287750244},{"x":-0.521,"y":3.977199077606201},{"x":-0.52,"y":3.9781274795532227},{"x":-0.519,"y":3.979059934616089},{"x":-0.518,"y":3.9799962043762207},{"x":-0.517,"y":3.9809365272521973},{"x":-0.516,"y":3.9818811416625977},{"x":-0.515,"y":3.9828295707702637},{"x":-0.514,"y":3.9837820529937744},{"x":-0.513,"y":3.98473858833313},{"x":-0.512,"y":3.985698938369751},{"x":-0.511,"y":3.986663579940796},{"x":-0.51,"y":3.9876322746276855},{"x":-0.509,"y":3.988604784011841},{"x":-0.508,"y":3.989581346511841},{"x":-0.507,"y":3.9905619621276855},{"x":-0.506,"y":3.991546869277954},{"x":-0.505,"y":3.9925355911254883},{"x":-0.504,"y":3.993528366088867},{"x":-0.503,"y":3.9945249557495117},{"x":-0.502,"y":3.99552583694458},{"x":-0.501,"y":3.996530532836914},{"x":-0.5,"y":3.997539520263672},{"x":-0.499,"y":3.9985523223876953},{"x":-0.498,"y":3.9995694160461426},{"x":-0.497,"y":4.0005903244018555},{"x":-0.496,"y":4.001615524291992},{"x":-0.495,"y":4.0026445388793945},{"x":-0.494,"y":4.0036773681640625},{"x":-0.493,"y":4.004714012145996},{"x":-0.492,"y":4.005755424499512},{"x":-0.491,"y":4.006800174713135},{"x":-0.49,"y":4.00784969329834},{"x":-0.489,"y":4.008902549743652},{"x":-0.488,"y":4.009959697723389},{"x":-0.487,"y":4.011020660400391},{"x":-0.486,"y":4.012085914611816},{"x":-0.485,"y":4.013155460357666},{"x":-0.484,"y":4.014228820800781},{"x":-0.483,"y":4.015305995941162},{"x":-0.482,"y":4.016387462615967},{"x":-0.481,"y":4.017472743988037},{"x":-0.48,"y":4.018562316894531},{"x":-0.479,"y":4.019655227661133},{"x":-0.478,"y":4.020752906799316},{"x":-0.477,"y":4.021854400634766},{"x":-0.476,"y":4.0229597091674805},{"x":-0.475,"y":4.024069309234619},{"x":-0.474,"y":4.025182723999023},{"x":-0.473,"y":4.026300430297852},{"x":-0.472,"y":4.027421951293945},{"x":-0.471,"y":4.028547763824463},{"x":-0.47,"y":4.029677391052246},{"x":-0.469,"y":4.030810832977295},{"x":-0.468,"y":4.031948566436768},{"x":-0.467,"y":4.033090114593506},{"x":-0.466,"y":4.034235954284668},{"x":-0.465,"y":4.035385608673096},{"x":-0.464,"y":4.036539554595947},{"x":-0.463,"y":4.0376973152160645},{"x":-0.462,"y":4.0388593673706055},{"x":-0.461,"y":4.040025234222412},{"x":-0.46,"y":4.041194915771484},{"x":-0.459,"y":4.0423688888549805},{"x":-0.458,"y":4.0435471534729},{"x":-0.457,"y":4.044728755950928},{"x":-0.456,"y":4.045915126800537},{"x":-0.455,"y":4.047104835510254},{"x":-0.454,"y":4.0482988357543945},{"x":-0.453,"y":4.049497127532959},{"x":-0.452,"y":4.050699234008789},{"x":-0.451,"y":4.051905155181885},{"x":-0.45,"y":4.0531158447265625},{"x":-0.449,"y":4.054329872131348},{"x":-0.448,"y":4.055547714233398},{"x":-0.447,"y":4.056770324707031},{"x":-0.446,"y":4.0579962730407715},{"x":-0.445,"y":4.0592265129089355},{"x":-0.444,"y":4.060461044311523},{"x":-0.443,"y":4.061699390411377},{"x":-0.442,"y":4.062941551208496},{"x":-0.441,"y":4.064188003540039},{"x":-0.44,"y":4.065438747406006},{"x":-0.439,"y":4.06669282913208},{"x":-0.438,"y":4.067951679229736},{"x":-0.437,"y":4.0692138671875},{"x":-0.436,"y":4.0704803466796875},{"x":-0.435,"y":4.071751117706299},{"x":-0.434,"y":4.073025703430176},{"x":-0.433,"y":4.074304103851318},{"x":-0.432,"y":4.075586795806885},{"x":-0.431,"y":4.076873779296875},{"x":-0.43,"y":4.078164100646973},{"x":-0.429,"y":4.079459190368652},{"x":-0.428,"y":4.0807576179504395},{"x":-0.427,"y":4.08206033706665},{"x":-0.426,"y":4.083367347717285},{"x":-0.425,"y":4.0846781730651855},{"x":-0.424,"y":4.085992813110352},{"x":-0.423,"y":4.087311744689941},{"x":-0.422,"y":4.088634490966797},{"x":-0.421,"y":4.089961528778076},{"x":-0.42,"y":4.091292381286621},{"x":-0.419,"y":4.09262752532959},{"x":-0.418,"y":4.093966484069824},{"x":-0.417,"y":4.095309734344482},{"x":-0.416,"y":4.096656799316406},{"x":-0.415,"y":4.098007678985596},{"x":-0.414,"y":4.099362850189209},{"x":-0.413,"y":4.100721836090088},{"x":-0.412,"y":4.102085113525391},{"x":-0.411,"y":4.103452205657959},{"x":-0.41,"y":4.104823589324951},{"x":-0.409,"y":4.106198787689209},{"x":-0.408,"y":4.107577800750732},{"x":-0.407,"y":4.10896110534668},{"x":-0.406,"y":4.110348701477051},{"x":-0.405,"y":4.1117401123046875},{"x":-0.404,"y":4.11313533782959},{"x":-0.403,"y":4.114534854888916},{"x":-0.402,"y":4.115938186645508},{"x":-0.401,"y":4.117345809936523},{"x":-0.4,"y":4.118757247924805},{"x":-0.399,"y":4.120172500610352},{"x":-0.398,"y":4.121592044830322},{"x":-0.397,"y":4.123015403747559},{"x":-0.396,"y":4.124443054199219},{"x":-0.395,"y":4.125874996185303},{"x":-0.394,"y":4.127310276031494},{"x":-0.393,"y":4.128749847412109},{"x":-0.392,"y":4.130193710327148},{"x":-0.391,"y":4.131641387939453},{"x":-0.39,"y":4.133093357086182},{"x":-0.389,"y":4.134549140930176},{"x":-0.388,"y":4.1360087394714355},{"x":-0.387,"y":4.137472629547119},{"x":-0.386,"y":4.138940334320068},{"x":-0.385,"y":4.140412330627441},{"x":-0.384,"y":4.14188814163208},{"x":-0.383,"y":4.143368244171143},{"x":-0.382,"y":4.144852161407471},{"x":-0.381,"y":4.1463398933410645},{"x":-0.38,"y":4.147831916809082},{"x":-0.379,"y":4.149328231811523},{"x":-0.378,"y":4.150827884674072},{"x":-0.377,"y":4.152332305908203},{"x":-0.376,"y":4.153840065002441},{"x":-0.375,"y":4.155352592468262},{"x":-0.374,"y":4.1568684577941895},{"x":-0.373,"y":4.158388614654541},{"x":-0.372,"y":4.159913063049316},{"x":-0.371,"y":4.161441326141357},{"x":-0.37,"y":4.162973403930664},{"x":-0.369,"y":4.1645097732543945},{"x":-0.368,"y":4.166049957275391},{"x":-0.367,"y":4.1675944328308105},{"x":-0.366,"y":4.169142723083496},{"x":-0.365,"y":4.1706953048706055},{"x":-0.364,"y":4.1722517013549805},{"x":-0.363,"y":4.173811912536621},{"x":-0.362,"y":4.1753764152526855},{"x":-0.361,"y":4.176944732666016},{"x":-0.36,"y":4.1785173416137695},{"x":-0.359,"y":4.180094242095947},{"x":-0.358,"y":4.181674480438232},{"x":-0.357,"y":4.183259010314941},{"x":-0.356,"y":4.184847831726074},{"x":-0.355,"y":4.186440467834473},{"x":-0.354,"y":4.188036918640137},{"x":-0.353,"y":4.189637660980225},{"x":-0.352,"y":4.191242694854736},{"x":-0.351,"y":4.192851543426514},{"x":-0.35,"y":4.194464206695557},{"x":-0.349,"y":4.196081161499023},{"x":-0.348,"y":4.197701930999756},{"x":-0.347,"y":4.199326515197754},{"x":-0.346,"y":4.200955390930176},{"x":-0.345,"y":4.2025885581970215},{"x":-0.344,"y":4.204225540161133},{"x":-0.343,"y":4.20586633682251},{"x":-0.342,"y":4.2075114250183105},{"x":-0.341,"y":4.209160327911377},{"x":-0.34,"y":4.210813522338867},{"x":-0.339,"y":4.212470531463623},{"x":-0.338,"y":4.2141313552856445},{"x":-0.337,"y":4.21579647064209},{"x":-0.336,"y":4.217465877532959},{"x":-0.335,"y":4.219139099121094},{"x":-0.334,"y":4.220816135406494},{"x":-0.333,"y":4.222497463226318},{"x":-0.332,"y":4.224182605743408},{"x":-0.331,"y":4.225872039794922},{"x":-0.33,"y":4.227565288543701},{"x":-0.329,"y":4.229262828826904},{"x":-0.328,"y":4.230964183807373},{"x":-0.327,"y":4.232669353485107},{"x":-0.326,"y":4.234378814697266},{"x":-0.325,"y":4.236092567443848},{"x":-0.324,"y":4.237809658050537},{"x":-0.323,"y":4.23953104019165},{"x":-0.322,"y":4.2412567138671875},{"x":-0.321,"y":4.24298620223999},{"x":-0.32,"y":4.244719982147217},{"x":-0.319,"y":4.246457576751709},{"x":-0.318,"y":4.248198986053467},{"x":-0.317,"y":4.249944686889648},{"x":-0.316,"y":4.251694202423096},{"x":-0.315,"y":4.253448009490967},{"x":-0.314,"y":4.2552056312561035},{"x":-0.313,"y":4.256967544555664},{"x":-0.312,"y":4.25873327255249},{"x":-0.311,"y":4.26050329208374},{"x":-0.31,"y":4.262277126312256},{"x":-0.309,"y":4.264054775238037},{"x":-0.308,"y":4.265836715698242},{"x":-0.307,"y":4.267622470855713},{"x":-0.306,"y":4.269412517547607},{"x":-0.305,"y":4.271206378936768},{"x":-0.304,"y":4.273004531860352},{"x":-0.303,"y":4.274806499481201},{"x":-0.302,"y":4.276612758636475},{"x":-0.301,"y":4.278422832489014},{"x":-0.3,"y":4.280236721038818},{"x":-0.299,"y":4.282054901123047},{"x":-0.298,"y":4.283876895904541},{"x":-0.297,"y":4.285703182220459},{"x":-0.296,"y":4.287533283233643},{"x":-0.295,"y":4.28936767578125},{"x":-0.294,"y":4.291205883026123},{"x":-0.293,"y":4.293047904968262},{"x":-0.292,"y":4.294894218444824},{"x":-0.291,"y":4.2967448234558105},{"x":-0.29,"y":4.2985992431640625},{"x":-0.289,"y":4.30045747756958},{"x":-0.288,"y":4.3023200035095215},{"x":-0.287,"y":4.3041863441467285},{"x":-0.286,"y":4.306056976318359},{"x":-0.285,"y":4.307931423187256},{"x":-0.284,"y":4.309809684753418},{"x":-0.283,"y":4.311692237854004},{"x":-0.282,"y":4.313579082489014},{"x":-0.281,"y":4.315469741821289},{"x":-0.28,"y":4.31736421585083},{"x":-0.279,"y":4.319262981414795},{"x":-0.278,"y":4.321165561676025},{"x":-0.277,"y":4.3230719566345215},{"x":-0.276,"y":4.324982643127441},{"x":-0.275,"y":4.326897621154785},{"x":-0.274,"y":4.3288164138793945},{"x":-0.273,"y":4.3307390213012695},{"x":-0.272,"y":4.332665920257568},{"x":-0.271,"y":4.334597110748291},{"x":-0.27,"y":4.336531639099121},{"x":-0.269,"y":4.338470458984375},{"x":-0.268,"y":4.340413570404053},{"x":-0.267,"y":4.342360496520996},{"x":-0.266,"y":4.344311714172363},{"x":-0.265,"y":4.346266746520996},{"x":-0.264,"y":4.3482255935668945},{"x":-0.263,"y":4.350188732147217},{"x":-0.262,"y":4.352155685424805},{"x":-0.261,"y":4.354126930236816},{"x":-0.26,"y":4.356101989746094},{"x":-0.259,"y":4.358081340789795},{"x":-0.258,"y":4.360064506530762},{"x":-0.257,"y":4.362051486968994},{"x":-0.256,"y":4.36404275894165},{"x":-0.255,"y":4.3660383224487305},{"x":-0.254,"y":4.368037223815918},{"x":-0.253,"y":4.3700408935546875},{"x":-0.252,"y":4.372048377990723},{"x":-0.251,"y":4.374059677124023},{"x":-0.25,"y":4.37607479095459},{"x":-0.249,"y":4.37809419631958},{"x":-0.248,"y":4.380117893218994},{"x":-0.247,"y":4.382145404815674},{"x":-0.246,"y":4.384176731109619},{"x":-0.245,"y":4.386212348937988},{"x":-0.244,"y":4.388251781463623},{"x":-0.243,"y":4.390295505523682},{"x":-0.242,"y":4.392343044281006},{"x":-0.241,"y":4.394394874572754},{"x":-0.24,"y":4.396450519561768},{"x":-0.239,"y":4.398509979248047},{"x":-0.238,"y":4.40057373046875},{"x":-0.237,"y":4.402641773223877},{"x":-0.236,"y":4.4047136306762695},{"x":-0.235,"y":4.406789302825928},{"x":-0.234,"y":4.408868789672852},{"x":-0.233,"y":4.410953044891357},{"x":-0.232,"y":4.413040637969971},{"x":-0.231,"y":4.415132522583008},{"x":-0.23,"y":4.417228698730469},{"x":-0.229,"y":4.419328689575195},{"x":-0.228,"y":4.4214324951171875},{"x":-0.227,"y":4.4235405921936035},{"x":-0.226,"y":4.425652503967285},{"x":-0.225,"y":4.427768707275391},{"x":-0.224,"y":4.429888725280762},{"x":-0.223,"y":4.432012557983398},{"x":-0.222,"y":4.434141159057617},{"x":-0.221,"y":4.436273097991943},{"x":-0.22,"y":4.438409328460693},{"x":-0.219,"y":4.440549373626709},{"x":-0.218,"y":4.442693710327148},{"x":-0.217,"y":4.4448418617248535},{"x":-0.216,"y":4.446994304656982},{"x":-0.215,"y":4.449150562286377},{"x":-0.214,"y":4.451311111450195},{"x":-0.213,"y":4.453475475311279},{"x":-0.212,"y":4.455643653869629},{"x":-0.211,"y":4.457816123962402},{"x":-0.21,"y":4.459992408752441},{"x":-0.209,"y":4.462172985076904},{"x":-0.208,"y":4.464357852935791},{"x":-0.207,"y":4.466546058654785},{"x":-0.206,"y":4.468738555908203},{"x":-0.205,"y":4.470935344696045},{"x":-0.204,"y":4.473135948181152},{"x":-0.203,"y":4.475340843200684},{"x":-0.202,"y":4.477549076080322},{"x":-0.201,"y":4.479762077331543},{"x":-0.2,"y":4.481978416442871},{"x":-0.199,"y":4.484199523925781},{"x":-0.198,"y":4.486423969268799},{"x":-0.197,"y":4.488653182983398},{"x":-0.196,"y":4.4908857345581055},{"x":-0.195,"y":4.493122577667236},{"x":-0.194,"y":4.495363235473633},{"x":-0.193,"y":4.497608184814453},{"x":-0.192,"y":4.499857425689697},{"x":-0.191,"y":4.502110481262207},{"x":-0.19,"y":4.504367351531982},{"x":-0.189,"y":4.506628036499023},{"x":-0.188,"y":4.5088934898376465},{"x":-0.187,"y":4.511162281036377},{"x":-0.186,"y":4.513435363769531},{"x":-0.185,"y":4.515712738037109},{"x":-0.184,"y":4.517993927001953},{"x":-0.183,"y":4.5202789306640625},{"x":-0.182,"y":4.522568225860596},{"x":-0.181,"y":4.5248613357543945},{"x":-0.18,"y":4.527158260345459},{"x":-0.179,"y":4.5294599533081055},{"x":-0.178,"y":4.531764984130859},{"x":-0.177,"y":4.534074306488037},{"x":-0.176,"y":4.536387920379639},{"x":-0.175,"y":4.538704872131348},{"x":-0.174,"y":4.541026592254639},{"x":-0.173,"y":4.543352127075195},{"x":-0.172,"y":4.545681476593018},{"x":-0.171,"y":4.5480146408081055},{"x":-0.17,"y":4.550352096557617},{"x":-0.169,"y":4.552693843841553},{"x":-0.168,"y":4.555039405822754},{"x":-0.167,"y":4.557389259338379},{"x":-0.166,"y":4.559742450714111},{"x":-0.165,"y":4.562100410461426},{"x":-0.164,"y":4.564461708068848},{"x":-0.163,"y":4.566827774047852},{"x":-0.162,"y":4.569197177886963},{"x":-0.161,"y":4.571570873260498},{"x":-0.16,"y":4.573948860168457},{"x":-0.159,"y":4.576330661773682},{"x":-0.158,"y":4.578716278076172},{"x":-0.157,"y":4.581106185913086},{"x":-0.156,"y":4.583499908447266},{"x":-0.155,"y":4.585897922515869},{"x":-0.154,"y":4.588299751281738},{"x":-0.153,"y":4.590705871582031},{"x":-0.152,"y":4.59311580657959},{"x":-0.151,"y":4.595530033111572},{"x":-0.15,"y":4.59794807434082},{"x":-0.149,"y":4.600369930267334},{"x":-0.148,"y":4.6027960777282715},{"x":-0.147,"y":4.605226039886475},{"x":-0.146,"y":4.607660293579102},{"x":-0.145,"y":4.610098361968994},{"x":-0.144,"y":4.6125407218933105},{"x":-0.143,"y":4.614986896514893},{"x":-0.142,"y":4.61743688583374},{"x":-0.141,"y":4.619891166687012},{"x":-0.14,"y":4.622349739074707},{"x":-0.139,"y":4.624812126159668},{"x":-0.138,"y":4.6272783279418945},{"x":-0.137,"y":4.629748821258545},{"x":-0.136,"y":4.632223129272461},{"x":-0.135,"y":4.634701251983643},{"x":-0.134,"y":4.637184143066406},{"x":-0.133,"y":4.639670372009277},{"x":-0.132,"y":4.642160892486572},{"x":-0.131,"y":4.644655227661133},{"x":-0.13,"y":4.647153854370117},{"x":-0.129,"y":4.649656772613525},{"x":-0.128,"y":4.652163028717041},{"x":-0.127,"y":4.6546735763549805},{"x":-0.126,"y":4.657188415527344},{"x":-0.125,"y":4.659707069396973},{"x":-0.124,"y":4.662230014801025},{"x":-0.123,"y":4.664756774902344},{"x":-0.122,"y":4.667287349700928},{"x":-0.121,"y":4.6698222160339355},{"x":-0.12,"y":4.672360897064209},{"x":-0.119,"y":4.674903869628906},{"x":-0.118,"y":4.677450656890869},{"x":-0.117,"y":4.680001735687256},{"x":-0.116,"y":4.682556629180908},{"x":-0.115,"y":4.685115337371826},{"x":-0.114,"y":4.687678337097168},{"x":-0.113,"y":4.690245628356934},{"x":-0.112,"y":4.692816257476807},{"x":-0.111,"y":4.695391654968262},{"x":-0.11,"y":4.697970390319824},{"x":-0.109,"y":4.7005534172058105},{"x":-0.108,"y":4.703140735626221},{"x":-0.107,"y":4.7057318687438965},{"x":-0.106,"y":4.708327293395996},{"x":-0.105,"y":4.710926055908203},{"x":-0.104,"y":4.713529586791992},{"x":-0.103,"y":4.716136932373047},{"x":-0.102,"y":4.718748092651367},{"x":-0.101,"y":4.721363544464111},{"x":-0.1,"y":4.723982810974121},{"x":-0.099,"y":4.7266058921813965},{"x":-0.098,"y":4.729233264923096},{"x":-0.097,"y":4.731864929199219},{"x":-0.096,"y":4.734500408172607},{"x":-0.095,"y":4.737139701843262},{"x":-0.094,"y":4.73978328704834},{"x":-0.093,"y":4.742430686950684},{"x":-0.092,"y":4.745082378387451},{"x":-0.091,"y":4.747737884521484},{"x":-0.09,"y":4.750397682189941},{"x":-0.089,"y":4.753061294555664},{"x":-0.088,"y":4.755728721618652},{"x":-0.087,"y":4.7584004402160645},{"x":-0.086,"y":4.761075973510742},{"x":-0.085,"y":4.763755798339844},{"x":-0.084,"y":4.766439914703369},{"x":-0.083,"y":4.769127368927002},{"x":-0.082,"y":4.771819114685059},{"x":-0.081,"y":4.774515151977539},{"x":-0.08,"y":4.777215003967285},{"x":-0.079,"y":4.779918670654297},{"x":-0.078,"y":4.782626628875732},{"x":-0.077,"y":4.785338878631592},{"x":-0.076,"y":4.788054466247559},{"x":-0.075,"y":4.790774822235107},{"x":-0.074,"y":4.793498516082764},{"x":-0.073,"y":4.796226978302002},{"x":-0.072,"y":4.798958778381348},{"x":-0.071,"y":4.801694869995117},{"x":-0.07,"y":4.8044352531433105},{"x":-0.069,"y":4.8071794509887695},{"x":-0.068,"y":4.809927463531494},{"x":-0.067,"y":4.812679767608643},{"x":-0.066,"y":4.815435886383057},{"x":-0.065,"y":4.8181962966918945},{"x":-0.064,"y":4.820960521697998},{"x":-0.063,"y":4.823728561401367},{"x":-0.062,"y":4.82650089263916},{"x":-0.061,"y":4.829277515411377},{"x":-0.06,"y":4.832057952880859},{"x":-0.059,"y":4.834842205047607},{"x":-0.058,"y":4.837630748748779},{"x":-0.057,"y":4.840423107147217},{"x":-0.056,"y":4.843219757080078},{"x":-0.055,"y":4.846020221710205},{"x":-0.054,"y":4.848824501037598},{"x":-0.053,"y":4.851633071899414},{"x":-0.052,"y":4.854445934295654},{"x":-0.051,"y":4.85726261138916},{"x":-0.05,"y":4.860083103179932},{"x":-0.049,"y":4.862907886505127},{"x":-0.048,"y":4.865736484527588},{"x":-0.047,"y":4.868569374084473},{"x":-0.046,"y":4.871406078338623},{"x":-0.045,"y":4.874246597290039},{"x":-0.044,"y":4.877091407775879},{"x":-0.043,"y":4.879940509796143},{"x":-0.042,"y":4.882793426513672},{"x":-0.041,"y":4.885650157928467},{"x":-0.04,"y":4.8885111808776855},{"x":-0.039,"y":4.89137601852417},{"x":-0.038,"y":4.89424467086792},{"x":-0.037,"y":4.897118091583252},{"x":-0.036,"y":4.899994850158691},{"x":-0.035,"y":4.902875900268555},{"x":-0.034,"y":4.905761241912842},{"x":-0.033,"y":4.908649921417236},{"x":-0.032,"y":4.911543369293213},{"x":-0.031,"y":4.914440155029297},{"x":-0.03,"y":4.917341709136963},{"x":-0.029,"y":4.920246601104736},{"x":-0.028,"y":4.923155784606934},{"x":-0.027,"y":4.926069259643555},{"x":-0.026,"y":4.928986549377441},{"x":-0.025,"y":4.931907653808594},{"x":-0.024,"y":4.93483304977417},{"x":-0.023,"y":4.937762260437012},{"x":-0.022,"y":4.940695762634277},{"x":-0.021,"y":4.943633079528809},{"x":-0.02,"y":4.946574687957764},{"x":-0.019,"y":4.949520111083984},{"x":-0.018,"y":4.952469825744629},{"x":-0.017,"y":4.955423355102539},{"x":-0.016,"y":4.958380699157715},{"x":-0.015,"y":4.9613423347473145},{"x":-0.014,"y":4.96430778503418},{"x":-0.013,"y":4.967277526855469},{"x":-0.012,"y":4.970251083374023},{"x":-0.011,"y":4.973228931427002},{"x":-0.01,"y":4.976210594177246},{"x":-0.009,"y":4.979196071624756},{"x":-0.008,"y":4.9821858406066895},{"x":-0.007,"y":4.985179901123047},{"x":-0.006,"y":4.98817777633667},{"x":-0.005,"y":4.991179466247559},{"x":-0.004,"y":4.994185447692871},{"x":-0.003,"y":4.997195243835449},{"x":-0.002,"y":5.000208854675293},{"x":-0.001,"y":5.0032267570495605},{"x":0.0,"y":5.006248950958252},{"x":0.001,"y":5.009274959564209},{"x":0.002,"y":5.012304782867432},{"x":0.003,"y":5.015338897705078},{"x":0.004,"y":5.01837682723999},{"x":0.005,"y":5.021419048309326},{"x":0.006,"y":5.024465084075928},{"x":0.007,"y":5.027515411376953},{"x":0.008,"y":5.030569553375244},{"x":0.009,"y":5.033627986907959},{"x":0.01,"y":5.036689758300781},{"x":0.011,"y":5.0397562980651855},{"x":0.012,"y":5.0428266525268555},{"x":0.013,"y":5.045900821685791},{"x":0.014,"y":5.04897928237915},{"x":0.015,"y":5.052061557769775},{"x":0.016,"y":5.055147647857666},{"x":0.017,"y":5.058238506317139},{"x":0.018,"y":5.061332702636719},{"x":0.019,"y":5.064431190490723},{"x":0.02,"y":5.067533493041992},{"x":0.021,"y":5.0706400871276855},{"x":0.022,"y":5.0737504959106445},{"x":0.023,"y":5.076865196228027},{"x":0.024,"y":5.079983711242676},{"x":0.025,"y":5.083106517791748},{"x":0.026,"y":5.086233139038086},{"x":0.027,"y":5.0893635749816895},{"x":0.028,"y":5.092498302459717},{"x":0.029,"y":5.095637321472168},{"x":0.03,"y":5.098780155181885},{"x":0.031,"y":5.101926803588867},{"x":0.032,"y":5.105077743530273},{"x":0.033,"y":5.108232498168945},{"x":0.034,"y":5.111391067504883},{"x":0.035,"y":5.114553928375244},{"x":0.036,"y":5.117721080780029},{"x":0.037,"y":5.12089204788208},{"x":0.038,"y":5.1240668296813965},{"x":0.039,"y":5.127245903015137},{"x":0.04,"y":5.130428791046143},{"x":0.041,"y":5.133615970611572},{"x":0.042,"y":5.136806964874268},{"x":0.043,"y":5.140002250671387},{"x":0.044,"y":5.1432013511657715},{"x":0.045,"y":5.146404266357422},{"x":0.046,"y":5.149611473083496},{"x":0.047,"y":5.152822494506836},{"x":0.048,"y":5.1560378074646},{"x":0.049,"y":5.159256935119629},{"x":0.05,"y":5.162480354309082},{"x":0.051,"y":5.165707588195801},{"x":0.052,"y":5.168939113616943},{"x":0.053,"y":5.172174453735352},{"x":0.054,"y":5.175413608551025},{"x":0.055,"y":5.178657054901123},{"x":0.056,"y":5.1819047927856445},{"x":0.057,"y":5.185155868530273},{"x":0.058,"y":5.188411712646484},{"x":0.059,"y":5.191670894622803},{"x":0.06,"y":5.194934368133545},{"x":0.061,"y":5.198202133178711},{"x":0.062,"y":5.201473712921143},{"x":0.063,"y":5.20474910736084},{"x":0.064,"y":5.208028793334961},{"x":0.065,"y":5.211312770843506},{"x":0.066,"y":5.214600086212158},{"x":0.067,"y":5.217892169952393},{"x":0.068,"y":5.221187591552734},{"x":0.069,"y":5.2244873046875},{"x":0.07,"y":5.2277913093566895},{"x":0.071,"y":5.2310991287231445},{"x":0.072,"y":5.234410762786865},{"x":0.073,"y":5.23772668838501},{"x":0.074,"y":5.241046905517578},{"x":0.075,"y":5.244370460510254},{"x":0.076,"y":5.247698783874512},{"x":0.077,"y":5.251030445098877},{"x":0.078,"y":5.254366397857666},{"x":0.079,"y":5.257706642150879},{"x":0.08,"y":5.261050701141357},{"x":0.081,"y":5.264398574829102},{"x":0.082,"y":5.2677507400512695},{"x":0.083,"y":5.271107196807861},{"x":0.084,"y":5.2744669914245605},{"x":0.085,"y":5.277831554412842},{"x":0.086,"y":5.2811994552612305},{"x":0.087,"y":5.284571647644043},{"x":0.088,"y":5.287948131561279},{"x":0.089,"y":5.291328430175781},{"x":0.09,"y":5.294712543487549},{"x":0.091,"y":5.29810094833374},{"x":0.092,"y":5.3014936447143555},{"x":0.093,"y":5.304889678955078},{"x":0.094,"y":5.308290481567383},{"x":0.095,"y":5.311694622039795},{"x":0.096,"y":5.315103054046631},{"x":0.097,"y":5.318515777587891},{"x":0.098,"y":5.321932315826416},{"x":0.099,"y":5.325352668762207},{"x":0.1,"y":5.328777313232422},{"x":0.101,"y":5.332205772399902},{"x":0.102,"y":5.335638523101807},{"x":0.103,"y":5.339075088500977},{"x":0.104,"y":5.34251594543457},{"x":0.105,"y":5.34596061706543},{"x":0.106,"y":5.349409580230713},{"x":0.107,"y":5.352862358093262},{"x":0.108,"y":5.356318950653076},{"x":0.109,"y":5.3597798347473145},{"x":0.11,"y":5.363244533538818},{"x":0.111,"y":5.366713523864746},{"x":0.112,"y":5.3701863288879395},{"x":0.113,"y":5.373663425445557},{"x":0.114,"y":5.3771443367004395},{"x":0.115,"y":5.380629062652588},{"x":0.116,"y":5.38411808013916},{"x":0.117,"y":5.387611389160156},{"x":0.118,"y":5.391108512878418},{"x":0.119,"y":5.394609451293945},{"x":0.12,"y":5.3981146812438965},{"x":0.121,"y":5.401623725891113},{"x":0.122,"y":5.405136585235596},{"x":0.123,"y":5.40865421295166},{"x":0.124,"y":5.412175178527832},{"x":0.125,"y":5.415700435638428},{"x":0.126,"y":5.419229507446289},{"x":0.127,"y":5.422762870788574},{"x":0.128,"y":5.426300525665283},{"x":0.129,"y":5.4298415184021},{"x":0.13,"y":5.43338680267334},{"x":0.131,"y":5.436936378479004},{"x":0.132,"y":5.440489768981934},{"x":0.133,"y":5.444047451019287},{"x":0.134,"y":5.447608947753906},{"x":0.135,"y":5.451174259185791},{"x":0.136,"y":5.4547438621521},{"x":0.137,"y":5.458317279815674},{"x":0.138,"y":5.461894989013672},{"x":0.139,"y":5.4654765129089355},{"x":0.14,"y":5.469062328338623},{"x":0.141,"y":5.472651958465576},{"x":0.142,"y":5.476245403289795},{"x":0.143,"y":5.4798431396484375},{"x":0.144,"y":5.483444690704346},{"x":0.145,"y":5.487050533294678},{"x":0.146,"y":5.490660667419434},{"x":0.147,"y":5.494274139404297},{"x":0.148,"y":5.497891902923584},{"x":0.149,"y":5.501513957977295},{"x":0.15,"y":5.5051398277282715},{"x":0.151,"y":5.508769989013672},{"x":0.152,"y":5.51240348815918},{"x":0.153,"y":5.5160417556762695},{"x":0.154,"y":5.519683837890625},{"x":0.155,"y":5.523329734802246},{"x":0.156,"y":5.526979923248291},{"x":0.157,"y":5.530633926391602},{"x":0.158,"y":5.534292221069336},{"x":0.159,"y":5.537954330444336},{"x":0.16,"y":5.541620254516602},{"x":0.161,"y":5.545290470123291},{"x":0.162,"y":5.548964500427246},{"x":0.163,"y":5.552642822265625},{"x":0.164,"y":5.5563249588012695},{"x":0.165,"y":5.560011386871338},{"x":0.166,"y":5.563701629638672},{"x":0.167,"y":5.56739616394043},{"x":0.168,"y":5.571094512939453},{"x":0.169,"y":5.574796676635742},{"x":0.17,"y":5.578503131866455},{"x":0.171,"y":5.582213878631592},{"x":0.172,"y":5.585927963256836},{"x":0.173,"y":5.589646816253662},{"x":0.174,"y":5.593369007110596},{"x":0.175,"y":5.597095489501953},{"x":0.176,"y":5.600826263427734},{"x":0.177,"y":5.604560852050781},{"x":0.178,"y":5.608299732208252},{"x":0.179,"y":5.612042427062988},{"x":0.18,"y":5.61578893661499},{"x":0.181,"y":5.619539737701416},{"x":0.182,"y":5.623294353485107},{"x":0.183,"y":5.627053260803223},{"x":0.184,"y":5.6308159828186035},{"x":0.185,"y":5.63458251953125},{"x":0.186,"y":5.63835334777832},{"x":0.187,"y":5.6421284675598145},{"x":0.188,"y":5.645907402038574},{"x":0.189,"y":5.6496901512146},{"x":0.19,"y":5.653477191925049},{"x":0.191,"y":5.657268047332764},{"x":0.192,"y":5.661063194274902},{"x":0.193,"y":5.664862155914307},{"x":0.194,"y":5.668664932250977},{"x":0.195,"y":5.67247200012207},{"x":0.196,"y":5.676283359527588},{"x":0.197,"y":5.680098533630371},{"x":0.198,"y":5.68391752243042},{"x":0.199,"y":5.687740802764893},{"x":0.2,"y":5.691567897796631},{"x":0.201,"y":5.695399284362793},{"x":0.202,"y":5.699234485626221},{"x":0.203,"y":5.703073501586914},{"x":0.204,"y":5.706916809082031},{"x":0.205,"y":5.710764408111572},{"x":0.206,"y":5.714615821838379},{"x":0.207,"y":5.718471050262451},{"x":0.208,"y":5.722330570220947},{"x":0.209,"y":5.726193904876709},{"x":0.21,"y":5.7300615310668945},{"x":0.211,"y":5.733932971954346},{"x":0.212,"y":5.7378082275390625},{"x":0.213,"y":5.741687774658203},{"x":0.214,"y":5.745571613311768},{"x":0.215,"y":5.749459266662598},{"x":0.216,"y":5.753350734710693},{"x":0.217,"y":5.757246494293213},{"x":0.218,"y":5.761146068572998},{"x":0.219,"y":5.765049934387207},{"x":0.22,"y":5.768957614898682},{"x":0.221,"y":5.772869110107422},{"x":0.222,"y":5.776784896850586},{"x":0.223,"y":5.780704975128174},{"x":0.224,"y":5.784628868103027},{"x":0.225,"y":5.7885565757751465},{"x":0.226,"y":5.7924885749816895},{"x":0.227,"y":5.796424388885498},{"x":0.228,"y":5.8003644943237305},{"x":0.229,"y":5.8043084144592285},{"x":0.23,"y":5.808256149291992},{"x":0.231,"y":5.81220817565918},{"x":0.232,"y":5.816164016723633},{"x":0.233,"y":5.82012414932251},{"x":0.234,"y":5.8240885734558105},{"x":0.235,"y":5.828056335449219},{"x":0.236,"y":5.832028865814209},{"x":0.237,"y":5.836004734039307},{"x":0.238,"y":5.839984893798828},{"x":0.239,"y":5.843969345092773},{"x":0.24,"y":5.847957611083984},{"x":0.241,"y":5.851949691772461},{"x":0.242,"y":5.855946063995361},{"x":0.243,"y":5.859946250915527},{"x":0.244,"y":5.863950729370117},{"x":0.245,"y":5.867959022521973},{"x":0.246,"y":5.871971607208252},{"x":0.247,"y":5.875988006591797},{"x":0.248,"y":5.880008697509766},{"x":0.249,"y":5.884033203125},{"x":0.25,"y":5.8880615234375},{"x":0.251,"y":5.892094135284424},{"x":0.252,"y":5.896130561828613},{"x":0.253,"y":5.900171279907227},{"x":0.254,"y":5.9042158126831055},{"x":0.255,"y":5.908264636993408},{"x":0.256,"y":5.912317276000977},{"x":0.257,"y":5.9163737297058105},{"x":0.258,"y":5.920434474945068},{"x":0.259,"y":5.92449951171875},{"x":0.26,"y":5.928567886352539},{"x":0.261,"y":5.93264102935791},{"x":0.262,"y":5.936717987060547},{"x":0.263,"y":5.940798759460449},{"x":0.264,"y":5.944883346557617},{"x":0.265,"y":5.948972225189209},{"x":0.266,"y":5.953065395355225},{"x":0.267,"y":5.957162380218506},{"x":0.268,"y":5.961263179779053},{"x":0.269,"y":5.965368270874023},{"x":0.27,"y":5.969477653503418},{"x":0.271,"y":5.97359037399292},{"x":0.272,"y":5.977707386016846},{"x":0.273,"y":5.981828689575195},{"x":0.274,"y":5.9859538078308105},{"x":0.275,"y":5.990082740783691},{"x":0.276,"y":5.994215965270996},{"x":0.277,"y":5.998353481292725},{"x":0.278,"y":6.002494812011719},{"x":0.279,"y":6.0066399574279785},{"x":0.28,"y":6.010788917541504},{"x":0.281,"y":6.014942169189453},{"x":0.282,"y":6.019100189208984},{"x":0.283,"y":6.023261070251465},{"x":0.284,"y":6.027426719665527},{"x":0.285,"y":6.0315961837768555},{"x":0.286,"y":6.035769462585449},{"x":0.287,"y":6.039947032928467},{"x":0.288,"y":6.04412841796875},{"x":0.289,"y":6.048314094543457},{"x":0.29,"y":6.05250358581543},{"x":0.291,"y":6.056697368621826},{"x":0.292,"y":6.060894966125488},{"x":0.293,"y":6.065096378326416},{"x":0.294,"y":6.069302082061768},{"x":0.295,"y":6.073512077331543},{"x":0.296,"y":6.077725410461426},{"x":0.297,"y":6.081943511962891},{"x":0.298,"y":6.086164951324463},{"x":0.299,"y":6.090390682220459},{"x":0.3,"y":6.094620704650879},{"x":0.301,"y":6.0988545417785645},{"x":0.302,"y":6.103092193603516},{"x":0.303,"y":6.107334136962891},{"x":0.304,"y":6.1115803718566895},{"x":0.305,"y":6.115830421447754},{"x":0.306,"y":6.120084285736084},{"x":0.307,"y":6.12434196472168},{"x":0.308,"y":6.128603935241699},{"x":0.309,"y":6.132870197296143},{"x":0.31,"y":6.137140274047852},{"x":0.311,"y":6.141414642333984},{"x":0.312,"y":6.145692825317383},{"x":0.313,"y":6.149974822998047},{"x":0.314,"y":6.154261112213135},{"x":0.315,"y":6.158551216125488},{"x":0.316,"y":6.162845611572266},{"x":0.317,"y":6.167143821716309},{"x":0.318,"y":6.171445846557617},{"x":0.319,"y":6.175752639770508},{"x":0.32,"y":6.180062770843506},{"x":0.321,"y":6.184377193450928},{"x":0.322,"y":6.188695430755615},{"x":0.323,"y":6.193017959594727},{"x":0.324,"y":6.1973443031311035},{"x":0.325,"y":6.201674938201904},{"x":0.326,"y":6.206009387969971},{"x":0.327,"y":6.210348129272461},{"x":0.328,"y":6.214690208435059},{"x":0.329,"y":6.219037055969238},{"x":0.33,"y":6.223387718200684},{"x":0.331,"y":6.2277421951293945},{"x":0.332,"y":6.232100963592529},{"x":0.333,"y":6.23646354675293},{"x":0.334,"y":6.240830421447754},{"x":0.335,"y":6.245201110839844},{"x":0.336,"y":6.249575614929199},{"x":0.337,"y":6.253954887390137},{"x":0.338,"y":6.258337497711182},{"x":0.339,"y":6.26272439956665},{"x":0.34,"y":6.267115116119385},{"x":0.341,"y":6.271510124206543},{"x":0.342,"y":6.275908946990967},{"x":0.343,"y":6.2803120613098145},{"x":0.344,"y":6.284718990325928},{"x":0.345,"y":6.289130210876465},{"x":0.346,"y":6.293544769287109},{"x":0.347,"y":6.297964096069336},{"x":0.348,"y":6.302387237548828},{"x":0.349,"y":6.306814193725586},{"x":0.35,"y":6.311245441436768},{"x":0.351,"y":6.315680503845215},{"x":0.352,"y":6.320119857788086},{"x":0.353,"y":6.324563026428223},{"x":0.354,"y":6.329010009765625},{"x":0.355,"y":6.333461284637451},{"x":0.356,"y":6.337916851043701},{"x":0.357,"y":6.342375755310059},{"x":0.358,"y":6.346839427947998},{"x":0.359,"y":6.351306915283203},{"x":0.36,"y":6.355778217315674},{"x":0.361,"y":6.36025333404541},{"x":0.362,"y":6.36473274230957},{"x":0.363,"y":6.369216442108154},{"x":0.364,"y":6.373703956604004},{"x":0.365,"y":6.378195762634277},{"x":0.366,"y":6.382691383361816},{"x":0.367,"y":6.387190818786621},{"x":0.368,"y":6.391694068908691},{"x":0.369,"y":6.396202087402344},{"x":0.37,"y":6.400713920593262},{"x":0.371,"y":6.405229091644287},{"x":0.372,"y":6.4097490310668945},{"x":0.373,"y":6.414272785186768},{"x":0.374,"y":6.418800354003906},{"x":0.375,"y":6.423332214355469},{"x":0.376,"y":6.427867889404297},{"x":0.377,"y":6.432407855987549},{"x":0.378,"y":6.436951637268066},{"x":0.379,"y":6.441499710083008},{"x":0.38,"y":6.446051597595215},{"x":0.381,"y":6.450607776641846},{"x":0.382,"y":6.455167770385742},{"x":0.383,"y":6.459731578826904},{"x":0.384,"y":6.46429967880249},{"x":0.385,"y":6.468871593475342},{"x":0.386,"y":6.473447799682617},{"x":0.387,"y":6.478027820587158},{"x":0.388,"y":6.482612133026123},{"x":0.389,"y":6.4872002601623535},{"x":0.39,"y":6.49179220199585},{"x":0.391,"y":6.4963884353637695},{"x":0.392,"y":6.500988960266113},{"x":0.393,"y":6.505593299865723},{"x":0.394,"y":6.510201454162598},{"x":0.395,"y":6.514813423156738},{"x":0.396,"y":6.519430160522461},{"x":0.397,"y":6.524050712585449},{"x":0.398,"y":6.528675079345703},{"x":0.399,"y":6.533303260803223},{"x":0.4,"y":6.537935733795166},{"x":0.401,"y":6.542572021484375},{"x":0.402,"y":6.547212600708008},{"x":0.403,"y":6.551856994628906},{"x":0.404,"y":6.5565056800842285},{"x":0.405,"y":6.561158180236816},{"x":0.406,"y":6.565814971923828},{"x":0.407,"y":6.5704755783081055},{"x":0.408,"y":6.575139999389648},{"x":0.409,"y":6.579809188842773},{"x":0.41,"y":6.584481716156006},{"x":0.411,"y":6.589158058166504},{"x":0.412,"y":6.593839168548584},{"x":0.413,"y":6.5985236167907715},{"x":0.414,"y":6.603212356567383},{"x":0.415,"y":6.607905387878418},{"x":0.416,"y":6.612602233886719},{"x":0.417,"y":6.617303371429443},{"x":0.418,"y":6.622008323669434},{"x":0.419,"y":6.6267170906066895},{"x":0.42,"y":6.631430149078369},{"x":0.421,"y":6.6361470222473145},{"x":0.422,"y":6.640868186950684},{"x":0.423,"y":6.645593166351318},{"x":0.424,"y":6.650321960449219},{"x":0.425,"y":6.655055522918701},{"x":0.426,"y":6.659792423248291},{"x":0.427,"y":6.664533615112305},{"x":0.428,"y":6.669278621673584},{"x":0.429,"y":6.674027919769287},{"x":0.43,"y":6.678781509399414},{"x":0.431,"y":6.683538436889648},{"x":0.432,"y":6.688299655914307},{"x":0.433,"y":6.693065166473389},{"x":0.434,"y":6.697834491729736},{"x":0.435,"y":6.702608108520508},{"x":0.436,"y":6.707385063171387},{"x":0.437,"y":6.712166786193848},{"x":0.438,"y":6.716951847076416},{"x":0.439,"y":6.721741676330566},{"x":0.44,"y":6.726534843444824},{"x":0.441,"y":6.731332778930664},{"x":0.442,"y":6.736134052276611},{"x":0.443,"y":6.740939617156982},{"x":0.444,"y":6.745749473571777},{"x":0.445,"y":6.75056266784668},{"x":0.446,"y":6.755380630493164},{"x":0.447,"y":6.760202407836914},{"x":0.448,"y":6.76502799987793},{"x":0.449,"y":6.769857406616211},{"x":0.45,"y":6.774691581726074},{"x":0.451,"y":6.779529094696045},{"x":0.452,"y":6.7843708992004395},{"x":0.453,"y":6.789216995239258},{"x":0.454,"y":6.794066429138184},{"x":0.455,"y":6.798920631408691},{"x":0.456,"y":6.803778648376465},{"x":0.457,"y":6.808640480041504},{"x":0.458,"y":6.813506126403809},{"x":0.459,"y":6.818376541137695},{"x":0.46,"y":6.823250770568848},{"x":0.461,"y":6.828128814697266},{"x":0.462,"y":6.833010673522949},{"x":0.463,"y":6.837896823883057},{"x":0.464,"y":6.84278678894043},{"x":0.465,"y":6.847681045532227},{"x":0.466,"y":6.852579116821289},{"x":0.467,"y":6.857481479644775},{"x":0.468,"y":6.862387657165527},{"x":0.469,"y":6.867298126220703},{"x":0.47,"y":6.872211933135986},{"x":0.471,"y":6.877130508422852},{"x":0.472,"y":6.882052421569824},{"x":0.473,"y":6.886979103088379},{"x":0.474,"y":6.891909599304199},{"x":0.475,"y":6.896843910217285},{"x":0.476,"y":6.901782512664795},{"x":0.477,"y":6.90672492980957},{"x":0.478,"y":6.911671161651611},{"x":0.479,"y":6.916622161865234},{"x":0.48,"y":6.921576499938965},{"x":0.481,"y":6.926535129547119},{"x":0.482,"y":6.931497573852539},{"x":0.483,"y":6.936464309692383},{"x":0.484,"y":6.941434860229492},{"x":0.485,"y":6.946409225463867},{"x":0.486,"y":6.951388359069824},{"x":0.487,"y":6.956370830535889},{"x":0.488,"y":6.961357593536377},{"x":0.489,"y":6.966348648071289},{"x":0.49,"y":6.971343040466309},{"x":0.491,"y":6.97634220123291},{"x":0.492,"y":6.981345176696777},{"x":0.493,"y":6.98635196685791},{"x":0.494,"y":6.991362571716309},{"x":0.495,"y":6.996377944946289},{"x":0.496,"y":7.001396656036377},{"x":0.497,"y":7.006419658660889},{"x":0.498,"y":7.011446475982666},{"x":0.499,"y":7.016477584838867},{"x":0.5,"y":7.021512985229492},{"x":0.501,"y":7.026551723480225},{"x":0.502,"y":7.031594753265381},{"x":0.503,"y":7.036642074584961},{"x":0.504,"y":7.041693210601807},{"x":0.505,"y":7.046748638153076},{"x":0.506,"y":7.051807403564453},{"x":0.507,"y":7.056870937347412},{"x":0.508,"y":7.061938285827637},{"x":0.509,"y":7.067009449005127},{"x":0.51,"y":7.072084903717041},{"x":0.511,"y":7.077164173126221},{"x":0.512,"y":7.082247734069824},{"x":0.513,"y":7.087335109710693},{"x":0.514,"y":7.092426300048828},{"x":0.515,"y":7.097521781921387},{"x":0.516,"y":7.102621078491211},{"x":0.517,"y":7.107725143432617},{"x":0.518,"y":7.112832546234131},{"x":0.519,"y":7.11794376373291},{"x":0.52,"y":7.123059272766113},{"x":0.521,"y":7.128179550170898},{"x":0.522,"y":7.133302688598633},{"x":0.523,"y":7.138430595397949},{"x":0.524,"y":7.143562316894531},{"x":0.525,"y":7.148697853088379},{"x":0.526,"y":7.153838157653809},{"x":0.527,"y":7.1589813232421875},{"x":0.528,"y":7.164129257202148},{"x":0.529,"y":7.169281005859375},{"x":0.53,"y":7.174436569213867},{"x":0.531,"y":7.179596900939941},{"x":0.532,"y":7.184761047363281},{"x":0.533,"y":7.1899285316467285},{"x":0.534,"y":7.195100784301758},{"x":0.535,"y":7.200276851654053},{"x":0.536,"y":7.205456733703613},{"x":0.537,"y":7.210640907287598},{"x":0.538,"y":7.215828895568848},{"x":0.539,"y":7.221020698547363},{"x":0.54,"y":7.226217269897461},{"x":0.541,"y":7.231417179107666},{"x":0.542,"y":7.236621379852295},{"x":0.543,"y":7.2418293952941895},{"x":0.544,"y":7.247041702270508},{"x":0.545,"y":7.25225830078125},{"x":0.546,"y":7.2574782371521},{"x":0.547,"y":7.262702465057373},{"x":0.548,"y":7.26793098449707},{"x":0.549,"y":7.273163318634033},{"x":0.55,"y":7.278399467468262},{"x":0.551,"y":7.283639907836914},{"x":0.552,"y":7.288884162902832},{"x":0.553,"y":7.294132709503174},{"x":0.554,"y":7.2993855476379395},{"x":0.555,"y":7.3046417236328125},{"x":0.556,"y":7.309902191162109},{"x":0.557,"y":7.31516695022583},{"x":0.558,"y":7.320435523986816},{"x":0.559,"y":7.325708389282227},{"x":0.56,"y":7.330985069274902},{"x":0.561,"y":7.336265563964844},{"x":0.562,"y":7.341549873352051},{"x":0.563,"y":7.34683895111084},{"x":0.564,"y":7.3521318435668945},{"x":0.565,"y":7.357428550720215},{"x":0.566,"y":7.362729072570801},{"x":0.567,"y":7.3680338859558105},{"x":0.568,"y":7.373342990875244},{"x":0.569,"y":7.378655910491943},{"x":0.57,"y":7.383972644805908},{"x":0.571,"y":7.389293670654297},{"x":0.572,"y":7.394618988037109},{"x":0.573,"y":7.399947643280029},{"x":0.574,"y":7.405280590057373},{"x":0.575,"y":7.410617828369141},{"x":0.576,"y":7.415958404541016},{"x":0.577,"y":7.421303749084473},{"x":0.578,"y":7.426652908325195},{"x":0.579,"y":7.432005882263184},{"x":0.58,"y":7.437363147735596},{"x":0.581,"y":7.442724227905273},{"x":0.582,"y":7.448089599609375},{"x":0.583,"y":7.453458786010742},{"x":0.584,"y":7.458832263946533},{"x":0.585,"y":7.46420955657959},{"x":0.586,"y":7.46959114074707},{"x":0.587,"y":7.474976062774658},{"x":0.588,"y":7.480365753173828},{"x":0.589,"y":7.4857587814331055},{"x":0.59,"y":7.491156101226807},{"x":0.591,"y":7.49655818939209},{"x":0.592,"y":7.501963138580322},{"x":0.593,"y":7.507372856140137},{"x":0.594,"y":7.512786388397217},{"x":0.595,"y":7.5182037353515625},{"x":0.596,"y":7.523625373840332},{"x":0.597,"y":7.529050827026367},{"x":0.598,"y":7.534480571746826},{"x":0.599,"y":7.539914131164551},{"x":0.6,"y":7.545351982116699},{"x":0.601,"y":7.550793647766113},{"x":0.602,"y":7.556239128112793},{"x":0.603,"y":7.561689376831055},{"x":0.604,"y":7.567142963409424},{"x":0.605,"y":7.572601318359375},{"x":0.606,"y":7.578063011169434},{"x":0.607,"y":7.583528518676758},{"x":0.608,"y":7.588998317718506},{"x":0.609,"y":7.594472885131836},{"x":0.61,"y":7.599950313568115},{"x":0.611,"y":7.605432510375977},{"x":0.612,"y":7.610918045043945},{"x":0.613,"y":7.616408348083496},{"x":0.614,"y":7.6219024658203125},{"x":0.615,"y":7.6274003982543945},{"x":0.616,"y":7.6329026222229},{"x":0.617,"y":7.638408660888672},{"x":0.618,"y":7.643918991088867},{"x":0.619,"y":7.649433135986328},{"x":0.62,"y":7.654951095581055},{"x":0.621,"y":7.660473823547363},{"x":0.622,"y":7.665999412536621},{"x":0.623,"y":7.671530246734619},{"x":0.624,"y":7.677064418792725},{"x":0.625,"y":7.682602882385254},{"x":0.626,"y":7.688145160675049},{"x":0.627,"y":7.693691253662109},{"x":0.628,"y":7.699242115020752},{"x":0.629,"y":7.70479679107666},{"x":0.63,"y":7.710354804992676},{"x":0.631,"y":7.715917587280273},{"x":0.632,"y":7.721484184265137},{"x":0.633,"y":7.727054595947266},{"x":0.634,"y":7.73262882232666},{"x":0.635,"y":7.738207817077637},{"x":0.636,"y":7.743790149688721},{"x":0.637,"y":7.749377250671387},{"x":0.638,"y":7.75496768951416},{"x":0.639,"y":7.760562419891357},{"x":0.64,"y":7.76616096496582},{"x":0.641,"y":7.771763801574707},{"x":0.642,"y":7.777370929718018},{"x":0.643,"y":7.782981872558594},{"x":0.644,"y":7.788596153259277},{"x":0.645,"y":7.794215202331543},{"x":0.646,"y":7.799838066101074},{"x":0.647,"y":7.805465221405029},{"x":0.648,"y":7.81109619140625},{"x":0.649,"y":7.816730976104736},{"x":0.65,"y":7.822369575500488},{"x":0.651,"y":7.8280134201049805},{"x":0.652,"y":7.833660125732422},{"x":0.653,"y":7.839311122894287},{"x":0.654,"y":7.844965934753418},{"x":0.655,"y":7.850625038146973},{"x":0.656,"y":7.856288909912109},{"x":0.657,"y":7.861955642700195},{"x":0.658,"y":7.867627143859863},{"x":0.659,"y":7.873301982879639},{"x":0.66,"y":7.878981590270996},{"x":0.661,"y":7.884664535522461},{"x":0.662,"y":7.890352249145508},{"x":0.663,"y":7.896043300628662},{"x":0.664,"y":7.90173864364624},{"x":0.665,"y":7.907438278198242},{"x":0.666,"y":7.913141250610352},{"x":0.667,"y":7.918848991394043},{"x":0.668,"y":7.924560546875},{"x":0.669,"y":7.930275917053223},{"x":0.67,"y":7.935995578765869},{"x":0.671,"y":7.941719055175781},{"x":0.672,"y":7.947446823120117},{"x":0.673,"y":7.9531779289245605},{"x":0.674,"y":7.958913803100586},{"x":0.675,"y":7.964653968811035},{"x":0.676,"y":7.970396995544434},{"x":0.677,"y":7.976144790649414},{"x":0.678,"y":7.98189640045166},{"x":0.679,"y":7.987652778625488},{"x":0.68,"y":7.993412017822266},{"x":0.681,"y":7.999176025390625},{"x":0.682,"y":8.00494384765625},{"x":0.683,"y":8.01071548461914},{"x":0.684,"y":8.016491889953613},{"x":0.685,"y":8.022272109985352},{"x":0.686,"y":8.028055191040039},{"x":0.687,"y":8.033843994140625},{"x":0.688,"y":8.03963565826416},{"x":0.689,"y":8.045431137084961},{"x":0.69,"y":8.051231384277344},{"x":0.691,"y":8.057035446166992},{"x":0.692,"y":8.062843322753906},{"x":0.693,"y":8.068655967712402},{"x":0.694,"y":8.074472427368164},{"x":0.695,"y":8.080291748046875},{"x":0.696,"y":8.086116790771484},{"x":0.697,"y":8.091944694519043},{"x":0.698,"y":8.097776412963867},{"x":0.699,"y":8.103612899780273},{"x":0.7,"y":8.109453201293945},{"x":0.701,"y":8.115297317504883},{"x":0.702,"y":8.121146202087402},{"x":0.703,"y":8.126998901367188},{"x":0.704,"y":8.132854461669922},{"x":0.705,"y":8.138715744018555},{"x":0.706,"y":8.144579887390137},{"x":0.707,"y":8.1504487991333},{"x":0.708,"y":8.156320571899414},{"x":0.709,"y":8.16219711303711},{"x":0.71,"y":8.16807746887207},{"x":0.711,"y":8.17396354675293},{"x":0.712,"y":8.179851531982422},{"x":0.713,"y":8.18574333190918},{"x":0.714,"y":8.191640853881836},{"x":0.715,"y":8.197541236877441},{"x":0.716,"y":8.203446388244629},{"x":0.717,"y":8.209354400634766},{"x":0.718,"y":8.215267181396484},{"x":0.719,"y":8.221183776855469},{"x":0.72,"y":8.227105140686035},{"x":0.721,"y":8.233030319213867},{"x":0.722,"y":8.238958358764648},{"x":0.723,"y":8.244892120361328},{"x":0.724,"y":8.250828742980957},{"x":0.725,"y":8.256770133972168},{"x":0.726,"y":8.262714385986328},{"x":0.727,"y":8.26866340637207},{"x":0.728,"y":8.274616241455078},{"x":0.729,"y":8.280573844909668},{"x":0.73,"y":8.286535263061523},{"x":0.731,"y":8.292500495910645},{"x":0.732,"y":8.298469543457031},{"x":0.733,"y":8.304442405700684},{"x":0.734,"y":8.310420036315918},{"x":0.735,"y":8.316400527954102},{"x":0.736,"y":8.322385787963867},{"x":0.737,"y":8.328374862670898},{"x":0.738,"y":8.334368705749512},{"x":0.739,"y":8.34036636352539},{"x":0.74,"y":8.346367835998535},{"x":0.741,"y":8.352373123168945},{"x":0.742,"y":8.358382225036621},{"x":0.743,"y":8.364395141601562},{"x":0.744,"y":8.370412826538086},{"x":0.745,"y":8.376434326171875},{"x":0.746,"y":8.38245964050293},{"x":0.747,"y":8.388489723205566},{"x":0.748,"y":8.394523620605469},{"x":0.749,"y":8.40056037902832},{"x":0.75,"y":8.40660285949707},{"x":0.751,"y":8.41264820098877},{"x":0.752,"y":8.418697357177734},{"x":0.753,"y":8.424751281738281},{"x":0.754,"y":8.430809020996094},{"x":0.755,"y":8.436870574951172},{"x":0.756,"y":8.442936897277832},{"x":0.757,"y":8.449007034301758},{"x":0.758,"y":8.455080032348633},{"x":0.759,"y":8.461158752441406},{"x":0.76,"y":8.467240333557129},{"x":0.761,"y":8.473325729370117},{"x":0.762,"y":8.479415893554688},{"x":0.763,"y":8.485509872436523},{"x":0.764,"y":8.491607666015625},{"x":0.765,"y":8.497710227966309},{"x":0.766,"y":8.503815650939941},{"x":0.767,"y":8.509925842285156},{"x":0.768,"y":8.516040802001953},{"x":0.769,"y":8.522157669067383},{"x":0.77,"y":8.528280258178711},{"x":0.771,"y":8.534406661987305},{"x":0.772,"y":8.540536880493164},{"x":0.773,"y":8.546670913696289},{"x":0.774,"y":8.55280876159668},{"x":0.775,"y":8.558951377868652},{"x":0.776,"y":8.56509780883789},{"x":0.777,"y":8.571248054504395},{"x":0.778,"y":8.577402114868164},{"x":0.779,"y":8.583560943603516},{"x":0.78,"y":8.589723587036133},{"x":0.781,"y":8.595890045166016},{"x":0.782,"y":8.602060317993164},{"x":0.783,"y":8.608234405517578},{"x":0.784,"y":8.614413261413574},{"x":0.785,"y":8.620595932006836},{"x":0.786,"y":8.626782417297363},{"x":0.787,"y":8.632972717285156},{"x":0.788,"y":8.639167785644531},{"x":0.789,"y":8.645366668701172},{"x":0.79,"y":8.651569366455078},{"x":0.791,"y":8.65777587890625},{"x":0.792,"y":8.663986206054688},{"x":0.793,"y":8.670201301574707},{"x":0.794,"y":8.676420211791992},{"x":0.795,"y":8.682642936706543},{"x":0.796,"y":8.68886947631836},{"x":0.797,"y":8.695100784301758},{"x":0.798,"y":8.701334953308105},{"x":0.799,"y":8.707574844360352},{"x":0.8,"y":8.713817596435547},{"x":0.801,"y":8.720064163208008},{"x":0.802,"y":8.726314544677734},{"x":0.803,"y":8.732569694519043},{"x":0.804,"y":8.738828659057617},{"x":0.805,"y":8.745092391967773},{"x":0.806,"y":8.751358985900879},{"x":0.807,"y":8.757630348205566},{"x":0.808,"y":8.76390552520752},{"x":0.809,"y":8.770185470581055},{"x":0.81,"y":8.776468276977539},{"x":0.811,"y":8.782754898071289},{"x":0.812,"y":8.789046287536621},{"x":0.813,"y":8.795341491699219},{"x":0.814,"y":8.801641464233398},{"x":0.815,"y":8.807944297790527},{"x":0.816,"y":8.814251899719238},{"x":0.817,"y":8.820562362670898},{"x":0.818,"y":8.826878547668457},{"x":0.819,"y":8.833197593688965},{"x":0.82,"y":8.839521408081055},{"x":0.821,"y":8.845848083496094},{"x":0.822,"y":8.852180480957031},{"x":0.823,"y":8.858515739440918},{"x":0.824,"y":8.864855766296387},{"x":0.825,"y":8.871198654174805},{"x":0.826,"y":8.877546310424805},{"x":0.827,"y":8.88389778137207},{"x":0.828,"y":8.890254020690918},{"x":0.829,"y":8.896614074707031},{"x":0.83,"y":8.902976989746094},{"x":0.831,"y":8.909344673156738},{"x":0.832,"y":8.915717124938965},{"x":0.833,"y":8.92209243774414},{"x":0.834,"y":8.928472518920898},{"x":0.835,"y":8.934856414794922},{"x":0.836,"y":8.941244125366211},{"x":0.837,"y":8.947635650634766},{"x":0.838,"y":8.954031944274902},{"x":0.839,"y":8.960432052612305},{"x":0.84,"y":8.966835975646973},{"x":0.841,"y":8.973243713378906},{"x":0.842,"y":8.979656219482422},{"x":0.843,"y":8.986072540283203},{"x":0.844,"y":8.99249267578125},{"x":0.845,"y":8.998916625976562},{"x":0.846,"y":9.00534439086914},{"x":0.847,"y":9.011775970458984},{"x":0.848,"y":9.018213272094727},{"x":0.849,"y":9.024652481079102},{"x":0.85,"y":9.031097412109375},{"x":0.851,"y":9.037546157836914},{"x":0.852,"y":9.043997764587402},{"x":0.853,"y":9.050454139709473},{"x":0.854,"y":9.056914329528809},{"x":0.855,"y":9.063379287719727},{"x":0.856,"y":9.069847106933594},{"x":0.857,"y":9.076319694519043},{"x":0.858,"y":9.082796096801758},{"x":0.859,"y":9.089277267456055},{"x":0.86,"y":9.095760345458984},{"x":0.861,"y":9.102249145507812},{"x":0.862,"y":9.108741760253906},{"x":0.863,"y":9.115238189697266},{"x":0.864,"y":9.121739387512207},{"x":0.865,"y":9.128244400024414},{"x":0.866,"y":9.13475227355957},{"x":0.867,"y":9.141265869140625},{"x":0.868,"y":9.147781372070312},{"x":0.869,"y":9.154302597045898},{"x":0.87,"y":9.16082763671875},{"x":0.871,"y":9.167356491088867},{"x":0.872,"y":9.17388916015625},{"x":0.873,"y":9.180426597595215},{"x":0.874,"y":9.186967849731445},{"x":0.875,"y":9.193511962890625},{"x":0.876,"y":9.200060844421387},{"x":0.877,"y":9.206613540649414},{"x":0.878,"y":9.213171005249023},{"x":0.879,"y":9.219732284545898},{"x":0.88,"y":9.226297378540039},{"x":0.881,"y":9.232866287231445},{"x":0.882,"y":9.239439010620117},{"x":0.883,"y":9.246015548706055},{"x":0.884,"y":9.25259780883789},{"x":0.885,"y":9.25918197631836},{"x":0.886,"y":9.265771865844727},{"x":0.887,"y":9.27236557006836},{"x":0.888,"y":9.278961181640625},{"x":0.889,"y":9.285563468933105},{"x":0.89,"y":9.292167663574219},{"x":0.891,"y":9.29877758026123},{"x":0.892,"y":9.305391311645508},{"x":0.893,"y":9.31200885772705},{"x":0.894,"y":9.31863021850586},{"x":0.895,"y":9.325255393981934},{"x":0.896,"y":9.331884384155273},{"x":0.897,"y":9.338518142700195},{"x":0.898,"y":9.345155715942383},{"x":0.899,"y":9.351797103881836},{"x":0.9,"y":9.358442306518555},{"x":0.901,"y":9.365093231201172},{"x":0.902,"y":9.371746063232422},{"x":0.903,"y":9.378403663635254},{"x":0.904,"y":9.385065078735352},{"x":0.905,"y":9.391731262207031},{"x":0.906,"y":9.398401260375977},{"x":0.907,"y":9.405075073242188},{"x":0.908,"y":9.411752700805664},{"x":0.909,"y":9.418434143066406},{"x":0.91,"y":9.425119400024414},{"x":0.911,"y":9.43181037902832},{"x":0.912,"y":9.43850326538086},{"x":0.913,"y":9.445201873779297},{"x":0.914,"y":9.451903343200684},{"x":0.915,"y":9.458609580993652},{"x":0.916,"y":9.46531867980957},{"x":0.917,"y":9.472033500671387},{"x":0.918,"y":9.478751182556152},{"x":0.919,"y":9.4854736328125},{"x":0.92,"y":9.492198944091797},{"x":0.921,"y":9.498929977416992},{"x":0.922,"y":9.505663871765137},{"x":0.923,"y":9.512401580810547},{"x":0.924,"y":9.519144058227539},{"x":0.925,"y":9.525890350341797},{"x":0.926,"y":9.53264045715332},{"x":0.927,"y":9.53939437866211},{"x":0.928,"y":9.546152114868164},{"x":0.929,"y":9.552915573120117},{"x":0.93,"y":9.55968189239502},{"x":0.931,"y":9.566452026367188},{"x":0.932,"y":9.573226928710938},{"x":0.933,"y":9.580005645751953},{"x":0.934,"y":9.586788177490234},{"x":0.935,"y":9.593574523925781},{"x":0.936,"y":9.600364685058594},{"x":0.937,"y":9.607158660888672},{"x":0.938,"y":9.613958358764648},{"x":0.939,"y":9.620759963989258},{"x":0.94,"y":9.627567291259766},{"x":0.941,"y":9.634376525878906},{"x":0.942,"y":9.641191482543945},{"x":0.943,"y":9.64801025390625},{"x":0.944,"y":9.65483283996582},{"x":0.945,"y":9.661659240722656},{"x":0.946,"y":9.66849136352539},{"x":0.947,"y":9.675325393676758},{"x":0.948,"y":9.682165145874023},{"x":0.949,"y":9.689006805419922},{"x":0.95,"y":9.695854187011719},{"x":0.951,"y":9.702705383300781},{"x":0.952,"y":9.70956039428711},{"x":0.953,"y":9.716419219970703},{"x":0.954,"y":9.723281860351562},{"x":0.955,"y":9.730148315429688},{"x":0.956,"y":9.737019538879395},{"x":0.957,"y":9.743894577026367},{"x":0.958,"y":9.750774383544922},{"x":0.959,"y":9.757657051086426},{"x":0.96,"y":9.764543533325195},{"x":0.961,"y":9.771434783935547},{"x":0.962,"y":9.77833080291748},{"x":0.963,"y":9.785229682922363},{"x":0.964,"y":9.792133331298828},{"x":0.965,"y":9.799039840698242},{"x":0.966,"y":9.805952072143555},{"x":0.967,"y":9.8128662109375},{"x":0.968,"y":9.819786071777344},{"x":0.969,"y":9.826709747314453},{"x":0.97,"y":9.833637237548828},{"x":0.971,"y":9.840568542480469},{"x":0.972,"y":9.847503662109375},{"x":0.973,"y":9.854442596435547},{"x":0.974,"y":9.861387252807617},{"x":0.975,"y":9.868334770202637},{"x":0.976,"y":9.875286102294922},{"x":0.977,"y":9.882241249084473},{"x":0.978,"y":9.889201164245605},{"x":0.979,"y":9.896163940429688},{"x":0.98,"y":9.903132438659668},{"x":0.981,"y":9.910104751586914},{"x":0.982,"y":9.91707992553711},{"x":0.983,"y":9.92405891418457},{"x":0.984,"y":9.93104362487793},{"x":0.985,"y":9.938031196594238},{"x":0.986,"y":9.945022583007812},{"x":0.987,"y":9.952018737792969},{"x":0.988,"y":9.95901870727539},{"x":0.989,"y":9.966022491455078},{"x":0.99,"y":9.973030090332031},{"x":0.991,"y":9.980042457580566},{"x":0.992,"y":9.987058639526367},{"x":0.993,"y":9.994077682495117},{"x":0.994,"y":10.001102447509766},{"x":0.995,"y":10.00813102722168},{"x":0.996,"y":10.015161514282227},{"x":0.997,"y":10.022197723388672},{"x":0.998,"y":10.0292387008667},{"x":0.999,"y":10.036283493041992},{"x":1.0,"y":10.043331146240234},{"x":1.001,"y":10.050382614135742},{"x":1.002,"y":10.057439804077148},{"x":1.003,"y":10.064498901367188},{"x":1.004,"y":10.071563720703125},{"x":1.005,"y":10.078632354736328},{"x":1.006,"y":10.085704803466797},{"x":1.007,"y":10.092781066894531},{"x":1.008,"y":10.099861145019531},{"x":1.009,"y":10.106945037841797},{"x":1.01,"y":10.114034652709961},{"x":1.011,"y":10.121126174926758},{"x":1.012,"y":10.128223419189453},{"x":1.013,"y":10.135324478149414},{"x":1.014,"y":10.142428398132324},{"x":1.015,"y":10.1495361328125},{"x":1.016,"y":10.156648635864258},{"x":1.017,"y":10.163764953613281},{"x":1.018,"y":10.170886993408203},{"x":1.019,"y":10.178010940551758},{"x":1.02,"y":10.185139656066895},{"x":1.021,"y":10.192272186279297},{"x":1.022,"y":10.199409484863281},{"x":1.023,"y":10.206550598144531},{"x":1.024,"y":10.213695526123047},{"x":1.025,"y":10.220844268798828},{"x":1.026,"y":10.227996826171875},{"x":1.027,"y":10.235153198242188},{"x":1.028,"y":10.242315292358398},{"x":1.029,"y":10.249479293823242},{"x":1.03,"y":10.256649017333984},{"x":1.031,"y":10.263821601867676},{"x":1.032,"y":10.270998001098633},{"x":1.033,"y":10.278179168701172},{"x":1.034,"y":10.285364151000977},{"x":1.035,"y":10.292552947998047},{"x":1.036,"y":10.299747467041016},{"x":1.037,"y":10.306943893432617},{"x":1.038,"y":10.314144134521484},{"x":1.039,"y":10.32135009765625},{"x":1.04,"y":10.328559875488281},{"x":1.041,"y":10.335773468017578},{"x":1.042,"y":10.34299087524414},{"x":1.043,"y":10.350212097167969},{"x":1.044,"y":10.357437133789062},{"x":1.045,"y":10.364665985107422},{"x":1.046,"y":10.371898651123047},{"x":1.047,"y":10.37913703918457},{"x":1.048,"y":10.386377334594727},{"x":1.049,"y":10.393623352050781},{"x":1.05,"y":10.400873184204102},{"x":1.051,"y":10.408126831054688},{"x":1.052,"y":10.415384292602539},{"x":1.053,"y":10.422645568847656},{"x":1.054,"y":10.429910659790039},{"x":1.055,"y":10.437180519104004},{"x":1.056,"y":10.444454193115234},{"x":1.057,"y":10.451732635498047},{"x":1.058,"y":10.459012985229492},{"x":1.059,"y":10.466300010681152},{"x":1.06,"y":10.473588943481445},{"x":1.061,"y":10.48088264465332},{"x":1.062,"y":10.488182067871094},{"x":1.063,"y":10.4954833984375},{"x":1.064,"y":10.502788543701172},{"x":1.065,"y":10.510099411010742},{"x":1.066,"y":10.517412185668945},{"x":1.067,"y":10.524730682373047},{"x":1.068,"y":10.532052993774414},{"x":1.069,"y":10.539379119873047},{"x":1.07,"y":10.546709060668945},{"x":1.071,"y":10.55404281616211},{"x":1.072,"y":10.561380386352539},{"x":1.073,"y":10.568721771240234},{"x":1.074,"y":10.576068878173828},{"x":1.075,"y":10.583419799804688},{"x":1.076,"y":10.59077262878418},{"x":1.077,"y":10.59813117980957},{"x":1.078,"y":10.605493545532227},{"x":1.079,"y":10.612859725952148},{"x":1.08,"y":10.620229721069336},{"x":1.081,"y":10.627603530883789},{"x":1.082,"y":10.63498306274414},{"x":1.083,"y":10.642364501953125},{"x":1.084,"y":10.649751663208008},{"x":1.085,"y":10.657142639160156},{"x":1.086,"y":10.664535522460938},{"x":1.087,"y":10.671934127807617},{"x":1.088,"y":10.679337501525879},{"x":1.089,"y":10.686742782592773},{"x":1.09,"y":10.694154739379883},{"x":1.091,"y":10.701568603515625},{"x":1.092,"y":10.708988189697266},{"x":1.093,"y":10.716409683227539},{"x":1.094,"y":10.723836898803711},{"x":1.095,"y":10.731267929077148},{"x":1.096,"y":10.738700866699219},{"x":1.097,"y":10.74614143371582},{"x":1.098,"y":10.753583908081055},{"x":1.099,"y":10.761030197143555},{"x":1.1,"y":10.768481254577637},{"x":1.101,"y":10.775936126708984},{"x":1.102,"y":10.783393859863281},{"x":1.103,"y":10.790857315063477},{"x":1.104,"y":10.798324584960938},{"x":1.105,"y":10.805795669555664},{"x":1.106,"y":10.813270568847656},{"x":1.107,"y":10.820749282836914},{"x":1.108,"y":10.828232765197754},{"x":1.109,"y":10.835719108581543},{"x":1.11,"y":10.843210220336914},{"x":1.111,"y":10.85070514678955},{"x":1.112,"y":10.85820484161377},{"x":1.113,"y":10.865707397460938},{"x":1.114,"y":10.873214721679688},{"x":1.115,"y":10.880725860595703},{"x":1.116,"y":10.8882417678833},{"x":1.117,"y":10.895760536193848},{"x":1.118,"y":10.903284072875977},{"x":1.119,"y":10.910810470581055},{"x":1.12,"y":10.918342590332031},{"x":1.121,"y":10.925878524780273},{"x":1.122,"y":10.933416366577148},{"x":1.123,"y":10.940959930419922},{"x":1.124,"y":10.948507308959961},{"x":1.125,"y":10.956060409545898},{"x":1.126,"y":10.963615417480469},{"x":1.127,"y":10.971174240112305},{"x":1.128,"y":10.978738784790039},{"x":1.129,"y":10.986305236816406},{"x":1.13,"y":10.993877410888672},{"x":1.131,"y":11.001453399658203},{"x":1.132,"y":11.009032249450684},{"x":1.133,"y":11.016616821289062},{"x":1.134,"y":11.024203300476074},{"x":1.135,"y":11.031795501708984},{"x":1.136,"y":11.03939151763916},{"x":1.137,"y":11.046991348266602},{"x":1.138,"y":11.054594993591309},{"x":1.139,"y":11.062202453613281},{"x":1.14,"y":11.069814682006836},{"x":1.141,"y":11.077430725097656},{"x":1.142,"y":11.085050582885742},{"x":1.143,"y":11.092674255371094},{"x":1.144,"y":11.100301742553711},{"x":1.145,"y":11.10793399810791},{"x":1.146,"y":11.115570068359375},{"x":1.147,"y":11.123208999633789},{"x":1.148,"y":11.130853652954102},{"x":1.149,"y":11.13850212097168},{"x":1.15,"y":11.146154403686523},{"x":1.151,"y":11.153810501098633},{"x":1.152,"y":11.161470413208008},{"x":1.153,"y":11.169135093688965},{"x":1.154,"y":11.176803588867188},{"x":1.155,"y":11.18447494506836},{"x":1.156,"y":11.19215202331543},{"x":1.157,"y":11.199831008911133},{"x":1.158,"y":11.207515716552734},{"x":1.159,"y":11.215204238891602},{"x":1.16,"y":11.222896575927734},{"x":1.161,"y":11.230592727661133},{"x":1.162,"y":11.238292694091797},{"x":1.163,"y":11.24599838256836},{"x":1.164,"y":11.253706932067871},{"x":1.165,"y":11.261419296264648},{"x":1.166,"y":11.269136428833008},{"x":1.167,"y":11.276857376098633},{"x":1.168,"y":11.28458023071289},{"x":1.169,"y":11.292309761047363},{"x":1.17,"y":11.300041198730469},{"x":1.171,"y":11.307779312133789},{"x":1.172,"y":11.315519332885742},{"x":1.173,"y":11.323264122009277},{"x":1.174,"y":11.331012725830078},{"x":1.175,"y":11.338766098022461},{"x":1.176,"y":11.34652328491211},{"x":1.177,"y":11.354284286499023},{"x":1.178,"y":11.362048149108887},{"x":1.179,"y":11.369817733764648},{"x":1.18,"y":11.37759017944336},{"x":1.181,"y":11.385366439819336},{"x":1.182,"y":11.393148422241211},{"x":1.183,"y":11.400932312011719},{"x":1.184,"y":11.408721923828125},{"x":1.185,"y":11.41651439666748},{"x":1.186,"y":11.424311637878418},{"x":1.187,"y":11.432113647460938},{"x":1.188,"y":11.439918518066406},{"x":1.189,"y":11.44772720336914},{"x":1.19,"y":11.455541610717773},{"x":1.191,"y":11.463357925415039},{"x":1.192,"y":11.471179008483887},{"x":1.193,"y":11.47900390625},{"x":1.194,"y":11.486833572387695},{"x":1.195,"y":11.494667053222656},{"x":1.196,"y":11.502504348754883},{"x":1.197,"y":11.510345458984375},{"x":1.198,"y":11.518190383911133},{"x":1.199,"y":11.526039123535156},{"x":1.2,"y":11.533893585205078},{"x":1.201,"y":11.541749954223633},{"x":1.202,"y":11.549612045288086},{"x":1.203,"y":11.557477951049805},{"x":1.204,"y":11.565347671508789},{"x":1.205,"y":11.573221206665039},{"x":1.206,"y":11.581098556518555},{"x":1.207,"y":11.588979721069336},{"x":1.208,"y":11.596864700317383},{"x":1.209,"y":11.604755401611328},{"x":1.21,"y":11.612649917602539},{"x":1.211,"y":11.620546340942383},{"x":1.212,"y":11.628448486328125},{"x":1.213,"y":11.636354446411133},{"x":1.214,"y":11.644264221191406},{"x":1.215,"y":11.652177810668945},{"x":1.216,"y":11.66009521484375},{"x":1.217,"y":11.668018341064453},{"x":1.218,"y":11.675943374633789},{"x":1.219,"y":11.683873176574707},{"x":1.22,"y":11.69180679321289},{"x":1.221,"y":11.699745178222656},{"x":1.222,"y":11.707687377929688},{"x":1.223,"y":11.715633392333984},{"x":1.224,"y":11.723583221435547},{"x":1.225,"y":11.731536865234375},{"x":1.226,"y":11.739494323730469},{"x":1.227,"y":11.747457504272461},{"x":1.228,"y":11.755424499511719},{"x":1.229,"y":11.76339340209961},{"x":1.23,"y":11.771368026733398},{"x":1.231,"y":11.779346466064453},{"x":1.232,"y":11.787328720092773},{"x":1.233,"y":11.79531478881836},{"x":1.234,"y":11.803304672241211},{"x":1.235,"y":11.811300277709961},{"x":1.236,"y":11.819297790527344},{"x":1.237,"y":11.827301025390625},{"x":1.238,"y":11.835307121276855},{"x":1.239,"y":11.843317031860352},{"x":1.24,"y":11.85133171081543},{"x":1.241,"y":11.859350204467773},{"x":1.242,"y":11.867372512817383},{"x":1.243,"y":11.875399589538574},{"x":1.244,"y":11.883429527282715},{"x":1.245,"y":11.891464233398438},{"x":1.246,"y":11.899503707885742},{"x":1.247,"y":11.90754508972168},{"x":1.248,"y":11.915592193603516},{"x":1.249,"y":11.923643112182617},{"x":1.25,"y":11.931697845458984},{"x":1.251,"y":11.939756393432617},{"x":1.252,"y":11.947818756103516},{"x":1.253,"y":11.955886840820312},{"x":1.254,"y":11.963956832885742},{"x":1.255,"y":11.97203254699707},{"x":1.256,"y":11.980111122131348},{"x":1.257,"y":11.98819351196289},{"x":1.258,"y":11.996280670166016},{"x":1.259,"y":12.004371643066406},{"x":1.26,"y":12.012466430664062},{"x":1.261,"y":12.0205659866333},{"x":1.262,"y":12.028668403625488},{"x":1.263,"y":12.036775588989258},{"x":1.264,"y":12.04488754272461},{"x":1.265,"y":12.053001403808594},{"x":1.266,"y":12.061120986938477},{"x":1.267,"y":12.069244384765625},{"x":1.268,"y":12.077371597290039},{"x":1.269,"y":12.085502624511719},{"x":1.27,"y":12.093637466430664},{"x":1.271,"y":12.101778030395508},{"x":1.272,"y":12.109920501708984},{"x":1.273,"y":12.11806869506836},{"x":1.274,"y":12.126218795776367},{"x":1.275,"y":12.134374618530273},{"x":1.276,"y":12.142534255981445},{"x":1.277,"y":12.150697708129883},{"x":1.278,"y":12.158864974975586},{"x":1.279,"y":12.167037010192871},{"x":1.28,"y":12.175211906433105},{"x":1.281,"y":12.183391571044922},{"x":1.282,"y":12.191574096679688},{"x":1.283,"y":12.199762344360352},{"x":1.284,"y":12.207954406738281},{"x":1.285,"y":12.216150283813477},{"x":1.286,"y":12.224349975585938},{"x":1.287,"y":12.232553482055664},{"x":1.288,"y":12.240760803222656},{"x":1.289,"y":12.248973846435547},{"x":1.29,"y":12.25718879699707},{"x":1.291,"y":12.265408515930176},{"x":1.292,"y":12.273632049560547},{"x":1.293,"y":12.2818603515625},{"x":1.294,"y":12.290092468261719},{"x":1.295,"y":12.298327445983887},{"x":1.296,"y":12.306568145751953},{"x":1.297,"y":12.314811706542969},{"x":1.298,"y":12.32305908203125},{"x":1.299,"y":12.33131217956543},{"x":1.3,"y":12.339567184448242},{"x":1.301,"y":12.347827911376953},{"x":1.302,"y":12.35609245300293},{"x":1.303,"y":12.364360809326172},{"x":1.304,"y":12.37263298034668},{"x":1.305,"y":12.380908966064453},{"x":1.306,"y":12.389188766479492},{"x":1.307,"y":12.397473335266113},{"x":1.308,"y":12.40576171875},{"x":1.309,"y":12.414052963256836},{"x":1.31,"y":12.42234992980957},{"x":1.311,"y":12.43065071105957},{"x":1.312,"y":12.438955307006836},{"x":1.313,"y":12.447261810302734},{"x":1.314,"y":12.455575942993164},{"x":1.315,"y":12.463891983032227},{"x":1.316,"y":12.472211837768555},{"x":1.317,"y":12.480537414550781},{"x":1.318,"y":12.48886489868164},{"x":1.319,"y":12.497198104858398},{"x":1.32,"y":12.505535125732422},{"x":1.321,"y":12.513874053955078},{"x":1.322,"y":12.52221965789795},{"x":1.323,"y":12.530567169189453},{"x":1.324,"y":12.538921356201172},{"x":1.325,"y":12.547277450561523},{"x":1.326,"y":12.555638313293457},{"x":1.327,"y":12.564002990722656},{"x":1.328,"y":12.572370529174805},{"x":1.329,"y":12.580743789672852},{"x":1.33,"y":12.58912181854248},{"x":1.331,"y":12.597501754760742},{"x":1.332,"y":12.605886459350586},{"x":1.333,"y":12.614274978637695},{"x":1.334,"y":12.622669219970703},{"x":1.335,"y":12.63106632232666},{"x":1.336,"y":12.639467239379883},{"x":1.337,"y":12.647871971130371},{"x":1.338,"y":12.656280517578125},{"x":1.339,"y":12.664693832397461},{"x":1.34,"y":12.673110961914062},{"x":1.341,"y":12.68153190612793},{"x":1.342,"y":12.689957618713379},{"x":1.343,"y":12.698387145996094},{"x":1.344,"y":12.706819534301758},{"x":1.345,"y":12.71525764465332},{"x":1.346,"y":12.723697662353516},{"x":1.347,"y":12.73214340209961},{"x":1.348,"y":12.740592956542969},{"x":1.349,"y":12.749046325683594},{"x":1.35,"y":12.757503509521484},{"x":1.351,"y":12.76596450805664},{"x":1.352,"y":12.774430274963379},{"x":1.353,"y":12.782899856567383},{"x":1.354,"y":12.791372299194336},{"x":1.355,"y":12.799850463867188},{"x":1.356,"y":12.808332443237305},{"x":1.357,"y":12.816818237304688},{"x":1.358,"y":12.825307846069336},{"x":1.359,"y":12.83380126953125},{"x":1.36,"y":12.84229850769043},{"x":1.361,"y":12.850799560546875},{"x":1.362,"y":12.859306335449219},{"x":1.363,"y":12.867815017700195},{"x":1.364,"y":12.87632942199707},{"x":1.365,"y":12.884847640991211},{"x":1.366,"y":12.893369674682617},{"x":1.367,"y":12.901893615722656},{"x":1.368,"y":12.910425186157227},{"x":1.369,"y":12.918957710266113},{"x":1.37,"y":12.927495956420898},{"x":1.371,"y":12.936038970947266},{"x":1.372,"y":12.944583892822266},{"x":1.373,"y":12.953134536743164},{"x":1.374,"y":12.961687088012695},{"x":1.375,"y":12.970245361328125},{"x":1.376,"y":12.978808403015137},{"x":1.377,"y":12.987373352050781},{"x":1.378,"y":12.995944023132324},{"x":1.379,"y":13.004517555236816},{"x":1.38,"y":13.01309585571289},{"x":1.381,"y":13.021678924560547},{"x":1.382,"y":13.030263900756836},{"x":1.383,"y":13.038854598999023},{"x":1.384,"y":13.047449111938477},{"x":1.385,"y":13.056047439575195},{"x":1.386,"y":13.06464958190918},{"x":1.387,"y":13.07325553894043},{"x":1.388,"y":13.081865310668945},{"x":1.389,"y":13.09048080444336},{"x":1.39,"y":13.099098205566406},{"x":1.391,"y":13.107721328735352},{"x":1.392,"y":13.116348266601562},{"x":1.393,"y":13.124979019165039},{"x":1.394,"y":13.133613586425781},{"x":1.395,"y":13.142250061035156},{"x":1.396,"y":13.150894165039062},{"x":1.397,"y":13.159540176391602},{"x":1.398,"y":13.168191909790039},{"x":1.399,"y":13.17684555053711},{"x":1.4,"y":13.185504913330078},{"x":1.401,"y":13.194168090820312},{"x":1.402,"y":13.20283317565918},{"x":1.403,"y":13.211503982543945},{"x":1.404,"y":13.220178604125977},{"x":1.405,"y":13.228858947753906},{"x":1.406,"y":13.237541198730469},{"x":1.407,"y":13.246227264404297},{"x":1.408,"y":13.254919052124023},{"x":1.409,"y":13.263614654541016},{"x":1.41,"y":13.27231216430664},{"x":1.411,"y":13.281015396118164},{"x":1.412,"y":13.289722442626953},{"x":1.413,"y":13.298433303833008},{"x":1.414,"y":13.307147979736328},{"x":1.415,"y":13.315866470336914},{"x":1.416,"y":13.324590682983398},{"x":1.417,"y":13.333318710327148},{"x":1.418,"y":13.342048645019531},{"x":1.419,"y":13.350784301757812},{"x":1.42,"y":13.359521865844727},{"x":1.421,"y":13.368267059326172},{"x":1.422,"y":13.37701416015625},{"x":1.423,"y":13.385765075683594},{"x":1.424,"y":13.394519805908203},{"x":1.425,"y":13.403278350830078},{"x":1.426,"y":13.412042617797852},{"x":1.427,"y":13.42081069946289},{"x":1.428,"y":13.429580688476562},{"x":1.429,"y":13.438356399536133},{"x":1.43,"y":13.447135925292969},{"x":1.431,"y":13.45591926574707},{"x":1.432,"y":13.46470832824707},{"x":1.433,"y":13.473499298095703},{"x":1.434,"y":13.482294082641602},{"x":1.435,"y":13.491092681884766},{"x":1.436,"y":13.499897003173828},{"x":1.437,"y":13.508705139160156},{"x":1.438,"y":13.51751708984375},{"x":1.439,"y":13.52633285522461},{"x":1.44,"y":13.535152435302734},{"x":1.441,"y":13.543975830078125},{"x":1.442,"y":13.552804946899414},{"x":1.443,"y":13.561635971069336},{"x":1.444,"y":13.570470809936523},{"x":1.445,"y":13.57931137084961},{"x":1.446,"y":13.588155746459961},{"x":1.447,"y":13.597003936767578},{"x":1.448,"y":13.605854034423828},{"x":1.449,"y":13.61471176147461},{"x":1.45,"y":13.623571395874023},{"x":1.451,"y":13.632434844970703},{"x":1.452,"y":13.641302108764648},{"x":1.453,"y":13.650175094604492},{"x":1.454,"y":13.659051895141602},{"x":1.455,"y":13.667932510375977},{"x":1.456,"y":13.676815032958984},{"x":1.457,"y":13.68570327758789},{"x":1.458,"y":13.694595336914062},{"x":1.459,"y":13.7034912109375},{"x":1.46,"y":13.712392807006836},{"x":1.461,"y":13.721296310424805},{"x":1.462,"y":13.730205535888672},{"x":1.463,"y":13.739118576049805},{"x":1.464,"y":13.74803352355957},{"x":1.465,"y":13.756954193115234},{"x":1.466,"y":13.765876770019531},{"x":1.467,"y":13.77480697631836},{"x":1.468,"y":13.78373908996582},{"x":1.469,"y":13.792675018310547},{"x":1.47,"y":13.801616668701172},{"x":1.471,"y":13.81056022644043},{"x":1.472,"y":13.819509506225586},{"x":1.473,"y":13.828462600708008},{"x":1.474,"y":13.837417602539062},{"x":1.475,"y":13.846378326416016},{"x":1.476,"y":13.855342864990234},{"x":1.477,"y":13.864311218261719},{"x":1.478,"y":13.873285293579102},{"x":1.479,"y":13.882261276245117},{"x":1.48,"y":13.891242980957031},{"x":1.481,"y":13.900226593017578},{"x":1.482,"y":13.909215927124023},{"x":1.483,"y":13.918209075927734},{"x":1.484,"y":13.927206039428711},{"x":1.485,"y":13.936206817626953},{"x":1.486,"y":13.945211410522461},{"x":1.487,"y":13.954219818115234},{"x":1.488,"y":13.963233947753906},{"x":1.489,"y":13.972249984741211},{"x":1.49,"y":13.981271743774414},{"x":1.491,"y":13.990297317504883},{"x":1.492,"y":13.999324798583984},{"x":1.493,"y":14.008359909057617},{"x":1.494,"y":14.01739501953125},{"x":1.495,"y":14.026437759399414},{"x":1.496,"y":14.035482406616211},{"x":1.497,"y":14.044530868530273},{"x":1.498,"y":14.053585052490234},{"x":1.499,"y":14.062641143798828},{"x":1.5,"y":14.07170295715332},{"x":1.501,"y":14.080768585205078},{"x":1.502,"y":14.089838027954102},{"x":1.503,"y":14.09891128540039},{"x":1.504,"y":14.107988357543945},{"x":1.505,"y":14.117069244384766},{"x":1.506,"y":14.126155853271484},{"x":1.507,"y":14.135244369506836},{"x":1.508,"y":14.144338607788086},{"x":1.509,"y":14.153434753417969},{"x":1.51,"y":14.16253662109375},{"x":1.511,"y":14.17164421081543},{"x":1.512,"y":14.18075180053711},{"x":1.513,"y":14.18986701965332},{"x":1.514,"y":14.198984146118164},{"x":1.515,"y":14.208105087280273},{"x":1.516,"y":14.217231750488281},{"x":1.517,"y":14.226360321044922},{"x":1.518,"y":14.235494613647461},{"x":1.519,"y":14.244632720947266},{"x":1.52,"y":14.253774642944336},{"x":1.521,"y":14.262920379638672},{"x":1.522,"y":14.272069931030273},{"x":1.523,"y":14.28122329711914},{"x":1.524,"y":14.290382385253906},{"x":1.525,"y":14.299543380737305},{"x":1.526,"y":14.308710098266602},{"x":1.527,"y":14.317880630493164},{"x":1.528,"y":14.327054977416992},{"x":1.529,"y":14.336233139038086},{"x":1.53,"y":14.345413208007812},{"x":1.531,"y":14.35460090637207},{"x":1.532,"y":14.363788604736328},{"x":1.533,"y":14.372983932495117},{"x":1.534,"y":14.382183074951172},{"x":1.535,"y":14.39138412475586},{"x":1.536,"y":14.400590896606445},{"x":1.537,"y":14.409801483154297},{"x":1.538,"y":14.419015884399414},{"x":1.539,"y":14.428234100341797},{"x":1.54,"y":14.437456130981445},{"x":1.541,"y":14.44668197631836},{"x":1.542,"y":14.455913543701172},{"x":1.543,"y":14.465147018432617},{"x":1.544,"y":14.474386215209961},{"x":1.545,"y":14.483627319335938},{"x":1.546,"y":14.492874145507812},{"x":1.547,"y":14.502126693725586},{"x":1.548,"y":14.51137924194336},{"x":1.549,"y":14.520639419555664},{"x":1.55,"y":14.529901504516602},{"x":1.551,"y":14.539167404174805},{"x":1.552,"y":14.548439025878906},{"x":1.553,"y":14.55771255493164},{"x":1.554,"y":14.566991806030273},{"x":1.555,"y":14.576272964477539},{"x":1.556,"y":14.585559844970703},{"x":1.557,"y":14.594852447509766},{"x":1.558,"y":14.604146957397461},{"x":1.559,"y":14.613445281982422},{"x":1.56,"y":14.622747421264648},{"x":1.561,"y":14.632055282592773},{"x":1.562,"y":14.641366958618164},{"x":1.563,"y":14.650680541992188},{"x":1.564,"y":14.65999984741211},{"x":1.565,"y":14.669322967529297},{"x":1.566,"y":14.67864990234375},{"x":1.567,"y":14.687980651855469},{"x":1.568,"y":14.697315216064453},{"x":1.569,"y":14.706655502319336},{"x":1.57,"y":14.715999603271484},{"x":1.571,"y":14.725345611572266},{"x":1.572,"y":14.734697341918945},{"x":1.573,"y":14.744050979614258},{"x":1.574,"y":14.753410339355469},{"x":1.575,"y":14.762775421142578},{"x":1.576,"y":14.772140502929688},{"x":1.577,"y":14.781513214111328},{"x":1.578,"y":14.790887832641602},{"x":1.579,"y":14.800268173217773},{"x":1.58,"y":14.809652328491211},{"x":1.581,"y":14.819038391113281},{"x":1.582,"y":14.82843017578125},{"x":1.583,"y":14.837825775146484},{"x":1.584,"y":14.847225189208984},{"x":1.585,"y":14.85662841796875},{"x":1.586,"y":14.866035461425781},{"x":1.587,"y":14.875448226928711},{"x":1.588,"y":14.884862899780273},{"x":1.589,"y":14.894283294677734},{"x":1.59,"y":14.903705596923828},{"x":1.591,"y":14.91313362121582},{"x":1.592,"y":14.922565460205078},{"x":1.593,"y":14.932003021240234},{"x":1.594,"y":14.94144058227539},{"x":1.595,"y":14.950885772705078},{"x":1.596,"y":14.960332870483398},{"x":1.597,"y":14.969783782958984},{"x":1.598,"y":14.979240417480469},{"x":1.599,"y":14.988700866699219},{"x":1.6,"y":14.998165130615234},{"x":1.601,"y":15.007631301879883},{"x":1.602,"y":15.017105102539062},{"x":1.603,"y":15.026580810546875},{"x":1.604,"y":15.036060333251953},{"x":1.605,"y":15.045543670654297},{"x":1.606,"y":15.055030822753906},{"x":1.607,"y":15.064523696899414},{"x":1.608,"y":15.074020385742188},{"x":1.609,"y":15.083520889282227},{"x":1.61,"y":15.093025207519531},{"x":1.611,"y":15.102531433105469},{"x":1.612,"y":15.112045288085938},{"x":1.613,"y":15.121561050415039},{"x":1.614,"y":15.131080627441406},{"x":1.615,"y":15.140605926513672},{"x":1.616,"y":15.150135040283203},{"x":1.617,"y":15.159666061401367},{"x":1.618,"y":15.16920280456543},{"x":1.619,"y":15.178743362426758},{"x":1.62,"y":15.188287734985352},{"x":1.621,"y":15.197835922241211},{"x":1.622,"y":15.207387924194336},{"x":1.623,"y":15.21694564819336},{"x":1.624,"y":15.226505279541016},{"x":1.625,"y":15.23607063293457},{"x":1.626,"y":15.24563980102539},{"x":1.627,"y":15.255210876464844},{"x":1.628,"y":15.264787673950195},{"x":1.629,"y":15.274368286132812},{"x":1.63,"y":15.283952713012695},{"x":1.631,"y":15.293542861938477},{"x":1.632,"y":15.30313491821289},{"x":1.633,"y":15.312732696533203},{"x":1.634,"y":15.322332382202148},{"x":1.635,"y":15.331937789916992},{"x":1.636,"y":15.341547012329102},{"x":1.637,"y":15.351158142089844},{"x":1.638,"y":15.360776901245117},{"x":1.639,"y":15.370397567749023},{"x":1.64,"y":15.380022048950195},{"x":1.641,"y":15.389652252197266},{"x":1.642,"y":15.399284362792969},{"x":1.643,"y":15.40892219543457},{"x":1.644,"y":15.418561935424805},{"x":1.645,"y":15.428207397460938},{"x":1.646,"y":15.437856674194336},{"x":1.647,"y":15.447507858276367},{"x":1.648,"y":15.45716667175293},{"x":1.649,"y":15.466829299926758},{"x":1.65,"y":15.476491928100586},{"x":1.651,"y":15.486162185668945},{"x":1.652,"y":15.495834350585938},{"x":1.653,"y":15.505512237548828},{"x":1.654,"y":15.515193939208984},{"x":1.655,"y":15.524879455566406},{"x":1.656,"y":15.534568786621094},{"x":1.657,"y":15.544261932373047},{"x":1.658,"y":15.553960800170898},{"x":1.659,"y":15.563661575317383},{"x":1.66,"y":15.573366165161133},{"x":1.661,"y":15.583076477050781},{"x":1.662,"y":15.592788696289062},{"x":1.663,"y":15.602506637573242},{"x":1.664,"y":15.612228393554688},{"x":1.665,"y":15.621953964233398},{"x":1.666,"y":15.631685256958008},{"x":1.667,"y":15.64141845703125},{"x":1.668,"y":15.651155471801758},{"x":1.669,"y":15.660898208618164},{"x":1.67,"y":15.670642852783203},{"x":1.671,"y":15.68039321899414},{"x":1.672,"y":15.690147399902344},{"x":1.673,"y":15.69990348815918},{"x":1.674,"y":15.709667205810547},{"x":1.675,"y":15.719430923461914},{"x":1.676,"y":15.729202270507812},{"x":1.677,"y":15.738975524902344},{"x":1.678,"y":15.74875259399414},{"x":1.679,"y":15.758535385131836},{"x":1.68,"y":15.768321990966797},{"x":1.681,"y":15.778112411499023},{"x":1.682,"y":15.787906646728516},{"x":1.683,"y":15.79770278930664},{"x":1.684,"y":15.807506561279297},{"x":1.685,"y":15.817312240600586},{"x":1.686,"y":15.82712173461914},{"x":1.687,"y":15.836936950683594},{"x":1.688,"y":15.84675407409668},{"x":1.689,"y":15.856576919555664},{"x":1.69,"y":15.866403579711914},{"x":1.691,"y":15.87623405456543},{"x":1.692,"y":15.886068344116211},{"x":1.693,"y":15.895906448364258},{"x":1.694,"y":15.90574836730957},{"x":1.695,"y":15.915596008300781},{"x":1.696,"y":15.925445556640625},{"x":1.697,"y":15.935300827026367},{"x":1.698,"y":15.945158004760742},{"x":1.699,"y":15.955020904541016},{"x":1.7,"y":15.964887619018555},{"x":1.701,"y":15.97475814819336},{"x":1.702,"y":15.98463249206543},{"x":1.703,"y":15.994510650634766},{"x":1.704,"y":16.004392623901367},{"x":1.705,"y":16.014280319213867},{"x":1.706,"y":16.024171829223633},{"x":1.707,"y":16.034067153930664},{"x":1.708,"y":16.043964385986328},{"x":1.709,"y":16.05386734008789},{"x":1.71,"y":16.06377410888672},{"x":1.711,"y":16.073684692382812},{"x":1.712,"y":16.083599090576172},{"x":1.713,"y":16.09351921081543},{"x":1.714,"y":16.10344123840332},{"x":1.715,"y":16.11336898803711},{"x":1.716,"y":16.12329864501953},{"x":1.717,"y":16.13323402404785},{"x":1.718,"y":16.143173217773438},{"x":1.719,"y":16.15311622619629},{"x":1.72,"y":16.163063049316406},{"x":1.721,"y":16.17301368713379},{"x":1.722,"y":16.18297004699707},{"x":1.723,"y":16.192930221557617},{"x":1.724,"y":16.202892303466797},{"x":1.725,"y":16.212860107421875},{"x":1.726,"y":16.222829818725586},{"x":1.727,"y":16.232805252075195},{"x":1.728,"y":16.24278450012207},{"x":1.729,"y":16.25276756286621},{"x":1.73,"y":16.26275634765625},{"x":1.731,"y":16.272747039794922},{"x":1.732,"y":16.28274154663086},{"x":1.733,"y":16.292741775512695},{"x":1.734,"y":16.302743911743164},{"x":1.735,"y":16.31275177001953},{"x":1.736,"y":16.322763442993164},{"x":1.737,"y":16.332778930664062},{"x":1.738,"y":16.34280014038086},{"x":1.739,"y":16.352821350097656},{"x":1.74,"y":16.362850189208984},{"x":1.741,"y":16.372882843017578},{"x":1.742,"y":16.382917404174805},{"x":1.743,"y":16.39295768737793},{"x":1.744,"y":16.402999877929688},{"x":1.745,"y":16.413047790527344},{"x":1.746,"y":16.4231014251709},{"x":1.747,"y":16.433155059814453},{"x":1.748,"y":16.44321632385254},{"x":1.749,"y":16.453279495239258},{"x":1.75,"y":16.463346481323242},{"x":1.751,"y":16.473419189453125},{"x":1.752,"y":16.483495712280273},{"x":1.753,"y":16.493574142456055},{"x":1.754,"y":16.503658294677734},{"x":1.755,"y":16.51374626159668},{"x":1.756,"y":16.523839950561523},{"x":1.757,"y":16.533935546875},{"x":1.758,"y":16.544034957885742},{"x":1.759,"y":16.55413818359375},{"x":1.76,"y":16.564247131347656},{"x":1.761,"y":16.574359893798828},{"x":1.762,"y":16.584474563598633},{"x":1.763,"y":16.59459686279297},{"x":1.764,"y":16.604721069335938},{"x":1.765,"y":16.61484718322754},{"x":1.766,"y":16.624980926513672},{"x":1.767,"y":16.635116577148438},{"x":1.768,"y":16.64525604248047},{"x":1.769,"y":16.6554012298584},{"x":1.77,"y":16.665550231933594},{"x":1.771,"y":16.675703048706055},{"x":1.772,"y":16.68585777282715},{"x":1.773,"y":16.69601821899414},{"x":1.774,"y":16.70618438720703},{"x":1.775,"y":16.716352462768555},{"x":1.776,"y":16.726524353027344},{"x":1.777,"y":16.7367000579834},{"x":1.778,"y":16.74688148498535},{"x":1.779,"y":16.75706672668457},{"x":1.78,"y":16.767253875732422},{"x":1.781,"y":16.777446746826172},{"x":1.782,"y":16.787643432617188},{"x":1.783,"y":16.79784393310547},{"x":1.784,"y":16.80805015563965},{"x":1.785,"y":16.81825828552246},{"x":1.786,"y":16.828472137451172},{"x":1.787,"y":16.838687896728516},{"x":1.788,"y":16.848909378051758},{"x":1.789,"y":16.859134674072266},{"x":1.79,"y":16.869361877441406},{"x":1.791,"y":16.879594802856445},{"x":1.792,"y":16.889833450317383},{"x":1.793,"y":16.90007209777832},{"x":1.794,"y":16.91031837463379},{"x":1.795,"y":16.92056655883789},{"x":1.796,"y":16.93082046508789},{"x":1.797,"y":16.941078186035156},{"x":1.798,"y":16.951337814331055},{"x":1.799,"y":16.96160316467285},{"x":1.8,"y":16.971872329711914},{"x":1.801,"y":16.982145309448242},{"x":1.802,"y":16.99242401123047},{"x":1.803,"y":17.002704620361328},{"x":1.804,"y":17.012989044189453},{"x":1.805,"y":17.023277282714844},{"x":1.806,"y":17.033573150634766},{"x":1.807,"y":17.04387092590332},{"x":1.808,"y":17.054170608520508},{"x":1.809,"y":17.064476013183594},{"x":1.81,"y":17.074785232543945},{"x":1.811,"y":17.085100173950195},{"x":1.812,"y":17.095417022705078},{"x":1.813,"y":17.105737686157227},{"x":1.814,"y":17.116064071655273},{"x":1.815,"y":17.126394271850586},{"x":1.816,"y":17.13672637939453},{"x":1.817,"y":17.147064208984375},{"x":1.818,"y":17.157405853271484},{"x":1.819,"y":17.16775131225586},{"x":1.82,"y":17.178102493286133},{"x":1.821,"y":17.18845558166504},{"x":1.822,"y":17.19881248474121},{"x":1.823,"y":17.20917320251465},{"x":1.824,"y":17.219539642333984},{"x":1.825,"y":17.229909896850586},{"x":1.826,"y":17.240283966064453},{"x":1.827,"y":17.250661849975586},{"x":1.828,"y":17.261043548583984},{"x":1.829,"y":17.27142906188965},{"x":1.83,"y":17.28182029724121},{"x":1.831,"y":17.292213439941406},{"x":1.832,"y":17.3026123046875},{"x":1.833,"y":17.313013076782227},{"x":1.834,"y":17.32341957092285},{"x":1.835,"y":17.333829879760742},{"x":1.836,"y":17.3442440032959},{"x":1.837,"y":17.35466194152832},{"x":1.838,"y":17.365083694458008},{"x":1.839,"y":17.37550926208496},{"x":1.84,"y":17.385940551757812},{"x":1.841,"y":17.396373748779297},{"x":1.842,"y":17.40681266784668},{"x":1.843,"y":17.417255401611328},{"x":1.844,"y":17.427701950073242},{"x":1.845,"y":17.438152313232422},{"x":1.846,"y":17.448606491088867},{"x":1.847,"y":17.459064483642578},{"x":1.848,"y":17.469528198242188},{"x":1.849,"y":17.479991912841797},{"x":1.85,"y":17.490463256835938},{"x":1.851,"y":17.500938415527344},{"x":1.852,"y":17.511417388916016},{"x":1.853,"y":17.521900177001953},{"x":1.854,"y":17.532384872436523},{"x":1.855,"y":17.542877197265625},{"x":1.856,"y":17.553369522094727},{"x":1.857,"y":17.56386947631836},{"x":1.858,"y":17.574373245239258},{"x":1.859,"y":17.58487892150879},{"x":1.86,"y":17.59539031982422},{"x":1.861,"y":17.60590362548828},{"x":1.862,"y":17.616422653198242},{"x":1.863,"y":17.6269474029541},{"x":1.864,"y":17.63747215270996},{"x":1.865,"y":17.64800453186035},{"x":1.866,"y":17.658538818359375},{"x":1.867,"y":17.669076919555664},{"x":1.868,"y":17.67962074279785},{"x":1.869,"y":17.690166473388672},{"x":1.87,"y":17.70071792602539},{"x":1.871,"y":17.711273193359375},{"x":1.872,"y":17.721832275390625},{"x":1.873,"y":17.73239517211914},{"x":1.874,"y":17.742961883544922},{"x":1.875,"y":17.7535343170166},{"x":1.876,"y":17.764110565185547},{"x":1.877,"y":17.774688720703125},{"x":1.878,"y":17.7852725982666},{"x":1.879,"y":17.79585838317871},{"x":1.88,"y":17.80644989013672},{"x":1.881,"y":17.817045211791992},{"x":1.882,"y":17.82764434814453},{"x":1.883,"y":17.83824920654297},{"x":1.884,"y":17.848854064941406},{"x":1.885,"y":17.859466552734375},{"x":1.886,"y":17.87008285522461},{"x":1.887,"y":17.880701065063477},{"x":1.888,"y":17.891324996948242},{"x":1.889,"y":17.901952743530273},{"x":1.89,"y":17.91258430480957},{"x":1.891,"y":17.923219680786133},{"x":1.892,"y":17.93385887145996},{"x":1.893,"y":17.944503784179688},{"x":1.894,"y":17.955150604248047},{"x":1.895,"y":17.965801239013672},{"x":1.896,"y":17.976457595825195},{"x":1.897,"y":17.98711585998535},{"x":1.898,"y":17.99778175354004},{"x":1.899,"y":18.00844955444336},{"x":1.9,"y":18.019121170043945},{"x":1.901,"y":18.029796600341797},{"x":1.902,"y":18.040475845336914},{"x":1.903,"y":18.051158905029297},{"x":1.904,"y":18.061847686767578},{"x":1.905,"y":18.072540283203125},{"x":1.906,"y":18.083234786987305},{"x":1.907,"y":18.093935012817383},{"x":1.908,"y":18.104639053344727},{"x":1.909,"y":18.11534881591797},{"x":1.91,"y":18.12605857849121},{"x":1.911,"y":18.136775970458984},{"x":1.912,"y":18.14749526977539},{"x":1.913,"y":18.158220291137695},{"x":1.914,"y":18.168947219848633},{"x":1.915,"y":18.17967987060547},{"x":1.916,"y":18.19041633605957},{"x":1.917,"y":18.201156616210938},{"x":1.918,"y":18.21190071105957},{"x":1.919,"y":18.22264862060547},{"x":1.92,"y":18.233400344848633},{"x":1.921,"y":18.244157791137695},{"x":1.922,"y":18.254919052124023},{"x":1.923,"y":18.265682220458984},{"x":1.924,"y":18.276451110839844},{"x":1.925,"y":18.287221908569336},{"x":1.926,"y":18.29800033569336},{"x":1.927,"y":18.308780670166016},{"x":1.928,"y":18.319564819335938},{"x":1.929,"y":18.330352783203125},{"x":1.93,"y":18.341144561767578},{"x":1.931,"y":18.35194206237793},{"x":1.932,"y":18.362743377685547},{"x":1.933,"y":18.373546600341797},{"x":1.934,"y":18.384355545043945},{"x":1.935,"y":18.39516830444336},{"x":1.936,"y":18.40598487854004},{"x":1.937,"y":18.416807174682617},{"x":1.938,"y":18.427631378173828},{"x":1.939,"y":18.438459396362305},{"x":1.94,"y":18.44929313659668},{"x":1.941,"y":18.460128784179688},{"x":1.942,"y":18.470972061157227},{"x":1.943,"y":18.481815338134766},{"x":1.944,"y":18.492664337158203},{"x":1.945,"y":18.503517150878906},{"x":1.946,"y":18.514373779296875},{"x":1.947,"y":18.525236129760742},{"x":1.948,"y":18.536100387573242},{"x":1.949,"y":18.546968460083008},{"x":1.95,"y":18.557844161987305},{"x":1.951,"y":18.5687198638916},{"x":1.952,"y":18.579601287841797},{"x":1.953,"y":18.590484619140625},{"x":1.954,"y":18.601375579833984},{"x":1.955,"y":18.612268447875977},{"x":1.956,"y":18.623165130615234},{"x":1.957,"y":18.63406753540039},{"x":1.958,"y":18.64497184753418},{"x":1.959,"y":18.655881881713867},{"x":1.96,"y":18.66679573059082},{"x":1.961,"y":18.677711486816406},{"x":1.962,"y":18.68863296508789},{"x":1.963,"y":18.699560165405273},{"x":1.964,"y":18.71048927307129},{"x":1.965,"y":18.72142219543457},{"x":1.966,"y":18.732358932495117},{"x":1.967,"y":18.743301391601562},{"x":1.968,"y":18.754247665405273},{"x":1.969,"y":18.765195846557617},{"x":1.97,"y":18.77614974975586},{"x":1.971,"y":18.787107467651367},{"x":1.972,"y":18.79806900024414},{"x":1.973,"y":18.809036254882812},{"x":1.974,"y":18.820003509521484},{"x":1.975,"y":18.830978393554688},{"x":1.976,"y":18.841955184936523},{"x":1.977,"y":18.852937698364258},{"x":1.978,"y":18.863924026489258},{"x":1.979,"y":18.87491226196289},{"x":1.98,"y":18.885908126831055},{"x":1.981,"y":18.89690399169922},{"x":1.982,"y":18.907907485961914},{"x":1.983,"y":18.918912887573242},{"x":1.984,"y":18.929922103881836},{"x":1.985,"y":18.940937042236328},{"x":1.986,"y":18.951953887939453},{"x":1.987,"y":18.962976455688477},{"x":1.988,"y":18.974002838134766},{"x":1.989,"y":18.98503303527832},{"x":1.99,"y":18.99606704711914},{"x":1.991,"y":19.00710678100586},{"x":1.992,"y":19.018146514892578},{"x":1.993,"y":19.029193878173828},{"x":1.994,"y":19.04024314880371},{"x":1.995,"y":19.051298141479492},{"x":1.996,"y":19.06235694885254},{"x":1.997,"y":19.07341957092285},{"x":1.998,"y":19.08448600769043},{"x":1.999,"y":19.09555435180664},{"x":2.0,"y":19.106630325317383}]},"encoding":{"x":{"field":"x","scale":{"domain":[-2.05,2.05]},"type":"quantitative"},"y":{"field":"y","scale":{"domain":[2.5,20]},"type":"quantitative"}},"mark":{"color":"green","type":"line"}},{"data":{"values":[{"x":-0.8299999833106995,"y":3.8831818103790283},{"x":0.8299999833106995,"y":8.902976989746094}]},"encoding":{"x":{"field":"x","scale":{"domain":[-2.05,2.05]},"type":"quantitative"},"y":{"field":"y","scale":{"domain":[2.5,20]},"type":"quantitative"}},"mark":{"color":"red","size":80,"type":"circle"}}],"title":{"offset":20,"text":"Plot of Generated Data and Predictions"},"width":630} +{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","height":630,"layer":[{"data":{"values":[{"x":-0.8965015411376953,"y":3.8109235763549805},{"x":0.021173477172851562,"y":5.0468549728393555},{"x":1.0788373947143555,"y":10.559005737304688},{"x":0.34316205978393555,"y":5.828140735626221},{"x":1.5906281471252441,"y":14.507883071899414},{"x":0.13052892684936523,"y":5.494438171386719},{"x":-0.017606735229492188,"y":5.139791965484619},{"x":-1.7063984870910645,"y":6.048481464385986},{"x":-0.8232769966125488,"y":4.1755475997924805},{"x":1.239438533782959,"y":11.804141998291016},{"x":-0.7493696212768555,"y":3.7624857425689697},{"x":1.5685210227966309,"y":15.080747604370117},{"x":1.2736377716064453,"y":11.830965042114258},{"x":0.28627920150756836,"y":6.291994571685791},{"x":-0.8452377319335938,"y":4.183845043182373},{"x":1.0702204704284668,"y":10.536632537841797},{"x":0.5425329208374023,"y":6.9816107749938965},{"x":0.8072428703308105,"y":8.398423194885254},{"x":0.06005859375,"y":5.642594337463379},{"x":-1.6828784942626953,"y":5.228835582733154},{"x":-1.6979928016662598,"y":5.282017707824707},{"x":-1.339439868927002,"y":4.808953762054443},{"x":-1.6378440856933594,"y":5.889084815979004},{"x":-0.9949426651000977,"y":4.288919448852539},{"x":-0.1635441780090332,"y":4.933962345123291},{"x":0.5056014060974121,"y":7.2391276359558105},{"x":-0.6962909698486328,"y":4.337333679199219},{"x":-0.011175155639648438,"y":5.329751968383789},{"x":1.9765315055847168,"y":18.869409561157227},{"x":-0.7610149383544922,"y":3.423267126083374},{"x":-1.946864128112793,"y":6.530677795410156},{"x":-0.021459579467773438,"y":5.185998916625977},{"x":0.5230484008789062,"y":7.557127475738525},{"x":1.1505427360534668,"y":11.130593299865723},{"x":0.33158349990844727,"y":6.636468887329102},{"x":1.9051923751831055,"y":18.391712188720703},{"x":0.7064709663391113,"y":8.222036361694336},{"x":0.832550048828125,"y":8.481558799743652},{"x":-1.5429472923278809,"y":4.780819892883301},{"x":1.910013198852539,"y":18.196731567382812},{"x":0.2634763717651367,"y":6.009212970733643},{"x":1.823348045349121,"y":17.614534378051758},{"x":-0.2560157775878906,"y":4.535557270050049},{"x":1.5738868713378906,"y":14.52468204498291},{"x":0.24407672882080078,"y":5.911610126495361},{"x":1.7351713180541992,"y":16.576759338378906},{"x":0.022307872772216797,"y":5.328531265258789},{"x":1.665010929107666,"y":15.157777786254883},{"x":-0.5437688827514648,"y":3.5709950923919678},{"x":1.312476634979248,"y":11.939286231994629},{"x":-1.4770846366882324,"y":4.936985492706299},{"x":1.6605911254882812,"y":15.417658805847168},{"x":1.7454309463500977,"y":15.889360427856445},{"x":-1.189291000366211,"y":4.214474678039551},{"x":-0.6745319366455078,"y":3.46466064453125},{"x":-1.3367595672607422,"y":4.8975324630737305},{"x":-0.0439295768737793,"y":5.127323627471924},{"x":-0.9130129814147949,"y":3.7275986671447754},{"x":1.0283713340759277,"y":10.355329513549805},{"x":-1.742908000946045,"y":6.096266746520996},{"x":1.6933608055114746,"y":16.230039596557617},{"x":-1.065746784210205,"y":3.970182418823242},{"x":0.9606437683105469,"y":9.539725303649902},{"x":0.04618549346923828,"y":4.721081733703613},{"x":-1.1336445808410645,"y":4.19744873046875},{"x":-1.0706229209899902,"y":3.8512279987335205},{"x":-1.884141445159912,"y":6.373000144958496},{"x":-0.14725208282470703,"y":4.171361923217773},{"x":1.1883292198181152,"y":11.732460021972656},{"x":0.1410541534423828,"y":5.41363525390625},{"x":1.3752241134643555,"y":12.717113494873047},{"x":-1.3611302375793457,"y":4.9649810791015625},{"x":0.08020591735839844,"y":5.477242946624756},{"x":1.7457842826843262,"y":16.750232696533203},{"x":-1.6559224128723145,"y":5.075651168823242},{"x":0.5720343589782715,"y":7.4426116943359375},{"x":-1.715710163116455,"y":6.0133891105651855},{"x":-1.6484870910644531,"y":5.388364791870117},{"x":-1.13641357421875,"y":4.0211639404296875},{"x":-1.8201804161071777,"y":5.7477922439575195},{"x":0.16124916076660156,"y":5.036750793457031},{"x":1.6229968070983887,"y":14.848661422729492},{"x":0.9078593254089355,"y":9.316896438598633},{"x":-1.973616123199463,"y":7.31505823135376},{"x":-1.08573579788208,"y":4.497128963470459},{"x":-1.9856038093566895,"y":7.066302299499512},{"x":1.0161328315734863,"y":9.7346830368042},{"x":1.637150764465332,"y":15.480567932128906},{"x":-0.8749380111694336,"y":3.704550266265869},{"x":0.5326972007751465,"y":7.397686958312988},{"x":-0.8989872932434082,"y":3.6920485496520996},{"x":1.6606526374816895,"y":15.98570442199707},{"x":1.3893942832946777,"y":13.498802185058594},{"x":-1.3748388290405273,"y":4.680605411529541},{"x":-0.22421789169311523,"y":4.457881927490234},{"x":-0.04375505447387695,"y":5.263555526733398},{"x":1.2894659042358398,"y":12.095159530639648},{"x":1.116281509399414,"y":10.542726516723633},{"x":1.725419044494629,"y":16.511856079101562},{"x":-1.203160285949707,"y":3.808946132659912}]},"encoding":{"x":{"axis":{"grid":false},"field":"x","scale":{"domain":[-2.05,2.05]},"type":"quantitative"},"y":{"axis":{"grid":false},"field":"y","scale":{"domain":[2.5,20]},"type":"quantitative"}},"mark":"circle"},{"data":{"values":[{"x":-2.0,"y":7.010737419128418},{"x":-1.999,"y":7.005710601806641},{"x":-1.998,"y":7.0006890296936035},{"x":-1.997,"y":6.995669841766357},{"x":-1.996,"y":6.99065637588501},{"x":-1.995,"y":6.985645771026611},{"x":-1.994,"y":6.9806389808654785},{"x":-1.993,"y":6.975637435913086},{"x":-1.992,"y":6.970638275146484},{"x":-1.991,"y":6.965644836425781},{"x":-1.99,"y":6.960653781890869},{"x":-1.989,"y":6.955667972564697},{"x":-1.988,"y":6.950685977935791},{"x":-1.987,"y":6.94570779800415},{"x":-1.986,"y":6.940733432769775},{"x":-1.985,"y":6.935763835906982},{"x":-1.984,"y":6.930797576904297},{"x":-1.983,"y":6.925835609436035},{"x":-1.982,"y":6.920877456665039},{"x":-1.981,"y":6.915923118591309},{"x":-1.98,"y":6.910974025726318},{"x":-1.979,"y":6.906027793884277},{"x":-1.978,"y":6.90108585357666},{"x":-1.977,"y":6.896147727966309},{"x":-1.976,"y":6.891213893890381},{"x":-1.975,"y":6.886283874511719},{"x":-1.974,"y":6.8813581466674805},{"x":-1.973,"y":6.876436710357666},{"x":-1.972,"y":6.871518611907959},{"x":-1.971,"y":6.866604328155518},{"x":-1.97,"y":6.861695766448975},{"x":-1.969,"y":6.856790065765381},{"x":-1.968,"y":6.851888179779053},{"x":-1.967,"y":6.846990585327148},{"x":-1.966,"y":6.84209680557251},{"x":-1.965,"y":6.837207317352295},{"x":-1.964,"y":6.832321643829346},{"x":-1.963,"y":6.8274407386779785},{"x":-1.962,"y":6.822563171386719},{"x":-1.961,"y":6.817689418792725},{"x":-1.96,"y":6.812819957733154},{"x":-1.959,"y":6.807954788208008},{"x":-1.958,"y":6.803092956542969},{"x":-1.957,"y":6.7982354164123535},{"x":-1.956,"y":6.793382167816162},{"x":-1.955,"y":6.7885332107543945},{"x":-1.954,"y":6.783688068389893},{"x":-1.953,"y":6.778846263885498},{"x":-1.952,"y":6.774009704589844},{"x":-1.951,"y":6.769176483154297},{"x":-1.95,"y":6.764347553253174},{"x":-1.949,"y":6.759521484375},{"x":-1.948,"y":6.754700183868408},{"x":-1.947,"y":6.749884128570557},{"x":-1.946,"y":6.745070934295654},{"x":-1.945,"y":6.740262031555176},{"x":-1.944,"y":6.735456466674805},{"x":-1.943,"y":6.730655193328857},{"x":-1.942,"y":6.72585916519165},{"x":-1.941,"y":6.721065521240234},{"x":-1.94,"y":6.716277122497559},{"x":-1.939,"y":6.71149206161499},{"x":-1.938,"y":6.706711292266846},{"x":-1.937,"y":6.701934337615967},{"x":-1.936,"y":6.697161674499512},{"x":-1.935,"y":6.692392349243164},{"x":-1.934,"y":6.687627792358398},{"x":-1.933,"y":6.682867050170898},{"x":-1.932,"y":6.678110599517822},{"x":-1.931,"y":6.673357963562012},{"x":-1.93,"y":6.668609142303467},{"x":-1.929,"y":6.663864612579346},{"x":-1.928,"y":6.65912389755249},{"x":-1.927,"y":6.654387474060059},{"x":-1.926,"y":6.649654865264893},{"x":-1.925,"y":6.644926071166992},{"x":-1.924,"y":6.640202045440674},{"x":-1.923,"y":6.635481357574463},{"x":-1.922,"y":6.630765438079834},{"x":-1.921,"y":6.6260528564453125},{"x":-1.92,"y":6.621344566345215},{"x":-1.919,"y":6.616640090942383},{"x":-1.918,"y":6.611939907073975},{"x":-1.917,"y":6.607243537902832},{"x":-1.916,"y":6.602550983428955},{"x":-1.915,"y":6.597862720489502},{"x":-1.914,"y":6.593178749084473},{"x":-1.913,"y":6.588498592376709},{"x":-1.912,"y":6.583822250366211},{"x":-1.911,"y":6.579150199890137},{"x":-1.91,"y":6.574481964111328},{"x":-1.909,"y":6.569818019866943},{"x":-1.908,"y":6.565157890319824},{"x":-1.907,"y":6.560501575469971},{"x":-1.906,"y":6.555850028991699},{"x":-1.905,"y":6.551202297210693},{"x":-1.904,"y":6.546558380126953},{"x":-1.903,"y":6.54191780090332},{"x":-1.902,"y":6.5372819900512695},{"x":-1.901,"y":6.532649993896484},{"x":-1.9,"y":6.528022289276123},{"x":-1.899,"y":6.5233988761901855},{"x":-1.898,"y":6.518779277801514},{"x":-1.897,"y":6.514162540435791},{"x":-1.896,"y":6.509551525115967},{"x":-1.895,"y":6.504943370819092},{"x":-1.894,"y":6.500339984893799},{"x":-1.893,"y":6.4957404136657715},{"x":-1.892,"y":6.491144180297852},{"x":-1.891,"y":6.486553192138672},{"x":-1.89,"y":6.4819655418396},{"x":-1.889,"y":6.477382183074951},{"x":-1.888,"y":6.47280216217041},{"x":-1.887,"y":6.468226432800293},{"x":-1.886,"y":6.4636549949646},{"x":-1.885,"y":6.45908784866333},{"x":-1.884,"y":6.454524040222168},{"x":-1.883,"y":6.449965000152588},{"x":-1.882,"y":6.445409774780273},{"x":-1.881,"y":6.440858364105225},{"x":-1.88,"y":6.436310768127441},{"x":-1.879,"y":6.431767463684082},{"x":-1.878,"y":6.4272284507751465},{"x":-1.877,"y":6.422692775726318},{"x":-1.876,"y":6.418161869049072},{"x":-1.875,"y":6.413634300231934},{"x":-1.874,"y":6.409111022949219},{"x":-1.873,"y":6.404592514038086},{"x":-1.872,"y":6.400076866149902},{"x":-1.871,"y":6.395565986633301},{"x":-1.87,"y":6.391058921813965},{"x":-1.869,"y":6.386555194854736},{"x":-1.868,"y":6.382057189941406},{"x":-1.867,"y":6.377561569213867},{"x":-1.866,"y":6.373071193695068},{"x":-1.865,"y":6.368584156036377},{"x":-1.864,"y":6.364100933074951},{"x":-1.863,"y":6.359622478485107},{"x":-1.862,"y":6.355147361755371},{"x":-1.861,"y":6.3506760597229},{"x":-1.86,"y":6.346209526062012},{"x":-1.859,"y":6.341746807098389},{"x":-1.858,"y":6.3372883796691895},{"x":-1.857,"y":6.332833290100098},{"x":-1.856,"y":6.32838249206543},{"x":-1.855,"y":6.3239359855651855},{"x":-1.854,"y":6.319493293762207},{"x":-1.853,"y":6.315054893493652},{"x":-1.852,"y":6.310619831085205},{"x":-1.851,"y":6.30618953704834},{"x":-1.85,"y":6.301763534545898},{"x":-1.849,"y":6.297340393066406},{"x":-1.848,"y":6.292922496795654},{"x":-1.847,"y":6.288507461547852},{"x":-1.846,"y":6.284097194671631},{"x":-1.845,"y":6.279690742492676},{"x":-1.844,"y":6.2752885818481445},{"x":-1.843,"y":6.270890235900879},{"x":-1.842,"y":6.266496181488037},{"x":-1.841,"y":6.262105464935303},{"x":-1.84,"y":6.25771951675415},{"x":-1.839,"y":6.2533369064331055},{"x":-1.838,"y":6.248958587646484},{"x":-1.837,"y":6.244584083557129},{"x":-1.836,"y":6.240213871002197},{"x":-1.835,"y":6.2358479499816895},{"x":-1.834,"y":6.231485843658447},{"x":-1.833,"y":6.227128028869629},{"x":-1.832,"y":6.222774028778076},{"x":-1.831,"y":6.218423843383789},{"x":-1.83,"y":6.214077949523926},{"x":-1.829,"y":6.209735870361328},{"x":-1.828,"y":6.205397129058838},{"x":-1.827,"y":6.201063632965088},{"x":-1.826,"y":6.1967339515686035},{"x":-1.825,"y":6.192408084869385},{"x":-1.824,"y":6.18808650970459},{"x":-1.823,"y":6.183768272399902},{"x":-1.822,"y":6.179454326629639},{"x":-1.821,"y":6.175144672393799},{"x":-1.82,"y":6.170838832855225},{"x":-1.819,"y":6.166537284851074},{"x":-1.818,"y":6.162239074707031},{"x":-1.817,"y":6.1579461097717285},{"x":-1.816,"y":6.153656005859375},{"x":-1.815,"y":6.149371147155762},{"x":-1.814,"y":6.145089149475098},{"x":-1.813,"y":6.140811443328857},{"x":-1.812,"y":6.136537551879883},{"x":-1.811,"y":6.13226842880249},{"x":-1.81,"y":6.128002166748047},{"x":-1.809,"y":6.123741626739502},{"x":-1.808,"y":6.119483947753906},{"x":-1.807,"y":6.115231037139893},{"x":-1.806,"y":6.110981464385986},{"x":-1.805,"y":6.1067352294921875},{"x":-1.804,"y":6.102494239807129},{"x":-1.803,"y":6.098257064819336},{"x":-1.802,"y":6.094024181365967},{"x":-1.801,"y":6.089795112609863},{"x":-1.8,"y":6.085569381713867},{"x":-1.799,"y":6.081348419189453},{"x":-1.798,"y":6.0771307945251465},{"x":-1.797,"y":6.072917938232422},{"x":-1.796,"y":6.068708419799805},{"x":-1.795,"y":6.0645036697387695},{"x":-1.794,"y":6.060302734375},{"x":-1.793,"y":6.056105613708496},{"x":-1.792,"y":6.051912784576416},{"x":-1.791,"y":6.047723293304443},{"x":-1.79,"y":6.043538570404053},{"x":-1.789,"y":6.039358139038086},{"x":-1.788,"y":6.035180568695068},{"x":-1.787,"y":6.031007289886475},{"x":-1.786,"y":6.026838779449463},{"x":-1.785,"y":6.022674083709717},{"x":-1.784,"y":6.018513202667236},{"x":-1.783,"y":6.01435661315918},{"x":-1.782,"y":6.0102033615112305},{"x":-1.781,"y":6.006054878234863},{"x":-1.78,"y":6.0019097328186035},{"x":-1.779,"y":5.997769832611084},{"x":-1.778,"y":5.993632793426514},{"x":-1.777,"y":5.989500045776367},{"x":-1.776,"y":5.9853715896606445},{"x":-1.775,"y":5.981247425079346},{"x":-1.774,"y":5.977126598358154},{"x":-1.773,"y":5.973010063171387},{"x":-1.772,"y":5.968897342681885},{"x":-1.771,"y":5.964788913726807},{"x":-1.77,"y":5.960684776306152},{"x":-1.769,"y":5.956584453582764},{"x":-1.768,"y":5.952487945556641},{"x":-1.767,"y":5.948395729064941},{"x":-1.766,"y":5.944307327270508},{"x":-1.765,"y":5.94022274017334},{"x":-1.764,"y":5.936142921447754},{"x":-1.763,"y":5.932066440582275},{"x":-1.762,"y":5.9279937744140625},{"x":-1.761,"y":5.92392635345459},{"x":-1.76,"y":5.919861793518066},{"x":-1.759,"y":5.915801048278809},{"x":-1.758,"y":5.911745548248291},{"x":-1.757,"y":5.907693386077881},{"x":-1.756,"y":5.903645038604736},{"x":-1.755,"y":5.899600982666016},{"x":-1.754,"y":5.8955607414245605},{"x":-1.753,"y":5.8915252685546875},{"x":-1.752,"y":5.88749361038208},{"x":-1.751,"y":5.88346529006958},{"x":-1.75,"y":5.879441261291504},{"x":-1.749,"y":5.875421047210693},{"x":-1.748,"y":5.871405601501465},{"x":-1.747,"y":5.867393493652344},{"x":-1.746,"y":5.863386154174805},{"x":-1.745,"y":5.859382629394531},{"x":-1.744,"y":5.855382442474365},{"x":-1.743,"y":5.851387023925781},{"x":-1.742,"y":5.847394943237305},{"x":-1.741,"y":5.843407154083252},{"x":-1.74,"y":5.839423656463623},{"x":-1.739,"y":5.835443496704102},{"x":-1.738,"y":5.83146858215332},{"x":-1.737,"y":5.827496528625488},{"x":-1.736,"y":5.82352876663208},{"x":-1.735,"y":5.819565773010254},{"x":-1.734,"y":5.815606117248535},{"x":-1.733,"y":5.81165075302124},{"x":-1.732,"y":5.807699203491211},{"x":-1.731,"y":5.803751468658447},{"x":-1.73,"y":5.799808502197266},{"x":-1.729,"y":5.795868873596191},{"x":-1.728,"y":5.791934013366699},{"x":-1.727,"y":5.7880024909973145},{"x":-1.726,"y":5.7840752601623535},{"x":-1.725,"y":5.780151844024658},{"x":-1.724,"y":5.7762322425842285},{"x":-1.723,"y":5.772317409515381},{"x":-1.722,"y":5.768406391143799},{"x":-1.721,"y":5.764498710632324},{"x":-1.72,"y":5.760595798492432},{"x":-1.719,"y":5.756696701049805},{"x":-1.718,"y":5.752801895141602},{"x":-1.717,"y":5.748910903930664},{"x":-1.716,"y":5.745023727416992},{"x":-1.715,"y":5.741140365600586},{"x":-1.714,"y":5.7372612953186035},{"x":-1.713,"y":5.733386993408203},{"x":-1.712,"y":5.72951602935791},{"x":-1.711,"y":5.725648880004883},{"x":-1.71,"y":5.721786022186279},{"x":-1.709,"y":5.717926979064941},{"x":-1.708,"y":5.714071750640869},{"x":-1.707,"y":5.710221767425537},{"x":-1.706,"y":5.706374645233154},{"x":-1.705,"y":5.7025322914123535},{"x":-1.704,"y":5.69869327545166},{"x":-1.703,"y":5.694858551025391},{"x":-1.702,"y":5.691028118133545},{"x":-1.701,"y":5.687201023101807},{"x":-1.7,"y":5.68337869644165},{"x":-1.699,"y":5.67956018447876},{"x":-1.698,"y":5.675745010375977},{"x":-1.697,"y":5.671935081481934},{"x":-1.696,"y":5.668128967285156},{"x":-1.695,"y":5.664326190948486},{"x":-1.694,"y":5.66052770614624},{"x":-1.693,"y":5.65673303604126},{"x":-1.692,"y":5.652942657470703},{"x":-1.691,"y":5.649156093597412},{"x":-1.69,"y":5.645373821258545},{"x":-1.689,"y":5.641595363616943},{"x":-1.688,"y":5.637820720672607},{"x":-1.687,"y":5.63405179977417},{"x":-1.686,"y":5.630285263061523},{"x":-1.685,"y":5.626522541046143},{"x":-1.684,"y":5.622764587402344},{"x":-1.683,"y":5.619009971618652},{"x":-1.682,"y":5.615260124206543},{"x":-1.681,"y":5.611514091491699},{"x":-1.68,"y":5.607771873474121},{"x":-1.679,"y":5.604033946990967},{"x":-1.678,"y":5.600299835205078},{"x":-1.677,"y":5.596570014953613},{"x":-1.676,"y":5.592844009399414},{"x":-1.675,"y":5.589121341705322},{"x":-1.674,"y":5.585403919219971},{"x":-1.673,"y":5.581689834594727},{"x":-1.672,"y":5.5779805183410645},{"x":-1.671,"y":5.57427453994751},{"x":-1.67,"y":5.570572853088379},{"x":-1.669,"y":5.566874980926514},{"x":-1.668,"y":5.563180923461914},{"x":-1.667,"y":5.559491157531738},{"x":-1.666,"y":5.555805683135986},{"x":-1.665,"y":5.552123546600342},{"x":-1.664,"y":5.5484466552734375},{"x":-1.663,"y":5.544772624969482},{"x":-1.662,"y":5.541102886199951},{"x":-1.661,"y":5.537437915802002},{"x":-1.66,"y":5.533775806427002},{"x":-1.659,"y":5.530118465423584},{"x":-1.658,"y":5.526464939117432},{"x":-1.657,"y":5.522815227508545},{"x":-1.656,"y":5.51917028427124},{"x":-1.655,"y":5.515528678894043},{"x":-1.654,"y":5.5118913650512695},{"x":-1.653,"y":5.508257865905762},{"x":-1.652,"y":5.5046281814575195},{"x":-1.651,"y":5.501002788543701},{"x":-1.65,"y":5.497381210327148},{"x":-1.649,"y":5.493764400482178},{"x":-1.648,"y":5.4901509284973145},{"x":-1.647,"y":5.486541748046875},{"x":-1.646,"y":5.482936859130859},{"x":-1.645,"y":5.479335308074951},{"x":-1.644,"y":5.475738525390625},{"x":-1.643,"y":5.4721455574035645},{"x":-1.642,"y":5.468555927276611},{"x":-1.641,"y":5.46497106552124},{"x":-1.64,"y":5.461390018463135},{"x":-1.639,"y":5.457813739776611},{"x":-1.638,"y":5.454240322113037},{"x":-1.637,"y":5.450671195983887},{"x":-1.636,"y":5.44710636138916},{"x":-1.635,"y":5.443545341491699},{"x":-1.634,"y":5.439988136291504},{"x":-1.633,"y":5.436435699462891},{"x":-1.632,"y":5.432886600494385},{"x":-1.631,"y":5.429341793060303},{"x":-1.63,"y":5.4258012771606445},{"x":-1.629,"y":5.422264099121094},{"x":-1.628,"y":5.418731689453125},{"x":-1.627,"y":5.415202617645264},{"x":-1.626,"y":5.411678314208984},{"x":-1.625,"y":5.4081573486328125},{"x":-1.624,"y":5.4046406745910645},{"x":-1.623,"y":5.401128768920898},{"x":-1.622,"y":5.39762020111084},{"x":-1.621,"y":5.394115447998047},{"x":-1.62,"y":5.3906145095825195},{"x":-1.619,"y":5.387117862701416},{"x":-1.618,"y":5.3836259841918945},{"x":-1.617,"y":5.380136966705322},{"x":-1.616,"y":5.376653671264648},{"x":-1.615,"y":5.373173236846924},{"x":-1.614,"y":5.369696617126465},{"x":-1.613,"y":5.36622428894043},{"x":-1.612,"y":5.36275577545166},{"x":-1.611,"y":5.359291076660156},{"x":-1.61,"y":5.355831146240234},{"x":-1.609,"y":5.35237455368042},{"x":-1.608,"y":5.348922252655029},{"x":-1.607,"y":5.345474720001221},{"x":-1.606,"y":5.3420305252075195},{"x":-1.605,"y":5.338590621948242},{"x":-1.604,"y":5.335154056549072},{"x":-1.603,"y":5.331722259521484},{"x":-1.602,"y":5.328294277191162},{"x":-1.601,"y":5.3248701095581055},{"x":-1.6,"y":5.321450233459473},{"x":-1.599,"y":5.318033695220947},{"x":-1.598,"y":5.314622402191162},{"x":-1.597,"y":5.311214447021484},{"x":-1.596,"y":5.3078107833862305},{"x":-1.595,"y":5.304410934448242},{"x":-1.594,"y":5.301014423370361},{"x":-1.593,"y":5.297623157501221},{"x":-1.592,"y":5.2942352294921875},{"x":-1.591,"y":5.29085111618042},{"x":-1.59,"y":5.287471771240234},{"x":-1.589,"y":5.2840962409973145},{"x":-1.588,"y":5.28072452545166},{"x":-1.587,"y":5.2773566246032715},{"x":-1.586,"y":5.273993015289307},{"x":-1.585,"y":5.270633697509766},{"x":-1.584,"y":5.267277717590332},{"x":-1.583,"y":5.263926029205322},{"x":-1.582,"y":5.2605791091918945},{"x":-1.581,"y":5.257235050201416},{"x":-1.58,"y":5.253896236419678},{"x":-1.579,"y":5.250560760498047},{"x":-1.578,"y":5.247229099273682},{"x":-1.577,"y":5.24390172958374},{"x":-1.576,"y":5.240577697753906},{"x":-1.575,"y":5.237259387969971},{"x":-1.574,"y":5.233943939208984},{"x":-1.573,"y":5.230632305145264},{"x":-1.572,"y":5.227324962615967},{"x":-1.571,"y":5.224021911621094},{"x":-1.57,"y":5.2207231521606445},{"x":-1.569,"y":5.2174272537231445},{"x":-1.568,"y":5.214136123657227},{"x":-1.567,"y":5.210849761962891},{"x":-1.566,"y":5.207566261291504},{"x":-1.565,"y":5.204287528991699},{"x":-1.564,"y":5.201012134552002},{"x":-1.563,"y":5.1977410316467285},{"x":-1.562,"y":5.194474220275879},{"x":-1.561,"y":5.191210746765137},{"x":-1.56,"y":5.187951564788818},{"x":-1.559,"y":5.184696674346924},{"x":-1.558,"y":5.181446552276611},{"x":-1.557,"y":5.178199768066406},{"x":-1.556,"y":5.174956321716309},{"x":-1.555,"y":5.171717643737793},{"x":-1.554,"y":5.168482780456543},{"x":-1.553,"y":5.165252208709717},{"x":-1.552,"y":5.162025451660156},{"x":-1.551,"y":5.158802509307861},{"x":-1.55,"y":5.15558385848999},{"x":-1.549,"y":5.152369976043701},{"x":-1.548,"y":5.149158954620361},{"x":-1.547,"y":5.1459527015686035},{"x":-1.546,"y":5.142749786376953},{"x":-1.545,"y":5.139551162719727},{"x":-1.544,"y":5.136356830596924},{"x":-1.543,"y":5.1331658363342285},{"x":-1.542,"y":5.129980087280273},{"x":-1.541,"y":5.126797199249268},{"x":-1.54,"y":5.123619079589844},{"x":-1.539,"y":5.1204447746276855},{"x":-1.538,"y":5.117273807525635},{"x":-1.537,"y":5.114107608795166},{"x":-1.536,"y":5.110945224761963},{"x":-1.535,"y":5.107787132263184},{"x":-1.534,"y":5.104633331298828},{"x":-1.533,"y":5.10148286819458},{"x":-1.532,"y":5.098336219787598},{"x":-1.531,"y":5.095194339752197},{"x":-1.53,"y":5.0920562744140625},{"x":-1.529,"y":5.088922023773193},{"x":-1.528,"y":5.085792064666748},{"x":-1.527,"y":5.082665920257568},{"x":-1.526,"y":5.0795440673828125},{"x":-1.525,"y":5.076426029205322},{"x":-1.524,"y":5.073311805725098},{"x":-1.523,"y":5.070201873779297},{"x":-1.522,"y":5.067095756530762},{"x":-1.521,"y":5.06399393081665},{"x":-1.52,"y":5.060895919799805},{"x":-1.519,"y":5.057802677154541},{"x":-1.518,"y":5.054712295532227},{"x":-1.517,"y":5.051626682281494},{"x":-1.516,"y":5.048544883728027},{"x":-1.515,"y":5.045466899871826},{"x":-1.514,"y":5.042393684387207},{"x":-1.513,"y":5.039323806762695},{"x":-1.512,"y":5.036257266998291},{"x":-1.511,"y":5.033195972442627},{"x":-1.51,"y":5.03013801574707},{"x":-1.509,"y":5.027084827423096},{"x":-1.508,"y":5.024035453796387},{"x":-1.507,"y":5.020989894866943},{"x":-1.506,"y":5.017948627471924},{"x":-1.505,"y":5.014910697937012},{"x":-1.504,"y":5.011877059936523},{"x":-1.503,"y":5.008847713470459},{"x":-1.502,"y":5.00582218170166},{"x":-1.501,"y":5.002801418304443},{"x":-1.5,"y":4.999783992767334},{"x":-1.499,"y":4.99677038192749},{"x":-1.498,"y":4.99376106262207},{"x":-1.497,"y":4.990756034851074},{"x":-1.496,"y":4.9877543449401855},{"x":-1.495,"y":4.984756946563721},{"x":-1.494,"y":4.98176383972168},{"x":-1.493,"y":4.978775501251221},{"x":-1.492,"y":4.975790023803711},{"x":-1.491,"y":4.972808837890625},{"x":-1.49,"y":4.969831466674805},{"x":-1.489,"y":4.966858386993408},{"x":-1.488,"y":4.963889122009277},{"x":-1.487,"y":4.96092414855957},{"x":-1.486,"y":4.957963466644287},{"x":-1.485,"y":4.9550065994262695},{"x":-1.484,"y":4.952053546905518},{"x":-1.483,"y":4.9491047859191895},{"x":-1.482,"y":4.946159362792969},{"x":-1.481,"y":4.94321870803833},{"x":-1.48,"y":4.940281867980957},{"x":-1.479,"y":4.93734884262085},{"x":-1.478,"y":4.934421062469482},{"x":-1.477,"y":4.931495666503906},{"x":-1.476,"y":4.928574562072754},{"x":-1.475,"y":4.925658226013184},{"x":-1.474,"y":4.922745227813721},{"x":-1.473,"y":4.91983699798584},{"x":-1.472,"y":4.916932106018066},{"x":-1.471,"y":4.914031028747559},{"x":-1.47,"y":4.911135196685791},{"x":-1.469,"y":4.908242702484131},{"x":-1.468,"y":4.905354022979736},{"x":-1.467,"y":4.902469635009766},{"x":-1.466,"y":4.899588584899902},{"x":-1.465,"y":4.896712779998779},{"x":-1.464,"y":4.8938398361206055},{"x":-1.463,"y":4.890971660614014},{"x":-1.462,"y":4.888106822967529},{"x":-1.461,"y":4.885246753692627},{"x":-1.46,"y":4.882390975952148},{"x":-1.459,"y":4.879538536071777},{"x":-1.458,"y":4.876689910888672},{"x":-1.457,"y":4.87384557723999},{"x":-1.456,"y":4.871005535125732},{"x":-1.455,"y":4.86816930770874},{"x":-1.454,"y":4.865336894989014},{"x":-1.453,"y":4.862508773803711},{"x":-1.452,"y":4.859684944152832},{"x":-1.451,"y":4.856865406036377},{"x":-1.45,"y":4.854049205780029},{"x":-1.449,"y":4.851236820220947},{"x":-1.448,"y":4.848428249359131},{"x":-1.447,"y":4.845624923706055},{"x":-1.446,"y":4.842824459075928},{"x":-1.445,"y":4.840029239654541},{"x":-1.444,"y":4.8372368812561035},{"x":-1.443,"y":4.834449291229248},{"x":-1.442,"y":4.831665515899658},{"x":-1.441,"y":4.828885555267334},{"x":-1.44,"y":4.826109409332275},{"x":-1.439,"y":4.823337554931641},{"x":-1.438,"y":4.82056999206543},{"x":-1.437,"y":4.817806720733643},{"x":-1.436,"y":4.815046787261963},{"x":-1.435,"y":4.812291145324707},{"x":-1.434,"y":4.809539318084717},{"x":-1.433,"y":4.80679178237915},{"x":-1.432,"y":4.804048538208008},{"x":-1.431,"y":4.801308631896973},{"x":-1.43,"y":4.798573017120361},{"x":-1.429,"y":4.795842170715332},{"x":-1.428,"y":4.793114185333252},{"x":-1.427,"y":4.790390968322754},{"x":-1.426,"y":4.7876715660095215},{"x":-1.425,"y":4.784955978393555},{"x":-1.424,"y":4.782244682312012},{"x":-1.423,"y":4.779537200927734},{"x":-1.422,"y":4.776834011077881},{"x":-1.421,"y":4.774135112762451},{"x":-1.42,"y":4.771439552307129},{"x":-1.419,"y":4.7687482833862305},{"x":-1.418,"y":4.766061305999756},{"x":-1.417,"y":4.763378143310547},{"x":-1.416,"y":4.7606987953186035},{"x":-1.415,"y":4.758023262023926},{"x":-1.414,"y":4.755352020263672},{"x":-1.413,"y":4.752685070037842},{"x":-1.412,"y":4.750021934509277},{"x":-1.411,"y":4.747363090515137},{"x":-1.41,"y":4.744708061218262},{"x":-1.409,"y":4.7420573234558105},{"x":-1.408,"y":4.739410400390625},{"x":-1.407,"y":4.736766815185547},{"x":-1.406,"y":4.734127998352051},{"x":-1.405,"y":4.73149299621582},{"x":-1.404,"y":4.728862762451172},{"x":-1.403,"y":4.726235866546631},{"x":-1.402,"y":4.7236127853393555},{"x":-1.401,"y":4.720994472503662},{"x":-1.4,"y":4.718379497528076},{"x":-1.399,"y":4.715768814086914},{"x":-1.398,"y":4.713161945343018},{"x":-1.397,"y":4.710558891296387},{"x":-1.396,"y":4.707961082458496},{"x":-1.395,"y":4.705366134643555},{"x":-1.394,"y":4.702775955200195},{"x":-1.393,"y":4.700189113616943},{"x":-1.392,"y":4.697606563568115},{"x":-1.391,"y":4.695028305053711},{"x":-1.39,"y":4.692453384399414},{"x":-1.389,"y":4.689883232116699},{"x":-1.388,"y":4.68731689453125},{"x":-1.387,"y":4.684754371643066},{"x":-1.386,"y":4.682195663452148},{"x":-1.385,"y":4.6796417236328125},{"x":-1.384,"y":4.677091121673584},{"x":-1.383,"y":4.674544811248779},{"x":-1.382,"y":4.67200231552124},{"x":-1.381,"y":4.669465065002441},{"x":-1.38,"y":4.666930198669434},{"x":-1.379,"y":4.664400100708008},{"x":-1.378,"y":4.661873817443848},{"x":-1.377,"y":4.659351348876953},{"x":-1.376,"y":4.656833648681641},{"x":-1.375,"y":4.6543192863464355},{"x":-1.374,"y":4.651809215545654},{"x":-1.373,"y":4.649303436279297},{"x":-1.372,"y":4.646801471710205},{"x":-1.371,"y":4.644303321838379},{"x":-1.37,"y":4.641809463500977},{"x":-1.369,"y":4.63931941986084},{"x":-1.368,"y":4.636833667755127},{"x":-1.367,"y":4.63435173034668},{"x":-1.366,"y":4.631874084472656},{"x":-1.365,"y":4.62939977645874},{"x":-1.364,"y":4.626930236816406},{"x":-1.363,"y":4.624464988708496},{"x":-1.362,"y":4.622002601623535},{"x":-1.361,"y":4.619544982910156},{"x":-1.36,"y":4.617091178894043},{"x":-1.359,"y":4.614641189575195},{"x":-1.358,"y":4.61219596862793},{"x":-1.357,"y":4.60975456237793},{"x":-1.356,"y":4.607316017150879},{"x":-1.355,"y":4.604883193969727},{"x":-1.354,"y":4.602453708648682},{"x":-1.353,"y":4.600028038024902},{"x":-1.352,"y":4.597606658935547},{"x":-1.351,"y":4.595189094543457},{"x":-1.35,"y":4.592775821685791},{"x":-1.349,"y":4.590366363525391},{"x":-1.348,"y":4.587961196899414},{"x":-1.347,"y":4.585559844970703},{"x":-1.346,"y":4.583162307739258},{"x":-1.345,"y":4.580769062042236},{"x":-1.344,"y":4.5783796310424805},{"x":-1.343,"y":4.575994491577148},{"x":-1.342,"y":4.573613166809082},{"x":-1.341,"y":4.571235656738281},{"x":-1.34,"y":4.5688629150390625},{"x":-1.339,"y":4.566493988037109},{"x":-1.338,"y":4.564128875732422},{"x":-1.337,"y":4.561767578125},{"x":-1.336,"y":4.559410095214844},{"x":-1.335,"y":4.5570573806762695},{"x":-1.334,"y":4.554708480834961},{"x":-1.333,"y":4.552363395690918},{"x":-1.332,"y":4.550022602081299},{"x":-1.331,"y":4.547685623168945},{"x":-1.33,"y":4.545352935791016},{"x":-1.329,"y":4.543023586273193},{"x":-1.328,"y":4.540699005126953},{"x":-1.327,"y":4.53837776184082},{"x":-1.326,"y":4.5360612869262695},{"x":-1.325,"y":4.533748626708984},{"x":-1.324,"y":4.531439781188965},{"x":-1.323,"y":4.529135227203369},{"x":-1.322,"y":4.526834487915039},{"x":-1.321,"y":4.524537563323975},{"x":-1.32,"y":4.522245407104492},{"x":-1.319,"y":4.519956588745117},{"x":-1.318,"y":4.517671585083008},{"x":-1.317,"y":4.5153913497924805},{"x":-1.316,"y":4.513114929199219},{"x":-1.315,"y":4.510842323303223},{"x":-1.314,"y":4.508573532104492},{"x":-1.313,"y":4.5063090324401855},{"x":-1.312,"y":4.504048824310303},{"x":-1.311,"y":4.501791954040527},{"x":-1.31,"y":4.499539852142334},{"x":-1.309,"y":4.497291564941406},{"x":-1.308,"y":4.495047569274902},{"x":-1.307,"y":4.492806911468506},{"x":-1.306,"y":4.490570545196533},{"x":-1.305,"y":4.488338470458984},{"x":-1.304,"y":4.486110210418701},{"x":-1.303,"y":4.483885765075684},{"x":-1.302,"y":4.481666088104248},{"x":-1.301,"y":4.47944974899292},{"x":-1.3,"y":4.477237701416016},{"x":-1.299,"y":4.475029468536377},{"x":-1.298,"y":4.472825050354004},{"x":-1.297,"y":4.470625400543213},{"x":-1.296,"y":4.4684295654296875},{"x":-1.295,"y":4.4662370681762695},{"x":-1.294,"y":4.464049339294434},{"x":-1.293,"y":4.461865425109863},{"x":-1.292,"y":4.459685325622559},{"x":-1.291,"y":4.457509517669678},{"x":-1.29,"y":4.4553375244140625},{"x":-1.289,"y":4.453169822692871},{"x":-1.288,"y":4.451005935668945},{"x":-1.287,"y":4.448845863342285},{"x":-1.286,"y":4.446690559387207},{"x":-1.285,"y":4.4445390701293945},{"x":-1.284,"y":4.442391395568848},{"x":-1.283,"y":4.440247535705566},{"x":-1.282,"y":4.438107490539551},{"x":-1.281,"y":4.435972213745117},{"x":-1.28,"y":4.433840751647949},{"x":-1.279,"y":4.431713104248047},{"x":-1.278,"y":4.42958927154541},{"x":-1.277,"y":4.427469730377197},{"x":-1.276,"y":4.425354480743408},{"x":-1.275,"y":4.423242568969727},{"x":-1.274,"y":4.421135902404785},{"x":-1.273,"y":4.419032096862793},{"x":-1.272,"y":4.416933059692383},{"x":-1.271,"y":4.41483736038208},{"x":-1.27,"y":4.412745475769043},{"x":-1.269,"y":4.410658836364746},{"x":-1.268,"y":4.408575057983398},{"x":-1.267,"y":4.406496047973633},{"x":-1.266,"y":4.404420852661133},{"x":-1.265,"y":4.402349472045898},{"x":-1.264,"y":4.400282859802246},{"x":-1.263,"y":4.398219585418701},{"x":-1.262,"y":4.396160125732422},{"x":-1.261,"y":4.394105434417725},{"x":-1.26,"y":4.392054080963135},{"x":-1.259,"y":4.390007019042969},{"x":-1.258,"y":4.387964248657227},{"x":-1.257,"y":4.385924816131592},{"x":-1.256,"y":4.383890151977539},{"x":-1.255,"y":4.381858825683594},{"x":-1.254,"y":4.3798322677612305},{"x":-1.253,"y":4.377809524536133},{"x":-1.252,"y":4.375790596008301},{"x":-1.251,"y":4.373775482177734},{"x":-1.25,"y":4.371764659881592},{"x":-1.249,"y":4.369757652282715},{"x":-1.248,"y":4.36775541305542},{"x":-1.247,"y":4.365756034851074},{"x":-1.246,"y":4.363761901855469},{"x":-1.245,"y":4.361771106719971},{"x":-1.244,"y":4.3597846031188965},{"x":-1.243,"y":4.357801914215088},{"x":-1.242,"y":4.355823040008545},{"x":-1.241,"y":4.353848934173584},{"x":-1.24,"y":4.3518781661987305},{"x":-1.239,"y":4.349911689758301},{"x":-1.238,"y":4.347949028015137},{"x":-1.237,"y":4.3459906578063965},{"x":-1.236,"y":4.344036102294922},{"x":-1.235,"y":4.342085838317871},{"x":-1.234,"y":4.340139389038086},{"x":-1.233,"y":4.338197231292725},{"x":-1.232,"y":4.336258888244629},{"x":-1.231,"y":4.334324359893799},{"x":-1.23,"y":4.332393646240234},{"x":-1.229,"y":4.330467700958252},{"x":-1.228,"y":4.328545570373535},{"x":-1.227,"y":4.326627731323242},{"x":-1.226,"y":4.324712753295898},{"x":-1.225,"y":4.322803020477295},{"x":-1.224,"y":4.320897102355957},{"x":-1.223,"y":4.318994522094727},{"x":-1.222,"y":4.317096710205078},{"x":-1.221,"y":4.315202713012695},{"x":-1.22,"y":4.313312530517578},{"x":-1.219,"y":4.311426639556885},{"x":-1.218,"y":4.309544563293457},{"x":-1.217,"y":4.307666778564453},{"x":-1.216,"y":4.305792808532715},{"x":-1.215,"y":4.3039231300354},{"x":-1.214,"y":4.302057266235352},{"x":-1.213,"y":4.300195693969727},{"x":-1.212,"y":4.298337459564209},{"x":-1.211,"y":4.296483516693115},{"x":-1.21,"y":4.294633865356445},{"x":-1.209,"y":4.292788028717041},{"x":-1.208,"y":4.290946006774902},{"x":-1.207,"y":4.289108753204346},{"x":-1.206,"y":4.287275314331055},{"x":-1.205,"y":4.285445213317871},{"x":-1.204,"y":4.2836198806762695},{"x":-1.203,"y":4.281798362731934},{"x":-1.202,"y":4.279980659484863},{"x":-1.201,"y":4.278166770935059},{"x":-1.2,"y":4.276357650756836},{"x":-1.199,"y":4.274552345275879},{"x":-1.198,"y":4.2727508544921875},{"x":-1.197,"y":4.270953178405762},{"x":-1.196,"y":4.269160270690918},{"x":-1.195,"y":4.267370700836182},{"x":-1.194,"y":4.265584945678711},{"x":-1.193,"y":4.263803482055664},{"x":-1.192,"y":4.262026786804199},{"x":-1.191,"y":4.260253429412842},{"x":-1.19,"y":4.25848388671875},{"x":-1.189,"y":4.256718635559082},{"x":-1.188,"y":4.254957675933838},{"x":-1.187,"y":4.253200531005859},{"x":-1.186,"y":4.2514472007751465},{"x":-1.185,"y":4.249698162078857},{"x":-1.184,"y":4.247953414916992},{"x":-1.183,"y":4.246212005615234},{"x":-1.182,"y":4.244475364685059},{"x":-1.181,"y":4.24274206161499},{"x":-1.18,"y":4.241013050079346},{"x":-1.179,"y":4.239288330078125},{"x":-1.178,"y":4.23756742477417},{"x":-1.177,"y":4.2358503341674805},{"x":-1.176,"y":4.234137535095215},{"x":-1.175,"y":4.232428550720215},{"x":-1.174,"y":4.230723857879639},{"x":-1.173,"y":4.229022979736328},{"x":-1.172,"y":4.227326393127441},{"x":-1.171,"y":4.22563362121582},{"x":-1.17,"y":4.223944664001465},{"x":-1.169,"y":4.222259998321533},{"x":-1.168,"y":4.220579147338867},{"x":-1.167,"y":4.218902587890625},{"x":-1.166,"y":4.217230319976807},{"x":-1.165,"y":4.215561866760254},{"x":-1.164,"y":4.213897228240967},{"x":-1.163,"y":4.212236404418945},{"x":-1.162,"y":4.210579872131348},{"x":-1.161,"y":4.208927154541016},{"x":-1.16,"y":4.207279205322266},{"x":-1.159,"y":4.205635070800781},{"x":-1.158,"y":4.203994274139404},{"x":-1.157,"y":4.202358245849609},{"x":-1.156,"y":4.200725555419922},{"x":-1.155,"y":4.199097156524658},{"x":-1.154,"y":4.19747257232666},{"x":-1.153,"y":4.195852756500244},{"x":-1.152,"y":4.1942362785339355},{"x":-1.151,"y":4.192624092102051},{"x":-1.15,"y":4.19101619720459},{"x":-1.149,"y":4.1894121170043945},{"x":-1.148,"y":4.187811851501465},{"x":-1.147,"y":4.186215400695801},{"x":-1.146,"y":4.184623718261719},{"x":-1.145,"y":4.183035373687744},{"x":-1.144,"y":4.181451797485352},{"x":-1.143,"y":4.179871559143066},{"x":-1.142,"y":4.178295612335205},{"x":-1.141,"y":4.176723480224609},{"x":-1.14,"y":4.1751556396484375},{"x":-1.139,"y":4.173591613769531},{"x":-1.138,"y":4.172031879425049},{"x":-1.137,"y":4.170475959777832},{"x":-1.136,"y":4.168924331665039},{"x":-1.135,"y":4.167376518249512},{"x":-1.134,"y":4.16583251953125},{"x":-1.133,"y":4.164292812347412},{"x":-1.132,"y":4.16275691986084},{"x":-1.131,"y":4.161225318908691},{"x":-1.13,"y":4.159697532653809},{"x":-1.129,"y":4.15817403793335},{"x":-1.128,"y":4.156654357910156},{"x":-1.127,"y":4.155138969421387},{"x":-1.126,"y":4.153627395629883},{"x":-1.125,"y":4.1521196365356445},{"x":-1.124,"y":4.15061616897583},{"x":-1.123,"y":4.149116516113281},{"x":-1.122,"y":4.147621154785156},{"x":-1.121,"y":4.146130084991455},{"x":-1.12,"y":4.144642353057861},{"x":-1.119,"y":4.143158912658691},{"x":-1.118,"y":4.141679763793945},{"x":-1.117,"y":4.140204429626465},{"x":-1.116,"y":4.138733386993408},{"x":-1.115,"y":4.137266159057617},{"x":-1.114,"y":4.135802268981934},{"x":-1.113,"y":4.134343147277832},{"x":-1.112,"y":4.132888317108154},{"x":-1.111,"y":4.131436824798584},{"x":-1.11,"y":4.1299896240234375},{"x":-1.109,"y":4.128546714782715},{"x":-1.108,"y":4.127107620239258},{"x":-1.107,"y":4.125672817230225},{"x":-1.106,"y":4.124241828918457},{"x":-1.105,"y":4.122814178466797},{"x":-1.104,"y":4.121391296386719},{"x":-1.103,"y":4.119973182678223},{"x":-1.102,"y":4.118557929992676},{"x":-1.101,"y":4.1171464920043945},{"x":-1.1,"y":4.115739822387695},{"x":-1.099,"y":4.114336967468262},{"x":-1.098,"y":4.112938404083252},{"x":-1.097,"y":4.111543655395508},{"x":-1.096,"y":4.110152244567871},{"x":-1.095,"y":4.108766078948975},{"x":-1.094,"y":4.1073832511901855},{"x":-1.093,"y":4.10600471496582},{"x":-1.092,"y":4.1046295166015625},{"x":-1.091,"y":4.103259086608887},{"x":-1.09,"y":4.101892471313477},{"x":-1.089,"y":4.100529670715332},{"x":-1.088,"y":4.0991716384887695},{"x":-1.087,"y":4.0978169441223145},{"x":-1.086,"y":4.096466541290283},{"x":-1.085,"y":4.095119953155518},{"x":-1.084,"y":4.093777656555176},{"x":-1.083,"y":4.092438697814941},{"x":-1.082,"y":4.091104507446289},{"x":-1.081,"y":4.089774131774902},{"x":-1.08,"y":4.088447570800781},{"x":-1.079,"y":4.087125301361084},{"x":-1.078,"y":4.0858073234558105},{"x":-1.077,"y":4.0844926834106445},{"x":-1.076,"y":4.0831828117370605},{"x":-1.075,"y":4.081876754760742},{"x":-1.074,"y":4.080574035644531},{"x":-1.073,"y":4.079276084899902},{"x":-1.072,"y":4.077981948852539},{"x":-1.071,"y":4.076691627502441},{"x":-1.07,"y":4.075406074523926},{"x":-1.069,"y":4.074123382568359},{"x":-1.068,"y":4.072845458984375},{"x":-1.067,"y":4.071571350097656},{"x":-1.066,"y":4.0703020095825195},{"x":-1.065,"y":4.069035530090332},{"x":-1.064,"y":4.067773818969727},{"x":-1.063,"y":4.066515922546387},{"x":-1.062,"y":4.0652618408203125},{"x":-1.061,"y":4.064012050628662},{"x":-1.06,"y":4.062766075134277},{"x":-1.059,"y":4.061524391174316},{"x":-1.058,"y":4.060286521911621},{"x":-1.057,"y":4.059053421020508},{"x":-1.056,"y":4.057823181152344},{"x":-1.055,"y":4.0565972328186035},{"x":-1.054,"y":4.055376052856445},{"x":-1.053,"y":4.0541582107543945},{"x":-1.052,"y":4.052944660186768},{"x":-1.051,"y":4.051734924316406},{"x":-1.05,"y":4.050529479980469},{"x":-1.049,"y":4.049327850341797},{"x":-1.048,"y":4.048130035400391},{"x":-1.047,"y":4.046936988830566},{"x":-1.046,"y":4.045747756958008},{"x":-1.045,"y":4.044562339782715},{"x":-1.044,"y":4.0433807373046875},{"x":-1.043,"y":4.042202949523926},{"x":-1.042,"y":4.041029930114746},{"x":-1.041,"y":4.039860725402832},{"x":-1.04,"y":4.038695335388184},{"x":-1.039,"y":4.037533760070801},{"x":-1.038,"y":4.036376953125},{"x":-1.037,"y":4.035223484039307},{"x":-1.036,"y":4.034074306488037},{"x":-1.035,"y":4.032928943634033},{"x":-1.034,"y":4.031787872314453},{"x":-1.033,"y":4.030651092529297},{"x":-1.032,"y":4.029517650604248},{"x":-1.031,"y":4.028388500213623},{"x":-1.03,"y":4.027263641357422},{"x":-1.029,"y":4.026142597198486},{"x":-1.028,"y":4.025025367736816},{"x":-1.027,"y":4.02391242980957},{"x":-1.026,"y":4.022803783416748},{"x":-1.025,"y":4.021698951721191},{"x":-1.024,"y":4.0205979347229},{"x":-1.023,"y":4.019500732421875},{"x":-1.022,"y":4.018407821655273},{"x":-1.021,"y":4.017319202423096},{"x":-1.02,"y":4.016234397888184},{"x":-1.019,"y":4.015153884887695},{"x":-1.018,"y":4.014077186584473},{"x":-1.017,"y":4.013004302978516},{"x":-1.016,"y":4.011935234069824},{"x":-1.015,"y":4.010870933532715},{"x":-1.014,"y":4.009810447692871},{"x":-1.013,"y":4.008753776550293},{"x":-1.012,"y":4.0077009201049805},{"x":-1.011,"y":4.00665283203125},{"x":-1.01,"y":4.005608081817627},{"x":-1.009,"y":4.004567623138428},{"x":-1.008,"y":4.003531455993652},{"x":-1.007,"y":4.002498626708984},{"x":-1.006,"y":4.001470565795898},{"x":-1.005,"y":4.000446319580078},{"x":-1.004,"y":3.9994256496429443},{"x":-1.003,"y":3.9984090328216553},{"x":-1.002,"y":3.997396945953369},{"x":-1.001,"y":3.9963886737823486},{"x":-1.0,"y":3.995384454727173},{"x":-0.999,"y":3.994384288787842},{"x":-0.998,"y":3.9933881759643555},{"x":-0.997,"y":3.9923958778381348},{"x":-0.996,"y":3.991407632827759},{"x":-0.995,"y":3.9904234409332275},{"x":-0.994,"y":3.98944354057312},{"x":-0.993,"y":3.9884674549102783},{"x":-0.992,"y":3.9874954223632812},{"x":-0.991,"y":3.986527442932129},{"x":-0.99,"y":3.9855635166168213},{"x":-0.989,"y":3.9846034049987793},{"x":-0.988,"y":3.983647346496582},{"x":-0.987,"y":3.9826955795288086},{"x":-0.986,"y":3.981747627258301},{"x":-0.985,"y":3.980803966522217},{"x":-0.984,"y":3.9798638820648193},{"x":-0.983,"y":3.9789280891418457},{"x":-0.982,"y":3.977996349334717},{"x":-0.981,"y":3.9770686626434326},{"x":-0.98,"y":3.976144790649414},{"x":-0.979,"y":3.9752249717712402},{"x":-0.978,"y":3.9743094444274902},{"x":-0.977,"y":3.973397731781006},{"x":-0.976,"y":3.9724903106689453},{"x":-0.975,"y":3.9715867042541504},{"x":-0.974,"y":3.970686912536621},{"x":-0.973,"y":3.9697914123535156},{"x":-0.972,"y":3.968899726867676},{"x":-0.971,"y":3.9680123329162598},{"x":-0.97,"y":3.9671289920806885},{"x":-0.969,"y":3.966249465942383},{"x":-0.968,"y":3.965373992919922},{"x":-0.967,"y":3.9645025730133057},{"x":-0.966,"y":3.963635206222534},{"x":-0.965,"y":3.9627718925476074},{"x":-0.964,"y":3.9619126319885254},{"x":-0.963,"y":3.961057186126709},{"x":-0.962,"y":3.9602060317993164},{"x":-0.961,"y":3.9593589305877686},{"x":-0.96,"y":3.9585156440734863},{"x":-0.959,"y":3.957676410675049},{"x":-0.958,"y":3.956841230392456},{"x":-0.957,"y":3.956010341644287},{"x":-0.956,"y":3.9551830291748047},{"x":-0.955,"y":3.954360008239746},{"x":-0.954,"y":3.953540802001953},{"x":-0.953,"y":3.952725887298584},{"x":-0.952,"y":3.9519150257110596},{"x":-0.951,"y":3.951107978820801},{"x":-0.95,"y":3.9503049850463867},{"x":-0.949,"y":3.9495062828063965},{"x":-0.948,"y":3.948711395263672},{"x":-0.947,"y":3.947920322418213},{"x":-0.946,"y":3.9471335411071777},{"x":-0.945,"y":3.9463508129119873},{"x":-0.944,"y":3.9455718994140625},{"x":-0.943,"y":3.9447970390319824},{"x":-0.942,"y":3.944026470184326},{"x":-0.941,"y":3.9432597160339355},{"x":-0.94,"y":3.9424970149993896},{"x":-0.939,"y":3.9417383670806885},{"x":-0.938,"y":3.940983772277832},{"x":-0.937,"y":3.940232992172241},{"x":-0.936,"y":3.939486503601074},{"x":-0.935,"y":3.938744068145752},{"x":-0.934,"y":3.9380054473876953},{"x":-0.933,"y":3.9372711181640625},{"x":-0.932,"y":3.9365406036376953},{"x":-0.931,"y":3.9358139038085938},{"x":-0.93,"y":3.935091495513916},{"x":-0.929,"y":3.934373378753662},{"x":-0.928,"y":3.9336588382720947},{"x":-0.927,"y":3.932948589324951},{"x":-0.926,"y":3.932241916656494},{"x":-0.925,"y":3.931540012359619},{"x":-0.924,"y":3.9308416843414307},{"x":-0.923,"y":3.930147409439087},{"x":-0.922,"y":3.929457187652588},{"x":-0.921,"y":3.9287710189819336},{"x":-0.92,"y":3.928088903427124},{"x":-0.919,"y":3.92741060256958},{"x":-0.918,"y":3.926736354827881},{"x":-0.917,"y":3.9260663986206055},{"x":-0.916,"y":3.925400495529175},{"x":-0.915,"y":3.9247384071350098},{"x":-0.914,"y":3.9240803718566895},{"x":-0.913,"y":3.923426389694214},{"x":-0.912,"y":3.922776699066162},{"x":-0.911,"y":3.922130584716797},{"x":-0.91,"y":3.9214885234832764},{"x":-0.909,"y":3.9208507537841797},{"x":-0.908,"y":3.9202170372009277},{"x":-0.907,"y":3.9195871353149414},{"x":-0.906,"y":3.9189610481262207},{"x":-0.905,"y":3.918339252471924},{"x":-0.904,"y":3.917721748352051},{"x":-0.903,"y":3.9171080589294434},{"x":-0.902,"y":3.9164981842041016},{"x":-0.901,"y":3.9158928394317627},{"x":-0.9,"y":3.9152913093566895},{"x":-0.899,"y":3.9146933555603027},{"x":-0.898,"y":3.91409969329834},{"x":-0.897,"y":3.913510322570801},{"x":-0.896,"y":3.9129247665405273},{"x":-0.895,"y":3.9123435020446777},{"x":-0.894,"y":3.9117658138275146},{"x":-0.893,"y":3.9111924171447754},{"x":-0.892,"y":3.910623073577881},{"x":-0.891,"y":3.910057544708252},{"x":-0.89,"y":3.9094960689544678},{"x":-0.889,"y":3.9089388847351074},{"x":-0.888,"y":3.9083855152130127},{"x":-0.887,"y":3.9078361988067627},{"x":-0.886,"y":3.9072909355163574},{"x":-0.885,"y":3.906749725341797},{"x":-0.884,"y":3.906212568283081},{"x":-0.883,"y":3.905679225921631},{"x":-0.882,"y":3.9051501750946045},{"x":-0.881,"y":3.9046249389648438},{"x":-0.88,"y":3.904103994369507},{"x":-0.879,"y":3.9035868644714355},{"x":-0.878,"y":3.903073787689209},{"x":-0.877,"y":3.902564525604248},{"x":-0.876,"y":3.902060031890869},{"x":-0.875,"y":3.9015588760375977},{"x":-0.874,"y":3.901061773300171},{"x":-0.873,"y":3.900568962097168},{"x":-0.872,"y":3.9000802040100098},{"x":-0.871,"y":3.899595260620117},{"x":-0.87,"y":3.8991141319274902},{"x":-0.869,"y":3.898637294769287},{"x":-0.868,"y":3.8981645107269287},{"x":-0.867,"y":3.897696018218994},{"x":-0.866,"y":3.897231101989746},{"x":-0.865,"y":3.896770477294922},{"x":-0.864,"y":3.8963136672973633},{"x":-0.863,"y":3.8958611488342285},{"x":-0.862,"y":3.8954124450683594},{"x":-0.861,"y":3.894967794418335},{"x":-0.86,"y":3.8945271968841553},{"x":-0.859,"y":3.8940906524658203},{"x":-0.858,"y":3.89365816116333},{"x":-0.857,"y":3.8932294845581055},{"x":-0.856,"y":3.8928050994873047},{"x":-0.855,"y":3.8923845291137695},{"x":-0.854,"y":3.891968250274658},{"x":-0.853,"y":3.8915557861328125},{"x":-0.852,"y":3.8911476135253906},{"x":-0.851,"y":3.8907432556152344},{"x":-0.85,"y":3.8903427124023438},{"x":-0.849,"y":3.889946460723877},{"x":-0.848,"y":3.889554500579834},{"x":-0.847,"y":3.8891658782958984},{"x":-0.846,"y":3.8887815475463867},{"x":-0.845,"y":3.888401508331299},{"x":-0.844,"y":3.8880252838134766},{"x":-0.843,"y":3.887653350830078},{"x":-0.842,"y":3.8872852325439453},{"x":-0.841,"y":3.886920928955078},{"x":-0.84,"y":3.8865609169006348},{"x":-0.839,"y":3.886204957962036},{"x":-0.838,"y":3.885852813720703},{"x":-0.837,"y":3.885504722595215},{"x":-0.836,"y":3.8851609230041504},{"x":-0.835,"y":3.8848211765289307},{"x":-0.834,"y":3.8844852447509766},{"x":-0.833,"y":3.884153366088867},{"x":-0.832,"y":3.8838255405426025},{"x":-0.831,"y":3.8835015296936035},{"x":-0.83,"y":3.8831818103790283},{"x":-0.829,"y":3.8828659057617188},{"x":-0.828,"y":3.882554531097412},{"x":-0.827,"y":3.882246494293213},{"x":-0.826,"y":3.8819427490234375},{"x":-0.825,"y":3.881643056869507},{"x":-0.824,"y":3.881347417831421},{"x":-0.823,"y":3.8810558319091797},{"x":-0.822,"y":3.880768299102783},{"x":-0.821,"y":3.8804845809936523},{"x":-0.82,"y":3.8802051544189453},{"x":-0.819,"y":3.879929780960083},{"x":-0.818,"y":3.8796582221984863},{"x":-0.817,"y":3.8793907165527344},{"x":-0.816,"y":3.879127264022827},{"x":-0.815,"y":3.8788681030273438},{"x":-0.814,"y":3.878612518310547},{"x":-0.813,"y":3.878361225128174},{"x":-0.812,"y":3.8781137466430664},{"x":-0.811,"y":3.877870559692383},{"x":-0.81,"y":3.877631187438965},{"x":-0.809,"y":3.8773961067199707},{"x":-0.808,"y":3.877164840698242},{"x":-0.807,"y":3.8769378662109375},{"x":-0.806,"y":3.8767144680023193},{"x":-0.805,"y":3.876495361328125},{"x":-0.804,"y":3.876279830932617},{"x":-0.803,"y":3.8760690689086914},{"x":-0.802,"y":3.8758621215820312},{"x":-0.801,"y":3.8756589889526367},{"x":-0.8,"y":3.875459909439087},{"x":-0.799,"y":3.875265121459961},{"x":-0.798,"y":3.8750741481781006},{"x":-0.797,"y":3.874886989593506},{"x":-0.796,"y":3.874704122543335},{"x":-0.795,"y":3.874525308609009},{"x":-0.794,"y":3.8743505477905273},{"x":-0.793,"y":3.8741796016693115},{"x":-0.792,"y":3.8740127086639404},{"x":-0.791,"y":3.873850107192993},{"x":-0.79,"y":3.8736913204193115},{"x":-0.789,"y":3.8735365867614746},{"x":-0.788,"y":3.8733856678009033},{"x":-0.787,"y":3.873239278793335},{"x":-0.786,"y":3.873096466064453},{"x":-0.785,"y":3.872957944869995},{"x":-0.784,"y":3.8728232383728027},{"x":-0.783,"y":3.872692823410034},{"x":-0.782,"y":3.8725662231445312},{"x":-0.781,"y":3.872443675994873},{"x":-0.78,"y":3.8723249435424805},{"x":-0.779,"y":3.87221097946167},{"x":-0.778,"y":3.872100353240967},{"x":-0.777,"y":3.8719937801361084},{"x":-0.776,"y":3.871891498565674},{"x":-0.775,"y":3.871793031692505},{"x":-0.774,"y":3.8716988563537598},{"x":-0.773,"y":3.8716084957122803},{"x":-0.772,"y":3.8715221881866455},{"x":-0.771,"y":3.8714399337768555},{"x":-0.77,"y":3.87136173248291},{"x":-0.769,"y":3.8712873458862305},{"x":-0.768,"y":3.8712172508239746},{"x":-0.767,"y":3.8711514472961426},{"x":-0.766,"y":3.871088981628418},{"x":-0.765,"y":3.8710310459136963},{"x":-0.764,"y":3.8709769248962402},{"x":-0.763,"y":3.870926856994629},{"x":-0.762,"y":3.8708808422088623},{"x":-0.761,"y":3.8708388805389404},{"x":-0.76,"y":3.8708009719848633},{"x":-0.759,"y":3.870767116546631},{"x":-0.758,"y":3.870737075805664},{"x":-0.757,"y":3.870711326599121},{"x":-0.756,"y":3.8706891536712646},{"x":-0.755,"y":3.870671272277832},{"x":-0.754,"y":3.8706576824188232},{"x":-0.753,"y":3.87064790725708},{"x":-0.752,"y":3.8706421852111816},{"x":-0.751,"y":3.870640277862549},{"x":-0.75,"y":3.87064266204834},{"x":-0.749,"y":3.8706488609313965},{"x":-0.748,"y":3.870659351348877},{"x":-0.747,"y":3.870673656463623},{"x":-0.746,"y":3.870692253112793},{"x":-0.745,"y":3.8707146644592285},{"x":-0.744,"y":3.8707408905029297},{"x":-0.743,"y":3.8707714080810547},{"x":-0.742,"y":3.8708062171936035},{"x":-0.741,"y":3.8708443641662598},{"x":-0.74,"y":3.870887041091919},{"x":-0.739,"y":3.870934009552002},{"x":-0.738,"y":3.8709843158721924},{"x":-0.737,"y":3.8710389137268066},{"x":-0.736,"y":3.8710975646972656},{"x":-0.735,"y":3.8711605072021484},{"x":-0.734,"y":3.8712270259857178},{"x":-0.733,"y":3.871297836303711},{"x":-0.732,"y":3.8713724613189697},{"x":-0.731,"y":3.8714511394500732},{"x":-0.73,"y":3.8715343475341797},{"x":-0.729,"y":3.8716211318969727},{"x":-0.728,"y":3.8717117309570312},{"x":-0.727,"y":3.8718066215515137},{"x":-0.726,"y":3.87190580368042},{"x":-0.725,"y":3.872008800506592},{"x":-0.724,"y":3.8721156120300293},{"x":-0.723,"y":3.8722264766693115},{"x":-0.722,"y":3.8723416328430176},{"x":-0.721,"y":3.8724608421325684},{"x":-0.72,"y":3.8725836277008057},{"x":-0.719,"y":3.872710704803467},{"x":-0.718,"y":3.8728420734405518},{"x":-0.717,"y":3.8729772567749023},{"x":-0.716,"y":3.8731164932250977},{"x":-0.715,"y":3.8732595443725586},{"x":-0.714,"y":3.8734068870544434},{"x":-0.713,"y":3.8735580444335938},{"x":-0.712,"y":3.873713493347168},{"x":-0.711,"y":3.873872756958008},{"x":-0.71,"y":3.8740363121032715},{"x":-0.709,"y":3.874203681945801},{"x":-0.708,"y":3.8743748664855957},{"x":-0.707,"y":3.8745501041412354},{"x":-0.706,"y":3.874729633331299},{"x":-0.705,"y":3.874913215637207},{"x":-0.704,"y":3.875100612640381},{"x":-0.703,"y":3.8752920627593994},{"x":-0.702,"y":3.875487804412842},{"x":-0.701,"y":3.87568736076355},{"x":-0.7,"y":3.8758909702301025},{"x":-0.699,"y":3.8760986328125},{"x":-0.698,"y":3.876310348510742},{"x":-0.697,"y":3.87652587890625},{"x":-0.696,"y":3.8767457008361816},{"x":-0.695,"y":3.876969337463379},{"x":-0.694,"y":3.877197265625},{"x":-0.693,"y":3.8774290084838867},{"x":-0.692,"y":3.877664804458618},{"x":-0.691,"y":3.8779044151306152},{"x":-0.69,"y":3.8781485557556152},{"x":-0.689,"y":3.878396511077881},{"x":-0.688,"y":3.878648281097412},{"x":-0.687,"y":3.878904342651367},{"x":-0.686,"y":3.879164218902588},{"x":-0.685,"y":3.8794283866882324},{"x":-0.684,"y":3.8796963691711426},{"x":-0.683,"y":3.8799681663513184},{"x":-0.682,"y":3.880244255065918},{"x":-0.681,"y":3.8805246353149414},{"x":-0.68,"y":3.8808085918426514},{"x":-0.679,"y":3.881096839904785},{"x":-0.678,"y":3.8813889026641846},{"x":-0.677,"y":3.881685256958008},{"x":-0.676,"y":3.8819854259490967},{"x":-0.675,"y":3.8822896480560303},{"x":-0.674,"y":3.8825979232788086},{"x":-0.673,"y":3.8829102516174316},{"x":-0.672,"y":3.8832266330718994},{"x":-0.671,"y":3.883546829223633},{"x":-0.67,"y":3.883871555328369},{"x":-0.669,"y":3.884199857711792},{"x":-0.668,"y":3.8845322132110596},{"x":-0.667,"y":3.884868621826172},{"x":-0.666,"y":3.885209321975708},{"x":-0.665,"y":3.8855538368225098},{"x":-0.664,"y":3.8859024047851562},{"x":-0.663,"y":3.8862547874450684},{"x":-0.662,"y":3.8866114616394043},{"x":-0.661,"y":3.886972188949585},{"x":-0.66,"y":3.8873367309570312},{"x":-0.659,"y":3.8877053260803223},{"x":-0.658,"y":3.888078212738037},{"x":-0.657,"y":3.8884549140930176},{"x":-0.656,"y":3.8888356685638428},{"x":-0.655,"y":3.8892204761505127},{"x":-0.654,"y":3.8896093368530273},{"x":-0.653,"y":3.8900020122528076},{"x":-0.652,"y":3.8903989791870117},{"x":-0.651,"y":3.8907999992370605},{"x":-0.65,"y":3.891204833984375},{"x":-0.649,"y":3.891613721847534},{"x":-0.648,"y":3.892026662826538},{"x":-0.647,"y":3.8924436569213867},{"x":-0.646,"y":3.89286470413208},{"x":-0.645,"y":3.893289804458618},{"x":-0.644,"y":3.893718957901001},{"x":-0.643,"y":3.8941519260406494},{"x":-0.642,"y":3.8945889472961426},{"x":-0.641,"y":3.8950302600860596},{"x":-0.64,"y":3.895475387573242},{"x":-0.639,"y":3.8959245681762695},{"x":-0.638,"y":3.8963778018951416},{"x":-0.637,"y":3.8968350887298584},{"x":-0.636,"y":3.89729642868042},{"x":-0.635,"y":3.897761583328247},{"x":-0.634,"y":3.898231029510498},{"x":-0.633,"y":3.8987042903900146},{"x":-0.632,"y":3.899181842803955},{"x":-0.631,"y":3.899663209915161},{"x":-0.63,"y":3.900148630142212},{"x":-0.629,"y":3.9006381034851074},{"x":-0.628,"y":3.9011316299438477},{"x":-0.627,"y":3.9016292095184326},{"x":-0.626,"y":3.9021308422088623},{"x":-0.625,"y":3.9026362895965576},{"x":-0.624,"y":3.9031457901000977},{"x":-0.623,"y":3.9036593437194824},{"x":-0.622,"y":3.904177188873291},{"x":-0.621,"y":3.9046988487243652},{"x":-0.62,"y":3.905224561691284},{"x":-0.619,"y":3.9057540893554688},{"x":-0.618,"y":3.9062881469726562},{"x":-0.617,"y":3.9068257808685303},{"x":-0.616,"y":3.907367706298828},{"x":-0.615,"y":3.9079134464263916},{"x":-0.614,"y":3.908463478088379},{"x":-0.613,"y":3.9090170860290527},{"x":-0.612,"y":3.9095752239227295},{"x":-0.611,"y":3.910137176513672},{"x":-0.61,"y":3.910703182220459},{"x":-0.609,"y":3.9112730026245117},{"x":-0.608,"y":3.9118471145629883},{"x":-0.607,"y":3.9124250411987305},{"x":-0.606,"y":3.9130072593688965},{"x":-0.605,"y":3.913593292236328},{"x":-0.604,"y":3.9141833782196045},{"x":-0.603,"y":3.9147775173187256},{"x":-0.602,"y":3.9153757095336914},{"x":-0.601,"y":3.915977954864502},{"x":-0.6,"y":3.916584014892578},{"x":-0.599,"y":3.917194366455078},{"x":-0.598,"y":3.917808771133423},{"x":-0.597,"y":3.918426990509033},{"x":-0.596,"y":3.9190492630004883},{"x":-0.595,"y":3.919675588607788},{"x":-0.594,"y":3.9203062057495117},{"x":-0.593,"y":3.920940399169922},{"x":-0.592,"y":3.921578884124756},{"x":-0.591,"y":3.9222214221954346},{"x":-0.59,"y":3.922867774963379},{"x":-0.589,"y":3.923518419265747},{"x":-0.588,"y":3.92417311668396},{"x":-0.587,"y":3.9248313903808594},{"x":-0.586,"y":3.9254941940307617},{"x":-0.585,"y":3.9261608123779297},{"x":-0.584,"y":3.9268312454223633},{"x":-0.583,"y":3.9275059700012207},{"x":-0.582,"y":3.928184747695923},{"x":-0.581,"y":3.9288675785064697},{"x":-0.58,"y":3.9295542240142822},{"x":-0.579,"y":3.9302449226379395},{"x":-0.578,"y":3.9309399127960205},{"x":-0.577,"y":3.931638717651367},{"x":-0.576,"y":3.9323415756225586},{"x":-0.575,"y":3.9330484867095947},{"x":-0.574,"y":3.9337592124938965},{"x":-0.573,"y":3.934474229812622},{"x":-0.572,"y":3.9351933002471924},{"x":-0.571,"y":3.9359164237976074},{"x":-0.57,"y":3.936643123626709},{"x":-0.569,"y":3.9373743534088135},{"x":-0.568,"y":3.9381093978881836},{"x":-0.567,"y":3.9388484954833984},{"x":-0.566,"y":3.939591407775879},{"x":-0.565,"y":3.940338611602783},{"x":-0.564,"y":3.9410898685455322},{"x":-0.563,"y":3.941844940185547},{"x":-0.562,"y":3.9426043033599854},{"x":-0.561,"y":3.9433674812316895},{"x":-0.56,"y":3.9441347122192383},{"x":-0.559,"y":3.944906234741211},{"x":-0.558,"y":3.945681571960449},{"x":-0.557,"y":3.946460723876953},{"x":-0.556,"y":3.947244167327881},{"x":-0.555,"y":3.9480316638946533},{"x":-0.554,"y":3.9488229751586914},{"x":-0.553,"y":3.9496185779571533},{"x":-0.552,"y":3.950417995452881},{"x":-0.551,"y":3.951221466064453},{"x":-0.55,"y":3.95202898979187},{"x":-0.549,"y":3.952840566635132},{"x":-0.548,"y":3.9536561965942383},{"x":-0.547,"y":3.9544758796691895},{"x":-0.546,"y":3.9552993774414062},{"x":-0.545,"y":3.956127166748047},{"x":-0.544,"y":3.956958770751953},{"x":-0.543,"y":3.957794666290283},{"x":-0.542,"y":3.958634376525879},{"x":-0.541,"y":3.9594781398773193},{"x":-0.54,"y":3.9603257179260254},{"x":-0.539,"y":3.9611778259277344},{"x":-0.538,"y":3.962033748626709},{"x":-0.537,"y":3.962893486022949},{"x":-0.536,"y":3.963757276535034},{"x":-0.535,"y":3.964625358581543},{"x":-0.534,"y":3.9654972553253174},{"x":-0.533,"y":3.9663734436035156},{"x":-0.532,"y":3.9672532081604004},{"x":-0.531,"y":3.968137264251709},{"x":-0.53,"y":3.9690253734588623},{"x":-0.529,"y":3.9699175357818604},{"x":-0.528,"y":3.970813512802124},{"x":-0.527,"y":3.9717137813568115},{"x":-0.526,"y":3.9726178646087646},{"x":-0.525,"y":3.9735260009765625},{"x":-0.524,"y":3.974438190460205},{"x":-0.523,"y":3.9753546714782715},{"x":-0.522,"y":3.9762747287750244},{"x":-0.521,"y":3.977199077606201},{"x":-0.52,"y":3.9781274795532227},{"x":-0.519,"y":3.979059934616089},{"x":-0.518,"y":3.9799962043762207},{"x":-0.517,"y":3.9809365272521973},{"x":-0.516,"y":3.9818811416625977},{"x":-0.515,"y":3.9828295707702637},{"x":-0.514,"y":3.9837820529937744},{"x":-0.513,"y":3.98473858833313},{"x":-0.512,"y":3.985698938369751},{"x":-0.511,"y":3.986663579940796},{"x":-0.51,"y":3.9876322746276855},{"x":-0.509,"y":3.988604784011841},{"x":-0.508,"y":3.989581346511841},{"x":-0.507,"y":3.9905619621276855},{"x":-0.506,"y":3.991546869277954},{"x":-0.505,"y":3.9925355911254883},{"x":-0.504,"y":3.993528366088867},{"x":-0.503,"y":3.9945249557495117},{"x":-0.502,"y":3.99552583694458},{"x":-0.501,"y":3.996530532836914},{"x":-0.5,"y":3.997539520263672},{"x":-0.499,"y":3.9985523223876953},{"x":-0.498,"y":3.9995694160461426},{"x":-0.497,"y":4.0005903244018555},{"x":-0.496,"y":4.001615524291992},{"x":-0.495,"y":4.0026445388793945},{"x":-0.494,"y":4.0036773681640625},{"x":-0.493,"y":4.004714012145996},{"x":-0.492,"y":4.005755424499512},{"x":-0.491,"y":4.006800174713135},{"x":-0.49,"y":4.00784969329834},{"x":-0.489,"y":4.008902549743652},{"x":-0.488,"y":4.009959697723389},{"x":-0.487,"y":4.011020660400391},{"x":-0.486,"y":4.012085914611816},{"x":-0.485,"y":4.013155460357666},{"x":-0.484,"y":4.014228820800781},{"x":-0.483,"y":4.015305995941162},{"x":-0.482,"y":4.016387462615967},{"x":-0.481,"y":4.017472743988037},{"x":-0.48,"y":4.018562316894531},{"x":-0.479,"y":4.019655227661133},{"x":-0.478,"y":4.020752906799316},{"x":-0.477,"y":4.021854400634766},{"x":-0.476,"y":4.0229597091674805},{"x":-0.475,"y":4.024069309234619},{"x":-0.474,"y":4.025182723999023},{"x":-0.473,"y":4.026300430297852},{"x":-0.472,"y":4.027421951293945},{"x":-0.471,"y":4.028547763824463},{"x":-0.47,"y":4.029677391052246},{"x":-0.469,"y":4.030810832977295},{"x":-0.468,"y":4.031948566436768},{"x":-0.467,"y":4.033090114593506},{"x":-0.466,"y":4.034235954284668},{"x":-0.465,"y":4.035385608673096},{"x":-0.464,"y":4.036539554595947},{"x":-0.463,"y":4.0376973152160645},{"x":-0.462,"y":4.0388593673706055},{"x":-0.461,"y":4.040025234222412},{"x":-0.46,"y":4.041194915771484},{"x":-0.459,"y":4.0423688888549805},{"x":-0.458,"y":4.0435471534729},{"x":-0.457,"y":4.044728755950928},{"x":-0.456,"y":4.045915126800537},{"x":-0.455,"y":4.047104835510254},{"x":-0.454,"y":4.0482988357543945},{"x":-0.453,"y":4.049497127532959},{"x":-0.452,"y":4.050699234008789},{"x":-0.451,"y":4.051905155181885},{"x":-0.45,"y":4.0531158447265625},{"x":-0.449,"y":4.054329872131348},{"x":-0.448,"y":4.055547714233398},{"x":-0.447,"y":4.056770324707031},{"x":-0.446,"y":4.0579962730407715},{"x":-0.445,"y":4.0592265129089355},{"x":-0.444,"y":4.060461044311523},{"x":-0.443,"y":4.061699390411377},{"x":-0.442,"y":4.062941551208496},{"x":-0.441,"y":4.064188003540039},{"x":-0.44,"y":4.065438747406006},{"x":-0.439,"y":4.06669282913208},{"x":-0.438,"y":4.067951679229736},{"x":-0.437,"y":4.0692138671875},{"x":-0.436,"y":4.0704803466796875},{"x":-0.435,"y":4.071751117706299},{"x":-0.434,"y":4.073025703430176},{"x":-0.433,"y":4.074304103851318},{"x":-0.432,"y":4.075586795806885},{"x":-0.431,"y":4.076873779296875},{"x":-0.43,"y":4.078164100646973},{"x":-0.429,"y":4.079459190368652},{"x":-0.428,"y":4.0807576179504395},{"x":-0.427,"y":4.08206033706665},{"x":-0.426,"y":4.083367347717285},{"x":-0.425,"y":4.0846781730651855},{"x":-0.424,"y":4.085992813110352},{"x":-0.423,"y":4.087311744689941},{"x":-0.422,"y":4.088634490966797},{"x":-0.421,"y":4.089961528778076},{"x":-0.42,"y":4.091292381286621},{"x":-0.419,"y":4.09262752532959},{"x":-0.418,"y":4.093966484069824},{"x":-0.417,"y":4.095309734344482},{"x":-0.416,"y":4.096656799316406},{"x":-0.415,"y":4.098007678985596},{"x":-0.414,"y":4.099362850189209},{"x":-0.413,"y":4.100721836090088},{"x":-0.412,"y":4.102085113525391},{"x":-0.411,"y":4.103452205657959},{"x":-0.41,"y":4.104823589324951},{"x":-0.409,"y":4.106198787689209},{"x":-0.408,"y":4.107577800750732},{"x":-0.407,"y":4.10896110534668},{"x":-0.406,"y":4.110348701477051},{"x":-0.405,"y":4.1117401123046875},{"x":-0.404,"y":4.11313533782959},{"x":-0.403,"y":4.114534854888916},{"x":-0.402,"y":4.115938186645508},{"x":-0.401,"y":4.117345809936523},{"x":-0.4,"y":4.118757247924805},{"x":-0.399,"y":4.120172500610352},{"x":-0.398,"y":4.121592044830322},{"x":-0.397,"y":4.123015403747559},{"x":-0.396,"y":4.124443054199219},{"x":-0.395,"y":4.125874996185303},{"x":-0.394,"y":4.127310276031494},{"x":-0.393,"y":4.128749847412109},{"x":-0.392,"y":4.130193710327148},{"x":-0.391,"y":4.131641387939453},{"x":-0.39,"y":4.133093357086182},{"x":-0.389,"y":4.134549140930176},{"x":-0.388,"y":4.1360087394714355},{"x":-0.387,"y":4.137472629547119},{"x":-0.386,"y":4.138940334320068},{"x":-0.385,"y":4.140412330627441},{"x":-0.384,"y":4.14188814163208},{"x":-0.383,"y":4.143368244171143},{"x":-0.382,"y":4.144852161407471},{"x":-0.381,"y":4.1463398933410645},{"x":-0.38,"y":4.147831916809082},{"x":-0.379,"y":4.149328231811523},{"x":-0.378,"y":4.150827884674072},{"x":-0.377,"y":4.152332305908203},{"x":-0.376,"y":4.153840065002441},{"x":-0.375,"y":4.155352592468262},{"x":-0.374,"y":4.1568684577941895},{"x":-0.373,"y":4.158388614654541},{"x":-0.372,"y":4.159913063049316},{"x":-0.371,"y":4.161441326141357},{"x":-0.37,"y":4.162973403930664},{"x":-0.369,"y":4.1645097732543945},{"x":-0.368,"y":4.166049957275391},{"x":-0.367,"y":4.1675944328308105},{"x":-0.366,"y":4.169142723083496},{"x":-0.365,"y":4.1706953048706055},{"x":-0.364,"y":4.1722517013549805},{"x":-0.363,"y":4.173811912536621},{"x":-0.362,"y":4.1753764152526855},{"x":-0.361,"y":4.176944732666016},{"x":-0.36,"y":4.1785173416137695},{"x":-0.359,"y":4.180094242095947},{"x":-0.358,"y":4.181674480438232},{"x":-0.357,"y":4.183259010314941},{"x":-0.356,"y":4.184847831726074},{"x":-0.355,"y":4.186440467834473},{"x":-0.354,"y":4.188036918640137},{"x":-0.353,"y":4.189637660980225},{"x":-0.352,"y":4.191242694854736},{"x":-0.351,"y":4.192851543426514},{"x":-0.35,"y":4.194464206695557},{"x":-0.349,"y":4.196081161499023},{"x":-0.348,"y":4.197701930999756},{"x":-0.347,"y":4.199326515197754},{"x":-0.346,"y":4.200955390930176},{"x":-0.345,"y":4.2025885581970215},{"x":-0.344,"y":4.204225540161133},{"x":-0.343,"y":4.20586633682251},{"x":-0.342,"y":4.2075114250183105},{"x":-0.341,"y":4.209160327911377},{"x":-0.34,"y":4.210813522338867},{"x":-0.339,"y":4.212470531463623},{"x":-0.338,"y":4.2141313552856445},{"x":-0.337,"y":4.21579647064209},{"x":-0.336,"y":4.217465877532959},{"x":-0.335,"y":4.219139099121094},{"x":-0.334,"y":4.220816135406494},{"x":-0.333,"y":4.222497463226318},{"x":-0.332,"y":4.224182605743408},{"x":-0.331,"y":4.225872039794922},{"x":-0.33,"y":4.227565288543701},{"x":-0.329,"y":4.229262828826904},{"x":-0.328,"y":4.230964183807373},{"x":-0.327,"y":4.232669353485107},{"x":-0.326,"y":4.234378814697266},{"x":-0.325,"y":4.236092567443848},{"x":-0.324,"y":4.237809658050537},{"x":-0.323,"y":4.23953104019165},{"x":-0.322,"y":4.2412567138671875},{"x":-0.321,"y":4.24298620223999},{"x":-0.32,"y":4.244719982147217},{"x":-0.319,"y":4.246457576751709},{"x":-0.318,"y":4.248198986053467},{"x":-0.317,"y":4.249944686889648},{"x":-0.316,"y":4.251694202423096},{"x":-0.315,"y":4.253448009490967},{"x":-0.314,"y":4.2552056312561035},{"x":-0.313,"y":4.256967544555664},{"x":-0.312,"y":4.25873327255249},{"x":-0.311,"y":4.26050329208374},{"x":-0.31,"y":4.262277126312256},{"x":-0.309,"y":4.264054775238037},{"x":-0.308,"y":4.265836715698242},{"x":-0.307,"y":4.267622470855713},{"x":-0.306,"y":4.269412517547607},{"x":-0.305,"y":4.271206378936768},{"x":-0.304,"y":4.273004531860352},{"x":-0.303,"y":4.274806499481201},{"x":-0.302,"y":4.276612758636475},{"x":-0.301,"y":4.278422832489014},{"x":-0.3,"y":4.280236721038818},{"x":-0.299,"y":4.282054901123047},{"x":-0.298,"y":4.283876895904541},{"x":-0.297,"y":4.285703182220459},{"x":-0.296,"y":4.287533283233643},{"x":-0.295,"y":4.28936767578125},{"x":-0.294,"y":4.291205883026123},{"x":-0.293,"y":4.293047904968262},{"x":-0.292,"y":4.294894218444824},{"x":-0.291,"y":4.2967448234558105},{"x":-0.29,"y":4.2985992431640625},{"x":-0.289,"y":4.30045747756958},{"x":-0.288,"y":4.3023200035095215},{"x":-0.287,"y":4.3041863441467285},{"x":-0.286,"y":4.306056976318359},{"x":-0.285,"y":4.307931423187256},{"x":-0.284,"y":4.309809684753418},{"x":-0.283,"y":4.311692237854004},{"x":-0.282,"y":4.313579082489014},{"x":-0.281,"y":4.315469741821289},{"x":-0.28,"y":4.31736421585083},{"x":-0.279,"y":4.319262981414795},{"x":-0.278,"y":4.321165561676025},{"x":-0.277,"y":4.3230719566345215},{"x":-0.276,"y":4.324982643127441},{"x":-0.275,"y":4.326897621154785},{"x":-0.274,"y":4.3288164138793945},{"x":-0.273,"y":4.3307390213012695},{"x":-0.272,"y":4.332665920257568},{"x":-0.271,"y":4.334597110748291},{"x":-0.27,"y":4.336531639099121},{"x":-0.269,"y":4.338470458984375},{"x":-0.268,"y":4.340413570404053},{"x":-0.267,"y":4.342360496520996},{"x":-0.266,"y":4.344311714172363},{"x":-0.265,"y":4.346266746520996},{"x":-0.264,"y":4.3482255935668945},{"x":-0.263,"y":4.350188732147217},{"x":-0.262,"y":4.352155685424805},{"x":-0.261,"y":4.354126930236816},{"x":-0.26,"y":4.356101989746094},{"x":-0.259,"y":4.358081340789795},{"x":-0.258,"y":4.360064506530762},{"x":-0.257,"y":4.362051486968994},{"x":-0.256,"y":4.36404275894165},{"x":-0.255,"y":4.3660383224487305},{"x":-0.254,"y":4.368037223815918},{"x":-0.253,"y":4.3700408935546875},{"x":-0.252,"y":4.372048377990723},{"x":-0.251,"y":4.374059677124023},{"x":-0.25,"y":4.37607479095459},{"x":-0.249,"y":4.37809419631958},{"x":-0.248,"y":4.380117893218994},{"x":-0.247,"y":4.382145404815674},{"x":-0.246,"y":4.384176731109619},{"x":-0.245,"y":4.386212348937988},{"x":-0.244,"y":4.388251781463623},{"x":-0.243,"y":4.390295505523682},{"x":-0.242,"y":4.392343044281006},{"x":-0.241,"y":4.394394874572754},{"x":-0.24,"y":4.396450519561768},{"x":-0.239,"y":4.398509979248047},{"x":-0.238,"y":4.40057373046875},{"x":-0.237,"y":4.402641773223877},{"x":-0.236,"y":4.4047136306762695},{"x":-0.235,"y":4.406789302825928},{"x":-0.234,"y":4.408868789672852},{"x":-0.233,"y":4.410953044891357},{"x":-0.232,"y":4.413040637969971},{"x":-0.231,"y":4.415132522583008},{"x":-0.23,"y":4.417228698730469},{"x":-0.229,"y":4.419328689575195},{"x":-0.228,"y":4.4214324951171875},{"x":-0.227,"y":4.4235405921936035},{"x":-0.226,"y":4.425652503967285},{"x":-0.225,"y":4.427768707275391},{"x":-0.224,"y":4.429888725280762},{"x":-0.223,"y":4.432012557983398},{"x":-0.222,"y":4.434141159057617},{"x":-0.221,"y":4.436273097991943},{"x":-0.22,"y":4.438409328460693},{"x":-0.219,"y":4.440549373626709},{"x":-0.218,"y":4.442693710327148},{"x":-0.217,"y":4.4448418617248535},{"x":-0.216,"y":4.446994304656982},{"x":-0.215,"y":4.449150562286377},{"x":-0.214,"y":4.451311111450195},{"x":-0.213,"y":4.453475475311279},{"x":-0.212,"y":4.455643653869629},{"x":-0.211,"y":4.457816123962402},{"x":-0.21,"y":4.459992408752441},{"x":-0.209,"y":4.462172985076904},{"x":-0.208,"y":4.464357852935791},{"x":-0.207,"y":4.466546058654785},{"x":-0.206,"y":4.468738555908203},{"x":-0.205,"y":4.470935344696045},{"x":-0.204,"y":4.473135948181152},{"x":-0.203,"y":4.475340843200684},{"x":-0.202,"y":4.477549076080322},{"x":-0.201,"y":4.479762077331543},{"x":-0.2,"y":4.481978416442871},{"x":-0.199,"y":4.484199523925781},{"x":-0.198,"y":4.486423969268799},{"x":-0.197,"y":4.488653182983398},{"x":-0.196,"y":4.4908857345581055},{"x":-0.195,"y":4.493122577667236},{"x":-0.194,"y":4.495363235473633},{"x":-0.193,"y":4.497608184814453},{"x":-0.192,"y":4.499857425689697},{"x":-0.191,"y":4.502110481262207},{"x":-0.19,"y":4.504367351531982},{"x":-0.189,"y":4.506628036499023},{"x":-0.188,"y":4.5088934898376465},{"x":-0.187,"y":4.511162281036377},{"x":-0.186,"y":4.513435363769531},{"x":-0.185,"y":4.515712738037109},{"x":-0.184,"y":4.517993927001953},{"x":-0.183,"y":4.5202789306640625},{"x":-0.182,"y":4.522568225860596},{"x":-0.181,"y":4.5248613357543945},{"x":-0.18,"y":4.527158260345459},{"x":-0.179,"y":4.5294599533081055},{"x":-0.178,"y":4.531764984130859},{"x":-0.177,"y":4.534074306488037},{"x":-0.176,"y":4.536387920379639},{"x":-0.175,"y":4.538704872131348},{"x":-0.174,"y":4.541026592254639},{"x":-0.173,"y":4.543352127075195},{"x":-0.172,"y":4.545681476593018},{"x":-0.171,"y":4.5480146408081055},{"x":-0.17,"y":4.550352096557617},{"x":-0.169,"y":4.552693843841553},{"x":-0.168,"y":4.555039405822754},{"x":-0.167,"y":4.557389259338379},{"x":-0.166,"y":4.559742450714111},{"x":-0.165,"y":4.562100410461426},{"x":-0.164,"y":4.564461708068848},{"x":-0.163,"y":4.566827774047852},{"x":-0.162,"y":4.569197177886963},{"x":-0.161,"y":4.571570873260498},{"x":-0.16,"y":4.573948860168457},{"x":-0.159,"y":4.576330661773682},{"x":-0.158,"y":4.578716278076172},{"x":-0.157,"y":4.581106185913086},{"x":-0.156,"y":4.583499908447266},{"x":-0.155,"y":4.585897922515869},{"x":-0.154,"y":4.588299751281738},{"x":-0.153,"y":4.590705871582031},{"x":-0.152,"y":4.59311580657959},{"x":-0.151,"y":4.595530033111572},{"x":-0.15,"y":4.59794807434082},{"x":-0.149,"y":4.600369930267334},{"x":-0.148,"y":4.6027960777282715},{"x":-0.147,"y":4.605226039886475},{"x":-0.146,"y":4.607660293579102},{"x":-0.145,"y":4.610098361968994},{"x":-0.144,"y":4.6125407218933105},{"x":-0.143,"y":4.614986896514893},{"x":-0.142,"y":4.61743688583374},{"x":-0.141,"y":4.619891166687012},{"x":-0.14,"y":4.622349739074707},{"x":-0.139,"y":4.624812126159668},{"x":-0.138,"y":4.6272783279418945},{"x":-0.137,"y":4.629748821258545},{"x":-0.136,"y":4.632223129272461},{"x":-0.135,"y":4.634701251983643},{"x":-0.134,"y":4.637184143066406},{"x":-0.133,"y":4.639670372009277},{"x":-0.132,"y":4.642160892486572},{"x":-0.131,"y":4.644655227661133},{"x":-0.13,"y":4.647153854370117},{"x":-0.129,"y":4.649656772613525},{"x":-0.128,"y":4.652163028717041},{"x":-0.127,"y":4.6546735763549805},{"x":-0.126,"y":4.657188415527344},{"x":-0.125,"y":4.659707069396973},{"x":-0.124,"y":4.662230014801025},{"x":-0.123,"y":4.664756774902344},{"x":-0.122,"y":4.667287349700928},{"x":-0.121,"y":4.6698222160339355},{"x":-0.12,"y":4.672360897064209},{"x":-0.119,"y":4.674903869628906},{"x":-0.118,"y":4.677450656890869},{"x":-0.117,"y":4.680001735687256},{"x":-0.116,"y":4.682556629180908},{"x":-0.115,"y":4.685115337371826},{"x":-0.114,"y":4.687678337097168},{"x":-0.113,"y":4.690245628356934},{"x":-0.112,"y":4.692816257476807},{"x":-0.111,"y":4.695391654968262},{"x":-0.11,"y":4.697970390319824},{"x":-0.109,"y":4.7005534172058105},{"x":-0.108,"y":4.703140735626221},{"x":-0.107,"y":4.7057318687438965},{"x":-0.106,"y":4.708327293395996},{"x":-0.105,"y":4.710926055908203},{"x":-0.104,"y":4.713529586791992},{"x":-0.103,"y":4.716136932373047},{"x":-0.102,"y":4.718748092651367},{"x":-0.101,"y":4.721363544464111},{"x":-0.1,"y":4.723982810974121},{"x":-0.099,"y":4.7266058921813965},{"x":-0.098,"y":4.729233264923096},{"x":-0.097,"y":4.731864929199219},{"x":-0.096,"y":4.734500408172607},{"x":-0.095,"y":4.737139701843262},{"x":-0.094,"y":4.73978328704834},{"x":-0.093,"y":4.742430686950684},{"x":-0.092,"y":4.745082378387451},{"x":-0.091,"y":4.747737884521484},{"x":-0.09,"y":4.750397682189941},{"x":-0.089,"y":4.753061294555664},{"x":-0.088,"y":4.755728721618652},{"x":-0.087,"y":4.7584004402160645},{"x":-0.086,"y":4.761075973510742},{"x":-0.085,"y":4.763755798339844},{"x":-0.084,"y":4.766439914703369},{"x":-0.083,"y":4.769127368927002},{"x":-0.082,"y":4.771819114685059},{"x":-0.081,"y":4.774515151977539},{"x":-0.08,"y":4.777215003967285},{"x":-0.079,"y":4.779918670654297},{"x":-0.078,"y":4.782626628875732},{"x":-0.077,"y":4.785338878631592},{"x":-0.076,"y":4.788054466247559},{"x":-0.075,"y":4.790774822235107},{"x":-0.074,"y":4.793498516082764},{"x":-0.073,"y":4.796226978302002},{"x":-0.072,"y":4.798958778381348},{"x":-0.071,"y":4.801694869995117},{"x":-0.07,"y":4.8044352531433105},{"x":-0.069,"y":4.8071794509887695},{"x":-0.068,"y":4.809927463531494},{"x":-0.067,"y":4.812679767608643},{"x":-0.066,"y":4.815435886383057},{"x":-0.065,"y":4.8181962966918945},{"x":-0.064,"y":4.820960521697998},{"x":-0.063,"y":4.823728561401367},{"x":-0.062,"y":4.82650089263916},{"x":-0.061,"y":4.829277515411377},{"x":-0.06,"y":4.832057952880859},{"x":-0.059,"y":4.834842205047607},{"x":-0.058,"y":4.837630748748779},{"x":-0.057,"y":4.840423107147217},{"x":-0.056,"y":4.843219757080078},{"x":-0.055,"y":4.846020221710205},{"x":-0.054,"y":4.848824501037598},{"x":-0.053,"y":4.851633071899414},{"x":-0.052,"y":4.854445934295654},{"x":-0.051,"y":4.85726261138916},{"x":-0.05,"y":4.860083103179932},{"x":-0.049,"y":4.862907886505127},{"x":-0.048,"y":4.865736484527588},{"x":-0.047,"y":4.868569374084473},{"x":-0.046,"y":4.871406078338623},{"x":-0.045,"y":4.874246597290039},{"x":-0.044,"y":4.877091407775879},{"x":-0.043,"y":4.879940509796143},{"x":-0.042,"y":4.882793426513672},{"x":-0.041,"y":4.885650157928467},{"x":-0.04,"y":4.8885111808776855},{"x":-0.039,"y":4.89137601852417},{"x":-0.038,"y":4.89424467086792},{"x":-0.037,"y":4.897118091583252},{"x":-0.036,"y":4.899994850158691},{"x":-0.035,"y":4.902875900268555},{"x":-0.034,"y":4.905761241912842},{"x":-0.033,"y":4.908649921417236},{"x":-0.032,"y":4.911543369293213},{"x":-0.031,"y":4.914440155029297},{"x":-0.03,"y":4.917341709136963},{"x":-0.029,"y":4.920246601104736},{"x":-0.028,"y":4.923155784606934},{"x":-0.027,"y":4.926069259643555},{"x":-0.026,"y":4.928986549377441},{"x":-0.025,"y":4.931907653808594},{"x":-0.024,"y":4.93483304977417},{"x":-0.023,"y":4.937762260437012},{"x":-0.022,"y":4.940695762634277},{"x":-0.021,"y":4.943633079528809},{"x":-0.02,"y":4.946574687957764},{"x":-0.019,"y":4.949520111083984},{"x":-0.018,"y":4.952469825744629},{"x":-0.017,"y":4.955423355102539},{"x":-0.016,"y":4.958380699157715},{"x":-0.015,"y":4.9613423347473145},{"x":-0.014,"y":4.96430778503418},{"x":-0.013,"y":4.967277526855469},{"x":-0.012,"y":4.970251083374023},{"x":-0.011,"y":4.973228931427002},{"x":-0.01,"y":4.976210594177246},{"x":-0.009,"y":4.979196071624756},{"x":-0.008,"y":4.9821858406066895},{"x":-0.007,"y":4.985179901123047},{"x":-0.006,"y":4.98817777633667},{"x":-0.005,"y":4.991179466247559},{"x":-0.004,"y":4.994185447692871},{"x":-0.003,"y":4.997195243835449},{"x":-0.002,"y":5.000208854675293},{"x":-0.001,"y":5.0032267570495605},{"x":0.0,"y":5.006248950958252},{"x":0.001,"y":5.009274959564209},{"x":0.002,"y":5.012304782867432},{"x":0.003,"y":5.015338897705078},{"x":0.004,"y":5.01837682723999},{"x":0.005,"y":5.021419048309326},{"x":0.006,"y":5.024465084075928},{"x":0.007,"y":5.027515411376953},{"x":0.008,"y":5.030569553375244},{"x":0.009,"y":5.033627986907959},{"x":0.01,"y":5.036689758300781},{"x":0.011,"y":5.0397562980651855},{"x":0.012,"y":5.0428266525268555},{"x":0.013,"y":5.045900821685791},{"x":0.014,"y":5.04897928237915},{"x":0.015,"y":5.052061557769775},{"x":0.016,"y":5.055147647857666},{"x":0.017,"y":5.058238506317139},{"x":0.018,"y":5.061332702636719},{"x":0.019,"y":5.064431190490723},{"x":0.02,"y":5.067533493041992},{"x":0.021,"y":5.0706400871276855},{"x":0.022,"y":5.0737504959106445},{"x":0.023,"y":5.076865196228027},{"x":0.024,"y":5.079983711242676},{"x":0.025,"y":5.083106517791748},{"x":0.026,"y":5.086233139038086},{"x":0.027,"y":5.0893635749816895},{"x":0.028,"y":5.092498302459717},{"x":0.029,"y":5.095637321472168},{"x":0.03,"y":5.098780155181885},{"x":0.031,"y":5.101926803588867},{"x":0.032,"y":5.105077743530273},{"x":0.033,"y":5.108232498168945},{"x":0.034,"y":5.111391067504883},{"x":0.035,"y":5.114553928375244},{"x":0.036,"y":5.117721080780029},{"x":0.037,"y":5.12089204788208},{"x":0.038,"y":5.1240668296813965},{"x":0.039,"y":5.127245903015137},{"x":0.04,"y":5.130428791046143},{"x":0.041,"y":5.133615970611572},{"x":0.042,"y":5.136806964874268},{"x":0.043,"y":5.140002250671387},{"x":0.044,"y":5.1432013511657715},{"x":0.045,"y":5.146404266357422},{"x":0.046,"y":5.149611473083496},{"x":0.047,"y":5.152822494506836},{"x":0.048,"y":5.1560378074646},{"x":0.049,"y":5.159256935119629},{"x":0.05,"y":5.162480354309082},{"x":0.051,"y":5.165707588195801},{"x":0.052,"y":5.168939113616943},{"x":0.053,"y":5.172174453735352},{"x":0.054,"y":5.175413608551025},{"x":0.055,"y":5.178657054901123},{"x":0.056,"y":5.1819047927856445},{"x":0.057,"y":5.185155868530273},{"x":0.058,"y":5.188411712646484},{"x":0.059,"y":5.191670894622803},{"x":0.06,"y":5.194934368133545},{"x":0.061,"y":5.198202133178711},{"x":0.062,"y":5.201473712921143},{"x":0.063,"y":5.20474910736084},{"x":0.064,"y":5.208028793334961},{"x":0.065,"y":5.211312770843506},{"x":0.066,"y":5.214600086212158},{"x":0.067,"y":5.217892169952393},{"x":0.068,"y":5.221187591552734},{"x":0.069,"y":5.2244873046875},{"x":0.07,"y":5.2277913093566895},{"x":0.071,"y":5.2310991287231445},{"x":0.072,"y":5.234410762786865},{"x":0.073,"y":5.23772668838501},{"x":0.074,"y":5.241046905517578},{"x":0.075,"y":5.244370460510254},{"x":0.076,"y":5.247698783874512},{"x":0.077,"y":5.251030445098877},{"x":0.078,"y":5.254366397857666},{"x":0.079,"y":5.257706642150879},{"x":0.08,"y":5.261050701141357},{"x":0.081,"y":5.264398574829102},{"x":0.082,"y":5.2677507400512695},{"x":0.083,"y":5.271107196807861},{"x":0.084,"y":5.2744669914245605},{"x":0.085,"y":5.277831554412842},{"x":0.086,"y":5.2811994552612305},{"x":0.087,"y":5.284571647644043},{"x":0.088,"y":5.287948131561279},{"x":0.089,"y":5.291328430175781},{"x":0.09,"y":5.294712543487549},{"x":0.091,"y":5.29810094833374},{"x":0.092,"y":5.3014936447143555},{"x":0.093,"y":5.304889678955078},{"x":0.094,"y":5.308290481567383},{"x":0.095,"y":5.311694622039795},{"x":0.096,"y":5.315103054046631},{"x":0.097,"y":5.318515777587891},{"x":0.098,"y":5.321932315826416},{"x":0.099,"y":5.325352668762207},{"x":0.1,"y":5.328777313232422},{"x":0.101,"y":5.332205772399902},{"x":0.102,"y":5.335638523101807},{"x":0.103,"y":5.339075088500977},{"x":0.104,"y":5.34251594543457},{"x":0.105,"y":5.34596061706543},{"x":0.106,"y":5.349409580230713},{"x":0.107,"y":5.352862358093262},{"x":0.108,"y":5.356318950653076},{"x":0.109,"y":5.3597798347473145},{"x":0.11,"y":5.363244533538818},{"x":0.111,"y":5.366713523864746},{"x":0.112,"y":5.3701863288879395},{"x":0.113,"y":5.373663425445557},{"x":0.114,"y":5.3771443367004395},{"x":0.115,"y":5.380629062652588},{"x":0.116,"y":5.38411808013916},{"x":0.117,"y":5.387611389160156},{"x":0.118,"y":5.391108512878418},{"x":0.119,"y":5.394609451293945},{"x":0.12,"y":5.3981146812438965},{"x":0.121,"y":5.401623725891113},{"x":0.122,"y":5.405136585235596},{"x":0.123,"y":5.40865421295166},{"x":0.124,"y":5.412175178527832},{"x":0.125,"y":5.415700435638428},{"x":0.126,"y":5.419229507446289},{"x":0.127,"y":5.422762870788574},{"x":0.128,"y":5.426300525665283},{"x":0.129,"y":5.4298415184021},{"x":0.13,"y":5.43338680267334},{"x":0.131,"y":5.436936378479004},{"x":0.132,"y":5.440489768981934},{"x":0.133,"y":5.444047451019287},{"x":0.134,"y":5.447608947753906},{"x":0.135,"y":5.451174259185791},{"x":0.136,"y":5.4547438621521},{"x":0.137,"y":5.458317279815674},{"x":0.138,"y":5.461894989013672},{"x":0.139,"y":5.4654765129089355},{"x":0.14,"y":5.469062328338623},{"x":0.141,"y":5.472651958465576},{"x":0.142,"y":5.476245403289795},{"x":0.143,"y":5.4798431396484375},{"x":0.144,"y":5.483444690704346},{"x":0.145,"y":5.487050533294678},{"x":0.146,"y":5.490660667419434},{"x":0.147,"y":5.494274139404297},{"x":0.148,"y":5.497891902923584},{"x":0.149,"y":5.501513957977295},{"x":0.15,"y":5.5051398277282715},{"x":0.151,"y":5.508769989013672},{"x":0.152,"y":5.51240348815918},{"x":0.153,"y":5.5160417556762695},{"x":0.154,"y":5.519683837890625},{"x":0.155,"y":5.523329734802246},{"x":0.156,"y":5.526979923248291},{"x":0.157,"y":5.530633926391602},{"x":0.158,"y":5.534292221069336},{"x":0.159,"y":5.537954330444336},{"x":0.16,"y":5.541620254516602},{"x":0.161,"y":5.545290470123291},{"x":0.162,"y":5.548964500427246},{"x":0.163,"y":5.552642822265625},{"x":0.164,"y":5.5563249588012695},{"x":0.165,"y":5.560011386871338},{"x":0.166,"y":5.563701629638672},{"x":0.167,"y":5.56739616394043},{"x":0.168,"y":5.571094512939453},{"x":0.169,"y":5.574796676635742},{"x":0.17,"y":5.578503131866455},{"x":0.171,"y":5.582213878631592},{"x":0.172,"y":5.585927963256836},{"x":0.173,"y":5.589646816253662},{"x":0.174,"y":5.593369007110596},{"x":0.175,"y":5.597095489501953},{"x":0.176,"y":5.600826263427734},{"x":0.177,"y":5.604560852050781},{"x":0.178,"y":5.608299732208252},{"x":0.179,"y":5.612042427062988},{"x":0.18,"y":5.61578893661499},{"x":0.181,"y":5.619539737701416},{"x":0.182,"y":5.623294353485107},{"x":0.183,"y":5.627053260803223},{"x":0.184,"y":5.6308159828186035},{"x":0.185,"y":5.63458251953125},{"x":0.186,"y":5.63835334777832},{"x":0.187,"y":5.6421284675598145},{"x":0.188,"y":5.645907402038574},{"x":0.189,"y":5.6496901512146},{"x":0.19,"y":5.653477191925049},{"x":0.191,"y":5.657268047332764},{"x":0.192,"y":5.661063194274902},{"x":0.193,"y":5.664862155914307},{"x":0.194,"y":5.668664932250977},{"x":0.195,"y":5.67247200012207},{"x":0.196,"y":5.676283359527588},{"x":0.197,"y":5.680098533630371},{"x":0.198,"y":5.68391752243042},{"x":0.199,"y":5.687740802764893},{"x":0.2,"y":5.691567897796631},{"x":0.201,"y":5.695399284362793},{"x":0.202,"y":5.699234485626221},{"x":0.203,"y":5.703073501586914},{"x":0.204,"y":5.706916809082031},{"x":0.205,"y":5.710764408111572},{"x":0.206,"y":5.714615821838379},{"x":0.207,"y":5.718471050262451},{"x":0.208,"y":5.722330570220947},{"x":0.209,"y":5.726193904876709},{"x":0.21,"y":5.7300615310668945},{"x":0.211,"y":5.733932971954346},{"x":0.212,"y":5.7378082275390625},{"x":0.213,"y":5.741687774658203},{"x":0.214,"y":5.745571613311768},{"x":0.215,"y":5.749459266662598},{"x":0.216,"y":5.753350734710693},{"x":0.217,"y":5.757246494293213},{"x":0.218,"y":5.761146068572998},{"x":0.219,"y":5.765049934387207},{"x":0.22,"y":5.768957614898682},{"x":0.221,"y":5.772869110107422},{"x":0.222,"y":5.776784896850586},{"x":0.223,"y":5.780704975128174},{"x":0.224,"y":5.784628868103027},{"x":0.225,"y":5.7885565757751465},{"x":0.226,"y":5.7924885749816895},{"x":0.227,"y":5.796424388885498},{"x":0.228,"y":5.8003644943237305},{"x":0.229,"y":5.8043084144592285},{"x":0.23,"y":5.808256149291992},{"x":0.231,"y":5.81220817565918},{"x":0.232,"y":5.816164016723633},{"x":0.233,"y":5.82012414932251},{"x":0.234,"y":5.8240885734558105},{"x":0.235,"y":5.828056335449219},{"x":0.236,"y":5.832028865814209},{"x":0.237,"y":5.836004734039307},{"x":0.238,"y":5.839984893798828},{"x":0.239,"y":5.843969345092773},{"x":0.24,"y":5.847957611083984},{"x":0.241,"y":5.851949691772461},{"x":0.242,"y":5.855946063995361},{"x":0.243,"y":5.859946250915527},{"x":0.244,"y":5.863950729370117},{"x":0.245,"y":5.867959022521973},{"x":0.246,"y":5.871971607208252},{"x":0.247,"y":5.875988006591797},{"x":0.248,"y":5.880008697509766},{"x":0.249,"y":5.884033203125},{"x":0.25,"y":5.8880615234375},{"x":0.251,"y":5.892094135284424},{"x":0.252,"y":5.896130561828613},{"x":0.253,"y":5.900171279907227},{"x":0.254,"y":5.9042158126831055},{"x":0.255,"y":5.908264636993408},{"x":0.256,"y":5.912317276000977},{"x":0.257,"y":5.9163737297058105},{"x":0.258,"y":5.920434474945068},{"x":0.259,"y":5.92449951171875},{"x":0.26,"y":5.928567886352539},{"x":0.261,"y":5.93264102935791},{"x":0.262,"y":5.936717987060547},{"x":0.263,"y":5.940798759460449},{"x":0.264,"y":5.944883346557617},{"x":0.265,"y":5.948972225189209},{"x":0.266,"y":5.953065395355225},{"x":0.267,"y":5.957162380218506},{"x":0.268,"y":5.961263179779053},{"x":0.269,"y":5.965368270874023},{"x":0.27,"y":5.969477653503418},{"x":0.271,"y":5.97359037399292},{"x":0.272,"y":5.977707386016846},{"x":0.273,"y":5.981828689575195},{"x":0.274,"y":5.9859538078308105},{"x":0.275,"y":5.990082740783691},{"x":0.276,"y":5.994215965270996},{"x":0.277,"y":5.998353481292725},{"x":0.278,"y":6.002494812011719},{"x":0.279,"y":6.0066399574279785},{"x":0.28,"y":6.010788917541504},{"x":0.281,"y":6.014942169189453},{"x":0.282,"y":6.019100189208984},{"x":0.283,"y":6.023261070251465},{"x":0.284,"y":6.027426719665527},{"x":0.285,"y":6.0315961837768555},{"x":0.286,"y":6.035769462585449},{"x":0.287,"y":6.039947032928467},{"x":0.288,"y":6.04412841796875},{"x":0.289,"y":6.048314094543457},{"x":0.29,"y":6.05250358581543},{"x":0.291,"y":6.056697368621826},{"x":0.292,"y":6.060894966125488},{"x":0.293,"y":6.065096378326416},{"x":0.294,"y":6.069302082061768},{"x":0.295,"y":6.073512077331543},{"x":0.296,"y":6.077725410461426},{"x":0.297,"y":6.081943511962891},{"x":0.298,"y":6.086164951324463},{"x":0.299,"y":6.090390682220459},{"x":0.3,"y":6.094620704650879},{"x":0.301,"y":6.0988545417785645},{"x":0.302,"y":6.103092193603516},{"x":0.303,"y":6.107334136962891},{"x":0.304,"y":6.1115803718566895},{"x":0.305,"y":6.115830421447754},{"x":0.306,"y":6.120084285736084},{"x":0.307,"y":6.12434196472168},{"x":0.308,"y":6.128603935241699},{"x":0.309,"y":6.132870197296143},{"x":0.31,"y":6.137140274047852},{"x":0.311,"y":6.141414642333984},{"x":0.312,"y":6.145692825317383},{"x":0.313,"y":6.149974822998047},{"x":0.314,"y":6.154261112213135},{"x":0.315,"y":6.158551216125488},{"x":0.316,"y":6.162845611572266},{"x":0.317,"y":6.167143821716309},{"x":0.318,"y":6.171445846557617},{"x":0.319,"y":6.175752639770508},{"x":0.32,"y":6.180062770843506},{"x":0.321,"y":6.184377193450928},{"x":0.322,"y":6.188695430755615},{"x":0.323,"y":6.193017959594727},{"x":0.324,"y":6.1973443031311035},{"x":0.325,"y":6.201674938201904},{"x":0.326,"y":6.206009387969971},{"x":0.327,"y":6.210348129272461},{"x":0.328,"y":6.214690208435059},{"x":0.329,"y":6.219037055969238},{"x":0.33,"y":6.223387718200684},{"x":0.331,"y":6.2277421951293945},{"x":0.332,"y":6.232100963592529},{"x":0.333,"y":6.23646354675293},{"x":0.334,"y":6.240830421447754},{"x":0.335,"y":6.245201110839844},{"x":0.336,"y":6.249575614929199},{"x":0.337,"y":6.253954887390137},{"x":0.338,"y":6.258337497711182},{"x":0.339,"y":6.26272439956665},{"x":0.34,"y":6.267115116119385},{"x":0.341,"y":6.271510124206543},{"x":0.342,"y":6.275908946990967},{"x":0.343,"y":6.2803120613098145},{"x":0.344,"y":6.284718990325928},{"x":0.345,"y":6.289130210876465},{"x":0.346,"y":6.293544769287109},{"x":0.347,"y":6.297964096069336},{"x":0.348,"y":6.302387237548828},{"x":0.349,"y":6.306814193725586},{"x":0.35,"y":6.311245441436768},{"x":0.351,"y":6.315680503845215},{"x":0.352,"y":6.320119857788086},{"x":0.353,"y":6.324563026428223},{"x":0.354,"y":6.329010009765625},{"x":0.355,"y":6.333461284637451},{"x":0.356,"y":6.337916851043701},{"x":0.357,"y":6.342375755310059},{"x":0.358,"y":6.346839427947998},{"x":0.359,"y":6.351306915283203},{"x":0.36,"y":6.355778217315674},{"x":0.361,"y":6.36025333404541},{"x":0.362,"y":6.36473274230957},{"x":0.363,"y":6.369216442108154},{"x":0.364,"y":6.373703956604004},{"x":0.365,"y":6.378195762634277},{"x":0.366,"y":6.382691383361816},{"x":0.367,"y":6.387190818786621},{"x":0.368,"y":6.391694068908691},{"x":0.369,"y":6.396202087402344},{"x":0.37,"y":6.400713920593262},{"x":0.371,"y":6.405229091644287},{"x":0.372,"y":6.4097490310668945},{"x":0.373,"y":6.414272785186768},{"x":0.374,"y":6.418800354003906},{"x":0.375,"y":6.423332214355469},{"x":0.376,"y":6.427867889404297},{"x":0.377,"y":6.432407855987549},{"x":0.378,"y":6.436951637268066},{"x":0.379,"y":6.441499710083008},{"x":0.38,"y":6.446051597595215},{"x":0.381,"y":6.450607776641846},{"x":0.382,"y":6.455167770385742},{"x":0.383,"y":6.459731578826904},{"x":0.384,"y":6.46429967880249},{"x":0.385,"y":6.468871593475342},{"x":0.386,"y":6.473447799682617},{"x":0.387,"y":6.478027820587158},{"x":0.388,"y":6.482612133026123},{"x":0.389,"y":6.4872002601623535},{"x":0.39,"y":6.49179220199585},{"x":0.391,"y":6.4963884353637695},{"x":0.392,"y":6.500988960266113},{"x":0.393,"y":6.505593299865723},{"x":0.394,"y":6.510201454162598},{"x":0.395,"y":6.514813423156738},{"x":0.396,"y":6.519430160522461},{"x":0.397,"y":6.524050712585449},{"x":0.398,"y":6.528675079345703},{"x":0.399,"y":6.533303260803223},{"x":0.4,"y":6.537935733795166},{"x":0.401,"y":6.542572021484375},{"x":0.402,"y":6.547212600708008},{"x":0.403,"y":6.551856994628906},{"x":0.404,"y":6.5565056800842285},{"x":0.405,"y":6.561158180236816},{"x":0.406,"y":6.565814971923828},{"x":0.407,"y":6.5704755783081055},{"x":0.408,"y":6.575139999389648},{"x":0.409,"y":6.579809188842773},{"x":0.41,"y":6.584481716156006},{"x":0.411,"y":6.589158058166504},{"x":0.412,"y":6.593839168548584},{"x":0.413,"y":6.5985236167907715},{"x":0.414,"y":6.603212356567383},{"x":0.415,"y":6.607905387878418},{"x":0.416,"y":6.612602233886719},{"x":0.417,"y":6.617303371429443},{"x":0.418,"y":6.622008323669434},{"x":0.419,"y":6.6267170906066895},{"x":0.42,"y":6.631430149078369},{"x":0.421,"y":6.6361470222473145},{"x":0.422,"y":6.640868186950684},{"x":0.423,"y":6.645593166351318},{"x":0.424,"y":6.650321960449219},{"x":0.425,"y":6.655055522918701},{"x":0.426,"y":6.659792423248291},{"x":0.427,"y":6.664533615112305},{"x":0.428,"y":6.669278621673584},{"x":0.429,"y":6.674027919769287},{"x":0.43,"y":6.678781509399414},{"x":0.431,"y":6.683538436889648},{"x":0.432,"y":6.688299655914307},{"x":0.433,"y":6.693065166473389},{"x":0.434,"y":6.697834491729736},{"x":0.435,"y":6.702608108520508},{"x":0.436,"y":6.707385063171387},{"x":0.437,"y":6.712166786193848},{"x":0.438,"y":6.716951847076416},{"x":0.439,"y":6.721741676330566},{"x":0.44,"y":6.726534843444824},{"x":0.441,"y":6.731332778930664},{"x":0.442,"y":6.736134052276611},{"x":0.443,"y":6.740939617156982},{"x":0.444,"y":6.745749473571777},{"x":0.445,"y":6.75056266784668},{"x":0.446,"y":6.755380630493164},{"x":0.447,"y":6.760202407836914},{"x":0.448,"y":6.76502799987793},{"x":0.449,"y":6.769857406616211},{"x":0.45,"y":6.774691581726074},{"x":0.451,"y":6.779529094696045},{"x":0.452,"y":6.7843708992004395},{"x":0.453,"y":6.789216995239258},{"x":0.454,"y":6.794066429138184},{"x":0.455,"y":6.798920631408691},{"x":0.456,"y":6.803778648376465},{"x":0.457,"y":6.808640480041504},{"x":0.458,"y":6.813506126403809},{"x":0.459,"y":6.818376541137695},{"x":0.46,"y":6.823250770568848},{"x":0.461,"y":6.828128814697266},{"x":0.462,"y":6.833010673522949},{"x":0.463,"y":6.837896823883057},{"x":0.464,"y":6.84278678894043},{"x":0.465,"y":6.847681045532227},{"x":0.466,"y":6.852579116821289},{"x":0.467,"y":6.857481479644775},{"x":0.468,"y":6.862387657165527},{"x":0.469,"y":6.867298126220703},{"x":0.47,"y":6.872211933135986},{"x":0.471,"y":6.877130508422852},{"x":0.472,"y":6.882052421569824},{"x":0.473,"y":6.886979103088379},{"x":0.474,"y":6.891909599304199},{"x":0.475,"y":6.896843910217285},{"x":0.476,"y":6.901782512664795},{"x":0.477,"y":6.90672492980957},{"x":0.478,"y":6.911671161651611},{"x":0.479,"y":6.916622161865234},{"x":0.48,"y":6.921576499938965},{"x":0.481,"y":6.926535129547119},{"x":0.482,"y":6.931497573852539},{"x":0.483,"y":6.936464309692383},{"x":0.484,"y":6.941434860229492},{"x":0.485,"y":6.946409225463867},{"x":0.486,"y":6.951388359069824},{"x":0.487,"y":6.956370830535889},{"x":0.488,"y":6.961357593536377},{"x":0.489,"y":6.966348648071289},{"x":0.49,"y":6.971343040466309},{"x":0.491,"y":6.97634220123291},{"x":0.492,"y":6.981345176696777},{"x":0.493,"y":6.98635196685791},{"x":0.494,"y":6.991362571716309},{"x":0.495,"y":6.996377944946289},{"x":0.496,"y":7.001396656036377},{"x":0.497,"y":7.006419658660889},{"x":0.498,"y":7.011446475982666},{"x":0.499,"y":7.016477584838867},{"x":0.5,"y":7.021512985229492},{"x":0.501,"y":7.026551723480225},{"x":0.502,"y":7.031594753265381},{"x":0.503,"y":7.036642074584961},{"x":0.504,"y":7.041693210601807},{"x":0.505,"y":7.046748638153076},{"x":0.506,"y":7.051807403564453},{"x":0.507,"y":7.056870937347412},{"x":0.508,"y":7.061938285827637},{"x":0.509,"y":7.067009449005127},{"x":0.51,"y":7.072084903717041},{"x":0.511,"y":7.077164173126221},{"x":0.512,"y":7.082247734069824},{"x":0.513,"y":7.087335109710693},{"x":0.514,"y":7.092426300048828},{"x":0.515,"y":7.097521781921387},{"x":0.516,"y":7.102621078491211},{"x":0.517,"y":7.107725143432617},{"x":0.518,"y":7.112832546234131},{"x":0.519,"y":7.11794376373291},{"x":0.52,"y":7.123059272766113},{"x":0.521,"y":7.128179550170898},{"x":0.522,"y":7.133302688598633},{"x":0.523,"y":7.138430595397949},{"x":0.524,"y":7.143562316894531},{"x":0.525,"y":7.148697853088379},{"x":0.526,"y":7.153838157653809},{"x":0.527,"y":7.1589813232421875},{"x":0.528,"y":7.164129257202148},{"x":0.529,"y":7.169281005859375},{"x":0.53,"y":7.174436569213867},{"x":0.531,"y":7.179596900939941},{"x":0.532,"y":7.184761047363281},{"x":0.533,"y":7.1899285316467285},{"x":0.534,"y":7.195100784301758},{"x":0.535,"y":7.200276851654053},{"x":0.536,"y":7.205456733703613},{"x":0.537,"y":7.210640907287598},{"x":0.538,"y":7.215828895568848},{"x":0.539,"y":7.221020698547363},{"x":0.54,"y":7.226217269897461},{"x":0.541,"y":7.231417179107666},{"x":0.542,"y":7.236621379852295},{"x":0.543,"y":7.2418293952941895},{"x":0.544,"y":7.247041702270508},{"x":0.545,"y":7.25225830078125},{"x":0.546,"y":7.2574782371521},{"x":0.547,"y":7.262702465057373},{"x":0.548,"y":7.26793098449707},{"x":0.549,"y":7.273163318634033},{"x":0.55,"y":7.278399467468262},{"x":0.551,"y":7.283639907836914},{"x":0.552,"y":7.288884162902832},{"x":0.553,"y":7.294132709503174},{"x":0.554,"y":7.2993855476379395},{"x":0.555,"y":7.3046417236328125},{"x":0.556,"y":7.309902191162109},{"x":0.557,"y":7.31516695022583},{"x":0.558,"y":7.320435523986816},{"x":0.559,"y":7.325708389282227},{"x":0.56,"y":7.330985069274902},{"x":0.561,"y":7.336265563964844},{"x":0.562,"y":7.341549873352051},{"x":0.563,"y":7.34683895111084},{"x":0.564,"y":7.3521318435668945},{"x":0.565,"y":7.357428550720215},{"x":0.566,"y":7.362729072570801},{"x":0.567,"y":7.3680338859558105},{"x":0.568,"y":7.373342990875244},{"x":0.569,"y":7.378655910491943},{"x":0.57,"y":7.383972644805908},{"x":0.571,"y":7.389293670654297},{"x":0.572,"y":7.394618988037109},{"x":0.573,"y":7.399947643280029},{"x":0.574,"y":7.405280590057373},{"x":0.575,"y":7.410617828369141},{"x":0.576,"y":7.415958404541016},{"x":0.577,"y":7.421303749084473},{"x":0.578,"y":7.426652908325195},{"x":0.579,"y":7.432005882263184},{"x":0.58,"y":7.437363147735596},{"x":0.581,"y":7.442724227905273},{"x":0.582,"y":7.448089599609375},{"x":0.583,"y":7.453458786010742},{"x":0.584,"y":7.458832263946533},{"x":0.585,"y":7.46420955657959},{"x":0.586,"y":7.46959114074707},{"x":0.587,"y":7.474976062774658},{"x":0.588,"y":7.480365753173828},{"x":0.589,"y":7.4857587814331055},{"x":0.59,"y":7.491156101226807},{"x":0.591,"y":7.49655818939209},{"x":0.592,"y":7.501963138580322},{"x":0.593,"y":7.507372856140137},{"x":0.594,"y":7.512786388397217},{"x":0.595,"y":7.5182037353515625},{"x":0.596,"y":7.523625373840332},{"x":0.597,"y":7.529050827026367},{"x":0.598,"y":7.534480571746826},{"x":0.599,"y":7.539914131164551},{"x":0.6,"y":7.545351982116699},{"x":0.601,"y":7.550793647766113},{"x":0.602,"y":7.556239128112793},{"x":0.603,"y":7.561689376831055},{"x":0.604,"y":7.567142963409424},{"x":0.605,"y":7.572601318359375},{"x":0.606,"y":7.578063011169434},{"x":0.607,"y":7.583528518676758},{"x":0.608,"y":7.588998317718506},{"x":0.609,"y":7.594472885131836},{"x":0.61,"y":7.599950313568115},{"x":0.611,"y":7.605432510375977},{"x":0.612,"y":7.610918045043945},{"x":0.613,"y":7.616408348083496},{"x":0.614,"y":7.6219024658203125},{"x":0.615,"y":7.6274003982543945},{"x":0.616,"y":7.6329026222229},{"x":0.617,"y":7.638408660888672},{"x":0.618,"y":7.643918991088867},{"x":0.619,"y":7.649433135986328},{"x":0.62,"y":7.654951095581055},{"x":0.621,"y":7.660473823547363},{"x":0.622,"y":7.665999412536621},{"x":0.623,"y":7.671530246734619},{"x":0.624,"y":7.677064418792725},{"x":0.625,"y":7.682602882385254},{"x":0.626,"y":7.688145160675049},{"x":0.627,"y":7.693691253662109},{"x":0.628,"y":7.699242115020752},{"x":0.629,"y":7.70479679107666},{"x":0.63,"y":7.710354804992676},{"x":0.631,"y":7.715917587280273},{"x":0.632,"y":7.721484184265137},{"x":0.633,"y":7.727054595947266},{"x":0.634,"y":7.73262882232666},{"x":0.635,"y":7.738207817077637},{"x":0.636,"y":7.743790149688721},{"x":0.637,"y":7.749377250671387},{"x":0.638,"y":7.75496768951416},{"x":0.639,"y":7.760562419891357},{"x":0.64,"y":7.76616096496582},{"x":0.641,"y":7.771763801574707},{"x":0.642,"y":7.777370929718018},{"x":0.643,"y":7.782981872558594},{"x":0.644,"y":7.788596153259277},{"x":0.645,"y":7.794215202331543},{"x":0.646,"y":7.799838066101074},{"x":0.647,"y":7.805465221405029},{"x":0.648,"y":7.81109619140625},{"x":0.649,"y":7.816730976104736},{"x":0.65,"y":7.822369575500488},{"x":0.651,"y":7.8280134201049805},{"x":0.652,"y":7.833660125732422},{"x":0.653,"y":7.839311122894287},{"x":0.654,"y":7.844965934753418},{"x":0.655,"y":7.850625038146973},{"x":0.656,"y":7.856288909912109},{"x":0.657,"y":7.861955642700195},{"x":0.658,"y":7.867627143859863},{"x":0.659,"y":7.873301982879639},{"x":0.66,"y":7.878981590270996},{"x":0.661,"y":7.884664535522461},{"x":0.662,"y":7.890352249145508},{"x":0.663,"y":7.896043300628662},{"x":0.664,"y":7.90173864364624},{"x":0.665,"y":7.907438278198242},{"x":0.666,"y":7.913141250610352},{"x":0.667,"y":7.918848991394043},{"x":0.668,"y":7.924560546875},{"x":0.669,"y":7.930275917053223},{"x":0.67,"y":7.935995578765869},{"x":0.671,"y":7.941719055175781},{"x":0.672,"y":7.947446823120117},{"x":0.673,"y":7.9531779289245605},{"x":0.674,"y":7.958913803100586},{"x":0.675,"y":7.964653968811035},{"x":0.676,"y":7.970396995544434},{"x":0.677,"y":7.976144790649414},{"x":0.678,"y":7.98189640045166},{"x":0.679,"y":7.987652778625488},{"x":0.68,"y":7.993412017822266},{"x":0.681,"y":7.999176025390625},{"x":0.682,"y":8.00494384765625},{"x":0.683,"y":8.01071548461914},{"x":0.684,"y":8.016491889953613},{"x":0.685,"y":8.022272109985352},{"x":0.686,"y":8.028055191040039},{"x":0.687,"y":8.033843994140625},{"x":0.688,"y":8.03963565826416},{"x":0.689,"y":8.045431137084961},{"x":0.69,"y":8.051231384277344},{"x":0.691,"y":8.057035446166992},{"x":0.692,"y":8.062843322753906},{"x":0.693,"y":8.068655967712402},{"x":0.694,"y":8.074472427368164},{"x":0.695,"y":8.080291748046875},{"x":0.696,"y":8.086116790771484},{"x":0.697,"y":8.091944694519043},{"x":0.698,"y":8.097776412963867},{"x":0.699,"y":8.103612899780273},{"x":0.7,"y":8.109453201293945},{"x":0.701,"y":8.115297317504883},{"x":0.702,"y":8.121146202087402},{"x":0.703,"y":8.126998901367188},{"x":0.704,"y":8.132854461669922},{"x":0.705,"y":8.138715744018555},{"x":0.706,"y":8.144579887390137},{"x":0.707,"y":8.1504487991333},{"x":0.708,"y":8.156320571899414},{"x":0.709,"y":8.16219711303711},{"x":0.71,"y":8.16807746887207},{"x":0.711,"y":8.17396354675293},{"x":0.712,"y":8.179851531982422},{"x":0.713,"y":8.18574333190918},{"x":0.714,"y":8.191640853881836},{"x":0.715,"y":8.197541236877441},{"x":0.716,"y":8.203446388244629},{"x":0.717,"y":8.209354400634766},{"x":0.718,"y":8.215267181396484},{"x":0.719,"y":8.221183776855469},{"x":0.72,"y":8.227105140686035},{"x":0.721,"y":8.233030319213867},{"x":0.722,"y":8.238958358764648},{"x":0.723,"y":8.244892120361328},{"x":0.724,"y":8.250828742980957},{"x":0.725,"y":8.256770133972168},{"x":0.726,"y":8.262714385986328},{"x":0.727,"y":8.26866340637207},{"x":0.728,"y":8.274616241455078},{"x":0.729,"y":8.280573844909668},{"x":0.73,"y":8.286535263061523},{"x":0.731,"y":8.292500495910645},{"x":0.732,"y":8.298469543457031},{"x":0.733,"y":8.304442405700684},{"x":0.734,"y":8.310420036315918},{"x":0.735,"y":8.316400527954102},{"x":0.736,"y":8.322385787963867},{"x":0.737,"y":8.328374862670898},{"x":0.738,"y":8.334368705749512},{"x":0.739,"y":8.34036636352539},{"x":0.74,"y":8.346367835998535},{"x":0.741,"y":8.352373123168945},{"x":0.742,"y":8.358382225036621},{"x":0.743,"y":8.364395141601562},{"x":0.744,"y":8.370412826538086},{"x":0.745,"y":8.376434326171875},{"x":0.746,"y":8.38245964050293},{"x":0.747,"y":8.388489723205566},{"x":0.748,"y":8.394523620605469},{"x":0.749,"y":8.40056037902832},{"x":0.75,"y":8.40660285949707},{"x":0.751,"y":8.41264820098877},{"x":0.752,"y":8.418697357177734},{"x":0.753,"y":8.424751281738281},{"x":0.754,"y":8.430809020996094},{"x":0.755,"y":8.436870574951172},{"x":0.756,"y":8.442936897277832},{"x":0.757,"y":8.449007034301758},{"x":0.758,"y":8.455080032348633},{"x":0.759,"y":8.461158752441406},{"x":0.76,"y":8.467240333557129},{"x":0.761,"y":8.473325729370117},{"x":0.762,"y":8.479415893554688},{"x":0.763,"y":8.485509872436523},{"x":0.764,"y":8.491607666015625},{"x":0.765,"y":8.497710227966309},{"x":0.766,"y":8.503815650939941},{"x":0.767,"y":8.509925842285156},{"x":0.768,"y":8.516040802001953},{"x":0.769,"y":8.522157669067383},{"x":0.77,"y":8.528280258178711},{"x":0.771,"y":8.534406661987305},{"x":0.772,"y":8.540536880493164},{"x":0.773,"y":8.546670913696289},{"x":0.774,"y":8.55280876159668},{"x":0.775,"y":8.558951377868652},{"x":0.776,"y":8.56509780883789},{"x":0.777,"y":8.571248054504395},{"x":0.778,"y":8.577402114868164},{"x":0.779,"y":8.583560943603516},{"x":0.78,"y":8.589723587036133},{"x":0.781,"y":8.595890045166016},{"x":0.782,"y":8.602060317993164},{"x":0.783,"y":8.608234405517578},{"x":0.784,"y":8.614413261413574},{"x":0.785,"y":8.620595932006836},{"x":0.786,"y":8.626782417297363},{"x":0.787,"y":8.632972717285156},{"x":0.788,"y":8.639167785644531},{"x":0.789,"y":8.645366668701172},{"x":0.79,"y":8.651569366455078},{"x":0.791,"y":8.65777587890625},{"x":0.792,"y":8.663986206054688},{"x":0.793,"y":8.670201301574707},{"x":0.794,"y":8.676420211791992},{"x":0.795,"y":8.682642936706543},{"x":0.796,"y":8.68886947631836},{"x":0.797,"y":8.695100784301758},{"x":0.798,"y":8.701334953308105},{"x":0.799,"y":8.707574844360352},{"x":0.8,"y":8.713817596435547},{"x":0.801,"y":8.720064163208008},{"x":0.802,"y":8.726314544677734},{"x":0.803,"y":8.732569694519043},{"x":0.804,"y":8.738828659057617},{"x":0.805,"y":8.745092391967773},{"x":0.806,"y":8.751358985900879},{"x":0.807,"y":8.757630348205566},{"x":0.808,"y":8.76390552520752},{"x":0.809,"y":8.770185470581055},{"x":0.81,"y":8.776468276977539},{"x":0.811,"y":8.782754898071289},{"x":0.812,"y":8.789046287536621},{"x":0.813,"y":8.795341491699219},{"x":0.814,"y":8.801641464233398},{"x":0.815,"y":8.807944297790527},{"x":0.816,"y":8.814251899719238},{"x":0.817,"y":8.820562362670898},{"x":0.818,"y":8.826878547668457},{"x":0.819,"y":8.833197593688965},{"x":0.82,"y":8.839521408081055},{"x":0.821,"y":8.845848083496094},{"x":0.822,"y":8.852180480957031},{"x":0.823,"y":8.858515739440918},{"x":0.824,"y":8.864855766296387},{"x":0.825,"y":8.871198654174805},{"x":0.826,"y":8.877546310424805},{"x":0.827,"y":8.88389778137207},{"x":0.828,"y":8.890254020690918},{"x":0.829,"y":8.896614074707031},{"x":0.83,"y":8.902976989746094},{"x":0.831,"y":8.909344673156738},{"x":0.832,"y":8.915717124938965},{"x":0.833,"y":8.92209243774414},{"x":0.834,"y":8.928472518920898},{"x":0.835,"y":8.934856414794922},{"x":0.836,"y":8.941244125366211},{"x":0.837,"y":8.947635650634766},{"x":0.838,"y":8.954031944274902},{"x":0.839,"y":8.960432052612305},{"x":0.84,"y":8.966835975646973},{"x":0.841,"y":8.973243713378906},{"x":0.842,"y":8.979656219482422},{"x":0.843,"y":8.986072540283203},{"x":0.844,"y":8.99249267578125},{"x":0.845,"y":8.998916625976562},{"x":0.846,"y":9.00534439086914},{"x":0.847,"y":9.011775970458984},{"x":0.848,"y":9.018213272094727},{"x":0.849,"y":9.024652481079102},{"x":0.85,"y":9.031097412109375},{"x":0.851,"y":9.037546157836914},{"x":0.852,"y":9.043997764587402},{"x":0.853,"y":9.050454139709473},{"x":0.854,"y":9.056914329528809},{"x":0.855,"y":9.063379287719727},{"x":0.856,"y":9.069847106933594},{"x":0.857,"y":9.076319694519043},{"x":0.858,"y":9.082796096801758},{"x":0.859,"y":9.089277267456055},{"x":0.86,"y":9.095760345458984},{"x":0.861,"y":9.102249145507812},{"x":0.862,"y":9.108741760253906},{"x":0.863,"y":9.115238189697266},{"x":0.864,"y":9.121739387512207},{"x":0.865,"y":9.128244400024414},{"x":0.866,"y":9.13475227355957},{"x":0.867,"y":9.141265869140625},{"x":0.868,"y":9.147781372070312},{"x":0.869,"y":9.154302597045898},{"x":0.87,"y":9.16082763671875},{"x":0.871,"y":9.167356491088867},{"x":0.872,"y":9.17388916015625},{"x":0.873,"y":9.180426597595215},{"x":0.874,"y":9.186967849731445},{"x":0.875,"y":9.193511962890625},{"x":0.876,"y":9.200060844421387},{"x":0.877,"y":9.206613540649414},{"x":0.878,"y":9.213171005249023},{"x":0.879,"y":9.219732284545898},{"x":0.88,"y":9.226297378540039},{"x":0.881,"y":9.232866287231445},{"x":0.882,"y":9.239439010620117},{"x":0.883,"y":9.246015548706055},{"x":0.884,"y":9.25259780883789},{"x":0.885,"y":9.25918197631836},{"x":0.886,"y":9.265771865844727},{"x":0.887,"y":9.27236557006836},{"x":0.888,"y":9.278961181640625},{"x":0.889,"y":9.285563468933105},{"x":0.89,"y":9.292167663574219},{"x":0.891,"y":9.29877758026123},{"x":0.892,"y":9.305391311645508},{"x":0.893,"y":9.31200885772705},{"x":0.894,"y":9.31863021850586},{"x":0.895,"y":9.325255393981934},{"x":0.896,"y":9.331884384155273},{"x":0.897,"y":9.338518142700195},{"x":0.898,"y":9.345155715942383},{"x":0.899,"y":9.351797103881836},{"x":0.9,"y":9.358442306518555},{"x":0.901,"y":9.365093231201172},{"x":0.902,"y":9.371746063232422},{"x":0.903,"y":9.378403663635254},{"x":0.904,"y":9.385065078735352},{"x":0.905,"y":9.391731262207031},{"x":0.906,"y":9.398401260375977},{"x":0.907,"y":9.405075073242188},{"x":0.908,"y":9.411752700805664},{"x":0.909,"y":9.418434143066406},{"x":0.91,"y":9.425119400024414},{"x":0.911,"y":9.43181037902832},{"x":0.912,"y":9.43850326538086},{"x":0.913,"y":9.445201873779297},{"x":0.914,"y":9.451903343200684},{"x":0.915,"y":9.458609580993652},{"x":0.916,"y":9.46531867980957},{"x":0.917,"y":9.472033500671387},{"x":0.918,"y":9.478751182556152},{"x":0.919,"y":9.4854736328125},{"x":0.92,"y":9.492198944091797},{"x":0.921,"y":9.498929977416992},{"x":0.922,"y":9.505663871765137},{"x":0.923,"y":9.512401580810547},{"x":0.924,"y":9.519144058227539},{"x":0.925,"y":9.525890350341797},{"x":0.926,"y":9.53264045715332},{"x":0.927,"y":9.53939437866211},{"x":0.928,"y":9.546152114868164},{"x":0.929,"y":9.552915573120117},{"x":0.93,"y":9.55968189239502},{"x":0.931,"y":9.566452026367188},{"x":0.932,"y":9.573226928710938},{"x":0.933,"y":9.580005645751953},{"x":0.934,"y":9.586788177490234},{"x":0.935,"y":9.593574523925781},{"x":0.936,"y":9.600364685058594},{"x":0.937,"y":9.607158660888672},{"x":0.938,"y":9.613958358764648},{"x":0.939,"y":9.620759963989258},{"x":0.94,"y":9.627567291259766},{"x":0.941,"y":9.634376525878906},{"x":0.942,"y":9.641191482543945},{"x":0.943,"y":9.64801025390625},{"x":0.944,"y":9.65483283996582},{"x":0.945,"y":9.661659240722656},{"x":0.946,"y":9.66849136352539},{"x":0.947,"y":9.675325393676758},{"x":0.948,"y":9.682165145874023},{"x":0.949,"y":9.689006805419922},{"x":0.95,"y":9.695854187011719},{"x":0.951,"y":9.702705383300781},{"x":0.952,"y":9.70956039428711},{"x":0.953,"y":9.716419219970703},{"x":0.954,"y":9.723281860351562},{"x":0.955,"y":9.730148315429688},{"x":0.956,"y":9.737019538879395},{"x":0.957,"y":9.743894577026367},{"x":0.958,"y":9.750774383544922},{"x":0.959,"y":9.757657051086426},{"x":0.96,"y":9.764543533325195},{"x":0.961,"y":9.771434783935547},{"x":0.962,"y":9.77833080291748},{"x":0.963,"y":9.785229682922363},{"x":0.964,"y":9.792133331298828},{"x":0.965,"y":9.799039840698242},{"x":0.966,"y":9.805952072143555},{"x":0.967,"y":9.8128662109375},{"x":0.968,"y":9.819786071777344},{"x":0.969,"y":9.826709747314453},{"x":0.97,"y":9.833637237548828},{"x":0.971,"y":9.840568542480469},{"x":0.972,"y":9.847503662109375},{"x":0.973,"y":9.854442596435547},{"x":0.974,"y":9.861387252807617},{"x":0.975,"y":9.868334770202637},{"x":0.976,"y":9.875286102294922},{"x":0.977,"y":9.882241249084473},{"x":0.978,"y":9.889201164245605},{"x":0.979,"y":9.896163940429688},{"x":0.98,"y":9.903132438659668},{"x":0.981,"y":9.910104751586914},{"x":0.982,"y":9.91707992553711},{"x":0.983,"y":9.92405891418457},{"x":0.984,"y":9.93104362487793},{"x":0.985,"y":9.938031196594238},{"x":0.986,"y":9.945022583007812},{"x":0.987,"y":9.952018737792969},{"x":0.988,"y":9.95901870727539},{"x":0.989,"y":9.966022491455078},{"x":0.99,"y":9.973030090332031},{"x":0.991,"y":9.980042457580566},{"x":0.992,"y":9.987058639526367},{"x":0.993,"y":9.994077682495117},{"x":0.994,"y":10.001102447509766},{"x":0.995,"y":10.00813102722168},{"x":0.996,"y":10.015161514282227},{"x":0.997,"y":10.022197723388672},{"x":0.998,"y":10.0292387008667},{"x":0.999,"y":10.036283493041992},{"x":1.0,"y":10.043331146240234},{"x":1.001,"y":10.050382614135742},{"x":1.002,"y":10.057439804077148},{"x":1.003,"y":10.064498901367188},{"x":1.004,"y":10.071563720703125},{"x":1.005,"y":10.078632354736328},{"x":1.006,"y":10.085704803466797},{"x":1.007,"y":10.092781066894531},{"x":1.008,"y":10.099861145019531},{"x":1.009,"y":10.106945037841797},{"x":1.01,"y":10.114034652709961},{"x":1.011,"y":10.121126174926758},{"x":1.012,"y":10.128223419189453},{"x":1.013,"y":10.135324478149414},{"x":1.014,"y":10.142428398132324},{"x":1.015,"y":10.1495361328125},{"x":1.016,"y":10.156648635864258},{"x":1.017,"y":10.163764953613281},{"x":1.018,"y":10.170886993408203},{"x":1.019,"y":10.178010940551758},{"x":1.02,"y":10.185139656066895},{"x":1.021,"y":10.192272186279297},{"x":1.022,"y":10.199409484863281},{"x":1.023,"y":10.206550598144531},{"x":1.024,"y":10.213695526123047},{"x":1.025,"y":10.220844268798828},{"x":1.026,"y":10.227996826171875},{"x":1.027,"y":10.235153198242188},{"x":1.028,"y":10.242315292358398},{"x":1.029,"y":10.249479293823242},{"x":1.03,"y":10.256649017333984},{"x":1.031,"y":10.263821601867676},{"x":1.032,"y":10.270998001098633},{"x":1.033,"y":10.278179168701172},{"x":1.034,"y":10.285364151000977},{"x":1.035,"y":10.292552947998047},{"x":1.036,"y":10.299747467041016},{"x":1.037,"y":10.306943893432617},{"x":1.038,"y":10.314144134521484},{"x":1.039,"y":10.32135009765625},{"x":1.04,"y":10.328559875488281},{"x":1.041,"y":10.335773468017578},{"x":1.042,"y":10.34299087524414},{"x":1.043,"y":10.350212097167969},{"x":1.044,"y":10.357437133789062},{"x":1.045,"y":10.364665985107422},{"x":1.046,"y":10.371898651123047},{"x":1.047,"y":10.37913703918457},{"x":1.048,"y":10.386377334594727},{"x":1.049,"y":10.393623352050781},{"x":1.05,"y":10.400873184204102},{"x":1.051,"y":10.408126831054688},{"x":1.052,"y":10.415384292602539},{"x":1.053,"y":10.422645568847656},{"x":1.054,"y":10.429910659790039},{"x":1.055,"y":10.437180519104004},{"x":1.056,"y":10.444454193115234},{"x":1.057,"y":10.451732635498047},{"x":1.058,"y":10.459012985229492},{"x":1.059,"y":10.466300010681152},{"x":1.06,"y":10.473588943481445},{"x":1.061,"y":10.48088264465332},{"x":1.062,"y":10.488182067871094},{"x":1.063,"y":10.4954833984375},{"x":1.064,"y":10.502788543701172},{"x":1.065,"y":10.510099411010742},{"x":1.066,"y":10.517412185668945},{"x":1.067,"y":10.524730682373047},{"x":1.068,"y":10.532052993774414},{"x":1.069,"y":10.539379119873047},{"x":1.07,"y":10.546709060668945},{"x":1.071,"y":10.55404281616211},{"x":1.072,"y":10.561380386352539},{"x":1.073,"y":10.568721771240234},{"x":1.074,"y":10.576068878173828},{"x":1.075,"y":10.583419799804688},{"x":1.076,"y":10.59077262878418},{"x":1.077,"y":10.59813117980957},{"x":1.078,"y":10.605493545532227},{"x":1.079,"y":10.612859725952148},{"x":1.08,"y":10.620229721069336},{"x":1.081,"y":10.627603530883789},{"x":1.082,"y":10.63498306274414},{"x":1.083,"y":10.642364501953125},{"x":1.084,"y":10.649751663208008},{"x":1.085,"y":10.657142639160156},{"x":1.086,"y":10.664535522460938},{"x":1.087,"y":10.671934127807617},{"x":1.088,"y":10.679337501525879},{"x":1.089,"y":10.686742782592773},{"x":1.09,"y":10.694154739379883},{"x":1.091,"y":10.701568603515625},{"x":1.092,"y":10.708988189697266},{"x":1.093,"y":10.716409683227539},{"x":1.094,"y":10.723836898803711},{"x":1.095,"y":10.731267929077148},{"x":1.096,"y":10.738700866699219},{"x":1.097,"y":10.74614143371582},{"x":1.098,"y":10.753583908081055},{"x":1.099,"y":10.761030197143555},{"x":1.1,"y":10.768481254577637},{"x":1.101,"y":10.775936126708984},{"x":1.102,"y":10.783393859863281},{"x":1.103,"y":10.790857315063477},{"x":1.104,"y":10.798324584960938},{"x":1.105,"y":10.805795669555664},{"x":1.106,"y":10.813270568847656},{"x":1.107,"y":10.820749282836914},{"x":1.108,"y":10.828232765197754},{"x":1.109,"y":10.835719108581543},{"x":1.11,"y":10.843210220336914},{"x":1.111,"y":10.85070514678955},{"x":1.112,"y":10.85820484161377},{"x":1.113,"y":10.865707397460938},{"x":1.114,"y":10.873214721679688},{"x":1.115,"y":10.880725860595703},{"x":1.116,"y":10.8882417678833},{"x":1.117,"y":10.895760536193848},{"x":1.118,"y":10.903284072875977},{"x":1.119,"y":10.910810470581055},{"x":1.12,"y":10.918342590332031},{"x":1.121,"y":10.925878524780273},{"x":1.122,"y":10.933416366577148},{"x":1.123,"y":10.940959930419922},{"x":1.124,"y":10.948507308959961},{"x":1.125,"y":10.956060409545898},{"x":1.126,"y":10.963615417480469},{"x":1.127,"y":10.971174240112305},{"x":1.128,"y":10.978738784790039},{"x":1.129,"y":10.986305236816406},{"x":1.13,"y":10.993877410888672},{"x":1.131,"y":11.001453399658203},{"x":1.132,"y":11.009032249450684},{"x":1.133,"y":11.016616821289062},{"x":1.134,"y":11.024203300476074},{"x":1.135,"y":11.031795501708984},{"x":1.136,"y":11.03939151763916},{"x":1.137,"y":11.046991348266602},{"x":1.138,"y":11.054594993591309},{"x":1.139,"y":11.062202453613281},{"x":1.14,"y":11.069814682006836},{"x":1.141,"y":11.077430725097656},{"x":1.142,"y":11.085050582885742},{"x":1.143,"y":11.092674255371094},{"x":1.144,"y":11.100301742553711},{"x":1.145,"y":11.10793399810791},{"x":1.146,"y":11.115570068359375},{"x":1.147,"y":11.123208999633789},{"x":1.148,"y":11.130853652954102},{"x":1.149,"y":11.13850212097168},{"x":1.15,"y":11.146154403686523},{"x":1.151,"y":11.153810501098633},{"x":1.152,"y":11.161470413208008},{"x":1.153,"y":11.169135093688965},{"x":1.154,"y":11.176803588867188},{"x":1.155,"y":11.18447494506836},{"x":1.156,"y":11.19215202331543},{"x":1.157,"y":11.199831008911133},{"x":1.158,"y":11.207515716552734},{"x":1.159,"y":11.215204238891602},{"x":1.16,"y":11.222896575927734},{"x":1.161,"y":11.230592727661133},{"x":1.162,"y":11.238292694091797},{"x":1.163,"y":11.24599838256836},{"x":1.164,"y":11.253706932067871},{"x":1.165,"y":11.261419296264648},{"x":1.166,"y":11.269136428833008},{"x":1.167,"y":11.276857376098633},{"x":1.168,"y":11.28458023071289},{"x":1.169,"y":11.292309761047363},{"x":1.17,"y":11.300041198730469},{"x":1.171,"y":11.307779312133789},{"x":1.172,"y":11.315519332885742},{"x":1.173,"y":11.323264122009277},{"x":1.174,"y":11.331012725830078},{"x":1.175,"y":11.338766098022461},{"x":1.176,"y":11.34652328491211},{"x":1.177,"y":11.354284286499023},{"x":1.178,"y":11.362048149108887},{"x":1.179,"y":11.369817733764648},{"x":1.18,"y":11.37759017944336},{"x":1.181,"y":11.385366439819336},{"x":1.182,"y":11.393148422241211},{"x":1.183,"y":11.400932312011719},{"x":1.184,"y":11.408721923828125},{"x":1.185,"y":11.41651439666748},{"x":1.186,"y":11.424311637878418},{"x":1.187,"y":11.432113647460938},{"x":1.188,"y":11.439918518066406},{"x":1.189,"y":11.44772720336914},{"x":1.19,"y":11.455541610717773},{"x":1.191,"y":11.463357925415039},{"x":1.192,"y":11.471179008483887},{"x":1.193,"y":11.47900390625},{"x":1.194,"y":11.486833572387695},{"x":1.195,"y":11.494667053222656},{"x":1.196,"y":11.502504348754883},{"x":1.197,"y":11.510345458984375},{"x":1.198,"y":11.518190383911133},{"x":1.199,"y":11.526039123535156},{"x":1.2,"y":11.533893585205078},{"x":1.201,"y":11.541749954223633},{"x":1.202,"y":11.549612045288086},{"x":1.203,"y":11.557477951049805},{"x":1.204,"y":11.565347671508789},{"x":1.205,"y":11.573221206665039},{"x":1.206,"y":11.581098556518555},{"x":1.207,"y":11.588979721069336},{"x":1.208,"y":11.596864700317383},{"x":1.209,"y":11.604755401611328},{"x":1.21,"y":11.612649917602539},{"x":1.211,"y":11.620546340942383},{"x":1.212,"y":11.628448486328125},{"x":1.213,"y":11.636354446411133},{"x":1.214,"y":11.644264221191406},{"x":1.215,"y":11.652177810668945},{"x":1.216,"y":11.66009521484375},{"x":1.217,"y":11.668018341064453},{"x":1.218,"y":11.675943374633789},{"x":1.219,"y":11.683873176574707},{"x":1.22,"y":11.69180679321289},{"x":1.221,"y":11.699745178222656},{"x":1.222,"y":11.707687377929688},{"x":1.223,"y":11.715633392333984},{"x":1.224,"y":11.723583221435547},{"x":1.225,"y":11.731536865234375},{"x":1.226,"y":11.739494323730469},{"x":1.227,"y":11.747457504272461},{"x":1.228,"y":11.755424499511719},{"x":1.229,"y":11.76339340209961},{"x":1.23,"y":11.771368026733398},{"x":1.231,"y":11.779346466064453},{"x":1.232,"y":11.787328720092773},{"x":1.233,"y":11.79531478881836},{"x":1.234,"y":11.803304672241211},{"x":1.235,"y":11.811300277709961},{"x":1.236,"y":11.819297790527344},{"x":1.237,"y":11.827301025390625},{"x":1.238,"y":11.835307121276855},{"x":1.239,"y":11.843317031860352},{"x":1.24,"y":11.85133171081543},{"x":1.241,"y":11.859350204467773},{"x":1.242,"y":11.867372512817383},{"x":1.243,"y":11.875399589538574},{"x":1.244,"y":11.883429527282715},{"x":1.245,"y":11.891464233398438},{"x":1.246,"y":11.899503707885742},{"x":1.247,"y":11.90754508972168},{"x":1.248,"y":11.915592193603516},{"x":1.249,"y":11.923643112182617},{"x":1.25,"y":11.931697845458984},{"x":1.251,"y":11.939756393432617},{"x":1.252,"y":11.947818756103516},{"x":1.253,"y":11.955886840820312},{"x":1.254,"y":11.963956832885742},{"x":1.255,"y":11.97203254699707},{"x":1.256,"y":11.980111122131348},{"x":1.257,"y":11.98819351196289},{"x":1.258,"y":11.996280670166016},{"x":1.259,"y":12.004371643066406},{"x":1.26,"y":12.012466430664062},{"x":1.261,"y":12.0205659866333},{"x":1.262,"y":12.028668403625488},{"x":1.263,"y":12.036775588989258},{"x":1.264,"y":12.04488754272461},{"x":1.265,"y":12.053001403808594},{"x":1.266,"y":12.061120986938477},{"x":1.267,"y":12.069244384765625},{"x":1.268,"y":12.077371597290039},{"x":1.269,"y":12.085502624511719},{"x":1.27,"y":12.093637466430664},{"x":1.271,"y":12.101778030395508},{"x":1.272,"y":12.109920501708984},{"x":1.273,"y":12.11806869506836},{"x":1.274,"y":12.126218795776367},{"x":1.275,"y":12.134374618530273},{"x":1.276,"y":12.142534255981445},{"x":1.277,"y":12.150697708129883},{"x":1.278,"y":12.158864974975586},{"x":1.279,"y":12.167037010192871},{"x":1.28,"y":12.175211906433105},{"x":1.281,"y":12.183391571044922},{"x":1.282,"y":12.191574096679688},{"x":1.283,"y":12.199762344360352},{"x":1.284,"y":12.207954406738281},{"x":1.285,"y":12.216150283813477},{"x":1.286,"y":12.224349975585938},{"x":1.287,"y":12.232553482055664},{"x":1.288,"y":12.240760803222656},{"x":1.289,"y":12.248973846435547},{"x":1.29,"y":12.25718879699707},{"x":1.291,"y":12.265408515930176},{"x":1.292,"y":12.273632049560547},{"x":1.293,"y":12.2818603515625},{"x":1.294,"y":12.290092468261719},{"x":1.295,"y":12.298327445983887},{"x":1.296,"y":12.306568145751953},{"x":1.297,"y":12.314811706542969},{"x":1.298,"y":12.32305908203125},{"x":1.299,"y":12.33131217956543},{"x":1.3,"y":12.339567184448242},{"x":1.301,"y":12.347827911376953},{"x":1.302,"y":12.35609245300293},{"x":1.303,"y":12.364360809326172},{"x":1.304,"y":12.37263298034668},{"x":1.305,"y":12.380908966064453},{"x":1.306,"y":12.389188766479492},{"x":1.307,"y":12.397473335266113},{"x":1.308,"y":12.40576171875},{"x":1.309,"y":12.414052963256836},{"x":1.31,"y":12.42234992980957},{"x":1.311,"y":12.43065071105957},{"x":1.312,"y":12.438955307006836},{"x":1.313,"y":12.447261810302734},{"x":1.314,"y":12.455575942993164},{"x":1.315,"y":12.463891983032227},{"x":1.316,"y":12.472211837768555},{"x":1.317,"y":12.480537414550781},{"x":1.318,"y":12.48886489868164},{"x":1.319,"y":12.497198104858398},{"x":1.32,"y":12.505535125732422},{"x":1.321,"y":12.513874053955078},{"x":1.322,"y":12.52221965789795},{"x":1.323,"y":12.530567169189453},{"x":1.324,"y":12.538921356201172},{"x":1.325,"y":12.547277450561523},{"x":1.326,"y":12.555638313293457},{"x":1.327,"y":12.564002990722656},{"x":1.328,"y":12.572370529174805},{"x":1.329,"y":12.580743789672852},{"x":1.33,"y":12.58912181854248},{"x":1.331,"y":12.597501754760742},{"x":1.332,"y":12.605886459350586},{"x":1.333,"y":12.614274978637695},{"x":1.334,"y":12.622669219970703},{"x":1.335,"y":12.63106632232666},{"x":1.336,"y":12.639467239379883},{"x":1.337,"y":12.647871971130371},{"x":1.338,"y":12.656280517578125},{"x":1.339,"y":12.664693832397461},{"x":1.34,"y":12.673110961914062},{"x":1.341,"y":12.68153190612793},{"x":1.342,"y":12.689957618713379},{"x":1.343,"y":12.698387145996094},{"x":1.344,"y":12.706819534301758},{"x":1.345,"y":12.71525764465332},{"x":1.346,"y":12.723697662353516},{"x":1.347,"y":12.73214340209961},{"x":1.348,"y":12.740592956542969},{"x":1.349,"y":12.749046325683594},{"x":1.35,"y":12.757503509521484},{"x":1.351,"y":12.76596450805664},{"x":1.352,"y":12.774430274963379},{"x":1.353,"y":12.782899856567383},{"x":1.354,"y":12.791372299194336},{"x":1.355,"y":12.799850463867188},{"x":1.356,"y":12.808332443237305},{"x":1.357,"y":12.816818237304688},{"x":1.358,"y":12.825307846069336},{"x":1.359,"y":12.83380126953125},{"x":1.36,"y":12.84229850769043},{"x":1.361,"y":12.850799560546875},{"x":1.362,"y":12.859306335449219},{"x":1.363,"y":12.867815017700195},{"x":1.364,"y":12.87632942199707},{"x":1.365,"y":12.884847640991211},{"x":1.366,"y":12.893369674682617},{"x":1.367,"y":12.901893615722656},{"x":1.368,"y":12.910425186157227},{"x":1.369,"y":12.918957710266113},{"x":1.37,"y":12.927495956420898},{"x":1.371,"y":12.936038970947266},{"x":1.372,"y":12.944583892822266},{"x":1.373,"y":12.953134536743164},{"x":1.374,"y":12.961687088012695},{"x":1.375,"y":12.970245361328125},{"x":1.376,"y":12.978808403015137},{"x":1.377,"y":12.987373352050781},{"x":1.378,"y":12.995944023132324},{"x":1.379,"y":13.004517555236816},{"x":1.38,"y":13.01309585571289},{"x":1.381,"y":13.021678924560547},{"x":1.382,"y":13.030263900756836},{"x":1.383,"y":13.038854598999023},{"x":1.384,"y":13.047449111938477},{"x":1.385,"y":13.056047439575195},{"x":1.386,"y":13.06464958190918},{"x":1.387,"y":13.07325553894043},{"x":1.388,"y":13.081865310668945},{"x":1.389,"y":13.09048080444336},{"x":1.39,"y":13.099098205566406},{"x":1.391,"y":13.107721328735352},{"x":1.392,"y":13.116348266601562},{"x":1.393,"y":13.124979019165039},{"x":1.394,"y":13.133613586425781},{"x":1.395,"y":13.142250061035156},{"x":1.396,"y":13.150894165039062},{"x":1.397,"y":13.159540176391602},{"x":1.398,"y":13.168191909790039},{"x":1.399,"y":13.17684555053711},{"x":1.4,"y":13.185504913330078},{"x":1.401,"y":13.194168090820312},{"x":1.402,"y":13.20283317565918},{"x":1.403,"y":13.211503982543945},{"x":1.404,"y":13.220178604125977},{"x":1.405,"y":13.228858947753906},{"x":1.406,"y":13.237541198730469},{"x":1.407,"y":13.246227264404297},{"x":1.408,"y":13.254919052124023},{"x":1.409,"y":13.263614654541016},{"x":1.41,"y":13.27231216430664},{"x":1.411,"y":13.281015396118164},{"x":1.412,"y":13.289722442626953},{"x":1.413,"y":13.298433303833008},{"x":1.414,"y":13.307147979736328},{"x":1.415,"y":13.315866470336914},{"x":1.416,"y":13.324590682983398},{"x":1.417,"y":13.333318710327148},{"x":1.418,"y":13.342048645019531},{"x":1.419,"y":13.350784301757812},{"x":1.42,"y":13.359521865844727},{"x":1.421,"y":13.368267059326172},{"x":1.422,"y":13.37701416015625},{"x":1.423,"y":13.385765075683594},{"x":1.424,"y":13.394519805908203},{"x":1.425,"y":13.403278350830078},{"x":1.426,"y":13.412042617797852},{"x":1.427,"y":13.42081069946289},{"x":1.428,"y":13.429580688476562},{"x":1.429,"y":13.438356399536133},{"x":1.43,"y":13.447135925292969},{"x":1.431,"y":13.45591926574707},{"x":1.432,"y":13.46470832824707},{"x":1.433,"y":13.473499298095703},{"x":1.434,"y":13.482294082641602},{"x":1.435,"y":13.491092681884766},{"x":1.436,"y":13.499897003173828},{"x":1.437,"y":13.508705139160156},{"x":1.438,"y":13.51751708984375},{"x":1.439,"y":13.52633285522461},{"x":1.44,"y":13.535152435302734},{"x":1.441,"y":13.543975830078125},{"x":1.442,"y":13.552804946899414},{"x":1.443,"y":13.561635971069336},{"x":1.444,"y":13.570470809936523},{"x":1.445,"y":13.57931137084961},{"x":1.446,"y":13.588155746459961},{"x":1.447,"y":13.597003936767578},{"x":1.448,"y":13.605854034423828},{"x":1.449,"y":13.61471176147461},{"x":1.45,"y":13.623571395874023},{"x":1.451,"y":13.632434844970703},{"x":1.452,"y":13.641302108764648},{"x":1.453,"y":13.650175094604492},{"x":1.454,"y":13.659051895141602},{"x":1.455,"y":13.667932510375977},{"x":1.456,"y":13.676815032958984},{"x":1.457,"y":13.68570327758789},{"x":1.458,"y":13.694595336914062},{"x":1.459,"y":13.7034912109375},{"x":1.46,"y":13.712392807006836},{"x":1.461,"y":13.721296310424805},{"x":1.462,"y":13.730205535888672},{"x":1.463,"y":13.739118576049805},{"x":1.464,"y":13.74803352355957},{"x":1.465,"y":13.756954193115234},{"x":1.466,"y":13.765876770019531},{"x":1.467,"y":13.77480697631836},{"x":1.468,"y":13.78373908996582},{"x":1.469,"y":13.792675018310547},{"x":1.47,"y":13.801616668701172},{"x":1.471,"y":13.81056022644043},{"x":1.472,"y":13.819509506225586},{"x":1.473,"y":13.828462600708008},{"x":1.474,"y":13.837417602539062},{"x":1.475,"y":13.846378326416016},{"x":1.476,"y":13.855342864990234},{"x":1.477,"y":13.864311218261719},{"x":1.478,"y":13.873285293579102},{"x":1.479,"y":13.882261276245117},{"x":1.48,"y":13.891242980957031},{"x":1.481,"y":13.900226593017578},{"x":1.482,"y":13.909215927124023},{"x":1.483,"y":13.918209075927734},{"x":1.484,"y":13.927206039428711},{"x":1.485,"y":13.936206817626953},{"x":1.486,"y":13.945211410522461},{"x":1.487,"y":13.954219818115234},{"x":1.488,"y":13.963233947753906},{"x":1.489,"y":13.972249984741211},{"x":1.49,"y":13.981271743774414},{"x":1.491,"y":13.990297317504883},{"x":1.492,"y":13.999324798583984},{"x":1.493,"y":14.008359909057617},{"x":1.494,"y":14.01739501953125},{"x":1.495,"y":14.026437759399414},{"x":1.496,"y":14.035482406616211},{"x":1.497,"y":14.044530868530273},{"x":1.498,"y":14.053585052490234},{"x":1.499,"y":14.062641143798828},{"x":1.5,"y":14.07170295715332},{"x":1.501,"y":14.080768585205078},{"x":1.502,"y":14.089838027954102},{"x":1.503,"y":14.09891128540039},{"x":1.504,"y":14.107988357543945},{"x":1.505,"y":14.117069244384766},{"x":1.506,"y":14.126155853271484},{"x":1.507,"y":14.135244369506836},{"x":1.508,"y":14.144338607788086},{"x":1.509,"y":14.153434753417969},{"x":1.51,"y":14.16253662109375},{"x":1.511,"y":14.17164421081543},{"x":1.512,"y":14.18075180053711},{"x":1.513,"y":14.18986701965332},{"x":1.514,"y":14.198984146118164},{"x":1.515,"y":14.208105087280273},{"x":1.516,"y":14.217231750488281},{"x":1.517,"y":14.226360321044922},{"x":1.518,"y":14.235494613647461},{"x":1.519,"y":14.244632720947266},{"x":1.52,"y":14.253774642944336},{"x":1.521,"y":14.262920379638672},{"x":1.522,"y":14.272069931030273},{"x":1.523,"y":14.28122329711914},{"x":1.524,"y":14.290382385253906},{"x":1.525,"y":14.299543380737305},{"x":1.526,"y":14.308710098266602},{"x":1.527,"y":14.317880630493164},{"x":1.528,"y":14.327054977416992},{"x":1.529,"y":14.336233139038086},{"x":1.53,"y":14.345413208007812},{"x":1.531,"y":14.35460090637207},{"x":1.532,"y":14.363788604736328},{"x":1.533,"y":14.372983932495117},{"x":1.534,"y":14.382183074951172},{"x":1.535,"y":14.39138412475586},{"x":1.536,"y":14.400590896606445},{"x":1.537,"y":14.409801483154297},{"x":1.538,"y":14.419015884399414},{"x":1.539,"y":14.428234100341797},{"x":1.54,"y":14.437456130981445},{"x":1.541,"y":14.44668197631836},{"x":1.542,"y":14.455913543701172},{"x":1.543,"y":14.465147018432617},{"x":1.544,"y":14.474386215209961},{"x":1.545,"y":14.483627319335938},{"x":1.546,"y":14.492874145507812},{"x":1.547,"y":14.502126693725586},{"x":1.548,"y":14.51137924194336},{"x":1.549,"y":14.520639419555664},{"x":1.55,"y":14.529901504516602},{"x":1.551,"y":14.539167404174805},{"x":1.552,"y":14.548439025878906},{"x":1.553,"y":14.55771255493164},{"x":1.554,"y":14.566991806030273},{"x":1.555,"y":14.576272964477539},{"x":1.556,"y":14.585559844970703},{"x":1.557,"y":14.594852447509766},{"x":1.558,"y":14.604146957397461},{"x":1.559,"y":14.613445281982422},{"x":1.56,"y":14.622747421264648},{"x":1.561,"y":14.632055282592773},{"x":1.562,"y":14.641366958618164},{"x":1.563,"y":14.650680541992188},{"x":1.564,"y":14.65999984741211},{"x":1.565,"y":14.669322967529297},{"x":1.566,"y":14.67864990234375},{"x":1.567,"y":14.687980651855469},{"x":1.568,"y":14.697315216064453},{"x":1.569,"y":14.706655502319336},{"x":1.57,"y":14.715999603271484},{"x":1.571,"y":14.725345611572266},{"x":1.572,"y":14.734697341918945},{"x":1.573,"y":14.744050979614258},{"x":1.574,"y":14.753410339355469},{"x":1.575,"y":14.762775421142578},{"x":1.576,"y":14.772140502929688},{"x":1.577,"y":14.781513214111328},{"x":1.578,"y":14.790887832641602},{"x":1.579,"y":14.800268173217773},{"x":1.58,"y":14.809652328491211},{"x":1.581,"y":14.819038391113281},{"x":1.582,"y":14.82843017578125},{"x":1.583,"y":14.837825775146484},{"x":1.584,"y":14.847225189208984},{"x":1.585,"y":14.85662841796875},{"x":1.586,"y":14.866035461425781},{"x":1.587,"y":14.875448226928711},{"x":1.588,"y":14.884862899780273},{"x":1.589,"y":14.894283294677734},{"x":1.59,"y":14.903705596923828},{"x":1.591,"y":14.91313362121582},{"x":1.592,"y":14.922565460205078},{"x":1.593,"y":14.932003021240234},{"x":1.594,"y":14.94144058227539},{"x":1.595,"y":14.950885772705078},{"x":1.596,"y":14.960332870483398},{"x":1.597,"y":14.969783782958984},{"x":1.598,"y":14.979240417480469},{"x":1.599,"y":14.988700866699219},{"x":1.6,"y":14.998165130615234},{"x":1.601,"y":15.007631301879883},{"x":1.602,"y":15.017105102539062},{"x":1.603,"y":15.026580810546875},{"x":1.604,"y":15.036060333251953},{"x":1.605,"y":15.045543670654297},{"x":1.606,"y":15.055030822753906},{"x":1.607,"y":15.064523696899414},{"x":1.608,"y":15.074020385742188},{"x":1.609,"y":15.083520889282227},{"x":1.61,"y":15.093025207519531},{"x":1.611,"y":15.102531433105469},{"x":1.612,"y":15.112045288085938},{"x":1.613,"y":15.121561050415039},{"x":1.614,"y":15.131080627441406},{"x":1.615,"y":15.140605926513672},{"x":1.616,"y":15.150135040283203},{"x":1.617,"y":15.159666061401367},{"x":1.618,"y":15.16920280456543},{"x":1.619,"y":15.178743362426758},{"x":1.62,"y":15.188287734985352},{"x":1.621,"y":15.197835922241211},{"x":1.622,"y":15.207387924194336},{"x":1.623,"y":15.21694564819336},{"x":1.624,"y":15.226505279541016},{"x":1.625,"y":15.23607063293457},{"x":1.626,"y":15.24563980102539},{"x":1.627,"y":15.255210876464844},{"x":1.628,"y":15.264787673950195},{"x":1.629,"y":15.274368286132812},{"x":1.63,"y":15.283952713012695},{"x":1.631,"y":15.293542861938477},{"x":1.632,"y":15.30313491821289},{"x":1.633,"y":15.312732696533203},{"x":1.634,"y":15.322332382202148},{"x":1.635,"y":15.331937789916992},{"x":1.636,"y":15.341547012329102},{"x":1.637,"y":15.351158142089844},{"x":1.638,"y":15.360776901245117},{"x":1.639,"y":15.370397567749023},{"x":1.64,"y":15.380022048950195},{"x":1.641,"y":15.389652252197266},{"x":1.642,"y":15.399284362792969},{"x":1.643,"y":15.40892219543457},{"x":1.644,"y":15.418561935424805},{"x":1.645,"y":15.428207397460938},{"x":1.646,"y":15.437856674194336},{"x":1.647,"y":15.447507858276367},{"x":1.648,"y":15.45716667175293},{"x":1.649,"y":15.466829299926758},{"x":1.65,"y":15.476491928100586},{"x":1.651,"y":15.486162185668945},{"x":1.652,"y":15.495834350585938},{"x":1.653,"y":15.505512237548828},{"x":1.654,"y":15.515193939208984},{"x":1.655,"y":15.524879455566406},{"x":1.656,"y":15.534568786621094},{"x":1.657,"y":15.544261932373047},{"x":1.658,"y":15.553960800170898},{"x":1.659,"y":15.563661575317383},{"x":1.66,"y":15.573366165161133},{"x":1.661,"y":15.583076477050781},{"x":1.662,"y":15.592788696289062},{"x":1.663,"y":15.602506637573242},{"x":1.664,"y":15.612228393554688},{"x":1.665,"y":15.621953964233398},{"x":1.666,"y":15.631685256958008},{"x":1.667,"y":15.64141845703125},{"x":1.668,"y":15.651155471801758},{"x":1.669,"y":15.660898208618164},{"x":1.67,"y":15.670642852783203},{"x":1.671,"y":15.68039321899414},{"x":1.672,"y":15.690147399902344},{"x":1.673,"y":15.69990348815918},{"x":1.674,"y":15.709667205810547},{"x":1.675,"y":15.719430923461914},{"x":1.676,"y":15.729202270507812},{"x":1.677,"y":15.738975524902344},{"x":1.678,"y":15.74875259399414},{"x":1.679,"y":15.758535385131836},{"x":1.68,"y":15.768321990966797},{"x":1.681,"y":15.778112411499023},{"x":1.682,"y":15.787906646728516},{"x":1.683,"y":15.79770278930664},{"x":1.684,"y":15.807506561279297},{"x":1.685,"y":15.817312240600586},{"x":1.686,"y":15.82712173461914},{"x":1.687,"y":15.836936950683594},{"x":1.688,"y":15.84675407409668},{"x":1.689,"y":15.856576919555664},{"x":1.69,"y":15.866403579711914},{"x":1.691,"y":15.87623405456543},{"x":1.692,"y":15.886068344116211},{"x":1.693,"y":15.895906448364258},{"x":1.694,"y":15.90574836730957},{"x":1.695,"y":15.915596008300781},{"x":1.696,"y":15.925445556640625},{"x":1.697,"y":15.935300827026367},{"x":1.698,"y":15.945158004760742},{"x":1.699,"y":15.955020904541016},{"x":1.7,"y":15.964887619018555},{"x":1.701,"y":15.97475814819336},{"x":1.702,"y":15.98463249206543},{"x":1.703,"y":15.994510650634766},{"x":1.704,"y":16.004392623901367},{"x":1.705,"y":16.014280319213867},{"x":1.706,"y":16.024171829223633},{"x":1.707,"y":16.034067153930664},{"x":1.708,"y":16.043964385986328},{"x":1.709,"y":16.05386734008789},{"x":1.71,"y":16.06377410888672},{"x":1.711,"y":16.073684692382812},{"x":1.712,"y":16.083599090576172},{"x":1.713,"y":16.09351921081543},{"x":1.714,"y":16.10344123840332},{"x":1.715,"y":16.11336898803711},{"x":1.716,"y":16.12329864501953},{"x":1.717,"y":16.13323402404785},{"x":1.718,"y":16.143173217773438},{"x":1.719,"y":16.15311622619629},{"x":1.72,"y":16.163063049316406},{"x":1.721,"y":16.17301368713379},{"x":1.722,"y":16.18297004699707},{"x":1.723,"y":16.192930221557617},{"x":1.724,"y":16.202892303466797},{"x":1.725,"y":16.212860107421875},{"x":1.726,"y":16.222829818725586},{"x":1.727,"y":16.232805252075195},{"x":1.728,"y":16.24278450012207},{"x":1.729,"y":16.25276756286621},{"x":1.73,"y":16.26275634765625},{"x":1.731,"y":16.272747039794922},{"x":1.732,"y":16.28274154663086},{"x":1.733,"y":16.292741775512695},{"x":1.734,"y":16.302743911743164},{"x":1.735,"y":16.31275177001953},{"x":1.736,"y":16.322763442993164},{"x":1.737,"y":16.332778930664062},{"x":1.738,"y":16.34280014038086},{"x":1.739,"y":16.352821350097656},{"x":1.74,"y":16.362850189208984},{"x":1.741,"y":16.372882843017578},{"x":1.742,"y":16.382917404174805},{"x":1.743,"y":16.39295768737793},{"x":1.744,"y":16.402999877929688},{"x":1.745,"y":16.413047790527344},{"x":1.746,"y":16.4231014251709},{"x":1.747,"y":16.433155059814453},{"x":1.748,"y":16.44321632385254},{"x":1.749,"y":16.453279495239258},{"x":1.75,"y":16.463346481323242},{"x":1.751,"y":16.473419189453125},{"x":1.752,"y":16.483495712280273},{"x":1.753,"y":16.493574142456055},{"x":1.754,"y":16.503658294677734},{"x":1.755,"y":16.51374626159668},{"x":1.756,"y":16.523839950561523},{"x":1.757,"y":16.533935546875},{"x":1.758,"y":16.544034957885742},{"x":1.759,"y":16.55413818359375},{"x":1.76,"y":16.564247131347656},{"x":1.761,"y":16.574359893798828},{"x":1.762,"y":16.584474563598633},{"x":1.763,"y":16.59459686279297},{"x":1.764,"y":16.604721069335938},{"x":1.765,"y":16.61484718322754},{"x":1.766,"y":16.624980926513672},{"x":1.767,"y":16.635116577148438},{"x":1.768,"y":16.64525604248047},{"x":1.769,"y":16.6554012298584},{"x":1.77,"y":16.665550231933594},{"x":1.771,"y":16.675703048706055},{"x":1.772,"y":16.68585777282715},{"x":1.773,"y":16.69601821899414},{"x":1.774,"y":16.70618438720703},{"x":1.775,"y":16.716352462768555},{"x":1.776,"y":16.726524353027344},{"x":1.777,"y":16.7367000579834},{"x":1.778,"y":16.74688148498535},{"x":1.779,"y":16.75706672668457},{"x":1.78,"y":16.767253875732422},{"x":1.781,"y":16.777446746826172},{"x":1.782,"y":16.787643432617188},{"x":1.783,"y":16.79784393310547},{"x":1.784,"y":16.80805015563965},{"x":1.785,"y":16.81825828552246},{"x":1.786,"y":16.828472137451172},{"x":1.787,"y":16.838687896728516},{"x":1.788,"y":16.848909378051758},{"x":1.789,"y":16.859134674072266},{"x":1.79,"y":16.869361877441406},{"x":1.791,"y":16.879594802856445},{"x":1.792,"y":16.889833450317383},{"x":1.793,"y":16.90007209777832},{"x":1.794,"y":16.91031837463379},{"x":1.795,"y":16.92056655883789},{"x":1.796,"y":16.93082046508789},{"x":1.797,"y":16.941078186035156},{"x":1.798,"y":16.951337814331055},{"x":1.799,"y":16.96160316467285},{"x":1.8,"y":16.971872329711914},{"x":1.801,"y":16.982145309448242},{"x":1.802,"y":16.99242401123047},{"x":1.803,"y":17.002704620361328},{"x":1.804,"y":17.012989044189453},{"x":1.805,"y":17.023277282714844},{"x":1.806,"y":17.033573150634766},{"x":1.807,"y":17.04387092590332},{"x":1.808,"y":17.054170608520508},{"x":1.809,"y":17.064476013183594},{"x":1.81,"y":17.074785232543945},{"x":1.811,"y":17.085100173950195},{"x":1.812,"y":17.095417022705078},{"x":1.813,"y":17.105737686157227},{"x":1.814,"y":17.116064071655273},{"x":1.815,"y":17.126394271850586},{"x":1.816,"y":17.13672637939453},{"x":1.817,"y":17.147064208984375},{"x":1.818,"y":17.157405853271484},{"x":1.819,"y":17.16775131225586},{"x":1.82,"y":17.178102493286133},{"x":1.821,"y":17.18845558166504},{"x":1.822,"y":17.19881248474121},{"x":1.823,"y":17.20917320251465},{"x":1.824,"y":17.219539642333984},{"x":1.825,"y":17.229909896850586},{"x":1.826,"y":17.240283966064453},{"x":1.827,"y":17.250661849975586},{"x":1.828,"y":17.261043548583984},{"x":1.829,"y":17.27142906188965},{"x":1.83,"y":17.28182029724121},{"x":1.831,"y":17.292213439941406},{"x":1.832,"y":17.3026123046875},{"x":1.833,"y":17.313013076782227},{"x":1.834,"y":17.32341957092285},{"x":1.835,"y":17.333829879760742},{"x":1.836,"y":17.3442440032959},{"x":1.837,"y":17.35466194152832},{"x":1.838,"y":17.365083694458008},{"x":1.839,"y":17.37550926208496},{"x":1.84,"y":17.385940551757812},{"x":1.841,"y":17.396373748779297},{"x":1.842,"y":17.40681266784668},{"x":1.843,"y":17.417255401611328},{"x":1.844,"y":17.427701950073242},{"x":1.845,"y":17.438152313232422},{"x":1.846,"y":17.448606491088867},{"x":1.847,"y":17.459064483642578},{"x":1.848,"y":17.469528198242188},{"x":1.849,"y":17.479991912841797},{"x":1.85,"y":17.490463256835938},{"x":1.851,"y":17.500938415527344},{"x":1.852,"y":17.511417388916016},{"x":1.853,"y":17.521900177001953},{"x":1.854,"y":17.532384872436523},{"x":1.855,"y":17.542877197265625},{"x":1.856,"y":17.553369522094727},{"x":1.857,"y":17.56386947631836},{"x":1.858,"y":17.574373245239258},{"x":1.859,"y":17.58487892150879},{"x":1.86,"y":17.59539031982422},{"x":1.861,"y":17.60590362548828},{"x":1.862,"y":17.616422653198242},{"x":1.863,"y":17.6269474029541},{"x":1.864,"y":17.63747215270996},{"x":1.865,"y":17.64800453186035},{"x":1.866,"y":17.658538818359375},{"x":1.867,"y":17.669076919555664},{"x":1.868,"y":17.67962074279785},{"x":1.869,"y":17.690166473388672},{"x":1.87,"y":17.70071792602539},{"x":1.871,"y":17.711273193359375},{"x":1.872,"y":17.721832275390625},{"x":1.873,"y":17.73239517211914},{"x":1.874,"y":17.742961883544922},{"x":1.875,"y":17.7535343170166},{"x":1.876,"y":17.764110565185547},{"x":1.877,"y":17.774688720703125},{"x":1.878,"y":17.7852725982666},{"x":1.879,"y":17.79585838317871},{"x":1.88,"y":17.80644989013672},{"x":1.881,"y":17.817045211791992},{"x":1.882,"y":17.82764434814453},{"x":1.883,"y":17.83824920654297},{"x":1.884,"y":17.848854064941406},{"x":1.885,"y":17.859466552734375},{"x":1.886,"y":17.87008285522461},{"x":1.887,"y":17.880701065063477},{"x":1.888,"y":17.891324996948242},{"x":1.889,"y":17.901952743530273},{"x":1.89,"y":17.91258430480957},{"x":1.891,"y":17.923219680786133},{"x":1.892,"y":17.93385887145996},{"x":1.893,"y":17.944503784179688},{"x":1.894,"y":17.955150604248047},{"x":1.895,"y":17.965801239013672},{"x":1.896,"y":17.976457595825195},{"x":1.897,"y":17.98711585998535},{"x":1.898,"y":17.99778175354004},{"x":1.899,"y":18.00844955444336},{"x":1.9,"y":18.019121170043945},{"x":1.901,"y":18.029796600341797},{"x":1.902,"y":18.040475845336914},{"x":1.903,"y":18.051158905029297},{"x":1.904,"y":18.061847686767578},{"x":1.905,"y":18.072540283203125},{"x":1.906,"y":18.083234786987305},{"x":1.907,"y":18.093935012817383},{"x":1.908,"y":18.104639053344727},{"x":1.909,"y":18.11534881591797},{"x":1.91,"y":18.12605857849121},{"x":1.911,"y":18.136775970458984},{"x":1.912,"y":18.14749526977539},{"x":1.913,"y":18.158220291137695},{"x":1.914,"y":18.168947219848633},{"x":1.915,"y":18.17967987060547},{"x":1.916,"y":18.19041633605957},{"x":1.917,"y":18.201156616210938},{"x":1.918,"y":18.21190071105957},{"x":1.919,"y":18.22264862060547},{"x":1.92,"y":18.233400344848633},{"x":1.921,"y":18.244157791137695},{"x":1.922,"y":18.254919052124023},{"x":1.923,"y":18.265682220458984},{"x":1.924,"y":18.276451110839844},{"x":1.925,"y":18.287221908569336},{"x":1.926,"y":18.29800033569336},{"x":1.927,"y":18.308780670166016},{"x":1.928,"y":18.319564819335938},{"x":1.929,"y":18.330352783203125},{"x":1.93,"y":18.341144561767578},{"x":1.931,"y":18.35194206237793},{"x":1.932,"y":18.362743377685547},{"x":1.933,"y":18.373546600341797},{"x":1.934,"y":18.384355545043945},{"x":1.935,"y":18.39516830444336},{"x":1.936,"y":18.40598487854004},{"x":1.937,"y":18.416807174682617},{"x":1.938,"y":18.427631378173828},{"x":1.939,"y":18.438459396362305},{"x":1.94,"y":18.44929313659668},{"x":1.941,"y":18.460128784179688},{"x":1.942,"y":18.470972061157227},{"x":1.943,"y":18.481815338134766},{"x":1.944,"y":18.492664337158203},{"x":1.945,"y":18.503517150878906},{"x":1.946,"y":18.514373779296875},{"x":1.947,"y":18.525236129760742},{"x":1.948,"y":18.536100387573242},{"x":1.949,"y":18.546968460083008},{"x":1.95,"y":18.557844161987305},{"x":1.951,"y":18.5687198638916},{"x":1.952,"y":18.579601287841797},{"x":1.953,"y":18.590484619140625},{"x":1.954,"y":18.601375579833984},{"x":1.955,"y":18.612268447875977},{"x":1.956,"y":18.623165130615234},{"x":1.957,"y":18.63406753540039},{"x":1.958,"y":18.64497184753418},{"x":1.959,"y":18.655881881713867},{"x":1.96,"y":18.66679573059082},{"x":1.961,"y":18.677711486816406},{"x":1.962,"y":18.68863296508789},{"x":1.963,"y":18.699560165405273},{"x":1.964,"y":18.71048927307129},{"x":1.965,"y":18.72142219543457},{"x":1.966,"y":18.732358932495117},{"x":1.967,"y":18.743301391601562},{"x":1.968,"y":18.754247665405273},{"x":1.969,"y":18.765195846557617},{"x":1.97,"y":18.77614974975586},{"x":1.971,"y":18.787107467651367},{"x":1.972,"y":18.79806900024414},{"x":1.973,"y":18.809036254882812},{"x":1.974,"y":18.820003509521484},{"x":1.975,"y":18.830978393554688},{"x":1.976,"y":18.841955184936523},{"x":1.977,"y":18.852937698364258},{"x":1.978,"y":18.863924026489258},{"x":1.979,"y":18.87491226196289},{"x":1.98,"y":18.885908126831055},{"x":1.981,"y":18.89690399169922},{"x":1.982,"y":18.907907485961914},{"x":1.983,"y":18.918912887573242},{"x":1.984,"y":18.929922103881836},{"x":1.985,"y":18.940937042236328},{"x":1.986,"y":18.951953887939453},{"x":1.987,"y":18.962976455688477},{"x":1.988,"y":18.974002838134766},{"x":1.989,"y":18.98503303527832},{"x":1.99,"y":18.99606704711914},{"x":1.991,"y":19.00710678100586},{"x":1.992,"y":19.018146514892578},{"x":1.993,"y":19.029193878173828},{"x":1.994,"y":19.04024314880371},{"x":1.995,"y":19.051298141479492},{"x":1.996,"y":19.06235694885254},{"x":1.997,"y":19.07341957092285},{"x":1.998,"y":19.08448600769043},{"x":1.999,"y":19.09555435180664},{"x":2.0,"y":19.106630325317383}]},"encoding":{"x":{"field":"x","type":"quantitative"},"y":{"field":"y","type":"quantitative"}},"mark":{"color":"green","type":"line"}},{"data":{"values":[{"x":-0.8299999833106995,"y":3.8831818103790283},{"x":0.8299999833106995,"y":8.902976989746094}]},"encoding":{"x":{"field":"x","type":"quantitative"},"y":{"field":"y","type":"quantitative"}},"mark":{"color":"red","size":80,"type":"circle"}}],"title":{"offset":20,"text":"Plot of Generated Data and Predictions"},"width":630} ``` Now we are ready to go into a more complex example! @@ -763,7 +756,7 @@ x = ``` {#Nx.Tensor< f64[20640][12] - EXLA.Backend + EXLA.Backend [ [0.2707641196013289, 326.0, 15.0, 32.76, -117.02, 1.0278, 543.0, 1.665644171779141, 3.6932515337423313, 326.0, 1204.0, 1.0], [0.2598343685300207, 230.0, 27.0, 38.44, -122.71, 1.7, 462.0, 2.008695652173913, 4.2, 251.0, 966.0, 1.0], @@ -775,7 +768,7 @@ x = >, #Nx.Tensor< f64[20640] - EXLA.Backend + EXLA.Backend [1.542e5, 3.5e5, 2.667e5, 2.728e5, 1.163e5, 2.941e5, 4.178e5, 1.851e5, 5.68e4, 500001.0, 500001.0, 1.152e5, 2.343e5, 8.75e4, 8.37e4, 500001.0, 1.669e5, 3.003e5, 1.546e5, 6.69e4, 2.325e5, 1.367e5, 1.375e5, 1.27e5, 1.683e5, 1.441e5, 9.53e4, 1.834e5, 1.435e5, 6.85e4, 1.625e5, 1.661e5, 1.908e5, 2.431e5, 1.488e5, 3.036e5, 1.479e5, 1.5e5, 3.288e5, 7.08e4, 2.25e5, 1.375e5, 3.5e5, 3.742e5, 1.549e5, 4.5e5, 3.063e5, 2.051e5, ...] >} ``` @@ -794,12 +787,12 @@ train_ratio = 0.8 ``` {#Nx.Tensor< f64[16512] - EXLA.Backend + EXLA.Backend [1.542e5, 3.5e5, 2.667e5, 2.728e5, 1.163e5, 2.941e5, 4.178e5, 1.851e5, 5.68e4, 500001.0, 500001.0, 1.152e5, 2.343e5, 8.75e4, 8.37e4, 500001.0, 1.669e5, 3.003e5, 1.546e5, 6.69e4, 2.325e5, 1.367e5, 1.375e5, 1.27e5, 1.683e5, 1.441e5, 9.53e4, 1.834e5, 1.435e5, 6.85e4, 1.625e5, 1.661e5, 1.908e5, 2.431e5, 1.488e5, 3.036e5, 1.479e5, 1.5e5, 3.288e5, 7.08e4, 2.25e5, 1.375e5, 3.5e5, 3.742e5, 1.549e5, 4.5e5, 3.063e5, 2.051e5, 2.737e5, ...] >, #Nx.Tensor< f64[4128] - EXLA.Backend + EXLA.Backend [8.55e4, 1.743e5, 5.65e4, 1.308e5, 1.375e5, 2.472e5, 2.25e5, 1.164e5, 500001.0, 1.154e5, 1.269e5, 1.229e5, 7.04e4, 3.534e5, 7.14e4, 4.083e5, 3.0e5, 1.648e5, 1.125e5, 2.028e5, 1.139e5, 2.15e5, 500001.0, 1.48e5, 1.683e5, 2.819e5, 3.338e5, 1.078e5, 3.277e5, 3.412e5, 3.289e5, 2.879e5, 2.545e5, 2.667e5, 6.82e4, 1.406e5, 2.795e5, 2.25e5, 1.17e5, 1.375e5, 3.115e5, 2.423e5, 4.93e5, 3.458e5, 1.542e5, 3.728e5, 6.6e4, 1.281e5, ...] >} ``` @@ -817,12 +810,12 @@ x_nan_count = Nx.sum(Nx.is_nan(x)) ``` {#Nx.Tensor< u64 - EXLA.Backend + EXLA.Backend 414 >, #Nx.Tensor< u64 - EXLA.Backend + EXLA.Backend 0 >} ``` @@ -841,7 +834,7 @@ Nx.equal(x_nan_count, Nx.add(bedrooms_per_rooms_nan_count, total_bedrooms_nan_co ``` #Nx.Tensor< u8 - EXLA.Backend + EXLA.Backend 1 > ``` @@ -865,7 +858,7 @@ x_test = ``` #Nx.Tensor< f64[4128][12] - EXLA.Backend + EXLA.Backend [ [0.20019126554032515, 548.0, 23.0, 36.32, -119.33, 2.5, 1446.0, 2.6386861313868613, 5.724452554744525, 628.0, 3137.0, 4.0], [0.18461538461538463, 83.0, 34.0, 34.26, -118.44, 5.5124, 433.0, 5.216867469879518, 3.9156626506024095, 60.0, 325.0, 1.0], @@ -890,7 +883,7 @@ correlation = ``` #Nx.Tensor< f64[13][13] - EXLA.Backend + EXLA.Backend [ [1.0000000000000002, 0.06144282875654085, 0.13311283521287637, -0.12216156759996018, 0.09984860365269956, -0.612630933680883, 0.03517997111673592, 0.004697459810143742, -0.4078383723411937, 0.08095666109618091, -0.18612145325855575, -0.11835385450623682, -0.25385512001635363], [0.06144282875654085, 1.0, -0.305555948690877, -0.07566125267999342, 0.06170866872453172, 0.01398821983308101, 0.907460734474932, -0.02634672373043427, -0.07388109216765114, 0.9735036322842058, 0.9198029415934222, -0.04626792658479704, 0.0639675034251392], @@ -938,32 +931,18 @@ Vl.new( width: 630, height: 630 ) -|> Vl.data_from_values(corr_to_plot) -|> Vl.layers([ - Vl.new() - |> Vl.mark(:rect) - |> Vl.encode_field(:x, "x", type: :nominal, title: "", sort: false) - |> Vl.encode_field(:y, "y", type: :nominal, title: "", sort: false) - |> Vl.encode_field(:color, "corr_val", type: :quantitative, scale: [scheme: :viridis]), - Vl.new() - |> Vl.mark(:text) - |> Vl.encode_field(:x, "x", type: :nominal, title: "") - |> Vl.encode_field(:y, "y", type: :nominal, title: "") - |> Vl.encode_field(:text, "corr_val", type: :quantitative) - |> Vl.encode_field(:color, "corr_val", - type: :quantitative, - condition: [ - [test: "datum['corr_val'] < 0", value: :white], - [test: "datum['corr_val'] >= 0", value: :black] - ] - ) -]) +|> Data.heatmap(corr_to_plot, + x: "x", + y: "y", + color: [field: "corr_val", type: :quantitative, scale: [scheme: :viridis]], + text: "corr_val" +) ``` ```vega-lite -{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","data":{"values":[{"corr_val":1.0,"x":"Bedrooms per rooms","y":"Bedrooms per rooms"},{"corr_val":0.06,"x":"Households","y":"Bedrooms per rooms"},{"corr_val":0.13,"x":"Housing median age","y":"Bedrooms per rooms"},{"corr_val":-0.12,"x":"Latitude","y":"Bedrooms per rooms"},{"corr_val":0.1,"x":"Longitude","y":"Bedrooms per rooms"},{"corr_val":-0.61,"x":"Median income","y":"Bedrooms per rooms"},{"corr_val":0.04,"x":"Population","y":"Bedrooms per rooms"},{"corr_val":0.0,"x":"Population per family","y":"Bedrooms per rooms"},{"corr_val":-0.41,"x":"Rooms per family","y":"Bedrooms per rooms"},{"corr_val":0.08,"x":"Total bedrooms","y":"Bedrooms per rooms"},{"corr_val":-0.19,"x":"Total rooms","y":"Bedrooms per rooms"},{"corr_val":-0.12,"x":"Ocean proximity","y":"Bedrooms per rooms"},{"corr_val":-0.25,"x":"Median house value","y":"Bedrooms per rooms"},{"corr_val":0.06,"x":"Bedrooms per rooms","y":"Households"},{"corr_val":1.0,"x":"Households","y":"Households"},{"corr_val":-0.31,"x":"Housing median age","y":"Households"},{"corr_val":-0.08,"x":"Latitude","y":"Households"},{"corr_val":0.06,"x":"Longitude","y":"Households"},{"corr_val":0.01,"x":"Median income","y":"Households"},{"corr_val":0.91,"x":"Population","y":"Households"},{"corr_val":-0.03,"x":"Population per family","y":"Households"},{"corr_val":-0.07,"x":"Rooms per family","y":"Households"},{"corr_val":0.97,"x":"Total bedrooms","y":"Households"},{"corr_val":0.92,"x":"Total rooms","y":"Households"},{"corr_val":-0.05,"x":"Ocean proximity","y":"Households"},{"corr_val":0.06,"x":"Median house value","y":"Households"},{"corr_val":0.13,"x":"Bedrooms per rooms","y":"Housing median age"},{"corr_val":-0.31,"x":"Households","y":"Housing median age"},{"corr_val":1.0,"x":"Housing median age","y":"Housing median age"},{"corr_val":0.02,"x":"Latitude","y":"Housing median age"},{"corr_val":-0.11,"x":"Longitude","y":"Housing median age"},{"corr_val":-0.13,"x":"Median income","y":"Housing median age"},{"corr_val":-0.3,"x":"Population","y":"Housing median age"},{"corr_val":0.01,"x":"Population per family","y":"Housing median age"},{"corr_val":-0.15,"x":"Rooms per family","y":"Housing median age"},{"corr_val":-0.32,"x":"Total bedrooms","y":"Housing median age"},{"corr_val":-0.36,"x":"Total rooms","y":"Housing median age"},{"corr_val":-0.12,"x":"Ocean proximity","y":"Housing median age"},{"corr_val":0.1,"x":"Median house value","y":"Housing median age"},{"corr_val":-0.12,"x":"Bedrooms per rooms","y":"Latitude"},{"corr_val":-0.08,"x":"Households","y":"Latitude"},{"corr_val":0.02,"x":"Housing median age","y":"Latitude"},{"corr_val":1.0,"x":"Latitude","y":"Latitude"},{"corr_val":-0.93,"x":"Longitude","y":"Latitude"},{"corr_val":-0.07,"x":"Median income","y":"Latitude"},{"corr_val":-0.11,"x":"Population","y":"Latitude"},{"corr_val":0.0,"x":"Population per family","y":"Latitude"},{"corr_val":0.11,"x":"Rooms per family","y":"Latitude"},{"corr_val":-0.07,"x":"Total bedrooms","y":"Latitude"},{"corr_val":-0.04,"x":"Total rooms","y":"Latitude"},{"corr_val":0.5,"x":"Ocean proximity","y":"Latitude"},{"corr_val":-0.14,"x":"Median house value","y":"Latitude"},{"corr_val":0.1,"x":"Bedrooms per rooms","y":"Longitude"},{"corr_val":0.06,"x":"Households","y":"Longitude"},{"corr_val":-0.11,"x":"Housing median age","y":"Longitude"},{"corr_val":-0.93,"x":"Latitude","y":"Longitude"},{"corr_val":1.0,"x":"Longitude","y":"Longitude"},{"corr_val":-0.02,"x":"Median income","y":"Longitude"},{"corr_val":0.11,"x":"Population","y":"Longitude"},{"corr_val":0.0,"x":"Population per family","y":"Longitude"},{"corr_val":-0.03,"x":"Rooms per family","y":"Longitude"},{"corr_val":0.08,"x":"Total bedrooms","y":"Longitude"},{"corr_val":0.05,"x":"Total rooms","y":"Longitude"},{"corr_val":-0.28,"x":"Ocean proximity","y":"Longitude"},{"corr_val":-0.05,"x":"Median house value","y":"Longitude"},{"corr_val":-0.61,"x":"Bedrooms per rooms","y":"Median income"},{"corr_val":0.01,"x":"Households","y":"Median income"},{"corr_val":-0.13,"x":"Housing median age","y":"Median income"},{"corr_val":-0.07,"x":"Latitude","y":"Median income"},{"corr_val":-0.02,"x":"Longitude","y":"Median income"},{"corr_val":1.0,"x":"Median income","y":"Median income"},{"corr_val":0.0,"x":"Population","y":"Median income"},{"corr_val":0.02,"x":"Population per family","y":"Median income"},{"corr_val":0.32,"x":"Rooms per family","y":"Median income"},{"corr_val":-0.01,"x":"Total bedrooms","y":"Median income"},{"corr_val":0.19,"x":"Total rooms","y":"Median income"},{"corr_val":-0.21,"x":"Ocean proximity","y":"Median income"},{"corr_val":0.69,"x":"Median house value","y":"Median income"},{"corr_val":0.04,"x":"Bedrooms per rooms","y":"Population"},{"corr_val":0.91,"x":"Households","y":"Population"},{"corr_val":-0.3,"x":"Housing median age","y":"Population"},{"corr_val":-0.11,"x":"Latitude","y":"Population"},{"corr_val":0.11,"x":"Longitude","y":"Population"},{"corr_val":0.0,"x":"Median income","y":"Population"},{"corr_val":1.0,"x":"Population","y":"Population"},{"corr_val":0.07,"x":"Population per family","y":"Population"},{"corr_val":-0.07,"x":"Rooms per family","y":"Population"},{"corr_val":0.87,"x":"Total bedrooms","y":"Population"},{"corr_val":0.86,"x":"Total rooms","y":"Population"},{"corr_val":-0.06,"x":"Ocean proximity","y":"Population"},{"corr_val":-0.03,"x":"Median house value","y":"Population"},{"corr_val":0.0,"x":"Bedrooms per rooms","y":"Population per family"},{"corr_val":-0.03,"x":"Households","y":"Population per family"},{"corr_val":0.01,"x":"Housing median age","y":"Population per family"},{"corr_val":0.0,"x":"Latitude","y":"Population per family"},{"corr_val":0.0,"x":"Longitude","y":"Population per family"},{"corr_val":0.02,"x":"Median income","y":"Population per family"},{"corr_val":0.07,"x":"Population","y":"Population per family"},{"corr_val":1.0,"x":"Population per family","y":"Population per family"},{"corr_val":-0.01,"x":"Rooms per family","y":"Population per family"},{"corr_val":-0.03,"x":"Total bedrooms","y":"Population per family"},{"corr_val":-0.02,"x":"Total rooms","y":"Population per family"},{"corr_val":0.01,"x":"Ocean proximity","y":"Population per family"},{"corr_val":-0.02,"x":"Median house value","y":"Population per family"},{"corr_val":-0.41,"x":"Bedrooms per rooms","y":"Rooms per family"},{"corr_val":-0.07,"x":"Households","y":"Rooms per family"},{"corr_val":-0.15,"x":"Housing median age","y":"Rooms per family"},{"corr_val":0.11,"x":"Latitude","y":"Rooms per family"},{"corr_val":-0.03,"x":"Longitude","y":"Rooms per family"},{"corr_val":0.32,"x":"Median income","y":"Rooms per family"},{"corr_val":-0.07,"x":"Population","y":"Rooms per family"},{"corr_val":-0.01,"x":"Population per family","y":"Rooms per family"},{"corr_val":1.0,"x":"Rooms per family","y":"Rooms per family"},{"corr_val":0.01,"x":"Total bedrooms","y":"Rooms per family"},{"corr_val":0.14,"x":"Total rooms","y":"Rooms per family"},{"corr_val":0.14,"x":"Ocean proximity","y":"Rooms per family"},{"corr_val":0.15,"x":"Median house value","y":"Rooms per family"},{"corr_val":0.08,"x":"Bedrooms per rooms","y":"Total bedrooms"},{"corr_val":0.97,"x":"Households","y":"Total bedrooms"},{"corr_val":-0.32,"x":"Housing median age","y":"Total bedrooms"},{"corr_val":-0.07,"x":"Latitude","y":"Total bedrooms"},{"corr_val":0.08,"x":"Longitude","y":"Total bedrooms"},{"corr_val":-0.01,"x":"Median income","y":"Total bedrooms"},{"corr_val":0.87,"x":"Population","y":"Total bedrooms"},{"corr_val":-0.03,"x":"Population per family","y":"Total bedrooms"},{"corr_val":0.01,"x":"Rooms per family","y":"Total bedrooms"},{"corr_val":1.0,"x":"Total bedrooms","y":"Total bedrooms"},{"corr_val":0.93,"x":"Total rooms","y":"Total bedrooms"},{"corr_val":-0.02,"x":"Ocean proximity","y":"Total bedrooms"},{"corr_val":0.05,"x":"Median house value","y":"Total bedrooms"},{"corr_val":-0.19,"x":"Bedrooms per rooms","y":"Total rooms"},{"corr_val":0.92,"x":"Households","y":"Total rooms"},{"corr_val":-0.36,"x":"Housing median age","y":"Total rooms"},{"corr_val":-0.04,"x":"Latitude","y":"Total rooms"},{"corr_val":0.05,"x":"Longitude","y":"Total rooms"},{"corr_val":0.19,"x":"Median income","y":"Total rooms"},{"corr_val":0.86,"x":"Population","y":"Total rooms"},{"corr_val":-0.02,"x":"Population per family","y":"Total rooms"},{"corr_val":0.14,"x":"Rooms per family","y":"Total rooms"},{"corr_val":0.93,"x":"Total bedrooms","y":"Total rooms"},{"corr_val":1.0,"x":"Total rooms","y":"Total rooms"},{"corr_val":0.02,"x":"Ocean proximity","y":"Total rooms"},{"corr_val":0.13,"x":"Median house value","y":"Total rooms"},{"corr_val":-0.12,"x":"Bedrooms per rooms","y":"Ocean proximity"},{"corr_val":-0.05,"x":"Households","y":"Ocean proximity"},{"corr_val":-0.12,"x":"Housing median age","y":"Ocean proximity"},{"corr_val":0.5,"x":"Latitude","y":"Ocean proximity"},{"corr_val":-0.28,"x":"Longitude","y":"Ocean proximity"},{"corr_val":-0.21,"x":"Median income","y":"Ocean proximity"},{"corr_val":-0.06,"x":"Population","y":"Ocean proximity"},{"corr_val":0.01,"x":"Population per family","y":"Ocean proximity"},{"corr_val":0.14,"x":"Rooms per family","y":"Ocean proximity"},{"corr_val":-0.02,"x":"Total bedrooms","y":"Ocean proximity"},{"corr_val":0.02,"x":"Total rooms","y":"Ocean proximity"},{"corr_val":1.0,"x":"Ocean proximity","y":"Ocean proximity"},{"corr_val":-0.4,"x":"Median house value","y":"Ocean proximity"},{"corr_val":-0.25,"x":"Bedrooms per rooms","y":"Median house value"},{"corr_val":0.06,"x":"Households","y":"Median house value"},{"corr_val":0.1,"x":"Housing median age","y":"Median house value"},{"corr_val":-0.14,"x":"Latitude","y":"Median house value"},{"corr_val":-0.05,"x":"Longitude","y":"Median house value"},{"corr_val":0.69,"x":"Median income","y":"Median house value"},{"corr_val":-0.03,"x":"Population","y":"Median house value"},{"corr_val":-0.02,"x":"Population per family","y":"Median house value"},{"corr_val":0.15,"x":"Rooms per family","y":"Median house value"},{"corr_val":0.05,"x":"Total bedrooms","y":"Median house value"},{"corr_val":0.13,"x":"Total rooms","y":"Median house value"},{"corr_val":-0.4,"x":"Ocean proximity","y":"Median house value"},{"corr_val":1.0,"x":"Median house value","y":"Median house value"}]},"height":630,"layer":[{"encoding":{"color":{"field":"corr_val","scale":{"scheme":"viridis"},"type":"quantitative"},"x":{"field":"x","sort":false,"title":"","type":"nominal"},"y":{"field":"y","sort":false,"title":"","type":"nominal"}},"mark":"rect"},{"encoding":{"color":{"condition":[{"test":"datum['corr_val'] < 0","value":"white"},{"test":"datum['corr_val'] >= 0","value":"black"}],"field":"corr_val","type":"quantitative"},"text":{"field":"corr_val","type":"quantitative"},"x":{"field":"x","title":"","type":"nominal"},"y":{"field":"y","title":"","type":"nominal"}},"mark":"text"}],"title":{"offset":20,"text":"Correlation Matrix for California Housing"},"width":630} +{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","data":{"values":[{"corr_val":1.0,"x":"Bedrooms per rooms","y":"Bedrooms per rooms"},{"corr_val":0.06,"x":"Households","y":"Bedrooms per rooms"},{"corr_val":0.13,"x":"Housing median age","y":"Bedrooms per rooms"},{"corr_val":-0.12,"x":"Latitude","y":"Bedrooms per rooms"},{"corr_val":0.1,"x":"Longitude","y":"Bedrooms per rooms"},{"corr_val":-0.61,"x":"Median income","y":"Bedrooms per rooms"},{"corr_val":0.04,"x":"Population","y":"Bedrooms per rooms"},{"corr_val":0.0,"x":"Population per family","y":"Bedrooms per rooms"},{"corr_val":-0.41,"x":"Rooms per family","y":"Bedrooms per rooms"},{"corr_val":0.08,"x":"Total bedrooms","y":"Bedrooms per rooms"},{"corr_val":-0.19,"x":"Total rooms","y":"Bedrooms per rooms"},{"corr_val":-0.12,"x":"Ocean proximity","y":"Bedrooms per rooms"},{"corr_val":-0.25,"x":"Median house value","y":"Bedrooms per rooms"},{"corr_val":0.06,"x":"Bedrooms per rooms","y":"Households"},{"corr_val":1.0,"x":"Households","y":"Households"},{"corr_val":-0.31,"x":"Housing median age","y":"Households"},{"corr_val":-0.08,"x":"Latitude","y":"Households"},{"corr_val":0.06,"x":"Longitude","y":"Households"},{"corr_val":0.01,"x":"Median income","y":"Households"},{"corr_val":0.91,"x":"Population","y":"Households"},{"corr_val":-0.03,"x":"Population per family","y":"Households"},{"corr_val":-0.07,"x":"Rooms per family","y":"Households"},{"corr_val":0.97,"x":"Total bedrooms","y":"Households"},{"corr_val":0.92,"x":"Total rooms","y":"Households"},{"corr_val":-0.05,"x":"Ocean proximity","y":"Households"},{"corr_val":0.06,"x":"Median house value","y":"Households"},{"corr_val":0.13,"x":"Bedrooms per rooms","y":"Housing median age"},{"corr_val":-0.31,"x":"Households","y":"Housing median age"},{"corr_val":1.0,"x":"Housing median age","y":"Housing median age"},{"corr_val":0.02,"x":"Latitude","y":"Housing median age"},{"corr_val":-0.11,"x":"Longitude","y":"Housing median age"},{"corr_val":-0.13,"x":"Median income","y":"Housing median age"},{"corr_val":-0.3,"x":"Population","y":"Housing median age"},{"corr_val":0.01,"x":"Population per family","y":"Housing median age"},{"corr_val":-0.15,"x":"Rooms per family","y":"Housing median age"},{"corr_val":-0.32,"x":"Total bedrooms","y":"Housing median age"},{"corr_val":-0.36,"x":"Total rooms","y":"Housing median age"},{"corr_val":-0.12,"x":"Ocean proximity","y":"Housing median age"},{"corr_val":0.1,"x":"Median house value","y":"Housing median age"},{"corr_val":-0.12,"x":"Bedrooms per rooms","y":"Latitude"},{"corr_val":-0.08,"x":"Households","y":"Latitude"},{"corr_val":0.02,"x":"Housing median age","y":"Latitude"},{"corr_val":1.0,"x":"Latitude","y":"Latitude"},{"corr_val":-0.93,"x":"Longitude","y":"Latitude"},{"corr_val":-0.07,"x":"Median income","y":"Latitude"},{"corr_val":-0.11,"x":"Population","y":"Latitude"},{"corr_val":0.0,"x":"Population per family","y":"Latitude"},{"corr_val":0.11,"x":"Rooms per family","y":"Latitude"},{"corr_val":-0.07,"x":"Total bedrooms","y":"Latitude"},{"corr_val":-0.04,"x":"Total rooms","y":"Latitude"},{"corr_val":0.5,"x":"Ocean proximity","y":"Latitude"},{"corr_val":-0.14,"x":"Median house value","y":"Latitude"},{"corr_val":0.1,"x":"Bedrooms per rooms","y":"Longitude"},{"corr_val":0.06,"x":"Households","y":"Longitude"},{"corr_val":-0.11,"x":"Housing median age","y":"Longitude"},{"corr_val":-0.93,"x":"Latitude","y":"Longitude"},{"corr_val":1.0,"x":"Longitude","y":"Longitude"},{"corr_val":-0.02,"x":"Median income","y":"Longitude"},{"corr_val":0.11,"x":"Population","y":"Longitude"},{"corr_val":0.0,"x":"Population per family","y":"Longitude"},{"corr_val":-0.03,"x":"Rooms per family","y":"Longitude"},{"corr_val":0.08,"x":"Total bedrooms","y":"Longitude"},{"corr_val":0.05,"x":"Total rooms","y":"Longitude"},{"corr_val":-0.28,"x":"Ocean proximity","y":"Longitude"},{"corr_val":-0.05,"x":"Median house value","y":"Longitude"},{"corr_val":-0.61,"x":"Bedrooms per rooms","y":"Median income"},{"corr_val":0.01,"x":"Households","y":"Median income"},{"corr_val":-0.13,"x":"Housing median age","y":"Median income"},{"corr_val":-0.07,"x":"Latitude","y":"Median income"},{"corr_val":-0.02,"x":"Longitude","y":"Median income"},{"corr_val":1.0,"x":"Median income","y":"Median income"},{"corr_val":0.0,"x":"Population","y":"Median income"},{"corr_val":0.02,"x":"Population per family","y":"Median income"},{"corr_val":0.32,"x":"Rooms per family","y":"Median income"},{"corr_val":-0.01,"x":"Total bedrooms","y":"Median income"},{"corr_val":0.19,"x":"Total rooms","y":"Median income"},{"corr_val":-0.21,"x":"Ocean proximity","y":"Median income"},{"corr_val":0.69,"x":"Median house value","y":"Median income"},{"corr_val":0.04,"x":"Bedrooms per rooms","y":"Population"},{"corr_val":0.91,"x":"Households","y":"Population"},{"corr_val":-0.3,"x":"Housing median age","y":"Population"},{"corr_val":-0.11,"x":"Latitude","y":"Population"},{"corr_val":0.11,"x":"Longitude","y":"Population"},{"corr_val":0.0,"x":"Median income","y":"Population"},{"corr_val":1.0,"x":"Population","y":"Population"},{"corr_val":0.07,"x":"Population per family","y":"Population"},{"corr_val":-0.07,"x":"Rooms per family","y":"Population"},{"corr_val":0.87,"x":"Total bedrooms","y":"Population"},{"corr_val":0.86,"x":"Total rooms","y":"Population"},{"corr_val":-0.06,"x":"Ocean proximity","y":"Population"},{"corr_val":-0.03,"x":"Median house value","y":"Population"},{"corr_val":0.0,"x":"Bedrooms per rooms","y":"Population per family"},{"corr_val":-0.03,"x":"Households","y":"Population per family"},{"corr_val":0.01,"x":"Housing median age","y":"Population per family"},{"corr_val":0.0,"x":"Latitude","y":"Population per family"},{"corr_val":0.0,"x":"Longitude","y":"Population per family"},{"corr_val":0.02,"x":"Median income","y":"Population per family"},{"corr_val":0.07,"x":"Population","y":"Population per family"},{"corr_val":1.0,"x":"Population per family","y":"Population per family"},{"corr_val":-0.01,"x":"Rooms per family","y":"Population per family"},{"corr_val":-0.03,"x":"Total bedrooms","y":"Population per family"},{"corr_val":-0.02,"x":"Total rooms","y":"Population per family"},{"corr_val":0.01,"x":"Ocean proximity","y":"Population per family"},{"corr_val":-0.02,"x":"Median house value","y":"Population per family"},{"corr_val":-0.41,"x":"Bedrooms per rooms","y":"Rooms per family"},{"corr_val":-0.07,"x":"Households","y":"Rooms per family"},{"corr_val":-0.15,"x":"Housing median age","y":"Rooms per family"},{"corr_val":0.11,"x":"Latitude","y":"Rooms per family"},{"corr_val":-0.03,"x":"Longitude","y":"Rooms per family"},{"corr_val":0.32,"x":"Median income","y":"Rooms per family"},{"corr_val":-0.07,"x":"Population","y":"Rooms per family"},{"corr_val":-0.01,"x":"Population per family","y":"Rooms per family"},{"corr_val":1.0,"x":"Rooms per family","y":"Rooms per family"},{"corr_val":0.01,"x":"Total bedrooms","y":"Rooms per family"},{"corr_val":0.14,"x":"Total rooms","y":"Rooms per family"},{"corr_val":0.14,"x":"Ocean proximity","y":"Rooms per family"},{"corr_val":0.15,"x":"Median house value","y":"Rooms per family"},{"corr_val":0.08,"x":"Bedrooms per rooms","y":"Total bedrooms"},{"corr_val":0.97,"x":"Households","y":"Total bedrooms"},{"corr_val":-0.32,"x":"Housing median age","y":"Total bedrooms"},{"corr_val":-0.07,"x":"Latitude","y":"Total bedrooms"},{"corr_val":0.08,"x":"Longitude","y":"Total bedrooms"},{"corr_val":-0.01,"x":"Median income","y":"Total bedrooms"},{"corr_val":0.87,"x":"Population","y":"Total bedrooms"},{"corr_val":-0.03,"x":"Population per family","y":"Total bedrooms"},{"corr_val":0.01,"x":"Rooms per family","y":"Total bedrooms"},{"corr_val":1.0,"x":"Total bedrooms","y":"Total bedrooms"},{"corr_val":0.93,"x":"Total rooms","y":"Total bedrooms"},{"corr_val":-0.02,"x":"Ocean proximity","y":"Total bedrooms"},{"corr_val":0.05,"x":"Median house value","y":"Total bedrooms"},{"corr_val":-0.19,"x":"Bedrooms per rooms","y":"Total rooms"},{"corr_val":0.92,"x":"Households","y":"Total rooms"},{"corr_val":-0.36,"x":"Housing median age","y":"Total rooms"},{"corr_val":-0.04,"x":"Latitude","y":"Total rooms"},{"corr_val":0.05,"x":"Longitude","y":"Total rooms"},{"corr_val":0.19,"x":"Median income","y":"Total rooms"},{"corr_val":0.86,"x":"Population","y":"Total rooms"},{"corr_val":-0.02,"x":"Population per family","y":"Total rooms"},{"corr_val":0.14,"x":"Rooms per family","y":"Total rooms"},{"corr_val":0.93,"x":"Total bedrooms","y":"Total rooms"},{"corr_val":1.0,"x":"Total rooms","y":"Total rooms"},{"corr_val":0.02,"x":"Ocean proximity","y":"Total rooms"},{"corr_val":0.13,"x":"Median house value","y":"Total rooms"},{"corr_val":-0.12,"x":"Bedrooms per rooms","y":"Ocean proximity"},{"corr_val":-0.05,"x":"Households","y":"Ocean proximity"},{"corr_val":-0.12,"x":"Housing median age","y":"Ocean proximity"},{"corr_val":0.5,"x":"Latitude","y":"Ocean proximity"},{"corr_val":-0.28,"x":"Longitude","y":"Ocean proximity"},{"corr_val":-0.21,"x":"Median income","y":"Ocean proximity"},{"corr_val":-0.06,"x":"Population","y":"Ocean proximity"},{"corr_val":0.01,"x":"Population per family","y":"Ocean proximity"},{"corr_val":0.14,"x":"Rooms per family","y":"Ocean proximity"},{"corr_val":-0.02,"x":"Total bedrooms","y":"Ocean proximity"},{"corr_val":0.02,"x":"Total rooms","y":"Ocean proximity"},{"corr_val":1.0,"x":"Ocean proximity","y":"Ocean proximity"},{"corr_val":-0.4,"x":"Median house value","y":"Ocean proximity"},{"corr_val":-0.25,"x":"Bedrooms per rooms","y":"Median house value"},{"corr_val":0.06,"x":"Households","y":"Median house value"},{"corr_val":0.1,"x":"Housing median age","y":"Median house value"},{"corr_val":-0.14,"x":"Latitude","y":"Median house value"},{"corr_val":-0.05,"x":"Longitude","y":"Median house value"},{"corr_val":0.69,"x":"Median income","y":"Median house value"},{"corr_val":-0.03,"x":"Population","y":"Median house value"},{"corr_val":-0.02,"x":"Population per family","y":"Median house value"},{"corr_val":0.15,"x":"Rooms per family","y":"Median house value"},{"corr_val":0.05,"x":"Total bedrooms","y":"Median house value"},{"corr_val":0.13,"x":"Total rooms","y":"Median house value"},{"corr_val":-0.4,"x":"Ocean proximity","y":"Median house value"},{"corr_val":1.0,"x":"Median house value","y":"Median house value"}]},"height":630,"layer":[{"encoding":{"color":{"field":"corr_val","scale":{"scheme":"viridis"},"type":"quantitative"},"x":{"field":"x","type":"nominal"},"y":{"field":"y","type":"nominal"}},"mark":"rect"},{"encoding":{"text":{"field":"corr_val","type":"quantitative"},"x":{"field":"x","type":"nominal"},"y":{"field":"y","type":"nominal"}},"mark":"text"}],"title":{"offset":20,"text":"Correlation Matrix for California Housing"},"width":630} ``` We can spot that _median_house_value_ is strongly correlated with _median_income_. It's pretty straightforward, the more money you have, the more expensive house you can buy. Non-obvious is a negative correlation with _bedrooms_per_rooms_. But it also can be explained. Bedrooms are the most crucial rooms in the house. Firstly, you need to guarantee that you have a house with enough bedrooms. If this condition is satisfied, then you can focus on "additional rooms" like a chill room, cabinets and so on. So if you buy a house with more additional rooms, then you decrease the ratio. @@ -982,12 +961,12 @@ model = LR.fit(x_train, y_train) %Scholar.Linear.LinearRegression{ coefficients: #Nx.Tensor< f64[12] - EXLA.Backend + EXLA.Backend [292661.1879978386, 111.46237796967083, 1170.1666131366273, -33322.29721781791, -35394.90464853701, 41384.64324873476, -41.31598131072877, 50.507900596456054, 3040.877192253343, 7.253624678472778, 3.272614960520949, -8059.519389730254] >, intercept: #Nx.Tensor< f64 - EXLA.Backend + EXLA.Backend -3101555.563125743 > } @@ -1007,12 +986,12 @@ mae = Regression.mean_absolute_error(y_test, predictions) ``` {#Nx.Tensor< f64 - EXLA.Backend + EXLA.Backend 67648.9435367406 >, #Nx.Tensor< f64 - EXLA.Backend + EXLA.Backend 48942.11908533544 >} ``` @@ -1028,9 +1007,9 @@ Nx.mean(y) ``` #Nx.Tensor< f64 - EXLA.Backend + EXLA.Backend 206855.81690891474 > ``` -For such a simple model as linear regression, it seems to be a pretty good result. But there is space to improve this result. You can, for example, add some additional features to the data set. In the future, you will be able to try more complicated models, such as random forests. \ No newline at end of file +For such a simple model as linear regression, it seems to be a pretty good result. But there is space to improve this result. You can, for example, add some additional features to the data set. In the future, you will be able to try more complicated models, such as random forests. From a222e2fad7fe61e66403fc41ba793f84254223c4 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Fri, 22 Sep 2023 16:33:02 +0200 Subject: [PATCH 2/9] Initial commit --- lib/scholar/manifold/mds.ex | 96 +++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 lib/scholar/manifold/mds.ex diff --git a/lib/scholar/manifold/mds.ex b/lib/scholar/manifold/mds.ex new file mode 100644 index 00000000..4a72da46 --- /dev/null +++ b/lib/scholar/manifold/mds.ex @@ -0,0 +1,96 @@ +defmodule Scholar.Manifold.MDS do + @moduledoc """ + TSNE (t-Distributed Stochastic Neighbor Embedding) is a nonlinear dimensionality reduction technique. + + ## References + + * [t-SNE: t-Distributed Stochastic Neighbor Embedding](http://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf) + """ + import Nx.Defn + import Scholar.Shared + alias Scholar.Metrics.Distance + + # initialize x randomly or pass the init x earlier + defnp smacof(dissimilarities, x, max_iter, opts) do + num_samples = Nx.axis_size(dissimilarities, 0) + similarities_flat = Nx.flatten((1 - Nx.tri(num_samples)) * dissimilarities) + similarities_flat_indices = remove_main_diag_indices(similarities_flat) + + n = Nx.axis_size(dissimilarities, 0) + + similarities_flat_w = + Nx.take(similarities_flat, similarities_flat_indices) |> Nx.reshape({n, n - 1}) + + res = + while {{x, stress = Nx.Constants.infinity(), i = 0}, dissimilarities, max_iter, + similarities_flat_indices, similarities_flat, old_stress = Nx.Constants.infinity(), + stop_value = 0}, + i < max_iter and not stop_value do + dis = Distance.pairwise_euclidean(x) + + disparities = + if opts[:metric] do + dissimilarities + else + dis_flat = Nx.flatten(dis) + + dis_flat_indices = remove_main_diag_indices(dis_flat) + + n = Nx.axis_size(dis, 0) + + dis_flat_w = Nx.take(dis_flat, dis_flat_indices) |> Nx.reshape({n, n - 1}) + # dis_flat_w = Nx.flatten(remove_main_diag(dis)) + + disparities_flat = + Scholar.Linear.IsotonicRegression.fit(similarities_flat_w, dis_flat_w) + + disparities_flat = + Scholar.Linear.IsotonicRegression.predict(disparities_flat, similarities_flat_w) + + # disparities = Nx.select(similarities_flat != 0, disparities_flat, disparities) + + disparities = Nx.indexed_put(dis_flat, similarities_flat_indices, disparities_flat) + disparities = Nx.reshape(disparities, {n, n}) + + disparities * Nx.sum(Nx.sqrt(n * (n - 1) / 2 / disparities ** 2)) + end + + stress = Nx.sum((Nx.flatten(dis) - Nx.flatten(disparities)) ** 2) / 2 + + stress = + if opts[:normalized_stress] do + Nx.sqrt(stress / (Nx.sum(Nx.flatten(disparities) ** 2) / 2)) + else + stress + end + + dis = Nx.select(dis == 0, 1.0e-5, dis) + ratio = disparities / dis + b = -ratio + b = Nx.put_diagonal(b, Nx.take_diagonal(b) + Nx.sum(ratio, axes: [1])) + x = 1.0 / n * Nx.dot(b, x) + + dis = Nx.sum(Nx.sqrt(Nx.sum(x ** 2, axes: [1]))) + + stop_value = if old_stress - stress / dis < opts[:eps], do: 1, else: 0 + + old_stress = stress / dis + + {{x, stress, i + 1}, dissimilarities, max_iter, similarities_flat_indices, + similarities_flat, old_stress, stop_value} + end + end + + defn remove_main_diag_indices(tensor) do + n = Nx.axis_size(tensor, 0) + + temp = + Nx.broadcast(Nx.s64(0), {n}) + |> Nx.indexed_put(Nx.new_axis(0, -1), Nx.s64(1)) + |> Nx.tile([n - 1]) + + Nx.iota({n * (n - 1)}) + Nx.cumulative_sum(temp) + # indices = Nx.iota({n * (n - 1)}) + Nx.cumulative_sum(temp) + # Nx.take(Nx.flatten(tensor), indices) |> Nx.reshape({n, n - 1}) + end +end From f69d4aff138d5c42899f687d07f8adcb0c485dde Mon Sep 17 00:00:00 2001 From: Mateusz Date: Fri, 22 Sep 2023 16:33:02 +0200 Subject: [PATCH 3/9] Initial commit --- lib/scholar/manifold/mds.ex | 96 +++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 lib/scholar/manifold/mds.ex diff --git a/lib/scholar/manifold/mds.ex b/lib/scholar/manifold/mds.ex new file mode 100644 index 00000000..4a72da46 --- /dev/null +++ b/lib/scholar/manifold/mds.ex @@ -0,0 +1,96 @@ +defmodule Scholar.Manifold.MDS do + @moduledoc """ + TSNE (t-Distributed Stochastic Neighbor Embedding) is a nonlinear dimensionality reduction technique. + + ## References + + * [t-SNE: t-Distributed Stochastic Neighbor Embedding](http://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf) + """ + import Nx.Defn + import Scholar.Shared + alias Scholar.Metrics.Distance + + # initialize x randomly or pass the init x earlier + defnp smacof(dissimilarities, x, max_iter, opts) do + num_samples = Nx.axis_size(dissimilarities, 0) + similarities_flat = Nx.flatten((1 - Nx.tri(num_samples)) * dissimilarities) + similarities_flat_indices = remove_main_diag_indices(similarities_flat) + + n = Nx.axis_size(dissimilarities, 0) + + similarities_flat_w = + Nx.take(similarities_flat, similarities_flat_indices) |> Nx.reshape({n, n - 1}) + + res = + while {{x, stress = Nx.Constants.infinity(), i = 0}, dissimilarities, max_iter, + similarities_flat_indices, similarities_flat, old_stress = Nx.Constants.infinity(), + stop_value = 0}, + i < max_iter and not stop_value do + dis = Distance.pairwise_euclidean(x) + + disparities = + if opts[:metric] do + dissimilarities + else + dis_flat = Nx.flatten(dis) + + dis_flat_indices = remove_main_diag_indices(dis_flat) + + n = Nx.axis_size(dis, 0) + + dis_flat_w = Nx.take(dis_flat, dis_flat_indices) |> Nx.reshape({n, n - 1}) + # dis_flat_w = Nx.flatten(remove_main_diag(dis)) + + disparities_flat = + Scholar.Linear.IsotonicRegression.fit(similarities_flat_w, dis_flat_w) + + disparities_flat = + Scholar.Linear.IsotonicRegression.predict(disparities_flat, similarities_flat_w) + + # disparities = Nx.select(similarities_flat != 0, disparities_flat, disparities) + + disparities = Nx.indexed_put(dis_flat, similarities_flat_indices, disparities_flat) + disparities = Nx.reshape(disparities, {n, n}) + + disparities * Nx.sum(Nx.sqrt(n * (n - 1) / 2 / disparities ** 2)) + end + + stress = Nx.sum((Nx.flatten(dis) - Nx.flatten(disparities)) ** 2) / 2 + + stress = + if opts[:normalized_stress] do + Nx.sqrt(stress / (Nx.sum(Nx.flatten(disparities) ** 2) / 2)) + else + stress + end + + dis = Nx.select(dis == 0, 1.0e-5, dis) + ratio = disparities / dis + b = -ratio + b = Nx.put_diagonal(b, Nx.take_diagonal(b) + Nx.sum(ratio, axes: [1])) + x = 1.0 / n * Nx.dot(b, x) + + dis = Nx.sum(Nx.sqrt(Nx.sum(x ** 2, axes: [1]))) + + stop_value = if old_stress - stress / dis < opts[:eps], do: 1, else: 0 + + old_stress = stress / dis + + {{x, stress, i + 1}, dissimilarities, max_iter, similarities_flat_indices, + similarities_flat, old_stress, stop_value} + end + end + + defn remove_main_diag_indices(tensor) do + n = Nx.axis_size(tensor, 0) + + temp = + Nx.broadcast(Nx.s64(0), {n}) + |> Nx.indexed_put(Nx.new_axis(0, -1), Nx.s64(1)) + |> Nx.tile([n - 1]) + + Nx.iota({n * (n - 1)}) + Nx.cumulative_sum(temp) + # indices = Nx.iota({n * (n - 1)}) + Nx.cumulative_sum(temp) + # Nx.take(Nx.flatten(tensor), indices) |> Nx.reshape({n, n - 1}) + end +end From d96b5a2b643df1ed31313e71dc4918db2e148042 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Fri, 29 Sep 2023 19:20:24 +0200 Subject: [PATCH 4/9] Draft of implementation --- lib/scholar/manifold/mds.ex | 311 +++++++++++++++++++++++++++++++++--- 1 file changed, 287 insertions(+), 24 deletions(-) diff --git a/lib/scholar/manifold/mds.ex b/lib/scholar/manifold/mds.ex index 4a72da46..10651705 100644 --- a/lib/scholar/manifold/mds.ex +++ b/lib/scholar/manifold/mds.ex @@ -7,38 +7,99 @@ defmodule Scholar.Manifold.MDS do * [t-SNE: t-Distributed Stochastic Neighbor Embedding](http://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf) """ import Nx.Defn - import Scholar.Shared + # import Scholar.Shared alias Scholar.Metrics.Distance + @derive {Nx.Container, containers: [:embedding, :stress, :n_iter]} + defstruct [:embedding, :stress, :n_iter] + + opts_schema = [ + num_components: [ + type: :pos_integer, + default: 2, + doc: ~S""" + Dimension of the embedded space. + """ + ], + metric: [ + type: :boolean, + default: false, + doc: ~S""" + If `true`, use dissimilarities as metric distances in the embedding space. + """ + ], + normalized_stress: [ + type: :boolean, + default: false, + doc: ~S""" + If `true`, normalize the stress by the sum of squared dissimilarities. + """ + ], + eps: [ + type: :float, + default: 1.0e-3, + doc: ~S""" + Tolerance for stopping criterion. + """ + ], + max_iter: [ + type: :pos_integer, + default: 300, + doc: ~S""" + Maximum number of iterations for the optimization. + """ + ], + key: [ + type: {:custom, Scholar.Options, :key, []}, + doc: """ + Determines random number generation for centroid initialization. + If the key is not provided, it is set to `Nx.Random.key(System.system_time())`. + """ + ], + n_init: [ + type: :pos_integer, + default: 4, + doc: ~S""" + Number of times the embedding will be computed with different centroid seeds. + The final embedding is the embedding with the lowest stress. + """ + ] + ] + + @opts_schema NimbleOptions.new!(opts_schema) + # initialize x randomly or pass the init x earlier defnp smacof(dissimilarities, x, max_iter, opts) do - num_samples = Nx.axis_size(dissimilarities, 0) - similarities_flat = Nx.flatten((1 - Nx.tri(num_samples)) * dissimilarities) - similarities_flat_indices = remove_main_diag_indices(similarities_flat) + # n = Nx.axis_size(dissimilarities, 0) + similarities_flat = Nx.flatten(dissimilarities) + similarities_flat_indices = lower_triangle_indices(similarities_flat) - n = Nx.axis_size(dissimilarities, 0) + similarities_flat_w = Nx.take(similarities_flat, similarities_flat_indices) - similarities_flat_w = - Nx.take(similarities_flat, similarities_flat_indices) |> Nx.reshape({n, n - 1}) + metric = if opts[:metric], do: 1, else: 0 + normalized_stress = if opts[:normalized_stress], do: 1, else: 0 + eps = opts[:eps] - res = - while {{x, stress = Nx.Constants.infinity(), i = 0}, dissimilarities, max_iter, - similarities_flat_indices, similarities_flat, old_stress = Nx.Constants.infinity(), + {{x, stress, i}, _} = + while {{x, _stress = Nx.Constants.infinity(), i = 0}, dissimilarities, max_iter, + similarities_flat_indices, similarities_flat, similarities_flat_w, + old_stress = Nx.Constants.infinity(), metric, normalized_stress, eps, stop_value = 0}, i < max_iter and not stop_value do dis = Distance.pairwise_euclidean(x) + n = Nx.axis_size(dissimilarities, 0) disparities = - if opts[:metric] do + if metric do dissimilarities else dis_flat = Nx.flatten(dis) - dis_flat_indices = remove_main_diag_indices(dis_flat) + dis_flat_indices = lower_triangle_indices(dis) n = Nx.axis_size(dis, 0) - dis_flat_w = Nx.take(dis_flat, dis_flat_indices) |> Nx.reshape({n, n - 1}) + dis_flat_w = Nx.take(dis_flat, dis_flat_indices) # dis_flat_w = Nx.flatten(remove_main_diag(dis)) disparities_flat = @@ -58,7 +119,7 @@ defmodule Scholar.Manifold.MDS do stress = Nx.sum((Nx.flatten(dis) - Nx.flatten(disparities)) ** 2) / 2 stress = - if opts[:normalized_stress] do + if normalized_stress do Nx.sqrt(stress / (Nx.sum(Nx.flatten(disparities) ** 2) / 2)) else stress @@ -72,25 +133,227 @@ defmodule Scholar.Manifold.MDS do dis = Nx.sum(Nx.sqrt(Nx.sum(x ** 2, axes: [1]))) - stop_value = if old_stress - stress / dis < opts[:eps], do: 1, else: 0 + stop_value = if old_stress - stress / dis < eps, do: 1, else: 0 old_stress = stress / dis {{x, stress, i + 1}, dissimilarities, max_iter, similarities_flat_indices, - similarities_flat, old_stress, stop_value} + similarities_flat, similarities_flat_w, old_stress, metric, normalized_stress, eps, + stop_value} + end + + {x, stress, i} + end + + defnp mds_main_loop(dissimilarities, x, key, opts) do + n_init = opts[:n_init] + + {{best, best_stress, best_iter}, _} = + while {{best = x, best_stress = Nx.Constants.infinity(), best_iter = 0}, + {n_init, dissimilarities, x, i = 0}}, + i < n_init do + {temp, stress, iter} = smacof(dissimilarities, x, opts[:max_iter], opts) + + {best, best_stress, best_iter} = + if stress < best_stress, do: {temp, stress, iter}, else: {best, best_stress, best_iter} + + {best, best_stress, best_iter, {n_init, dissimilarities, x, i + 1}} + end + + {best, best_stress, best_iter} + end + + defnp mds_main_loop(dissimilarities, key, opts) do + # key = opts[:key] + n_init = opts[:n_init] + max_iter = opts[:max_iter] + num_samples = Nx.axis_size(dissimilarities, 0) + {dummy, new_key} = Nx.Random.uniform(key, shape: {num_samples, opts[:num_components]}) + + {{best, best_stress, best_iter}, _} = + while {{best = dummy, best_stress = Nx.Constants.infinity(), best_iter = 0}, + {n_init, new_key, max_iter, dissimilarities, i = 0}}, + i < n_init do + num_samples = Nx.axis_size(dissimilarities, 0) + {x, new_key} = Nx.Random.uniform(new_key, shape: {num_samples, opts[:num_components]}) + {temp, stress, iter} = smacof(dissimilarities, x, max_iter, opts) + + {best, best_stress, best_iter} = + if stress < best_stress, do: {temp, stress, iter}, else: {best, best_stress, best_iter} + + {{best, best_stress, best_iter}, {n_init, new_key, max_iter, dissimilarities, i + 1}} end + + {best, best_stress, best_iter} end - defn remove_main_diag_indices(tensor) do + defnp lower_triangle_indices(tensor) do n = Nx.axis_size(tensor, 0) - temp = - Nx.broadcast(Nx.s64(0), {n}) - |> Nx.indexed_put(Nx.new_axis(0, -1), Nx.s64(1)) - |> Nx.tile([n - 1]) + temp = Nx.broadcast(Nx.s64(0), {div(n * (n - 1), 2)}) + + {temp, _} = + while {temp, {i = 0, j = 0}}, i < n ** 2 do + {temp, j} = + if Nx.remainder(i, n) < Nx.quotient(i, n) do + temp = Nx.indexed_put(temp, Nx.new_axis(j, -1), i) + {temp, j + 1} + else + {temp, j} + end + + {temp, {i + 1, j}} + end + + temp + end + + @doc """ + Fits MDS for sample inputs `x`. It is simpyfied version of `fit/3` function. + + ## Options + + #{NimbleOptions.docs(@opts_schema)} + + ## Return Values + + Returns struct with embedded data, stress value, and number of iterations for best run. + + ## Examples + + iex> x = Nx.iota({4,5}) + iex> Scholar.Manifold.MDS.fit(x) + #Nx.Tensor< + f32[4][2] + [ + [-2197.154296875, 0.0], + [-1055.148681640625, 0.0], + [1055.148681640625, 0.0], + [2197.154296875, 0.0] + ] + > + """ + deftransform fit(x) do + opts = NimbleOptions.validate!([], @opts_schema) + key = Keyword.get_lazy(opts, :key, fn -> Nx.Random.key(System.system_time()) end) + fit_n(x, key, opts) + end + + @doc """ + Fits MDS for sample inputs `x`. It is simpyfied version of `fit/3` function. + + ## Options + + #{NimbleOptions.docs(@opts_schema)} + + ## Return Values + + Returns struct with embedded data, stress value, and number of iterations for best run. + + ## Examples + + iex> x = Nx.iota({4,5}) + iex> Scholar.Manifold.MDS.fit(x, num_components: 2) + #Nx.Tensor< + f32[4][2] + [ + [-2197.154296875, 0.0], + [-1055.148681640625, 0.0], + [1055.148681640625, 0.0], + [2197.154296875, 0.0] + ] + > + """ + deftransform fit(x, opts) when is_list(opts) do + opts = NimbleOptions.validate!(opts, @opts_schema) + key = Keyword.get_lazy(opts, :key, fn -> Nx.Random.key(System.system_time()) end) + fit_n(x, key, opts) + end + + defnp fit_n(x, key, opts) do + {best, best_stress, best_iter} = mds_main_loop(x, key, opts) + %__MODULE__{embedding: best, stress: best_stress, n_iter: best_iter} + end + + @doc """ + Fits MDS for sample inputs `x`. It is simpyfied version of `fit/3` function. + + ## Options + + #{NimbleOptions.docs(@opts_schema)} + + ## Return Values - Nx.iota({n * (n - 1)}) + Nx.cumulative_sum(temp) - # indices = Nx.iota({n * (n - 1)}) + Nx.cumulative_sum(temp) - # Nx.take(Nx.flatten(tensor), indices) |> Nx.reshape({n, n - 1}) + Returns struct with embedded data, stress value, and number of iterations for best run. + + ## Examples + + iex> x = Nx.iota({4,5}) + iex> init = Nx.reverse(Nx.iota({4,5})) + iex> Scholar.Manifold.MDS.fit(x, init) + #Nx.Tensor< + f32[4][2] + [ + [-2197.154296875, 0.0], + [-1055.148681640625, 0.0], + [1055.148681640625, 0.0], + [2197.154296875, 0.0] + ] + > + """ + deftransform fit(x, init) do + opts = NimbleOptions.validate!([], @opts_schema) + key = Keyword.get_lazy(opts, :key, fn -> Nx.Random.key(System.system_time()) end) + fit_n(x, init, key, opts) end + + @doc """ + Fits MDS for sample inputs `x`. It is simpyfied version of `fit/3` function. + + ## Options + + #{NimbleOptions.docs(@opts_schema)} + + ## Return Values + + Returns struct with embedded data, stress value, and number of iterations for best run. + + ## Examples + + iex> x = Nx.iota({4,5}) + iex> init = Nx.reverse(Nx.iota({4,5})) + iex> Scholar.Manifold.MDS.fit(x, init, num_clusters: 3) + #Nx.Tensor< + f32[4][3] + [ + [-2197.154296875, 0.0, 0.0], + [-1055.148681640625, 0.0, 0.0], + [1055.148681640625, 0.0, 0.0], + [2197.154296875, 0.0, 0.0] + ] + > + """ + deftransform fit(x, init, opts) when is_list(opts) do + opts = NimbleOptions.validate!(opts, @opts_schema) + key = Keyword.get_lazy(opts, :key, fn -> Nx.Random.key(System.system_time()) end) + fit_n(x, init, key, opts) + end + + defnp fit_n(x, init, key, opts) do + {best, best_stress, best_iter} = mds_main_loop(x, init, key, opts) + %__MODULE__{embedding: best, stress: best_stress, n_iter: best_iter} + end + + # defn remove_main_diag_indices(tensor) do + # n = Nx.axis_size(tensor, 0) + + # temp = + # Nx.broadcast(Nx.s64(0), {n}) + # |> Nx.indexed_put(Nx.new_axis(0, -1), Nx.s64(1)) + # |> Nx.tile([n - 1]) + + # Nx.iota({n * (n - 1)}) + Nx.cumulative_sum(temp) + # # indices = Nx.iota({n * (n - 1)}) + Nx.cumulative_sum(temp) + # # Nx.take(Nx.flatten(tensor), indices) |> Nx.reshape({n, n - 1}) + # end end From 81fa246dc028e26b53023d7e15bffbd7d7de3e7e Mon Sep 17 00:00:00 2001 From: Mateusz Date: Mon, 9 Oct 2023 19:19:16 +0200 Subject: [PATCH 5/9] Working version, but linear interpolation breaks --- lib/scholar/linear/isotonic_regression.ex | 86 +++++++++++------------ lib/scholar/manifold/mds.ex | 76 ++++++++++++++------ 2 files changed, 99 insertions(+), 63 deletions(-) diff --git a/lib/scholar/linear/isotonic_regression.ex b/lib/scholar/linear/isotonic_regression.ex index 0360b995..8f1c4b4c 100644 --- a/lib/scholar/linear/isotonic_regression.ex +++ b/lib/scholar/linear/isotonic_regression.ex @@ -162,17 +162,18 @@ defmodule Scholar.Linear.IsotonicRegression do {increasing, opts} = Keyword.pop(opts, :increasing) - increasing = - case increasing do - :auto -> - check_increasing(x, y) + # increasing = + # case increasing do + # :auto -> + # check_increasing(x, y) - true -> - Nx.u8(1) + # true -> + # Nx.u8(1) - false -> - Nx.u8(0) - end + # false -> + # Nx.u8(0) + # end + increasing = Nx.u8(1) fit_n(x, y, sample_weights, increasing, opts) end @@ -209,7 +210,7 @@ defmodule Scholar.Linear.IsotonicRegression do """ defn predict(model, x) do check_input_shape(x) - check_preprocess(model) + # check_preprocess(model) x = Nx.flatten(x) x = Nx.clip(x, model.x_min, model.x_max) @@ -264,37 +265,37 @@ defmodule Scholar.Linear.IsotonicRegression do } } """ - def preprocess(model, trim_duplicates \\ true) do - cutoff = Nx.to_number(model.cutoff_index) - x = model.x_thresholds[0..cutoff] - y = model.y_thresholds[0..cutoff] - - {x, y} = - if trim_duplicates do - keep_mask = - Nx.logical_or( - Nx.not_equal(y[1..-2//1], y[0..-3//1]), - Nx.not_equal(y[1..-2//1], y[2..-1//1]) - ) - - keep_mask = Nx.concatenate([Nx.tensor([1]), keep_mask, Nx.tensor([1])]) - - indices = - Nx.iota({Nx.axis_size(y, 0)}) - |> Nx.add(1) - |> Nx.multiply(keep_mask) - |> Nx.to_flat_list() - - indices = Enum.filter(indices, fn x -> x != 0 end) |> Nx.tensor() |> Nx.subtract(1) - x = Nx.take(x, indices) - y = Nx.take(y, indices) - {x, y} - else - {x, y} - end - - model = %__MODULE__{model | x_thresholds: x} - model = %__MODULE__{model | y_thresholds: y} + defn preprocess(model) do + # cutoff = Nx.to_number(model.cutoff_index) + # x = model.x_thresholds[0..cutoff] + # y = model.y_thresholds[0..cutoff] + + # {x, y} = + # if trim_duplicates do + # keep_mask = + # Nx.logical_or( + # Nx.not_equal(y[1..-2//1], y[0..-3//1]), + # Nx.not_equal(y[1..-2//1], y[2..-1//1]) + # ) + + # keep_mask = Nx.concatenate([Nx.tensor([1]), keep_mask, Nx.tensor([1])]) + + # indices = + # Nx.iota({Nx.axis_size(y, 0)}) + # |> Nx.add(1) + # |> Nx.multiply(keep_mask) + # |> Nx.to_flat_list() + + # indices = Enum.filter(indices, fn x -> x != 0 end) |> Nx.tensor() |> Nx.subtract(1) + # x = Nx.take(x, indices) + # y = Nx.take(y, indices) + # {x, y} + # else + # {x, y} + # end + + # model = %__MODULE__{model | x_thresholds: x} + # model = %__MODULE__{model | y_thresholds: y} %__MODULE__{ model @@ -515,8 +516,7 @@ defmodule Scholar.Linear.IsotonicRegression do defnp check_increasing(x, y) do x = Nx.new_axis(x, -1) - y = Nx.new_axis(y, -1) model = Scholar.Linear.LinearRegression.fit(x, y) - model.coefficients[0][0] >= 0 + Nx.squeeze(model.coefficients[0] >= 0) end end diff --git a/lib/scholar/manifold/mds.ex b/lib/scholar/manifold/mds.ex index 10651705..92de54ee 100644 --- a/lib/scholar/manifold/mds.ex +++ b/lib/scholar/manifold/mds.ex @@ -7,7 +7,7 @@ defmodule Scholar.Manifold.MDS do * [t-SNE: t-Distributed Stochastic Neighbor Embedding](http://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf) """ import Nx.Defn - # import Scholar.Shared + import Scholar.Shared alias Scholar.Metrics.Distance @derive {Nx.Container, containers: [:embedding, :stress, :n_iter]} @@ -72,7 +72,7 @@ defmodule Scholar.Manifold.MDS do defnp smacof(dissimilarities, x, max_iter, opts) do # n = Nx.axis_size(dissimilarities, 0) similarities_flat = Nx.flatten(dissimilarities) - similarities_flat_indices = lower_triangle_indices(similarities_flat) + similarities_flat_indices = lower_triangle_indices(dissimilarities) similarities_flat_w = Nx.take(similarities_flat, similarities_flat_indices) @@ -81,11 +81,12 @@ defmodule Scholar.Manifold.MDS do eps = opts[:eps] {{x, stress, i}, _} = - while {{x, _stress = Nx.Constants.infinity(), i = 0}, dissimilarities, max_iter, - similarities_flat_indices, similarities_flat, similarities_flat_w, - old_stress = Nx.Constants.infinity(), metric, normalized_stress, eps, - stop_value = 0}, + while {{x, _stress = Nx.Constants.infinity(Nx.type(dissimilarities)), i = 0}, + {dissimilarities, max_iter, similarities_flat_indices, similarities_flat, + similarities_flat_w, old_stress = Nx.Constants.infinity(Nx.type(dissimilarities)), + metric, normalized_stress, eps, stop_value = 0}}, i < max_iter and not stop_value do + # i < 1 and not stop_value do dis = Distance.pairwise_euclidean(x) n = Nx.axis_size(dissimilarities, 0) @@ -102,18 +103,31 @@ defmodule Scholar.Manifold.MDS do dis_flat_w = Nx.take(dis_flat, dis_flat_indices) # dis_flat_w = Nx.flatten(remove_main_diag(dis)) - disparities_flat = + disparities_flat_model = Scholar.Linear.IsotonicRegression.fit(similarities_flat_w, dis_flat_w) + model = Scholar.Linear.IsotonicRegression.preprocess(disparities_flat_model) + disparities_flat = - Scholar.Linear.IsotonicRegression.predict(disparities_flat, similarities_flat_w) + Scholar.Linear.IsotonicRegression.predict(model, similarities_flat_w) + + # similarities_flat_indices - # disparities = Nx.select(similarities_flat != 0, disparities_flat, disparities) + # disparities = Nx.select(similarities_flat != 0, disparities_flat, disparities_flat) + # {dis_flat, similarities_flat_indices, disparities_flat} + + disparities = + Nx.indexed_put( + dis_flat, + Nx.new_axis(similarities_flat_indices, -1), + disparities_flat + ) + + # disparities = Nx.reshape(dis, {n, n}) - disparities = Nx.indexed_put(dis_flat, similarities_flat_indices, disparities_flat) disparities = Nx.reshape(disparities, {n, n}) - disparities * Nx.sum(Nx.sqrt(n * (n - 1) / 2 / disparities ** 2)) + disparities * Nx.sqrt(n * (n - 1) / 2 / Nx.sum(disparities ** 2)) end stress = Nx.sum((Nx.flatten(dis) - Nx.flatten(disparities)) ** 2) / 2 @@ -137,9 +151,9 @@ defmodule Scholar.Manifold.MDS do old_stress = stress / dis - {{x, stress, i + 1}, dissimilarities, max_iter, similarities_flat_indices, - similarities_flat, similarities_flat_w, old_stress, metric, normalized_stress, eps, - stop_value} + {{x, stress, i + 1}, + {dissimilarities, max_iter, similarities_flat_indices, similarities_flat, + similarities_flat_w, old_stress, metric, normalized_stress, eps, stop_value}} end {x, stress, i} @@ -148,11 +162,17 @@ defmodule Scholar.Manifold.MDS do defnp mds_main_loop(dissimilarities, x, key, opts) do n_init = opts[:n_init] + type = Nx.Type.merge(to_float_type(x), to_float_type(dissimilarities)) + dissimilarities = Nx.as_type(dissimilarities, type) + x = Nx.as_type(x, type) + {{best, best_stress, best_iter}, _} = - while {{best = x, best_stress = Nx.Constants.infinity(), best_iter = 0}, - {n_init, dissimilarities, x, i = 0}}, + while {{best = x, best_stress = Nx.Constants.infinity(type), + best_iter = 0}, {n_init, dissimilarities, x, i = 0}}, i < n_init do + # # i < 1 do {temp, stress, iter} = smacof(dissimilarities, x, opts[:max_iter], opts) + # smacof(dissimilarities, x, opts[:max_iter], opts) {best, best_stress, best_iter} = if stress < best_stress, do: {temp, stress, iter}, else: {best, best_stress, best_iter} @@ -168,15 +188,30 @@ defmodule Scholar.Manifold.MDS do n_init = opts[:n_init] max_iter = opts[:max_iter] num_samples = Nx.axis_size(dissimilarities, 0) - {dummy, new_key} = Nx.Random.uniform(key, shape: {num_samples, opts[:num_components]}) + + type = to_float_type(dissimilarities) + dissimilarities = Nx.as_type(dissimilarities, type) + + {dummy, new_key} = + Nx.Random.uniform(key, + shape: {num_samples, opts[:num_components]}, + type: type + ) + + dissimilarities = Distance.pairwise_euclidean(dissimilarities) {{best, best_stress, best_iter}, _} = - while {{best = dummy, best_stress = Nx.Constants.infinity(), best_iter = 0}, + while {{best = dummy, best_stress = Nx.Constants.infinity(type), best_iter = 0}, {n_init, new_key, max_iter, dissimilarities, i = 0}}, i < n_init do + # i < 1 do num_samples = Nx.axis_size(dissimilarities, 0) - {x, new_key} = Nx.Random.uniform(new_key, shape: {num_samples, opts[:num_components]}) + + {x, new_key} = + Nx.Random.uniform(new_key, shape: {num_samples, opts[:num_components]}, type: type) + {temp, stress, iter} = smacof(dissimilarities, x, max_iter, opts) + # smacof(dissimilarities, x, max_iter, opts) {best, best_stress, best_iter} = if stress < best_stress, do: {temp, stress, iter}, else: {best, best_stress, best_iter} @@ -187,7 +222,7 @@ defmodule Scholar.Manifold.MDS do {best, best_stress, best_iter} end - defnp lower_triangle_indices(tensor) do + defn lower_triangle_indices(tensor) do n = Nx.axis_size(tensor, 0) temp = Nx.broadcast(Nx.s64(0), {div(n * (n - 1), 2)}) @@ -271,6 +306,7 @@ defmodule Scholar.Manifold.MDS do end defnp fit_n(x, key, opts) do + # mds_main_loop(x, key, opts) {best, best_stress, best_iter} = mds_main_loop(x, key, opts) %__MODULE__{embedding: best, stress: best_stress, n_iter: best_iter} end From a3b2a82c389b4a9ed1d468e720474a06843fa2a4 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Fri, 3 Nov 2023 19:11:43 +0100 Subject: [PATCH 6/9] Add doctests and other --- lib/scholar/linear/isotonic_regression.ex | 20 +-- lib/scholar/manifold/mds.ex | 149 +++++++++++----------- test/scholar/manifold/mds_test.exs | 5 + 3 files changed, 92 insertions(+), 82 deletions(-) create mode 100644 test/scholar/manifold/mds_test.exs diff --git a/lib/scholar/linear/isotonic_regression.ex b/lib/scholar/linear/isotonic_regression.ex index 8f1c4b4c..8a9fb562 100644 --- a/lib/scholar/linear/isotonic_regression.ex +++ b/lib/scholar/linear/isotonic_regression.ex @@ -162,18 +162,18 @@ defmodule Scholar.Linear.IsotonicRegression do {increasing, opts} = Keyword.pop(opts, :increasing) - # increasing = - # case increasing do - # :auto -> - # check_increasing(x, y) + increasing = + case increasing do + :auto -> + check_increasing(x, y) - # true -> - # Nx.u8(1) + true -> + Nx.u8(1) - # false -> - # Nx.u8(0) - # end - increasing = Nx.u8(1) + false -> + Nx.u8(0) + end + # increasing = Nx.u8(1) fit_n(x, y, sample_weights, increasing, opts) end diff --git a/lib/scholar/manifold/mds.ex b/lib/scholar/manifold/mds.ex index 92de54ee..879144ac 100644 --- a/lib/scholar/manifold/mds.ex +++ b/lib/scholar/manifold/mds.ex @@ -70,7 +70,6 @@ defmodule Scholar.Manifold.MDS do # initialize x randomly or pass the init x earlier defnp smacof(dissimilarities, x, max_iter, opts) do - # n = Nx.axis_size(dissimilarities, 0) similarities_flat = Nx.flatten(dissimilarities) similarities_flat_indices = lower_triangle_indices(dissimilarities) @@ -86,7 +85,6 @@ defmodule Scholar.Manifold.MDS do similarities_flat_w, old_stress = Nx.Constants.infinity(Nx.type(dissimilarities)), metric, normalized_stress, eps, stop_value = 0}}, i < max_iter and not stop_value do - # i < 1 and not stop_value do dis = Distance.pairwise_euclidean(x) n = Nx.axis_size(dissimilarities, 0) @@ -101,7 +99,6 @@ defmodule Scholar.Manifold.MDS do n = Nx.axis_size(dis, 0) dis_flat_w = Nx.take(dis_flat, dis_flat_indices) - # dis_flat_w = Nx.flatten(remove_main_diag(dis)) disparities_flat_model = Scholar.Linear.IsotonicRegression.fit(similarities_flat_w, dis_flat_w) @@ -111,11 +108,6 @@ defmodule Scholar.Manifold.MDS do disparities_flat = Scholar.Linear.IsotonicRegression.predict(model, similarities_flat_w) - # similarities_flat_indices - - # disparities = Nx.select(similarities_flat != 0, disparities_flat, disparities_flat) - # {dis_flat, similarities_flat_indices, disparities_flat} - disparities = Nx.indexed_put( dis_flat, @@ -123,8 +115,6 @@ defmodule Scholar.Manifold.MDS do disparities_flat ) - # disparities = Nx.reshape(dis, {n, n}) - disparities = Nx.reshape(disparities, {n, n}) disparities * Nx.sqrt(n * (n - 1) / 2 / Nx.sum(disparities ** 2)) @@ -159,32 +149,31 @@ defmodule Scholar.Manifold.MDS do {x, stress, i} end - defnp mds_main_loop(dissimilarities, x, key, opts) do + defnp mds_main_loop(dissimilarities, x, _key, opts) do n_init = opts[:n_init] type = Nx.Type.merge(to_float_type(x), to_float_type(dissimilarities)) dissimilarities = Nx.as_type(dissimilarities, type) x = Nx.as_type(x, type) + dissimilarities = Distance.pairwise_euclidean(dissimilarities) + {{best, best_stress, best_iter}, _} = while {{best = x, best_stress = Nx.Constants.infinity(type), best_iter = 0}, {n_init, dissimilarities, x, i = 0}}, i < n_init do - # # i < 1 do {temp, stress, iter} = smacof(dissimilarities, x, opts[:max_iter], opts) - # smacof(dissimilarities, x, opts[:max_iter], opts) {best, best_stress, best_iter} = if stress < best_stress, do: {temp, stress, iter}, else: {best, best_stress, best_iter} - {best, best_stress, best_iter, {n_init, dissimilarities, x, i + 1}} + {{best, best_stress, best_iter}, {n_init, dissimilarities, x, i + 1}} end {best, best_stress, best_iter} end defnp mds_main_loop(dissimilarities, key, opts) do - # key = opts[:key] n_init = opts[:n_init] max_iter = opts[:max_iter] num_samples = Nx.axis_size(dissimilarities, 0) @@ -204,14 +193,12 @@ defmodule Scholar.Manifold.MDS do while {{best = dummy, best_stress = Nx.Constants.infinity(type), best_iter = 0}, {n_init, new_key, max_iter, dissimilarities, i = 0}}, i < n_init do - # i < 1 do num_samples = Nx.axis_size(dissimilarities, 0) {x, new_key} = Nx.Random.uniform(new_key, shape: {num_samples, opts[:num_components]}, type: type) {temp, stress, iter} = smacof(dissimilarities, x, max_iter, opts) - # smacof(dissimilarities, x, max_iter, opts) {best, best_stress, best_iter} = if stress < best_stress, do: {temp, stress, iter}, else: {best, best_stress, best_iter} @@ -257,16 +244,24 @@ defmodule Scholar.Manifold.MDS do ## Examples iex> x = Nx.iota({4,5}) - iex> Scholar.Manifold.MDS.fit(x) - #Nx.Tensor< - f32[4][2] - [ - [-2197.154296875, 0.0], - [-1055.148681640625, 0.0], - [1055.148681640625, 0.0], - [2197.154296875, 0.0] - ] - > + iex> key = Nx.Random.key(42) + iex> Scholar.Manifold.MDS.fit(x, key: key) + %Scholar.Manifold.MDS{ + embedding: Nx.tensor( + [ + [0.040477119386196136, -0.4997042417526245], + [-0.35801631212234497, -0.09504470974206924], + [-0.08517580479383469, 0.35293734073638916], + [0.42080432176589966, 0.23617777228355408] + ] + ), + stress: Nx.tensor( + 0.0016479993937537074 + ), + n_iter: Nx.tensor( + 19 + ) + } """ deftransform fit(x) do opts = NimbleOptions.validate!([], @opts_schema) @@ -288,16 +283,24 @@ defmodule Scholar.Manifold.MDS do ## Examples iex> x = Nx.iota({4,5}) - iex> Scholar.Manifold.MDS.fit(x, num_components: 2) - #Nx.Tensor< - f32[4][2] - [ - [-2197.154296875, 0.0], - [-1055.148681640625, 0.0], - [1055.148681640625, 0.0], - [2197.154296875, 0.0] - ] - > + iex> key = Nx.Random.key(42) + iex> Scholar.Manifold.MDS.fit(x, num_components: 2, key: key) + %Scholar.Manifold.MDS{ + embedding: Nx.tensor( + [ + [0.040477119386196136, -0.4997042417526245], + [-0.35801631212234497, -0.09504470974206924], + [-0.08517580479383469, 0.35293734073638916], + [0.42080432176589966, 0.23617777228355408] + ] + ), + stress: Nx.tensor( + 0.0016479993937537074 + ), + n_iter: Nx.tensor( + 19 + ) + } """ deftransform fit(x, opts) when is_list(opts) do opts = NimbleOptions.validate!(opts, @opts_schema) @@ -306,7 +309,6 @@ defmodule Scholar.Manifold.MDS do end defnp fit_n(x, key, opts) do - # mds_main_loop(x, key, opts) {best, best_stress, best_iter} = mds_main_loop(x, key, opts) %__MODULE__{embedding: best, stress: best_stress, n_iter: best_iter} end @@ -325,17 +327,25 @@ defmodule Scholar.Manifold.MDS do ## Examples iex> x = Nx.iota({4,5}) - iex> init = Nx.reverse(Nx.iota({4,5})) + iex> key = Nx.Random.key(42) + iex> init = Nx.reverse(Nx.iota({4,2})) iex> Scholar.Manifold.MDS.fit(x, init) - #Nx.Tensor< - f32[4][2] - [ - [-2197.154296875, 0.0], - [-1055.148681640625, 0.0], - [1055.148681640625, 0.0], - [2197.154296875, 0.0] - ] - > + %Scholar.Manifold.MDS{ + embedding: Nx.tensor( + [ + [0.41079193353652954, 0.41079193353652954], + [0.1369306445121765, 0.1369306445121765], + [-0.1369306445121765, -0.1369306445121765], + [-0.41079193353652954, -0.41079193353652954] + ] + ), + stress: Nx.tensor( + 0.0 + ), + n_iter: Nx.tensor( + 3 + ) + } """ deftransform fit(x, init) do opts = NimbleOptions.validate!([], @opts_schema) @@ -357,17 +367,25 @@ defmodule Scholar.Manifold.MDS do ## Examples iex> x = Nx.iota({4,5}) - iex> init = Nx.reverse(Nx.iota({4,5})) - iex> Scholar.Manifold.MDS.fit(x, init, num_clusters: 3) - #Nx.Tensor< - f32[4][3] - [ - [-2197.154296875, 0.0, 0.0], - [-1055.148681640625, 0.0, 0.0], - [1055.148681640625, 0.0, 0.0], - [2197.154296875, 0.0, 0.0] - ] - > + iex> key = Nx.Random.key(42) + iex> init = Nx.reverse(Nx.iota({4,3})) + iex> Scholar.Manifold.MDS.fit(x, init, num_components: 3, key: key) + %Scholar.Manifold.MDS{ + embedding: Nx.tensor( + [ + [0.3354101777076721, 0.3354101777076721, 0.3354101777076721], + [0.11180339753627777, 0.11180339753627777, 0.11180339753627777], + [-0.11180339753627777, -0.11180340498685837, -0.11180339753627777], + [-0.3354102075099945, -0.3354102075099945, -0.3354102075099945] + ] + ), + stress: Nx.tensor( + 2.6645352591003757e-15 + ), + n_iter: Nx.tensor( + 3 + ) + } """ deftransform fit(x, init, opts) when is_list(opts) do opts = NimbleOptions.validate!(opts, @opts_schema) @@ -379,17 +397,4 @@ defmodule Scholar.Manifold.MDS do {best, best_stress, best_iter} = mds_main_loop(x, init, key, opts) %__MODULE__{embedding: best, stress: best_stress, n_iter: best_iter} end - - # defn remove_main_diag_indices(tensor) do - # n = Nx.axis_size(tensor, 0) - - # temp = - # Nx.broadcast(Nx.s64(0), {n}) - # |> Nx.indexed_put(Nx.new_axis(0, -1), Nx.s64(1)) - # |> Nx.tile([n - 1]) - - # Nx.iota({n * (n - 1)}) + Nx.cumulative_sum(temp) - # # indices = Nx.iota({n * (n - 1)}) + Nx.cumulative_sum(temp) - # # Nx.take(Nx.flatten(tensor), indices) |> Nx.reshape({n, n - 1}) - # end end diff --git a/test/scholar/manifold/mds_test.exs b/test/scholar/manifold/mds_test.exs new file mode 100644 index 00000000..0658eff5 --- /dev/null +++ b/test/scholar/manifold/mds_test.exs @@ -0,0 +1,5 @@ +defmodule Scholar.Manifold.MDSTest do + use Scholar.Case, async: true + alias Scholar.Manifold.MDS + doctest MDS +end From b23137733f874e1a99db49f56d7829e590fe4f5b Mon Sep 17 00:00:00 2001 From: Mateusz Date: Fri, 3 Nov 2023 19:24:16 +0100 Subject: [PATCH 7/9] Fromat --- lib/scholar/linear/isotonic_regression.ex | 1 + lib/scholar/manifold/mds.ex | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/scholar/linear/isotonic_regression.ex b/lib/scholar/linear/isotonic_regression.ex index 8a9fb562..da76b825 100644 --- a/lib/scholar/linear/isotonic_regression.ex +++ b/lib/scholar/linear/isotonic_regression.ex @@ -173,6 +173,7 @@ defmodule Scholar.Linear.IsotonicRegression do false -> Nx.u8(0) end + # increasing = Nx.u8(1) fit_n(x, y, sample_weights, increasing, opts) diff --git a/lib/scholar/manifold/mds.ex b/lib/scholar/manifold/mds.ex index 879144ac..09281e02 100644 --- a/lib/scholar/manifold/mds.ex +++ b/lib/scholar/manifold/mds.ex @@ -159,8 +159,8 @@ defmodule Scholar.Manifold.MDS do dissimilarities = Distance.pairwise_euclidean(dissimilarities) {{best, best_stress, best_iter}, _} = - while {{best = x, best_stress = Nx.Constants.infinity(type), - best_iter = 0}, {n_init, dissimilarities, x, i = 0}}, + while {{best = x, best_stress = Nx.Constants.infinity(type), best_iter = 0}, + {n_init, dissimilarities, x, i = 0}}, i < n_init do {temp, stress, iter} = smacof(dissimilarities, x, opts[:max_iter], opts) From b3d8f0a4c7dbb8b4fd8be06043da121f2317e55e Mon Sep 17 00:00:00 2001 From: Mateusz Date: Tue, 7 Nov 2023 20:37:21 +0100 Subject: [PATCH 8/9] Add tests, change default param, add new preprocessing to isotonic regression --- lib/scholar/linear/isotonic_regression.ex | 96 ++++++---- lib/scholar/manifold/mds.ex | 59 +++--- test/scholar/manifold/mds_test.exs | 207 ++++++++++++++++++++++ 3 files changed, 295 insertions(+), 67 deletions(-) diff --git a/lib/scholar/linear/isotonic_regression.ex b/lib/scholar/linear/isotonic_regression.ex index da76b825..2198200a 100644 --- a/lib/scholar/linear/isotonic_regression.ex +++ b/lib/scholar/linear/isotonic_regression.ex @@ -4,6 +4,9 @@ defmodule Scholar.Linear.IsotonicRegression do observations by solving a convex optimization problem. It is a form of regression analysis that can be used as an alternative to polynomial regression to fit nonlinear data. + + Time complexity of isotonic regression is $O(N^2)$ where $N$ is the + number of points. """ require Nx import Nx.Defn, except: [transform: 2] @@ -38,7 +41,7 @@ defmodule Scholar.Linear.IsotonicRegression do y_thresholds: Nx.Tensor.t(), increasing: Nx.Tensor.t(), cutoff_index: Nx.Tensor.t(), - preprocess: Tuple.t() | Scholar.Interpolation.Linear.t() + preprocess: tuple() | Scholar.Interpolation.Linear.t() } opts = [ @@ -174,8 +177,6 @@ defmodule Scholar.Linear.IsotonicRegression do Nx.u8(0) end - # increasing = Nx.u8(1) - fit_n(x, y, sample_weights, increasing, opts) end @@ -206,12 +207,12 @@ defmodule Scholar.Linear.IsotonicRegression do iex> Scholar.Linear.IsotonicRegression.predict(model, to_predict) #Nx.Tensor< f32[10] - [1.0, 1.6666667461395264, 2.3333334922790527, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] + [1.0, 1.6666667461395264, 2.3333332538604736, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] > """ defn predict(model, x) do check_input_shape(x) - # check_preprocess(model) + check_preprocess(model) x = Nx.flatten(x) x = Nx.clip(x, model.x_min, model.x_max) @@ -261,43 +262,61 @@ defmodule Scholar.Linear.IsotonicRegression do ] ), x: Nx.tensor( - [1.0, 4.0, 7.0, 9.0, 10.0] + [1.0, 4.0, 7.0, 9.0, 10.0, 11.0] ) } } """ - defn preprocess(model) do - # cutoff = Nx.to_number(model.cutoff_index) - # x = model.x_thresholds[0..cutoff] - # y = model.y_thresholds[0..cutoff] - - # {x, y} = - # if trim_duplicates do - # keep_mask = - # Nx.logical_or( - # Nx.not_equal(y[1..-2//1], y[0..-3//1]), - # Nx.not_equal(y[1..-2//1], y[2..-1//1]) - # ) - - # keep_mask = Nx.concatenate([Nx.tensor([1]), keep_mask, Nx.tensor([1])]) - - # indices = - # Nx.iota({Nx.axis_size(y, 0)}) - # |> Nx.add(1) - # |> Nx.multiply(keep_mask) - # |> Nx.to_flat_list() - - # indices = Enum.filter(indices, fn x -> x != 0 end) |> Nx.tensor() |> Nx.subtract(1) - # x = Nx.take(x, indices) - # y = Nx.take(y, indices) - # {x, y} - # else - # {x, y} - # end - - # model = %__MODULE__{model | x_thresholds: x} - # model = %__MODULE__{model | y_thresholds: y} + def preprocess(model, trim_duplicates \\ true) do + cutoff = Nx.to_number(model.cutoff_index) + x = model.x_thresholds[0..cutoff] + y = model.y_thresholds[0..cutoff] + + {x, y} = + if trim_duplicates do + keep_mask = + Nx.logical_or( + Nx.not_equal(y[1..-2//1], y[0..-3//1]), + Nx.not_equal(y[1..-2//1], y[2..-1//1]) + ) + + keep_mask = Nx.concatenate([Nx.tensor([1]), keep_mask, Nx.tensor([1])]) + + indices = + Nx.iota({Nx.axis_size(y, 0)}) + |> Nx.add(1) + |> Nx.multiply(keep_mask) + |> Nx.to_flat_list() + + indices = Enum.filter(indices, fn x -> x != 0 end) |> Nx.tensor() |> Nx.subtract(1) + x = Nx.take(x, indices) + y = Nx.take(y, indices) + {x, y} + else + {x, y} + end + + model = %__MODULE__{model | x_thresholds: x} + model = %__MODULE__{model | y_thresholds: y} + + %__MODULE__{ + model + | preprocess: + Scholar.Interpolation.Linear.fit( + model.x_thresholds, + model.y_thresholds + ) + } + end + @doc """ + Preprocesses the `model` for prediction. + + Returns an updated `model`. This is a special version of `preprocess/1` that + does not trim duplicates so it can be used in defns. It is not recommended + to use this function directly. + """ + defn special_preprocess(model) do %__MODULE__{ model | preprocess: @@ -517,7 +536,8 @@ defmodule Scholar.Linear.IsotonicRegression do defnp check_increasing(x, y) do x = Nx.new_axis(x, -1) + y = Nx.new_axis(y, -1) model = Scholar.Linear.LinearRegression.fit(x, y) - Nx.squeeze(model.coefficients[0] >= 0) + model.coefficients[0][0] >= 0 end end diff --git a/lib/scholar/manifold/mds.ex b/lib/scholar/manifold/mds.ex index 09281e02..4d86d7e4 100644 --- a/lib/scholar/manifold/mds.ex +++ b/lib/scholar/manifold/mds.ex @@ -23,7 +23,7 @@ defmodule Scholar.Manifold.MDS do ], metric: [ type: :boolean, - default: false, + default: true, doc: ~S""" If `true`, use dissimilarities as metric distances in the embedding space. """ @@ -33,6 +33,7 @@ defmodule Scholar.Manifold.MDS do default: false, doc: ~S""" If `true`, normalize the stress by the sum of squared dissimilarities. + Only valid if `metric` is `false`. """ ], eps: [ @@ -78,6 +79,7 @@ defmodule Scholar.Manifold.MDS do metric = if opts[:metric], do: 1, else: 0 normalized_stress = if opts[:normalized_stress], do: 1, else: 0 eps = opts[:eps] + n = Nx.axis_size(dissimilarities, 0) {{x, stress, i}, _} = while {{x, _stress = Nx.Constants.infinity(Nx.type(dissimilarities)), i = 0}, @@ -86,7 +88,6 @@ defmodule Scholar.Manifold.MDS do metric, normalized_stress, eps, stop_value = 0}}, i < max_iter and not stop_value do dis = Distance.pairwise_euclidean(x) - n = Nx.axis_size(dissimilarities, 0) disparities = if metric do @@ -96,14 +97,14 @@ defmodule Scholar.Manifold.MDS do dis_flat_indices = lower_triangle_indices(dis) - n = Nx.axis_size(dis, 0) - dis_flat_w = Nx.take(dis_flat, dis_flat_indices) disparities_flat_model = - Scholar.Linear.IsotonicRegression.fit(similarities_flat_w, dis_flat_w) + Scholar.Linear.IsotonicRegression.fit(similarities_flat_w, dis_flat_w, + increasing: true + ) - model = Scholar.Linear.IsotonicRegression.preprocess(disparities_flat_model) + model = Scholar.Linear.IsotonicRegression.special_preprocess(disparities_flat_model) disparities_flat = Scholar.Linear.IsotonicRegression.predict(model, similarities_flat_w) @@ -133,7 +134,7 @@ defmodule Scholar.Manifold.MDS do ratio = disparities / dis b = -ratio b = Nx.put_diagonal(b, Nx.take_diagonal(b) + Nx.sum(ratio, axes: [1])) - x = 1.0 / n * Nx.dot(b, x) + x = Nx.dot(b, x) * (1.0 / n) dis = Nx.sum(Nx.sqrt(Nx.sum(x ** 2, axes: [1]))) @@ -209,7 +210,7 @@ defmodule Scholar.Manifold.MDS do {best, best_stress, best_iter} end - defn lower_triangle_indices(tensor) do + defnp lower_triangle_indices(tensor) do n = Nx.axis_size(tensor, 0) temp = Nx.broadcast(Nx.s64(0), {div(n * (n - 1), 2)}) @@ -249,17 +250,17 @@ defmodule Scholar.Manifold.MDS do %Scholar.Manifold.MDS{ embedding: Nx.tensor( [ - [0.040477119386196136, -0.4997042417526245], - [-0.35801631212234497, -0.09504470974206924], - [-0.08517580479383469, 0.35293734073638916], - [0.42080432176589966, 0.23617777228355408] + [16.3013916015625, -3.444634437561035], + [5.866805553436279, 1.6378790140151978], + [-5.487184524536133, 0.5837264657020569], + [-16.681013107299805, 1.2230290174484253] ] ), stress: Nx.tensor( - 0.0016479993937537074 + 0.3993147909641266 ), n_iter: Nx.tensor( - 19 + 23 ) } """ @@ -288,17 +289,17 @@ defmodule Scholar.Manifold.MDS do %Scholar.Manifold.MDS{ embedding: Nx.tensor( [ - [0.040477119386196136, -0.4997042417526245], - [-0.35801631212234497, -0.09504470974206924], - [-0.08517580479383469, 0.35293734073638916], - [0.42080432176589966, 0.23617777228355408] + [16.3013916015625, -3.444634437561035], + [5.866805553436279, 1.6378790140151978], + [-5.487184524536133, 0.5837264657020569], + [-16.681013107299805, 1.2230290174484253] ] ), stress: Nx.tensor( - 0.0016479993937537074 + 0.3993147909641266 ), n_iter: Nx.tensor( - 19 + 23 ) } """ @@ -333,10 +334,10 @@ defmodule Scholar.Manifold.MDS do %Scholar.Manifold.MDS{ embedding: Nx.tensor( [ - [0.41079193353652954, 0.41079193353652954], - [0.1369306445121765, 0.1369306445121765], - [-0.1369306445121765, -0.1369306445121765], - [-0.41079193353652954, -0.41079193353652954] + [11.858541488647461, 11.858541488647461], + [3.9528470039367676, 3.9528470039367676], + [-3.9528470039367676, -3.9528470039367676], + [-11.858541488647461, -11.858541488647461] ] ), stress: Nx.tensor( @@ -373,14 +374,14 @@ defmodule Scholar.Manifold.MDS do %Scholar.Manifold.MDS{ embedding: Nx.tensor( [ - [0.3354101777076721, 0.3354101777076721, 0.3354101777076721], - [0.11180339753627777, 0.11180339753627777, 0.11180339753627777], - [-0.11180339753627777, -0.11180340498685837, -0.11180339753627777], - [-0.3354102075099945, -0.3354102075099945, -0.3354102075099945] + [9.682458877563477, 9.682458877563477, 9.682458877563477], + [3.2274858951568604, 3.2274858951568604, 3.2274858951568604], + [-3.2274863719940186, -3.2274863719940186, -3.2274863719940186], + [-9.682458877563477, -9.682458877563477, -9.682458877563477] ] ), stress: Nx.tensor( - 2.6645352591003757e-15 + 9.094947017729282e-12 ), n_iter: Nx.tensor( 3 diff --git a/test/scholar/manifold/mds_test.exs b/test/scholar/manifold/mds_test.exs index 0658eff5..87d5cd93 100644 --- a/test/scholar/manifold/mds_test.exs +++ b/test/scholar/manifold/mds_test.exs @@ -2,4 +2,211 @@ defmodule Scholar.Manifold.MDSTest do use Scholar.Case, async: true alias Scholar.Manifold.MDS doctest MDS + + def x() do + Nx.iota({10, 50}) + end + + def key() do + Nx.Random.key(42) + end + + test "non-default num_components" do + key = key() + x = x() + model = EXLA.jit_apply(&MDS.fit(&1, num_components: 5, key: &2), [x, key]) + + assert_all_close( + model.embedding, + Nx.tensor([ + [ + 57.28269577026367, + -678.6760864257812, + 811.1503295898438, + -251.1714324951172, + 1156.7987060546875 + ], + [ + 7.623606204986572, + -544.2373046875, + 604.0946655273438, + -225.99559020996094, + 903.2800903320312 + ], + [ + -7.334737300872803, + -429.81671142578125, + 402.1512145996094, + -163.3682861328125, + 639.9016723632812 + ], + [ + 13.86670207977295, + -296.5096435546875, + 223.15061950683594, + -84.07274627685547, + 374.4827575683594 + ], + [ + 38.73623275756836, + -134.54620361328125, + 50.4241943359375, + -38.010799407958984, + 113.90003967285156 + ], + [ + 18.940887451171875, + 30.962879180908203, + -127.7795639038086, + 45.001678466796875, + -131.29234313964844 + ], + [ + 18.05344581604004, + 222.0098114013672, + -292.34197998046875, + 86.87554168701172, + -378.58544921875 + ], + [ + -3.060556173324585, + 429.6268005371094, + -436.2151794433594, + 146.84103393554688, + -621.5556640625 + ], + [ + -55.395423889160156, + 613.6642456054688, + -565.1470947265625, + 225.3615264892578, + -882.4739379882812 + ], + [ + -88.7128677368164, + 787.5221557617188, + -669.4872436523438, + 258.53912353515625, + -1174.455810546875 + ] + ]) + ) + + assert_all_close(model.stress, 698.4426879882812) + assert_all_close(model.n_iter, Nx.tensor(152)) + end + + test "non-default metric" do + key = key() + x = x() + model = EXLA.jit_apply(&MDS.fit(&1, metric: false, key: &2), [x, key]) + + assert_all_close( + model.embedding, + Nx.tensor([ + [-0.23465712368488312, 0.6921732425689697], + [-0.3380763530731201, 0.4378605782985687], + [-0.15237200260162354, 0.26230522990226746], + [0.09990488737821579, 0.2603200674057007], + [0.15598554909229279, 0.03315458819270134], + [0.41043558716773987, 0.13559512794017792], + [0.24686546623706818, -0.24366283416748047], + [0.1395486444234848, -0.4151153564453125], + [-0.07875102013349533, -0.530768096446991], + [-0.21976199746131897, -0.6417303681373596] + ]) + ) + + assert_all_close(model.stress, 0.1966342180967331) + assert_all_close(model.n_iter, Nx.tensor(38)) + end + + test "option normalized_stress with metric set to false" do + key = key() + x = x() + + model = + EXLA.jit_apply(&MDS.fit(&1, metric: false, key: &2, normalized_stress: true), [x, key]) + + assert_all_close( + model.embedding, + Nx.tensor([ + [-0.17997372150421143, 0.7225074768066406], + [-0.3138044774532318, 0.3934117257595062], + [-0.0900932177901268, 0.19507794082164764], + [0.2092301845550537, 0.295993834733963], + [0.24611115455627441, 0.0019988759886473417], + [0.4951189458370209, 0.08028026670217514], + [0.12963972985744476, -0.3193856179714203], + [0.19291982054710388, -0.44776636362075806], + [-0.2770233750343323, -0.4146113097667694], + [-0.3582141101360321, -0.5444929003715515] + ]) + ) + + assert_all_close(model.stress, 0.13638167083263397) + assert_all_close(model.n_iter, Nx.tensor(20)) + end + + test "epsilon set to a smaller then default value" do + key = key() + x = x() + + model = + EXLA.jit_apply(&MDS.fit(&1, metric: false, key: &2, normalized_stress: true, eps: 1.0e-4), [ + x, + key + ]) + + assert_all_close( + model.embedding, + Nx.tensor([ + [-0.35130712389945984, 0.6258886456489563], + [-0.4270354211330414, 0.4396686255931854], + [-0.30671024322509766, 0.2688262462615967], + [-0.12758131325244904, 0.18020282685756683], + [-0.05403336510062218, 0.01867777667939663], + [0.17203716933727264, 0.044468216598033905], + [0.2791652977466583, -0.09437420219182968], + [0.2869844138622284, -0.3071449398994446], + [0.2768166959285736, -0.49931082129478455], + [0.2563020884990692, -0.678329348564148] + ]) + ) + + # as expected smaller value of stress (loss) and bigger number of iterations + assert_all_close(model.stress, 0.03167537972331047) + assert_all_close(model.n_iter, Nx.tensor(116)) + end + + test "smaller max_iter value (100)" do + key = key() + x = x() + + model = + EXLA.jit_apply( + &MDS.fit(&1, metric: false, key: &2, normalized_stress: true, eps: 1.0e-4, max_iter: 100), + [x, key] + ) + + assert_all_close( + model.embedding, + Nx.tensor([ + [-0.34521010518074036, 0.6345276236534119], + [-0.4247266352176666, 0.43899187445640564], + [-0.2903931438922882, 0.2677172124385834], + [-0.09941618889570236, 0.19031266868114471], + [-0.03261081129312515, 0.019261524081230164], + [0.2049849033355713, 0.07233452051877975], + [0.29381951689720154, -0.09455471485853195], + [0.27441200613975525, -0.320201575756073], + [0.2368578165769577, -0.5156480669975281], + [0.19262047111988068, -0.6936381459236145] + ]) + ) + + # same params as in previous test, but smaller number of iterations, cupped on 100 + assert_all_close(model.stress, 0.040396787226200104) + assert_all_close(model.n_iter, Nx.tensor(100)) + end end From bab1a74c1d521deaa15e8068608265a68ca1bb48 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Tue, 7 Nov 2023 20:52:32 +0100 Subject: [PATCH 9/9] Remove deprecated covariance --- lib/scholar/covariance.ex | 179 -------------------------------------- 1 file changed, 179 deletions(-) delete mode 100644 lib/scholar/covariance.ex diff --git a/lib/scholar/covariance.ex b/lib/scholar/covariance.ex deleted file mode 100644 index f1ffc37c..00000000 --- a/lib/scholar/covariance.ex +++ /dev/null @@ -1,179 +0,0 @@ -defmodule Scholar.Covariance do - @moduledoc ~S""" - Algorithms to estimate the covariance of features given a set of points. - """ - import Nx.Defn - - opts = [ - center: [ - type: :boolean, - default: true, - doc: """ - If `true`, data will be centered before computation. - If `false`, data will not be centered before computation. - Useful when working with data whose mean is almost, but not exactly zero. - """ - ], - biased: [ - type: :boolean, - default: true, - doc: """ - If `true`, the matrix will be computed using biased covariation. If `false`, - algorithm uses unbiased covariation. - """ - ] - ] - - @opts_schema NimbleOptions.new!(opts) - - @deprecated "Use Nx.convariance/2 instead" - @doc """ - Computes covariance matrix for sample inputs `x`. - - The value on the position $Cov_{ij}$ in the $Cov$ matrix is calculated using the formula: - - #{~S''' - $$ Cov(X\_i, X\_j) = \frac{\sum\_{k}\left(x\_k - - \bar{x}\right)\left(y\_k - \bar{y}\right)}{N - 1} - $$ - Where: - * $X_i$ is a $i$th row of input - - * $x_k$ is a $k$th value of $X_i$ - - * $y_k$ is a $k$th value of $X_j$ - - * $\bar{x}$ is the mean of $X_i$ - - * $\bar{y}$ is the mean of $X_j$ - - * $N$ is the number of samples - - This is a non-biased version of covariance. - The biased version has $N$ in denominator instead of $N - 1$. - '''} - - ## Options - - #{NimbleOptions.docs(@opts_schema)} - - ## Example - - iex> Scholar.Covariance.covariance_matrix(Nx.tensor([[3, 6, 5], [26, 75, 3], [23, 4, 1]])) - #Nx.Tensor< - f32[3][3] - [ - [104.22222137451172, 195.5555419921875, -13.333333015441895], - [195.5555419921875, 1089.5555419921875, 1.3333333730697632], - [-13.333333015441895, 1.3333333730697632, 2.6666667461395264] - ] - > - - iex> Scholar.Covariance.covariance_matrix(Nx.tensor([[3, 6], [2, 3], [7, 9], [5, 3]])) - #Nx.Tensor< - f32[2][2] - [ - [3.6875, 3.1875], - [3.1875, 6.1875] - ] - > - - iex> Scholar.Covariance.covariance_matrix(Nx.tensor([[3, 6, 5], [26, 75, 3], [23, 4, 1]]), - ...> biased: false - ...> ) - #Nx.Tensor< - f32[3][3] - [ - [156.3333282470703, 293.33331298828125, -20.0], - [293.33331298828125, 1634.333251953125, 2.0], - [-20.0, 2.0, 4.0] - ] - > - """ - deftransform covariance_matrix(x, opts \\ []) do - covariance_matrix_n(x, NimbleOptions.validate!(opts, @opts_schema)) - end - - defnp covariance_matrix_n(x, opts) do - if Nx.rank(x) != 2 do - raise ArgumentError, "expected data to have rank equal 2, got: #{inspect(Nx.rank(x))}" - end - - num_samples = Nx.axis_size(x, 0) - x = if opts[:center], do: x - Nx.mean(x, axes: [0]), else: x - matrix = Nx.dot(x, [0], x, [0]) - - if opts[:biased] do - matrix / num_samples - else - matrix / (num_samples - 1) - end - end - - @deprecated "Use Scholar.Stats.correlation_matrix/2 instead" - @doc """ - Computes correlation matrix for sample inputs `x`. - - The value on the position $Corr_{ij}$ in the $Corr$ matrix is calculated using the formula: - #{~S''' - $$ Corr(X\_i, X\_j) = \frac{Cov(X\_i, X\_j)}{\sqrt{Cov(X\_i, X\_i)Cov(X\_j, X\_j)}} $$ - Where: - * $X_i$ is a $i$th row of input - - * $Cov(X\_i, X\_j)$ is covariance between features $X_i$ and $X_j$ - '''} - - ## Options - - #{NimbleOptions.docs(@opts_schema)} - - ## Example - - iex> Scholar.Covariance.correlation_matrix(Nx.tensor([[3, 6, 5], [26, 75, 3], [23, 4, 1]])) - #Nx.Tensor< - f32[3][3] - [ - [1.0, 0.580316960811615, -0.7997867465019226], - [0.580316960811615, 1.0, 0.024736011400818825], - [-0.7997867465019226, 0.024736011400818825, 1.0] - ] - > - - iex> Scholar.Covariance.correlation_matrix(Nx.tensor([[3, 6], [2, 3], [7, 9], [5, 3]])) - #Nx.Tensor< - f32[2][2] - [ - [1.0, 0.6673083305358887], - [0.6673083305358887, 1.0] - ] - > - - iex> Scholar.Covariance.correlation_matrix(Nx.tensor([[3, 6, 5], [26, 75, 3], [23, 4, 1]]), - ...> biased: false - ...> ) - #Nx.Tensor< - f32[3][3] - [ - [1.0, 0.5803170204162598, -0.7997867465019226], - [0.5803170204162598, 1.0, 0.024736013263463974], - [-0.7997867465019226, 0.024736013263463974, 1.0] - ] - > - """ - - deftransform correlation_matrix(x, opts \\ []) do - correlation_matrix_n(x, NimbleOptions.validate!(opts, @opts_schema)) - end - - defnp correlation_matrix_n(x, opts) do - variances = - if opts[:biased] do - Nx.variance(x, axes: [0]) - else - Nx.variance(x, axes: [0], ddof: 1) - end - - Scholar.Covariance.covariance_matrix(x, opts) / - Nx.sqrt(Nx.new_axis(variances, 1) * Nx.new_axis(variances, 0)) - end -end