diff --git a/examples/jansen_rit_liu_et_al.jl b/examples/jansen_rit_liu_et_al.jl new file mode 100644 index 00000000..555a7199 --- /dev/null +++ b/examples/jansen_rit_liu_et_al.jl @@ -0,0 +1,99 @@ +# A basic example using delayed differential equations to introduce optional delays in interregional connections. +# The system being built here is the same as in Liu et al. (2020). DOI: 10.1016/j.neunet.2019.12.021. + +using Neuroblox # Core functionality +using DifferentialEquations # Needed for solver +using MetaGraphs # Set up graph of systems + +τ_factor = 1000 #needed because the paper units were in seconds, and we need ms to be consistent + +# Create Jansen-Rit blocks with the same parameters as the paper and store them in a list +@named Str = JansenRit(τ=0.0022*τ_factor, H=20, λ=300, r=0.3) +@named GPE = JansenRit(τ=0.04*τ_factor, cortical=false) # all default subcortical except τ +@named STN = JansenRit(τ=0.01*τ_factor, H=20, λ=500, r=0.1) +@named GPI = JansenRit(cortical=false) # default parameters subcortical Jansen Rit blox +@named Th = JansenRit(τ=0.002*τ_factor, H=10, λ=20, r=5) +@named EI = JansenRit(τ=0.01*τ_factor, H=20, λ=5, r=5) +@named PY = JansenRit(cortical=true) # default parameters cortical Jansen Rit blox +@named II = JansenRit(τ=2.0*τ_factor, H=60, λ=5, r=5) +blox = [Str, GPE, STN, GPI, Th, EI, PY, II] + +# test graphs +g = MetaDiGraph() +add_blox!.(Ref(g), blox) + +# Store parameters to be passed later on +params = @parameters C_Cor=60 C_BG_Th=60 C_Cor_BG_Th=5 C_BG_Th_Cor=5 + +# Add the edges as specified in Table 2 of Liu et al. +# This is a subset of the edges selected to run a shorter version of the model. +# If you want to add more edges in a batch, you can create an adjacency matrix and then call create_adjacency_edges!(g, adj_matrix). +add_edge!(g, 2, 1, Dict(:weight => -0.5*C_BG_Th)) +add_edge!(g, 2, 2, Dict(:weight => -0.5*C_BG_Th)) +add_edge!(g, 2, 3, Dict(:weight => C_BG_Th)) +add_edge!(g, 3, 2, Dict(:weight => -0.5*C_BG_Th)) +add_edge!(g, 3, 7, Dict(:weight => C_Cor_BG_Th)) +add_edge!(g, 4, 2, Dict(:weight => -0.5*C_BG_Th)) +add_edge!(g, 4, 3, Dict(:weight => C_BG_Th)) +add_edge!(g, 5, 4, Dict(:weight => -0.5*C_BG_Th)) +add_edge!(g, 6, 5, Dict(:weight => C_BG_Th_Cor)) +add_edge!(g, 6, 7, Dict(:weight => 6*C_Cor)) +add_edge!(g, 7, 6, Dict(:weight => 4.8*C_Cor)) +add_edge!(g, 7, 8, Dict(:weight => -1.5*C_Cor)) +add_edge!(g, 8, 7, Dict(:weight => 1.5*C_Cor)) +add_edge!(g, 8, 8, Dict(:weight => 3.3*C_Cor)) + +# Create the ODE system. This will have some warnings as delays are set to 0 - ignore those for now. +@named final_system = system_from_graph(g, params) +final_system_sys = structural_simplify(final_system) + +# Collect the graph delays and create a DDEProblem. This will all be zero in this case. +final_delays = graph_delays(g) +sim_dur = 1000.0 # Simulate for 1 second +prob = DDEProblem(final_system_sys, + [], + (0.0, sim_dur), + constant_lags = final_delays) + +# Select the algorihm. MethodOfSteps will return the same as Vern7() in this case because there are no non-zero delays, but is required since this is a DDEProblem. +alg = MethodOfSteps(Vern7()) +sol_dde_no_delays = solve(prob, alg, saveat=1) + + +# Example of delayed connections + +# First, recreate the graph to remove previous connections +g = MetaDiGraph() +add_blox!.(Ref(g), blox) + +# Now, add the edges with the specified delays. Again, if you prefer, there's a version using adjacency and delay matrices to assign all at once. +add_edge!(g, 2, 1, Dict(:weight => -0.5*60, :delay => 1)) +add_edge!(g, 2, 2, Dict(:weight => -0.5*60, :delay => 2)) +add_edge!(g, 2, 3, Dict(:weight => 60, :delay => 1)) +add_edge!(g, 3, 2, Dict(:weight => -0.5*60, :delay => 1)) +add_edge!(g, 3, 7, Dict(:weight => 5, :delay => 1)) +add_edge!(g, 4, 2, Dict(:weight => -0.5*60, :delay => 4)) +add_edge!(g, 4, 3, Dict(:weight => 60, :delay => 1)) +add_edge!(g, 5, 4, Dict(:weight => -0.5*60, :delay => 2)) +add_edge!(g, 6, 5, Dict(:weight => 5, :delay => 1)) +add_edge!(g, 6, 7, Dict(:weight => 6*60, :delay => 2)) +add_edge!(g, 7, 6, Dict(:weight => 4.8*60, :delay => 3)) +add_edge!(g, 7, 8, Dict(:weight => -1.5*60, :delay => 1)) +add_edge!(g, 8, 7, Dict(:weight => 1.5*60, :delay => 4)) +add_edge!(g, 8, 8, Dict(:weight => 3.3*60, :delay => 1)) + +# Now you can run the same code as above, but it will handle the delays automatically. +@named final_system = system_from_graph(g, params) +final_system_sys = structural_simplify(final_system) + +# Collect the graph delays and create a DDEProblem. +final_delays = graph_delays(g) +sim_dur = 1000.0 # Simulate for 1 second +prob = DDEProblem(final_system_sys, + [], + (0.0, sim_dur), + constant_lags = final_delays) + +# Select the algorihm. MethodOfSteps is now needed because there are non-zero delays. +alg = MethodOfSteps(Vern7()) +sol_dde_with_delays = solve(prob, alg, saveat=1) \ No newline at end of file diff --git a/examples/larter_breakspear/whole_brain_larter_breakspear.jl b/examples/larter_breakspear/whole_brain_larter_breakspear.jl new file mode 100644 index 00000000..f9a26550 --- /dev/null +++ b/examples/larter_breakspear/whole_brain_larter_breakspear.jl @@ -0,0 +1,137 @@ +# This is a tutorial for how to run a whole-brain simulation using the Larter-Breakspear model. +# This approach is the same as that taken in Antal et al. (2023) and van Nieuwenhuizen et al. (2023), with the exception that a different DTI dataset is used. +# The data used in those papers is available upon request from the authors where it was validated in Endo et al. (2020). +# As we'd like to make this tutorial as accessible as possible, we'll use a different dataset that is publicly available. +# The dataset used here is from Rosen and Halgren (2021) and is available at https://zenodo.org/records/10150880. + +# References: +# 1. Antal et al. (2023). DOI: 10.48550/arXiv.2303.13746. +# 2. van Nieuwenhuizen et al. (2023). DOI: 10.1101/2023.05.10.540257. +# 3. Endo et al. (2020). DOI: 10.3389/fncom.2019.00091. +# 4. Rosen and Halgren (2021). DOI: 10.1523/ENEURO.0416-20.2020. + +using Neuroblox # Core functionality +using CSV, MAT, DataFrames # Import/export data functions +using MetaGraphs # Set up graph of systems +using DifferentialEquations # Needed for solver TODO: make a new simulate that can handle system_from_graph +using StatsBase # Needed for rescaling the DTI matrix +#using Plots # Only uncomment if you actually want to do plotting, otherwise save yourself the overhead + +# A note on the data: this is a 360-region parcellation of the brain. For this example, we'll extract and rescale the left hemisphere default mode network. +# If you want a true rescaling method, you'd need to do some additional corrections (e.g., volume correction) for the number of streamlines computed. +# For this tutorial though, the rescaling is approximate to just give us a working example. +# See Endo et al. for more details on how to do a better DTI rescaling. + +# Load the data +# As mentioned above, this data is from Rosen and Halgren (2021). You can download the original at https://zenodo.org/records/10150880. +# For convenience, we have included the average connectivity matrix (log scaled probability from streamline counts) available from that link within this repository. +data = matread("averageConnectivity_Fpt.mat") + +# Extract the data +adj = data["Fpt"] +adj[findall(isnan, adj)] .= 0 # Replace NaNs with 0s +adj = StatsBase.transform(StatsBase.fit(UnitRangeTransform, adj, dims=2), adj) # Equivalent of Matlab rescale function. Resamples to unit range. + +# For the purpose of this simulation, we want something that will run relatively quickly. +# In this parcellation, there are 40 regions per hemisphere in the default mode network, so we'll extract the left hemisphere DMN. +# Original indices with networks are listed in allTables.xlsx at the same download link from the Rosen and Halgren (2021) dataset listed above. +left_indices = [30, 31, 32, 33, 34, 35, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 76, 87, 88, 90, 93, 94, 118, 119, 120, 126, 130, 131, 132, 134, 150, 151, 155, 161, 162, 164, 165, 176, 177] +adj = adj[left_indices, left_indices] + +# Extract the names of the regions +names = data["parcelIDs"] +names = names[left_indices] + +# Plot the connectivity matrix +# This is optional but gives you a sense of what the overall connectivity looks like. +# If you want to do plotting remember to uncomment the Plots import above. +#heatmap(adj) + +# Number of regions in this particular dataset +N = 40 + +# Create list of all blocks +blocks = Vector{LarterBreakspear}(undef, N) + +for i in 1:N + # Since we're creating an ODESystem inside of the blox, we need to use a symbolic name + # Why the extra noise in connectivity? The DTI scaling is arbitrary in this demo, so adding stochasticity to this parameter helps things from just immediately synchronizing. + blocks[i] = LarterBreakspear(name=Symbol(names[i]), C=rand()*0.3) +end + +# Create a graph using the blocks and the DTI defined adjacency matrix +g = MetaDiGraph() +add_blox!.(Ref(g), blocks) +create_adjacency_edges!(g, adj) + +# Create the ODE system +# This may take a minute, as it is compiling the whole system +@named sys = system_from_graph(g) +sys = structural_simplify(sys) + +# Simulate for 100ms +sim_dur = 1e3 + +# Create random initial conditions because uniform initial conditions are no bueno. There are 3 states per node. +v₀ = 0.9*rand(N) .- 0.6 +z₀ = 0.9*rand(N) .- 0.9 +w₀ = 0.4*rand(N) .+ 0.11 +u₀ = [v₀ z₀ w₀]'[:] # Trick to interleave vectors based on column-major ordering + +# Create the ODEProblem to run all the final system of equations +prob = ODEProblem(sys, u₀, (0.0, sim_dur), []) + +# Run the simulation and save every 2ms +@time sol = solve(prob, AutoVern7(Rodas4()), saveat=2) + +# Visualizing the results +# Again, to use any of these commands be sure to uncomment the Plots import above. +# This plot shows all of the states computed. As such, it is very messy, but useful to make sure that no out-of-bounds behavior (due to bad connectivity) occured. +# plot(sol) + +# More interesting is to choose the plot from a specific region and see the results. Here, we'll plot a specific region's average voltage. +# First, confirm the region (left orbitofrontal cortex) +states(sys)[64] # Should give L_OFC₊V(t) +# Next plot just this variable +#plot(sol, idxs=(64)) + +# Suppose we want to run a simulation with different initial conditions. We can do that by remaking the problem to avoid having to recompile the entire system. +# For example, let's say we want to run the simulation with a different initial condition for the voltage. +v₀ = 0.9*rand(N) .- 0.61 +z₀ = 0.9*rand(N) .- 0.89 +w₀ = 0.4*rand(N) .+ 0.1 +u₀ = [v₀ z₀ w₀]'[:] # Trick to interleave vectors based on column-major ordering + +# Now remake and re-solve +prob2 = remake(prob; u0=u₀) +@time sol2 = solve(prob2, AutoVern7(Rodas4()), saveat=2) + +# Running a longer simulation +# Now that we've confirmed this runs, let's go ahead and do a 10min (600s) simulation. +# Takes <1min to simulate this run. If you save more frequently it'll take longer to run, but you'll have more data to work with. +# Remember to update the dt below for the BOLD signal if you don't save at the same frequency. +# If you find this is taking an *excessively* long time (i.e., more than a couple minutes), you likely happened upon a parameter set that has put you into a very stiff area. +# In that case, you can try to re-run the simulation with a different initial condition or parameter set. +# In a real study, you'd allow even these long runs to finish, but for the sake of this tutorial we'll just stop it early. +sim_dur = 6e5 +prob = remake(prob; tspan=(0.0, sim_dur)) +@time sol = solve(prob, AutoVern7(Rodas4()), saveat=2) + +# Instead of plotting the data, let's save it out to a CSV file for later analysis +CSV.write("example_output.csv", DataFrame(sol)) + +# You should see a noticeable difference in speed compared to the first time, and notice you save the overhead of structural_simplify. + +# Now let's do a simulation that creates an fMRI signal out of the neural simulation run above. +# This example will use the Balloon model with slightly adjusted parameters - see Endo et al. for details. + +TR = 800 # Desired repetition time (TR) in ms +dt = 2 # Time step of the simulation in ms +bold = boldsignal_endo_balloon(sol.t/1000, sol[1:3:end, :], TR, dt) # Note this returns the signal in units of TR + +# Remember that the BOLD signal takes a while to equilibrate, so drop the first 90 seconds of the signal. +omit_idx = Int(round(90/(TR/1000))) +bold = bold[:, omit_idx:end] + +# Plot an example region to get a sense of what the BOLD signal looks like +# plot(bold[1, :]) \ No newline at end of file diff --git a/examples/wholebrainWC/DATA/brainamp.loc b/examples/wholebrainWC/DATA/brainamp.loc deleted file mode 100644 index b493cc6b..00000000 --- a/examples/wholebrainWC/DATA/brainamp.loc +++ /dev/null @@ -1,63 +0,0 @@ -1 -18 0.51111 Fp1 -2 18 0.51111 Fp2 -3 -39 0.33333 F3 -4 39 0.33333 F4 -5 -90 0.25556 C3 -6 90 0.25556 C4 -7 -141 0.33333 P3 -8 141 0.33333 P4 -9 -162 0.51111 O1 -10 162 0.51111 O2 -11 -54 0.51111 F7 -12 54 0.51111 F8 -13 -90 0.51111 T7 -14 90 0.51111 T8 -15 -126 0.51111 P7 -16 126 0.51111 P8 -17 0 0.25556 Fz -18 90 0 Cz -19 180 0.25556 Pz -20 180 0.51111 Oz -21 -45 0.17778 FC1 -22 45 0.17778 FC2 -23 -135 0.17778 CP1 -24 135 0.17778 CP2 -25 -69 0.39444 FC5 -26 69 0.39444 FC6 -27 -111 0.39444 CP5 -28 111 0.39444 CP6 -29 -72 0.63889 FT9 -30 72 0.63889 FT10 -31 -108 0.63889 TP9 -32 108 0.63889 TP10 -33 -22 0.27778 F1 -34 22 0.27778 F2 -35 -90 0.12778 C1 -36 90 0.12778 C2 -37 -158 0.27778 P1 -38 158 0.27778 P2 -39 -23 0.41111 AF3 -40 23 0.41111 AF4 -41 -62 0.27778 FC3 -42 62 0.27778 FC4 -43 -118 0.27778 CP3 -44 118 0.27778 CP4 -45 -157 0.41111 PO3 -46 157 0.41111 PO4 -47 -49 0.41667 F5 -48 49 0.41667 F6 -49 -90 0.38333 C5 -50 90 0.38333 C6 -51 -131 0.41667 P5 -52 131 0.41667 P6 -53 -38 0.51111 AF7 -54 38 0.51111 AF8 -55 -72 0.51111 FT7 -56 72 0.51111 FT8 -57 -108 0.51111 TP7 -58 108 0.51111 TP8 -59 -144 0.51111 PO7 -60 144 0.51111 PO8 -61 0 0.38333 AFz -62 180 0.12778 CPz -63 180 0.38333 POz \ No newline at end of file diff --git a/examples/wholebrainWC/DATA/eeg_chanloc.mat b/examples/wholebrainWC/DATA/eeg_chanloc.mat deleted file mode 100644 index 9364348c..00000000 Binary files a/examples/wholebrainWC/DATA/eeg_chanloc.mat and /dev/null differ diff --git a/examples/wholebrainWC/DATA/empirical_microstates.mat b/examples/wholebrainWC/DATA/empirical_microstates.mat deleted file mode 100644 index 6139ccce..00000000 Binary files a/examples/wholebrainWC/DATA/empirical_microstates.mat and /dev/null differ diff --git a/examples/wholebrainWC/DATA/mean_empirical_functional_connectivity.mat b/examples/wholebrainWC/DATA/mean_empirical_functional_connectivity.mat deleted file mode 100644 index d94d6eb5..00000000 Binary files a/examples/wholebrainWC/DATA/mean_empirical_functional_connectivity.mat and /dev/null differ diff --git a/examples/wholebrainWC/DATA/mean_leadfield_svd.mat b/examples/wholebrainWC/DATA/mean_leadfield_svd.mat deleted file mode 100644 index 8c5d35e3..00000000 Binary files a/examples/wholebrainWC/DATA/mean_leadfield_svd.mat and /dev/null differ diff --git a/examples/wholebrainWC/DATA/mean_structural_connectivity.mat b/examples/wholebrainWC/DATA/mean_structural_connectivity.mat deleted file mode 100644 index 480e2218..00000000 Binary files a/examples/wholebrainWC/DATA/mean_structural_connectivity.mat and /dev/null differ diff --git a/examples/wholebrainWC/Project.toml b/examples/wholebrainWC/Project.toml deleted file mode 100644 index 2b2495c9..00000000 --- a/examples/wholebrainWC/Project.toml +++ /dev/null @@ -1,10 +0,0 @@ -[deps] -CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" -LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" -MAT = "23992714-dd62-5051-b70f-ba57cb901cac" -MetaGraphs = "626554b9-1ddb-594c-aa3c-2596fe9399a5" -Neuroblox = "769b91e5-4c60-41ee-bfae-153c84203cb2" -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" diff --git a/examples/wholebrainWC/connectivity_96/areas.txt b/examples/wholebrainWC/connectivity_96/areas.txt deleted file mode 100644 index f755772f..00000000 --- a/examples/wholebrainWC/connectivity_96/areas.txt +++ /dev/null @@ -1,96 +0,0 @@ - 3.3106483e+03 - 8.0458529e+03 - 6.9618231e+02 - 1.9739193e+03 - 1.0341594e+03 - 2.2295400e+03 - 2.1620802e+03 - 1.9730447e+03 - 7.5186205e+02 - 1.4413142e+03 - 6.6223273e+02 - 3.9851836e+03 - 1.4989436e+03 - 2.2737392e+03 - 1.3314346e+03 - 1.7072077e+03 - 8.2105051e+02 - 2.0281819e+03 - 1.9958510e+03 - 1.1458539e+03 - 7.0236088e+02 - 3.4799446e+03 - 2.5012464e+03 - 2.4069852e+03 - 1.4767574e+03 - 7.5472547e+02 - 2.3396232e+03 - 3.7893705e+03 - 1.5114071e+03 - 4.0638359e+03 - 2.4497384e+02 - 3.5459302e+03 - 4.5515081e+03 - 9.7920289e+02 - 9.1954887e+02 - 1.7705557e+03 - 1.2857267e+03 - 8.5359190e+02 - 1.8859106e+03 - 1.4781911e+03 - 9.9181814e+02 - 0.0000000e+00 - 0.0000000e+00 - 0.0000000e+00 - 0.0000000e+00 - 0.0000000e+00 - 0.0000000e+00 - 0.0000000e+00 - 3.2923455e+03 - 8.3424532e+03 - 7.7243318e+02 - 2.1179635e+03 - 1.0570599e+03 - 2.0356497e+03 - 2.1498050e+03 - 1.9703127e+03 - 6.3812861e+02 - 1.0662421e+03 - 6.4970746e+02 - 4.0281095e+03 - 1.5037374e+03 - 2.2085162e+03 - 1.1855909e+03 - 1.9552541e+03 - 8.0844537e+02 - 2.2294491e+03 - 1.8746843e+03 - 1.2442520e+03 - 8.1365011e+02 - 3.6025734e+03 - 2.4821369e+03 - 2.5023220e+03 - 1.3994776e+03 - 7.0036063e+02 - 2.1914892e+03 - 3.8489185e+03 - 1.5077860e+03 - 4.5250197e+03 - 2.3234962e+02 - 3.3782580e+03 - 4.5659269e+03 - 9.6330780e+02 - 8.1473444e+02 - 1.8561484e+03 - 1.1406765e+03 - 9.1005852e+02 - 1.8034139e+03 - 1.4595088e+03 - 1.1245761e+03 - 0.0000000e+00 - 0.0000000e+00 - 0.0000000e+00 - 0.0000000e+00 - 0.0000000e+00 - 0.0000000e+00 - 0.0000000e+00 diff --git a/examples/wholebrainWC/connectivity_96/average_orientations.txt b/examples/wholebrainWC/connectivity_96/average_orientations.txt deleted file mode 100644 index d6f15741..00000000 --- a/examples/wholebrainWC/connectivity_96/average_orientations.txt +++ /dev/null @@ -1,96 +0,0 @@ - -4.3542886e-01 -2.3988195e-01 -8.6767411e-01 - 9.3594447e-01 -2.4372541e-01 -2.5417684e-01 - -6.3913598e-01 -7.5594350e-02 -7.6536965e-01 - 2.3517191e-01 1.1003136e-01 -9.6570558e-01 - 6.5533931e-01 7.0672421e-01 2.6659198e-01 - -7.4968473e-01 -4.9440590e-02 -6.5994579e-01 - 7.4415916e-01 -2.8208353e-01 -6.0552129e-01 - 3.1408457e-01 8.8563392e-01 -3.4205765e-01 - -9.8030126e-01 1.3569542e-01 -1.4351374e-01 - -7.8645769e-01 -7.6684746e-02 -6.1286519e-01 - 2.8679178e-01 -9.5796642e-01 -7.1283713e-03 - 9.2691024e-01 3.1960946e-01 -1.9669062e-01 - -8.4357621e-03 5.4321555e-02 -9.9848786e-01 - 7.4467254e-01 4.6727221e-01 4.7657056e-01 - -7.9504011e-01 5.9436865e-01 1.2098402e-01 - -6.4990976e-01 -3.8013621e-01 -6.5811379e-01 - -9.6165856e-01 1.9413289e-01 -1.9371431e-01 - 8.4721745e-01 4.5278031e-01 2.7787152e-01 - -9.6437076e-01 -2.6090684e-01 -4.3779661e-02 - -9.9653670e-01 -4.3208011e-02 -7.1046967e-02 - -2.3440899e-01 -9.0523554e-03 -9.7209592e-01 - 4.6362702e-01 -7.1125640e-01 5.2836003e-01 - -9.9636363e-01 -7.5283100e-02 -3.9899468e-02 - 4.8008480e-01 6.3993747e-01 5.9999885e-01 - 4.7063322e-01 7.5757393e-01 4.5231196e-01 - -9.2266736e-01 -1.5719832e-01 -3.5209889e-01 - -9.2768773e-01 -3.7313779e-01 1.2792885e-02 - -9.7695465e-01 9.3813499e-02 1.9172542e-01 - 2.1732020e-01 -3.8293051e-01 -8.9785085e-01 - 4.8403250e-01 3.5159322e-01 8.0130815e-01 - 9.9475636e-01 -5.2273306e-02 -8.7904952e-02 - -4.0139504e-01 -6.7520162e-01 6.1885765e-01 - 6.0076517e-01 -4.2066287e-01 6.7979700e-01 - -9.9018940e-01 8.8495822e-02 -1.0813621e-01 - -7.3300708e-01 3.3880773e-01 5.8983891e-01 - 2.6401664e-01 -5.7201901e-01 7.7658835e-01 - -3.9410730e-01 -6.1949076e-01 6.7890399e-01 - 8.3667900e-01 1.3913060e-01 5.2972721e-01 - 5.5611557e-01 5.1876820e-01 6.4931889e-01 - -9.8703215e-01 2.6680469e-02 1.5828987e-01 - 4.7254546e-01 3.7068840e-01 7.9955669e-01 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 5.4620351e-01 -2.9915513e-01 -7.8241161e-01 - -9.3702379e-01 -2.4473424e-01 -2.4918180e-01 - 5.7854001e-01 -1.8414162e-01 -7.9459633e-01 - -2.2788109e-01 6.8384755e-02 -9.7128458e-01 - -6.2283567e-01 7.4929722e-01 2.2500978e-01 - 8.4698209e-01 -3.2776607e-02 -5.3061006e-01 - -7.1165109e-01 -2.8218547e-01 -6.4336932e-01 - -3.7393898e-01 8.2970383e-01 -4.1444082e-01 - 9.7740039e-01 7.6697593e-02 -1.9699227e-01 - 6.3056819e-01 -3.9877008e-01 -6.6585748e-01 - -3.5626411e-01 -9.3431642e-01 -1.1344898e-02 - -9.2251593e-01 3.1387102e-01 -2.2460929e-01 - 4.1546596e-02 8.5489776e-02 -9.9547244e-01 - -7.1118540e-01 4.7828689e-01 5.1522518e-01 - 8.7809882e-01 4.7131526e-01 8.2488734e-02 - 7.5606604e-01 1.7483735e-01 -6.3071074e-01 - 9.7359107e-01 1.6526554e-01 -1.5750469e-01 - -8.3932548e-01 4.7330126e-01 2.6742971e-01 - 9.3544043e-01 -3.4942119e-01 -5.3441872e-02 - 9.9945301e-01 2.0194764e-02 -2.6188732e-02 - 3.3662149e-01 -9.6582579e-03 -9.4159051e-01 - -5.1981373e-01 -7.1014319e-01 4.7485823e-01 - 9.9332748e-01 -9.6354129e-02 -6.3375122e-02 - -4.5658665e-01 6.4730697e-01 6.1034606e-01 - -4.8003040e-01 7.4275220e-01 4.6678688e-01 - 9.3993259e-01 -2.2553399e-01 -2.5624432e-01 - 9.2894885e-01 -3.6979709e-01 1.7439814e-02 - 9.8138705e-01 7.9279030e-02 1.7491227e-01 - -1.6799712e-01 -3.9711636e-01 -9.0226136e-01 - -6.3221786e-01 1.4954770e-01 7.6022106e-01 - -9.8888455e-01 -1.4852664e-01 6.8695494e-03 - 5.8368462e-01 -5.4576779e-01 6.0120694e-01 - -5.8998665e-01 -4.1287049e-01 6.9386866e-01 - 9.9069889e-01 9.5527024e-02 -9.6903559e-02 - 7.8368475e-01 3.1712792e-01 5.3410495e-01 - -2.4768911e-01 -5.1905685e-01 8.1806485e-01 - 4.7992363e-01 -5.3570610e-01 6.9476060e-01 - -8.3046594e-01 7.1217306e-02 5.5249835e-01 - -5.4466496e-01 5.2148259e-01 6.5680742e-01 - 9.9406839e-01 2.5465514e-02 1.0573335e-01 - -4.5619366e-01 3.5665549e-01 8.1528167e-01 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 diff --git a/examples/wholebrainWC/connectivity_96/centres.txt b/examples/wholebrainWC/connectivity_96/centres.txt deleted file mode 100755 index aab91b39..00000000 --- a/examples/wholebrainWC/connectivity_96/centres.txt +++ /dev/null @@ -1,96 +0,0 @@ -RM-TCpol_R 33.079347 -7.593124 -32.799272 -RM-TCs_R 54.915934 -33.810819 -1.375730 -RM-Amyg_R 17.438152 -5.277610 -13.745837 -RM-PFCoi_R 21.645635 26.941077 -19.611492 -RM-IA_R 38.224291 11.482410 -13.623293 -RM-PFCom_R 6.267575 25.181871 -16.701842 -RM-TCc_R 43.660324 -58.514435 -7.694181 -RM-PFCol_R 29.444259 49.076630 -0.952121 -RM-TCi_R 28.718069 -54.508717 -14.420098 -RM-PHC_R 19.729065 -32.245093 -9.132630 -MM82a-G_R 34.917765 25.065066 -3.766634 -RM-PMCvl_R 47.004645 20.874793 11.634857 -RM-VACv_R 24.783182 -82.874647 -12.077967 -RM-Ip_R 40.808202 -3.305432 1.892959 -RM-PFCpol_R 8.216735 61.863249 8.139174 -RM-HC_R 22.506788 -20.364649 -11.303707 -RM-CCs_R 3.427869 25.074243 -4.747290 -RM-PFCvl_R 40.812508 40.111957 17.487273 -RM-V2_R 11.774463 -79.525795 3.404145 -RM-PFCm_R 8.294410 45.075418 9.876705 -RM-TCv_R 24.810789 -54.934840 -7.515384 -RM-VACd_R 27.690285 -83.455823 20.802248 -RM-V1_R 11.890945 -74.310932 7.222870 -RM-PFCcl_R 24.035479 43.044884 33.627260 -RM-A2_R 48.584832 -28.586783 15.135759 -RM-CCr_R 6.702045 -43.575783 12.352452 -RM-CCp_R 10.632581 -49.270173 24.902874 -RM-CCa_R 4.846725 9.108356 26.416168 -RM-S2_R 53.367495 -19.080477 19.550660 -RM-S1_R 37.713158 -25.333413 52.415061 -RM-A1_R 36.950384 -18.793378 13.708190 -RM-M1_R 24.874698 -18.375774 52.963887 -RM-PCi_R 39.153217 -54.570078 43.080367 -RM-PCm_R 9.131634 -56.584867 39.751706 -RM-PFCdm_R 8.017632 35.951673 49.465444 -RM-PCip_R 21.444711 -63.620710 54.468403 -RM-PCs_R 14.127554 -53.207194 59.343654 -RM-FEF_R 43.858507 1.583726 49.671365 -RM-PFCdl_R 25.309093 12.552618 53.221126 -RM-PMCm_R 7.224909 3.586255 59.539745 -RM-PMCdl_R 23.475495 -5.407731 67.187371 -TM-F_R 10.709611 -13.305076 7.165679 -TM-T_R 9.487179 -17.753905 10.494842 -TM-OP_R 17.718292 -22.263158 6.059965 -BG-Cd_R 14.301561 11.010804 11.490516 -BG-Pu_R 26.495749 2.776009 1.303447 -BG-Pa_R 20.850489 -3.005123 -0.189101 -BG-Acc_R 10.368263 13.203593 -5.534431 -RM-TCpol_L -32.681790 -8.320529 -31.793774 -RM-TCs_L -54.720063 -33.892198 -1.422995 -RM-Amyg_L -15.859426 -7.452867 -13.127293 -RM-PFCoi_L -20.226823 25.432919 -19.776290 -RM-IA_L -37.990116 11.507916 -13.796844 -RM-PFCom_L -5.461125 25.482359 -16.462528 -RM-TCc_L -42.827596 -58.286399 -8.750547 -RM-PFCol_L -28.607213 49.095480 -1.984764 -RM-TCi_L -28.371168 -54.266414 -14.198983 -RM-PHC_L -18.955951 -31.746896 -9.391177 -MM82a-G_L -34.158674 24.411811 -4.311981 -RM-PMCvl_L -46.597057 21.230801 10.684409 -RM-VACv_L -24.006268 -83.189723 -12.050953 -RM-Ip_L -40.876741 -3.791963 1.243455 -RM-PFCpol_L -7.689917 61.850339 8.155949 -RM-HC_L -21.143986 -25.894536 -8.450204 -RM-CCs_L -3.171100 23.997086 -4.759688 -RM-PFCvl_L -40.452662 39.734075 18.317703 -RM-V2_L -11.495151 -80.341203 3.657959 -RM-PFCm_L -8.230249 44.635723 8.745645 -RM-TCv_L -24.553983 -55.141679 -7.629212 -RM-VACd_L -27.764819 -83.351504 20.366430 -RM-V1_L -12.020475 -73.679251 6.866555 -RM-PFCcl_L -23.527592 42.995398 33.663668 -RM-A2_L -48.848261 -28.326444 14.382296 -RM-CCr_L -4.908909 -43.424849 15.482611 -RM-CCp_L -10.925561 -50.543513 25.301208 -RM-CCa_L -4.746795 8.564223 26.351959 -RM-S2_L -52.006466 -19.011937 19.451158 -RM-S1_L -37.573215 -25.088520 52.189595 -RM-A1_L -36.797423 -19.116026 13.896768 -RM-M1_L -24.507209 -18.054854 51.754528 -RM-PCi_L -38.940697 -54.678016 43.108789 -RM-PCm_L -9.154303 -57.042530 39.462044 -RM-PFCdm_L -7.508670 36.248376 49.003248 -RM-PCip_L -21.544740 -63.315526 54.590945 -RM-PCs_L -13.094641 -53.667567 59.445681 -RM-FEF_L -43.671270 0.704116 50.160082 -RM-PFCdl_L -24.184760 13.958344 53.500476 -RM-PMCm_L -6.812133 3.455651 59.219364 -RM-PMCdl_L -22.721598 -4.686517 67.235649 -TM-F_L -7.675865 -14.379325 7.551905 -TM-T_L -6.747257 -19.515702 10.371169 -TM-OP_L -14.908959 -23.774755 5.438157 -BG-Cd_L -11.785498 9.976993 10.737393 -BG-Pu_L -23.901491 1.482650 1.339547 -BG-Pa_L -17.957794 -4.120351 -0.333891 -BG-Acc_L -8.463883 12.496614 -6.170429 diff --git a/examples/wholebrainWC/connectivity_96/cortical.txt b/examples/wholebrainWC/connectivity_96/cortical.txt deleted file mode 100644 index b2bef0f9..00000000 --- a/examples/wholebrainWC/connectivity_96/cortical.txt +++ /dev/null @@ -1,96 +0,0 @@ -1 -1 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -1 -1 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 diff --git a/examples/wholebrainWC/connectivity_96/info.txt b/examples/wholebrainWC/connectivity_96/info.txt deleted file mode 100644 index fb84b597..00000000 --- a/examples/wholebrainWC/connectivity_96/info.txt +++ /dev/null @@ -1,2 +0,0 @@ -weights_unit = "au" -length_unit = "mm"area_unit = "mm^2" \ No newline at end of file diff --git a/examples/wholebrainWC/connectivity_96/tract_lengths.txt b/examples/wholebrainWC/connectivity_96/tract_lengths.txt deleted file mode 100644 index a1bcc6f6..00000000 --- a/examples/wholebrainWC/connectivity_96/tract_lengths.txt +++ /dev/null @@ -1,96 +0,0 @@ - 0.0000000e+00 4.6385806e+01 2.4759684e+01 3.8694423e+01 2.7532973e+01 4.5301199e+01 5.7751212e+01 6.5106957e+01 5.0575564e+01 3.6688684e+01 4.3735926e+01 5.4577725e+01 7.8520739e+01 3.5800425e+01 8.4369980e+01 2.7146826e+01 5.2280787e+01 6.9744628e+01 8.3300028e+01 7.2176918e+01 5.4303610e+01 9.3044688e+01 8.0634893e+01 8.4014782e+01 5.4579493e+01 6.3475916e+01 7.4634920e+01 6.7694082e+01 5.7306925e+01 8.7164629e+01 4.7993485e+01 8.6826846e+01 8.9450800e+01 9.0759728e+01 9.6393581e+01 1.0435565e+02 1.0454727e+02 8.3676824e+01 8.8688989e+01 9.6539756e+01 1.0047059e+02 4.6154401e+01 5.0340959e+01 4.4285576e+01 5.1578065e+01 3.6247181e+01 3.5128592e+01 4.1129895e+01 6.5772846e+01 9.6875427e+01 5.2744762e+01 6.4045807e+01 7.6005332e+01 5.3350209e+01 9.4392866e+01 8.9265690e+01 7.9375894e+01 6.1959792e+01 7.9729499e+01 9.5236435e+01 9.6974769e+01 8.1503736e+01 9.0342999e+01 6.2193155e+01 5.5661967e+01 1.0129050e+02 9.2780917e+01 7.8487676e+01 7.8841599e+01 1.1076072e+02 8.9301443e+01 1.0090028e+02 9.6788965e+01 7.1120745e+01 8.4598071e+01 7.2046825e+01 1.0049921e+02 1.1189719e+02 8.4829596e+01 1.0283484e+02 1.1474279e+02 9.7214313e+01 1.0129717e+02 1.1715727e+02 1.1297797e+02 1.1332147e+02 1.0578889e+02 1.0090012e+02 1.1458263e+02 5.7751687e+01 5.9933239e+01 6.3457259e+01 6.4938467e+01 6.7042110e+01 6.0587547e+01 5.3277883e+01 - 4.6385806e+01 0.0000000e+00 4.8700592e+01 7.1625754e+01 4.9800505e+01 7.7985191e+01 2.7872571e+01 8.6713982e+01 3.5845316e+01 3.6065728e+01 6.2225501e+01 5.6766011e+01 5.8564322e+01 3.3768196e+01 1.0688721e+02 3.6465284e+01 7.8293287e+01 7.7584123e+01 6.3038820e+01 9.2321298e+01 3.7285914e+01 6.0808923e+01 5.9710508e+01 8.9920025e+01 1.8439162e+01 5.1072465e+01 5.3764041e+01 7.1563754e+01 2.5637755e+01 5.7107365e+01 2.7853351e+01 6.3980548e+01 5.1534015e+01 6.5622598e+01 9.8239915e+01 7.1606701e+01 7.5675326e+01 6.3093949e+01 7.7504516e+01 8.5928284e+01 8.0598606e+01 4.9473631e+01 4.9623651e+01 3.9652271e+01 6.1838867e+01 4.6405612e+01 4.5944026e+01 6.4901037e+01 9.6168465e+01 1.0963604e+02 7.6432928e+01 9.7441444e+01 1.0411343e+02 8.5957441e+01 1.0103088e+02 1.1768577e+02 8.6715677e+01 7.4334127e+01 1.0645554e+02 1.1610303e+02 9.3706726e+01 1.0042026e+02 1.1472316e+02 7.6797312e+01 8.2020171e+01 1.2203218e+02 8.1245596e+01 1.0121138e+02 8.2520176e+01 9.8808441e+01 7.8344814e+01 1.1524036e+02 1.0509711e+02 6.2893920e+01 7.2984550e+01 7.8256694e+01 1.0993255e+02 1.0723603e+02 9.4130367e+01 9.6845807e+01 1.0594045e+02 7.9450812e+01 1.0650429e+02 9.9242285e+01 9.3375440e+01 1.1647600e+02 1.0747191e+02 9.4185506e+01 1.0762589e+02 6.6143926e+01 6.4379260e+01 7.0870779e+01 8.0704283e+01 8.6401320e+01 7.8696820e+01 7.8640757e+01 - 2.4759684e+01 4.8700592e+01 0.0000000e+00 3.3017460e+01 2.6701626e+01 3.2577595e+01 5.9652195e+01 5.7115752e+01 5.0511317e+01 2.7454965e+01 3.6411528e+01 4.6928726e+01 7.7961731e+01 2.8189017e+01 7.1217154e+01 1.6101982e+01 3.4619313e+01 5.9850484e+01 7.6413299e+01 5.6365414e+01 5.0586706e+01 8.6084316e+01 7.2360609e+01 6.7991164e+01 4.8451830e+01 4.7572416e+01 5.8952390e+01 4.4480183e+01 5.0892962e+01 7.2045649e+01 3.6292241e+01 6.8388971e+01 7.8297567e+01 7.4588337e+01 7.6054362e+01 8.9850722e+01 8.7465872e+01 6.9042411e+01 6.9745558e+01 7.4522848e+01 8.1158182e+01 2.3388137e+01 2.8398705e+01 2.6093239e+01 3.0199738e+01 1.9323090e+01 1.4163097e+01 2.1423477e+01 5.3357249e+01 7.8596788e+01 3.3374287e+01 4.8970944e+01 5.7914155e+01 3.8443894e+01 8.0416696e+01 7.2214482e+01 6.7071619e+01 4.5211911e+01 6.0271815e+01 7.3484970e+01 8.8265565e+01 6.0228836e+01 7.4948446e+01 4.4064529e+01 3.6912057e+01 8.0034172e+01 8.2307783e+01 6.0465480e+01 6.5476545e+01 9.6449408e+01 7.7275260e+01 7.9095743e+01 7.5606409e+01 5.2999105e+01 6.6167771e+01 4.7870674e+01 7.8187129e+01 8.8126068e+01 6.2426861e+01 7.8822389e+01 9.4082002e+01 7.8853308e+01 7.9272941e+01 9.7764929e+01 9.2902302e+01 8.8623411e+01 8.1391372e+01 7.7383892e+01 9.0394446e+01 3.4163561e+01 3.7003881e+01 4.1910686e+01 4.1062795e+01 4.4522309e+01 3.7869414e+01 3.2314474e+01 - 3.8694423e+01 7.1625754e+01 3.3017460e+01 0.0000000e+00 2.3445272e+01 1.5749464e+01 8.9046692e+01 2.9982884e+01 8.1920931e+01 6.0137198e+01 2.0753997e+01 4.0696603e+01 1.1011853e+02 4.1767173e+01 4.6583182e+01 4.8037409e+01 2.3586364e+01 4.3785379e+01 1.0937255e+02 3.7103414e+01 8.2825116e+01 1.1771696e+02 1.0520079e+02 5.5672333e+01 7.0826797e+01 7.8851964e+01 8.8943639e+01 5.2141680e+01 6.8249059e+01 9.0435679e+01 5.8618060e+01 8.5622600e+01 1.0431133e+02 1.0323358e+02 7.0982649e+01 1.1700132e+02 1.1275718e+02 7.7048824e+01 7.4330606e+01 8.3775434e+01 9.2648996e+01 4.9561743e+01 5.5243650e+01 5.5637259e+01 3.5707758e+01 3.2325050e+01 3.5702052e+01 2.2672919e+01 6.5903399e+01 9.9313789e+01 5.1299297e+01 4.1899934e+01 6.1874190e+01 2.7328013e+01 1.0741732e+02 5.7679007e+01 9.5528176e+01 7.2091760e+01 5.7918849e+01 7.4883336e+01 1.1945732e+02 7.2722047e+01 5.3387844e+01 6.8899405e+01 2.9070836e+01 7.3881548e+01 1.1467025e+02 4.4830750e+01 9.4950296e+01 1.2729525e+02 1.0935696e+02 7.1670108e+01 9.5809529e+01 8.2994600e+01 9.5298978e+01 5.6097308e+01 9.5195599e+01 1.0662714e+02 8.1606687e+01 9.6165626e+01 1.1944126e+02 1.0719872e+02 7.5130433e+01 1.2456992e+02 1.1812992e+02 9.9109782e+01 8.7260165e+01 8.7038576e+01 1.0252406e+02 5.7488923e+01 6.2155842e+01 6.7348489e+01 4.8233553e+01 5.6228270e+01 5.3896844e+01 3.5998441e+01 - 2.7532973e+01 4.9800505e+01 2.6701626e+01 2.3445272e+01 0.0000000e+00 3.4905363e+01 7.0457526e+01 4.0632166e+01 6.6677073e+01 4.7689977e+01 1.7104835e+01 2.8342294e+01 9.5322115e+01 2.1589602e+01 6.2548279e+01 3.5590104e+01 3.8396775e+01 4.2358200e+01 9.6291331e+01 5.0759609e+01 6.8032931e+01 1.0153497e+02 9.2133083e+01 5.8567285e+01 5.0398057e+01 6.8555057e+01 7.7048325e+01 5.2180997e+01 4.7580645e+01 7.5609062e+01 4.0807549e+01 7.4186085e+01 8.7058021e+01 9.1260218e+01 7.4103818e+01 1.0275462e+02 1.0044687e+02 6.4311290e+01 6.8089089e+01 7.9850742e+01 8.3863980e+01 4.2469500e+01 4.7563306e+01 4.4121310e+01 3.4687502e+01 2.0884628e+01 2.6309981e+01 2.9057708e+01 7.5828722e+01 1.0414584e+02 5.7304792e+01 6.0407026e+01 7.6214608e+01 4.5961673e+01 1.0705531e+02 7.7567057e+01 9.3585225e+01 7.1807128e+01 7.4115879e+01 8.8772499e+01 1.1330458e+02 8.1922523e+01 7.1549830e+01 7.0344788e+01 4.4144751e+01 8.9489925e+01 1.0584064e+02 6.1298742e+01 9.1737724e+01 1.2042979e+02 1.0097960e+02 8.3919128e+01 9.9753130e+01 7.5646769e+01 8.8193196e+01 5.8762665e+01 1.0082368e+02 1.0683647e+02 8.5567959e+01 9.5299267e+01 1.1640518e+02 9.8784875e+01 8.1406022e+01 1.1755956e+02 1.1053157e+02 1.0436174e+02 9.1687623e+01 8.6016051e+01 1.0253782e+02 5.6780654e+01 5.9657834e+01 6.6554855e+01 5.5647896e+01 6.4679939e+01 5.9803687e+01 4.7290161e+01 - 4.5301199e+01 7.7985191e+01 3.2577595e+01 1.5749464e+01 3.4905363e+01 0.0000000e+00 9.2110950e+01 3.6826239e+01 8.2824036e+01 5.9467309e+01 3.1435118e+01 4.9809921e+01 1.0972884e+02 4.8480387e+01 4.4344095e+01 4.8655291e+01 1.2287669e+01 5.0844423e+01 1.0676269e+02 3.3260794e+01 8.2746173e+01 1.1690867e+02 1.0248332e+02 5.6283249e+01 7.5468214e+01 7.4645534e+01 8.5399722e+01 4.6038456e+01 7.4106692e+01 9.1201781e+01 6.1644361e+01 8.4242550e+01 1.0495595e+02 9.9403246e+01 6.7060876e+01 1.1481049e+02 1.0949677e+02 7.9845808e+01 7.3561532e+01 7.9246871e+01 9.0935341e+01 4.5504234e+01 5.0926480e+01 5.3853965e+01 3.2560299e+01 3.5148145e+01 3.5774832e+01 1.6882116e+01 5.3546524e+01 8.6270973e+01 3.9590500e+01 2.6673365e+01 4.6412921e+01 1.1734989e+01 9.7162291e+01 4.4773920e+01 8.6707190e+01 6.2694151e+01 4.2289280e+01 5.9668141e+01 1.1261678e+02 5.8173045e+01 4.6446721e+01 5.8551537e+01 1.5267853e+01 6.0174045e+01 1.0892729e+02 3.5159832e+01 8.6511004e+01 1.1963174e+02 1.0326395e+02 6.1169913e+01 8.2868080e+01 7.6600489e+01 8.8284732e+01 4.7445677e+01 8.1584286e+01 9.5891382e+01 6.8943256e+01 8.6618567e+01 1.0953858e+02 1.0076244e+02 6.8039777e+01 1.1699562e+02 1.1131296e+02 8.6968762e+01 7.7341307e+01 8.0044593e+01 9.3690955e+01 4.8453607e+01 5.3853568e+01 5.7752717e+01 3.6194106e+01 4.2394779e+01 4.1393218e+01 2.2109777e+01 - 5.7751212e+01 2.7872571e+01 5.9652195e+01 8.9046692e+01 7.0457526e+01 9.2110950e+01 0.0000000e+00 1.0873541e+02 1.6868749e+01 3.5564766e+01 8.4127231e+01 8.1776804e+01 3.1128508e+01 5.6107770e+01 1.2648213e+02 4.3771074e+01 9.2813801e+01 1.0183016e+02 3.9766295e+01 1.1086181e+02 1.9187247e+01 4.1099409e+01 3.8488195e+01 1.1138623e+02 3.7962103e+01 4.4620009e+01 4.7316553e+01 8.5104954e+01 4.8903452e+01 6.8916398e+01 4.5616303e+01 7.5122653e+01 5.1126575e+01 5.8711718e+01 1.1602357e+02 6.6210228e+01 7.3446734e+01 8.3082093e+01 9.5383270e+01 9.8511095e+01 9.3994660e+01 5.7883081e+01 5.6214457e+01 4.6651052e+01 7.7870074e+01 6.4281400e+01 6.0480562e+01 7.9098048e+01 9.4489878e+01 1.0160848e+02 7.8609179e+01 1.0618241e+02 1.0773656e+02 9.7699857e+01 8.6494671e+01 1.2975010e+02 7.2449251e+01 6.8118857e+01 1.1377169e+02 1.2183378e+02 7.2156905e+01 1.0109869e+02 1.3181712e+02 7.2554999e+01 9.4920727e+01 1.3192567e+02 6.0393752e+01 1.1663128e+02 6.8297668e+01 8.0658719e+01 5.9517543e+01 1.2856490e+02 9.9782382e+01 5.5891231e+01 6.4279469e+01 8.9453536e+01 1.0700211e+02 1.0631202e+02 9.2151249e+01 9.9085514e+01 9.7049413e+01 7.0818507e+01 1.2170807e+02 9.0300541e+01 8.8047596e+01 1.2033603e+02 1.1661923e+02 1.0423619e+02 1.1365951e+02 6.9395643e+01 6.6243356e+01 6.9351745e+01 9.0027983e+01 9.0806703e+01 8.2520801e+01 8.8101213e+01 - 6.5106957e+01 8.6713982e+01 5.7115752e+01 2.9982884e+01 4.0632166e+01 3.6826239e+01 1.0873541e+02 0.0000000e+00 1.0445974e+02 8.2307523e+01 2.4787818e+01 3.5526648e+01 1.3250151e+02 5.3676010e+01 2.6396156e+01 7.0550514e+01 3.5600146e+01 2.3443841e+01 1.2988373e+02 2.4095421e+01 1.0432129e+02 1.3431746e+02 1.2489772e+02 3.5515777e+01 8.1589136e+01 9.6325955e+01 1.0341399e+02 5.4327938e+01 7.5087125e+01 9.1941749e+01 6.9839849e+01 8.6473369e+01 1.1302993e+02 1.1503806e+02 5.6332014e+01 1.2584164e+02 1.1971701e+02 7.0894878e+01 6.5466356e+01 7.8881807e+01 8.7448054e+01 6.5638121e+01 7.0679830e+01 7.2636306e+01 4.2815039e+01 4.6449207e+01 5.2791515e+01 4.0887234e+01 9.0029370e+01 1.1818494e+02 7.3459123e+01 5.8142848e+01 7.8254649e+01 4.4895970e+01 1.2965669e+02 5.8060659e+01 1.1915489e+02 9.4584567e+01 6.8300622e+01 8.1811251e+01 1.4308924e+02 8.8005407e+01 4.0312177e+01 9.0752782e+01 4.1318794e+01 7.3103961e+01 1.3581702e+02 3.9155292e+01 1.1756636e+02 1.4582376e+02 1.2980548e+02 6.3570837e+01 1.1115799e+02 1.0003382e+02 1.1064869e+02 5.9630496e+01 1.0810443e+02 1.1320713e+02 9.6222078e+01 1.0097221e+02 1.3184420e+02 1.1993511e+02 6.3447790e+01 1.3533997e+02 1.2654573e+02 1.0148023e+02 8.4109756e+01 8.3763998e+01 1.0129820e+02 7.4005948e+01 7.8376978e+01 8.5529924e+01 5.8011372e+01 7.1527671e+01 7.1254863e+01 5.2937279e+01 - 5.0575564e+01 3.5845316e+01 5.0511317e+01 8.1920931e+01 6.6677073e+01 8.2824036e+01 1.6868749e+01 1.0445974e+02 0.0000000e+00 2.4585127e+01 8.0522789e+01 8.1828682e+01 2.8733167e+01 5.5082335e+01 1.2029821e+02 3.4844071e+01 8.4063102e+01 1.0058543e+02 3.5080530e+01 1.0452014e+02 7.9450298e+00 4.5602685e+01 3.3818602e+01 1.0884475e+02 4.4047516e+01 3.6345616e+01 4.3598433e+01 7.9275304e+01 5.4925103e+01 7.3478218e+01 4.6201267e+01 7.6556924e+01 5.8439709e+01 5.7641333e+01 1.1266301e+02 6.9868131e+01 7.5204177e+01 8.6506131e+01 9.5310960e+01 9.6473002e+01 9.5384330e+01 4.9879759e+01 4.8389024e+01 3.9751783e+01 7.1916642e+01 5.9445003e+01 5.4009631e+01 7.0715114e+01 7.8772686e+01 8.6924608e+01 6.4831146e+01 9.3888000e+01 9.3853962e+01 8.7011270e+01 7.1869304e+01 1.1905736e+02 5.7090180e+01 5.3067906e+01 1.0141059e+02 1.0972274e+02 6.0067201e+01 8.7526988e+01 1.2399455e+02 5.7798231e+01 8.5284253e+01 1.2140040e+02 5.1100259e+01 1.0831182e+02 5.3706874e+01 7.2334816e+01 4.9802207e+01 1.2061803e+02 8.6784934e+01 4.6344340e+01 5.6259421e+01 8.2221977e+01 9.4465517e+01 9.8473009e+01 7.9666601e+01 9.2416965e+01 8.8810529e+01 6.5909195e+01 1.1649784e+02 8.5827932e+01 8.4883235e+01 1.1162111e+02 1.0999842e+02 1.0022492e+02 1.0860917e+02 5.8460717e+01 5.5649864e+01 5.6940709e+01 8.0198785e+01 7.8436074e+01 7.0114512e+01 7.7073141e+01 - 3.6688684e+01 3.6065728e+01 2.7454965e+01 6.0137198e+01 4.7689977e+01 5.9467309e+01 3.5564766e+01 8.2307523e+01 2.4585127e+01 0.0000000e+00 5.9531041e+01 6.3221579e+01 5.0966370e+01 3.7461949e+01 9.6370270e+01 1.2392509e+01 5.9753381e+01 7.9929177e+01 4.9557151e+01 8.0439838e+01 2.3308025e+01 5.9849952e+01 4.5809096e+01 8.6692180e+01 3.7881305e+01 2.7562593e+01 3.9128185e+01 5.6527063e+01 4.6125722e+01 6.4492768e+01 3.1610528e+01 6.3834262e+01 6.0015829e+01 5.5627407e+01 9.0673540e+01 7.0939863e+01 7.1831665e+01 7.2003672e+01 7.6980274e+01 7.8461038e+01 8.0987790e+01 2.6565197e+01 2.6459940e+01 1.8289264e+01 4.8227011e+01 3.7164194e+01 3.0597714e+01 4.6541967e+01 6.1909692e+01 7.4865373e+01 4.3556315e+01 7.0968399e+01 7.2578127e+01 6.3409241e+01 6.7761578e+01 9.4888232e+01 5.3143569e+01 3.8689087e+01 7.8339848e+01 8.7473086e+01 6.7206036e+01 6.7751808e+01 9.9522087e+01 4.1369089e+01 6.0882862e+01 9.7756645e+01 5.8751907e+01 8.3737780e+01 4.9874866e+01 7.5747798e+01 5.4596672e+01 9.6766694e+01 7.2602735e+01 3.6577682e+01 4.9600680e+01 5.9360121e+01 7.8346255e+01 8.4232910e+01 6.2433721e+01 7.6586270e+01 8.1697875e+01 6.1730091e+01 9.3877739e+01 8.2034095e+01 7.8989257e+01 9.2848686e+01 8.9364913e+01 8.1553500e+01 9.1616854e+01 3.6723148e+01 3.5262320e+01 3.8520737e+01 5.6308881e+01 5.6132456e+01 4.7840550e+01 5.2966379e+01 - 4.3735926e+01 6.2225501e+01 3.6411528e+01 2.0753997e+01 1.7104835e+01 3.1435118e+01 8.4127231e+01 2.4787818e+01 8.0522789e+01 5.9531041e+01 0.0000000e+00 2.0021413e+01 1.0873256e+02 2.9523099e+01 4.6997867e+01 4.7693803e+01 3.1505164e+01 2.6699915e+01 1.0736052e+02 3.5991082e+01 8.0722916e+01 1.1150179e+02 1.0259918e+02 4.2895237e+01 5.8503078e+01 7.5944177e+01 8.3291289e+01 4.5495996e+01 5.3225160e+01 7.5526180e+01 4.7255308e+01 7.2154847e+01 9.2489658e+01 9.6049374e+01 6.0628290e+01 1.0694863e+02 1.0267272e+02 5.9050232e+01 5.9131149e+01 7.2359735e+01 7.8063998e+01 4.6667098e+01 5.1803173e+01 5.1306381e+01 2.9246039e+01 2.4360587e+01 3.1600990e+01 2.7322110e+01 8.0435182e+01 1.0731445e+02 6.1019350e+01 5.7422731e+01 7.4832884e+01 4.2329832e+01 1.1409052e+02 6.7941583e+01 1.0201866e+02 7.8495935e+01 6.9081680e+01 8.2874608e+01 1.2353045e+02 8.1256608e+01 5.7538847e+01 7.5906105e+01 3.8116774e+01 7.9897429e+01 1.1541129e+02 4.9003254e+01 9.9924624e+01 1.2753691e+02 1.0984855e+02 7.1682523e+01 1.0097913e+02 8.1532607e+01 9.3076352e+01 5.2466035e+01 1.0018817e+02 1.0440988e+02 8.6064121e+01 9.2050283e+01 1.1836949e+02 1.0272645e+02 6.8627468e+01 1.2001979e+02 1.1180257e+02 9.8375725e+01 8.3042096e+01 7.8584905e+01 9.6170563e+01 5.9145471e+01 6.2636223e+01 7.0375840e+01 5.1178234e+01 6.3576005e+01 6.0492950e+01 4.5229543e+01 - 5.4577725e+01 5.6766011e+01 4.6928726e+01 4.0696603e+01 2.8342294e+01 4.9809921e+01 8.1776804e+01 3.5526648e+01 8.1828682e+01 6.3221579e+01 2.0021413e+01 0.0000000e+00 1.0872000e+02 2.6795219e+01 5.6540032e+01 5.3169675e+01 4.6743401e+01 2.1039529e+01 1.0672014e+02 4.5686361e+01 8.1279761e+01 1.0649865e+02 1.0155176e+02 3.8765465e+01 4.9610491e+01 7.6017704e+01 8.0120432e+01 4.6197688e+01 4.1225834e+01 6.2326199e+01 4.0975001e+01 6.1142704e+01 8.2112080e+01 9.0691351e+01 5.6377768e+01 9.8119890e+01 9.4048781e+01 4.2764698e+01 4.7637940e+01 6.4623518e+01 6.5806335e+01 5.0055634e+01 5.3861268e+01 5.2437131e+01 3.4158612e+01 2.9238995e+01 3.7337598e+01 4.1180775e+01 9.5332790e+01 1.1626628e+02 7.3263305e+01 7.4347205e+01 8.9211093e+01 5.9693799e+01 1.2145736e+02 8.1847750e+01 1.0952215e+02 8.6959395e+01 8.2790678e+01 9.3607204e+01 1.2819123e+02 9.1867121e+01 6.8429476e+01 8.5058895e+01 5.2878495e+01 8.9716851e+01 1.1717737e+02 6.0198196e+01 1.0616141e+02 1.2856840e+02 1.1156688e+02 7.7132263e+01 1.0777796e+02 8.2730081e+01 9.2969093e+01 5.5193792e+01 1.0702918e+02 1.0445443e+02 9.2882552e+01 9.0769216e+01 1.1868208e+02 9.9996445e+01 6.7856062e+01 1.1675724e+02 1.0702506e+02 1.0056426e+02 8.2876406e+01 7.3918586e+01 9.2771642e+01 6.5188047e+01 6.7247720e+01 7.6585087e+01 5.9798398e+01 7.4227547e+01 7.0626670e+01 5.8855583e+01 - 7.8520739e+01 5.8564322e+01 7.7961731e+01 1.1011853e+02 9.5322115e+01 1.0972884e+02 3.1128508e+01 1.3250151e+02 2.8733167e+01 5.0966370e+01 1.0873256e+02 1.0872000e+02 0.0000000e+00 8.2360477e+01 1.4707902e+02 6.2556225e+01 1.1028486e+02 1.2750195e+02 2.0497253e+01 1.3086293e+02 2.8309905e+01 3.3013597e+01 2.4740035e+01 1.3395990e+02 6.5224824e+01 4.9680717e+01 5.1933446e+01 1.0168645e+02 7.6727630e+01 8.7392955e+01 7.0138262e+01 9.1599977e+01 6.3640304e+01 6.0186698e+01 1.3486426e+02 6.9356174e+01 7.8068869e+01 1.0634879e+02 1.1563136e+02 1.1363484e+02 1.1084145e+02 7.3541203e+01 7.0598941e+01 6.3660427e+01 9.7364346e+01 8.6706574e+01 8.0845235e+01 9.7373692e+01 9.6173035e+01 9.3987100e+01 8.5681781e+01 1.1754018e+02 1.1336450e+02 1.1258412e+02 7.2019935e+01 1.4271833e+02 6.0401281e+01 6.7337787e+01 1.2265740e+02 1.2826227e+02 4.8790475e+01 1.0364727e+02 1.4969714e+02 7.3274815e+01 1.1070938e+02 1.4217071e+02 3.9625184e+01 1.3335068e+02 5.6772043e+01 6.1758876e+01 4.2402351e+01 1.4237098e+02 9.5379460e+01 5.6546373e+01 6.0972284e+01 1.0348887e+02 1.0473386e+02 1.0657334e+02 9.2368932e+01 1.0346853e+02 8.8889599e+01 6.6898610e+01 1.3770974e+02 8.3507961e+01 8.6043102e+01 1.2467958e+02 1.2678730e+02 1.1633784e+02 1.2108153e+02 7.8297706e+01 7.4246133e+01 7.3314923e+01 1.0236814e+02 9.8317754e+01 9.0371198e+01 1.0117284e+02 - 3.5800425e+01 3.3768196e+01 2.8189017e+01 4.1767173e+01 2.1589602e+01 4.8480387e+01 5.6107770e+01 5.3676010e+01 5.5082335e+01 3.7461949e+01 2.9523099e+01 2.6795219e+01 8.2360477e+01 0.0000000e+00 7.3131223e+01 2.8286227e+01 4.7400297e+01 4.6132984e+01 8.1576869e+01 5.8835308e+01 5.4863740e+01 8.3389005e+01 7.6853085e+01 5.8623731e+01 2.9580305e+01 5.3798998e+01 5.9605216e+01 4.5262763e+01 2.6802655e+01 5.5202301e+01 1.9858472e+01 5.5580855e+01 6.5781498e+01 7.2631866e+01 6.9853296e+01 8.2322869e+01 8.0638856e+01 4.8124674e+01 5.5913154e+01 6.7070744e+01 6.7588479e+01 3.2151511e+01 3.5549363e+01 3.0164603e+01 3.1617554e+01 1.5562061e+01 2.0068270e+01 3.5416152e+01 8.0998310e+01 1.0036033e+02 5.8770990e+01 7.0857064e+01 8.1699327e+01 5.7502273e+01 1.0065355e+02 8.7059704e+01 8.7417147e+01 6.7141660e+01 8.0167195e+01 9.1208528e+01 1.0381160e+02 8.1688973e+01 8.1465127e+01 6.6748200e+01 5.2190652e+01 9.3410381e+01 9.3130371e+01 6.8920847e+01 8.3963585e+01 1.0700889e+02 8.8136713e+01 8.5394608e+01 9.3916536e+01 6.2324157e+01 7.3863148e+01 5.3050816e+01 9.5757752e+01 9.5644660e+01 8.0104303e+01 8.3485474e+01 1.0343004e+02 8.2433996e+01 7.8220222e+01 1.0132215e+02 9.3563758e+01 9.7378503e+01 8.4767086e+01 7.4831312e+01 9.1146091e+01 5.0053567e+01 5.0952670e+01 5.9463969e+01 5.4961296e+01 6.4888954e+01 5.8813818e+01 5.2368513e+01 - 8.4369980e+01 1.0688721e+02 7.1217154e+01 4.6583182e+01 6.2548279e+01 4.4344095e+01 1.2648213e+02 2.6396156e+01 1.2029821e+02 9.6370270e+01 4.6997867e+01 5.6540032e+01 1.4707902e+02 7.3131223e+01 0.0000000e+00 8.5695148e+01 3.9273720e+01 4.0286351e+01 1.4151304e+02 1.6877687e+01 1.1900513e+02 1.4716387e+02 1.3622682e+02 3.5411947e+01 9.9296242e+01 1.0553405e+02 1.1241662e+02 5.5932854e+01 9.3384687e+01 1.0214524e+02 8.5802843e+01 9.3407941e+01 1.2543792e+02 1.2259749e+02 4.8778172e+01 1.3441578e+02 1.2608744e+02 8.1417932e+01 6.8964262e+01 7.7712357e+01 9.0801454e+01 7.5215950e+01 7.9662126e+01 8.4686805e+01 5.1324728e+01 6.2226613e+01 6.6609891e+01 5.0590104e+01 9.0515702e+01 1.1498513e+02 7.6397958e+01 5.3995166e+01 7.1776886e+01 4.5998877e+01 1.3163101e+02 4.0268016e+01 1.2378920e+02 9.9038009e+01 5.7907829e+01 6.8279029e+01 1.4995442e+02 8.2269843e+01 1.5906666e+01 9.4014298e+01 4.1592184e+01 5.4424379e+01 1.4363407e+02 2.3825590e+01 1.2252639e+02 1.5010497e+02 1.3705084e+02 4.4890956e+01 1.0690917e+02 1.0635691e+02 1.1530934e+02 5.7797446e+01 1.0146719e+02 1.0769294e+02 9.2828159e+01 9.6747396e+01 1.3049354e+02 1.2418317e+02 5.0727534e+01 1.3679634e+02 1.2819478e+02 9.0545907e+01 7.3500915e+01 7.9034804e+01 9.4225501e+01 7.7883565e+01 8.2773404e+01 8.8746611e+01 5.5668875e+01 6.8728685e+01 7.1489399e+01 5.4037694e+01 - 2.7146826e+01 3.6465284e+01 1.6101982e+01 4.8037409e+01 3.5590104e+01 4.8655291e+01 4.3771074e+01 7.0550514e+01 3.4844071e+01 1.2392509e+01 4.7693803e+01 5.3169675e+01 6.2556225e+01 2.8286227e+01 8.5695148e+01 0.0000000e+00 4.9716041e+01 6.9436588e+01 6.1899474e+01 7.0235347e+01 3.4853377e+01 7.0979977e+01 5.8018373e+01 7.7729644e+01 3.8035684e+01 3.6717305e+01 4.7827216e+01 5.1022787e+01 4.3658039e+01 6.5696299e+01 2.8925444e+01 6.4341948e+01 6.6368234e+01 6.4011360e+01 8.4109176e+01 7.8728554e+01 7.8357475e+01 6.8231858e+01 7.2490368e+01 7.6328083e+01 7.9909305e+01 2.3024534e+01 2.5524556e+01 1.8111630e+01 3.9639897e+01 2.6652246e+01 2.0679239e+01 3.6158750e+01 6.0088958e+01 7.9022842e+01 4.0521673e+01 6.3208887e+01 6.8424787e+01 5.3951513e+01 7.5585444e+01 8.6742108e+01 6.1206851e+01 4.3039191e+01 7.2558873e+01 8.3600240e+01 7.8172966e+01 6.6704999e+01 8.9720808e+01 4.4092087e+01 5.1673413e+01 9.1941160e+01 7.0549063e+01 7.4644425e+01 5.8631561e+01 8.6588544e+01 6.6066156e+01 9.0309050e+01 7.6254205e+01 4.4731422e+01 5.8037967e+01 5.4750220e+01 8.0622059e+01 8.7540397e+01 6.4448525e+01 7.8689211e+01 8.8960217e+01 7.0177298e+01 8.7993700e+01 9.0152205e+01 8.5918694e+01 9.2742793e+01 8.6935325e+01 8.0003184e+01 9.1977394e+01 3.6088097e+01 3.6418678e+01 4.1132189e+01 5.0817184e+01 5.2828824e+01 4.4962167e+01 4.5446623e+01 - 5.2280787e+01 7.8293287e+01 3.4619313e+01 2.3586364e+01 3.8396775e+01 1.2287669e+01 9.2813801e+01 3.5600146e+01 8.4063102e+01 5.9753381e+01 3.1505164e+01 4.6743401e+01 1.1028486e+02 4.7400297e+01 3.9273720e+01 4.9716041e+01 0.0000000e+00 4.6023036e+01 1.0524866e+02 2.5250573e+01 8.2863412e+01 1.1410617e+02 1.0046055e+02 4.7119248e+01 7.2897138e+01 7.0823355e+01 8.0362506e+01 3.5044027e+01 7.0950658e+01 8.3570014e+01 5.8212816e+01 7.5355494e+01 9.9533930e+01 9.3171369e+01 5.5483376e+01 1.0815683e+02 1.0173552e+02 7.1748386e+01 6.3213261e+01 6.7889425e+01 8.0657632e+01 4.0840112e+01 4.5861620e+01 5.0614647e+01 2.4076625e+01 3.2648886e+01 3.3358292e+01 1.3773199e+01 5.6130479e+01 8.2881084e+01 3.8732895e+01 2.8027557e+01 4.4512797e+01 1.4711478e+01 9.5417979e+01 4.0135992e+01 8.5996821e+01 6.1247392e+01 3.7594900e+01 5.2491929e+01 1.1192436e+02 5.3216965e+01 4.0528754e+01 5.6703652e+01 6.6863159e+00 5.1695315e+01 1.0679776e+02 2.6469274e+01 8.5005199e+01 1.1558471e+02 1.0062696e+02 5.0231130e+01 7.7138630e+01 7.1908807e+01 8.2625530e+01 3.6146496e+01 7.4847322e+01 8.6250801e+01 6.2597563e+01 7.6373707e+01 1.0220432e+02 9.4106008e+01 5.5978474e+01 1.0934994e+02 1.0292718e+02 7.6335127e+01 6.5412712e+01 6.8293148e+01 8.2164719e+01 4.2791906e+01 4.8170159e+01 5.3162085e+01 2.6441425e+01 3.6612932e+01 3.6457496e+01 1.7367667e+01 - 6.9744628e+01 7.7584123e+01 5.9850484e+01 4.3785379e+01 4.2358200e+01 5.0844423e+01 1.0183016e+02 2.3443841e+01 1.0058543e+02 7.9929177e+01 2.6699915e+01 2.1039529e+01 1.2750195e+02 4.6132984e+01 4.0286351e+01 6.9436588e+01 4.6023036e+01 0.0000000e+00 1.2391422e+02 3.3763640e+01 9.9574502e+01 1.2430679e+02 1.1846692e+02 2.3464227e+01 6.9176987e+01 9.0518108e+01 9.4630779e+01 4.8316519e+01 6.0544442e+01 7.4247241e+01 5.9152649e+01 7.0238299e+01 9.8094075e+01 1.0416169e+02 4.5993644e+01 1.1181763e+02 1.0570008e+02 5.0294318e+01 4.7715630e+01 6.5043555e+01 6.9589609e+01 6.2177963e+01 6.6171204e+01 6.7487636e+01 3.9820453e+01 4.3137673e+01 5.0695354e+01 4.6700224e+01 1.0087487e+02 1.2231388e+02 8.0071045e+01 7.3005802e+01 8.9480392e+01 5.9227217e+01 1.3178136e+02 7.2656462e+01 1.2123397e+02 9.7254380e+01 7.9639061e+01 8.9683940e+01 1.4239833e+02 9.4151734e+01 5.3964026e+01 9.4171210e+01 5.1857247e+01 8.1270291e+01 1.3204660e+02 5.0020721e+01 1.1822382e+02 1.4125992e+02 1.2590696e+02 6.6405109e+01 1.1283842e+02 9.5251586e+01 1.0467234e+02 5.6120337e+01 1.1006750e+02 1.0770179e+02 9.7694150e+01 9.3937681e+01 1.2649970e+02 1.1143862e+02 5.7819722e+01 1.2634221e+02 1.1602193e+02 9.8782585e+01 7.8775676e+01 7.3166650e+01 9.2295107e+01 7.3614765e+01 7.6603053e+01 8.5624617e+01 6.0993665e+01 7.7077066e+01 7.5683811e+01 6.1240972e+01 - 8.3300028e+01 6.3038820e+01 7.6413299e+01 1.0937255e+02 9.6291331e+01 1.0676269e+02 3.9766295e+01 1.2988373e+02 3.5080530e+01 4.9557151e+01 1.0736052e+02 1.0672014e+02 2.0497253e+01 8.1576869e+01 1.4151304e+02 6.1899474e+01 1.0524866e+02 1.2391422e+02 0.0000000e+00 1.2481774e+02 2.9898110e+01 2.3905072e+01 6.4645984e+00 1.2683588e+02 6.3932910e+01 3.7392580e+01 3.7133568e+01 9.1834414e+01 7.5128735e+01 7.7535154e+01 6.6546426e+01 7.9794168e+01 5.4282470e+01 4.3062930e+01 1.2438168e+02 5.4351116e+01 6.1866263e+01 9.8735991e+01 1.0556208e+02 1.0039680e+02 9.8481985e+01 6.6336014e+01 6.2219580e+01 5.7631520e+01 9.0932126e+01 8.3634420e+01 7.7140773e+01 9.3169818e+01 9.1024403e+01 8.0791389e+01 7.8939390e+01 1.1215055e+02 1.0516427e+02 1.0825185e+02 5.9835051e+01 1.3491906e+02 5.0592274e+01 5.8231450e+01 1.1389652e+02 1.1667103e+02 3.9147735e+01 9.2262838e+01 1.4278884e+02 6.4034849e+01 1.0491427e+02 1.3104581e+02 2.3285280e+01 1.2587614e+02 4.5122900e+01 4.3193866e+01 2.4746099e+01 1.3104700e+02 8.0106230e+01 4.1563236e+01 4.2833926e+01 9.2517055e+01 8.9372482e+01 8.8196544e+01 7.8221887e+01 8.6213664e+01 6.9035486e+01 4.7367526e+01 1.2591575e+02 6.3190431e+01 6.6541522e+01 1.0815353e+02 1.1199104e+02 1.0171883e+02 1.0423702e+02 6.8114475e+01 6.3188645e+01 6.1841092e+01 9.2841787e+01 8.8540412e+01 8.1141611e+01 9.4706847e+01 - 7.2176918e+01 9.2321298e+01 5.6365414e+01 3.7103414e+01 5.0759609e+01 3.3260794e+01 1.1086181e+02 2.4095421e+01 1.0452014e+02 8.0439838e+01 3.5991082e+01 4.5686361e+01 1.3086293e+02 5.8835308e+01 1.6877687e+01 7.0235347e+01 2.5250573e+01 3.3763640e+01 1.2481774e+02 0.0000000e+00 1.0284613e+02 1.3044481e+02 1.1946999e+02 2.8565594e+01 8.4125476e+01 8.8700058e+01 9.5563295e+01 3.9737512e+01 7.9000932e+01 8.7363482e+01 7.0107547e+01 7.8469516e+01 1.0947134e+02 1.0596240e+02 4.0627424e+01 1.1822097e+02 1.1018383e+02 6.8847274e+01 5.6797631e+01 6.4721804e+01 7.7868646e+01 5.8493290e+01 6.2843684e+01 6.8101842e+01 3.4627852e+01 4.6840469e+01 5.0702209e+01 3.5462899e+01 7.9161891e+01 1.0165821e+02 6.2223889e+01 4.5591541e+01 6.1882723e+01 3.5592947e+01 1.1680796e+02 3.8969027e+01 1.0859467e+02 8.3758590e+01 4.9300788e+01 5.9852245e+01 1.3407499e+02 6.9859544e+01 2.3234838e+01 7.8988791e+01 2.8106548e+01 4.9759998e+01 1.2712053e+02 1.6569157e+01 1.0690622e+02 1.3380499e+02 1.2051733e+02 3.9784242e+01 9.3131189e+01 8.9655179e+01 9.8743620e+01 4.2125697e+01 8.8515845e+01 9.3899935e+01 7.8549193e+01 8.2553797e+01 1.1526610e+02 1.0773962e+02 4.3110792e+01 1.2098899e+02 1.1253778e+02 7.9322095e+01 6.2659414e+01 6.6295631e+01 8.2026162e+01 6.1606176e+01 6.6321256e+01 7.2790407e+01 4.0445555e+01 5.4861540e+01 5.6689136e+01 3.9996616e+01 - 5.4303610e+01 3.7285914e+01 5.0586706e+01 8.2825116e+01 6.8032931e+01 8.2746173e+01 1.9187247e+01 1.0432129e+02 7.9450298e+00 2.3308025e+01 8.0722916e+01 8.1279761e+01 2.8309905e+01 5.4863740e+01 1.1900513e+02 3.4853377e+01 8.2863412e+01 9.9574502e+01 2.9898110e+01 1.0284613e+02 0.0000000e+00 4.0294246e+01 2.7560323e+01 1.0627015e+02 4.2101063e+01 2.9183655e+01 3.5833692e+01 7.5176094e+01 5.3231491e+01 6.8076236e+01 4.3635022e+01 7.0670444e+01 5.2590572e+01 4.9827064e+01 1.0857800e+02 6.2679858e+01 6.7729220e+01 8.2628616e+01 9.0794983e+01 9.0721398e+01 8.9639383e+01 4.6340199e+01 4.4063627e+01 3.6083687e+01 6.9429793e+01 5.8405076e+01 5.2593287e+01 6.9680390e+01 7.7895641e+01 8.2492827e+01 6.2770197e+01 9.2939190e+01 9.1640876e+01 8.6390775e+01 6.7732633e+01 1.1707424e+02 5.3604457e+01 4.9565379e+01 9.8911831e+01 1.0597886e+02 5.6586348e+01 8.3708797e+01 1.2223201e+02 5.4369609e+01 8.3790386e+01 1.1785105e+02 4.5699542e+01 1.0616227e+02 4.9365337e+01 6.5947683e+01 4.3757685e+01 1.1671609e+02 8.1321403e+01 3.9302011e+01 4.8716519e+01 7.7799606e+01 8.8986178e+01 9.1363293e+01 7.4411286e+01 8.5471169e+01 8.1407154e+01 5.8008177e+01 1.1204143e+02 7.7950414e+01 7.6955908e+01 1.0541321e+02 1.0425819e+02 9.4143429e+01 1.0184272e+02 5.4103194e+01 5.0698662e+01 5.2119128e+01 7.6720259e+01 7.5061503e+01 6.6804474e+01 7.5206474e+01 - 9.3044688e+01 6.0808923e+01 8.6084316e+01 1.1771696e+02 1.0153497e+02 1.1690867e+02 4.1099409e+01 1.3431746e+02 4.5602685e+01 5.9849952e+01 1.1150179e+02 1.0649865e+02 3.3013597e+01 8.3389005e+01 1.4716387e+02 7.0979977e+01 1.1410617e+02 1.2430679e+02 2.3905072e+01 1.3044481e+02 4.0294246e+01 0.0000000e+00 2.2751872e+01 1.2720168e+02 5.8985614e+01 4.5851095e+01 3.8424459e+01 9.5506396e+01 6.9318618e+01 6.6918178e+01 6.5706216e+01 7.2647859e+01 3.8237412e+01 3.7756507e+01 1.2436536e+02 3.9570809e+01 5.0836673e+01 9.1249999e+01 1.0136210e+02 9.7446132e+01 9.0889211e+01 7.3453568e+01 6.8951705e+01 6.3728469e+01 9.5864018e+01 8.8416961e+01 8.3425024e+01 1.0166964e+02 1.0980183e+02 9.8701469e+01 9.3937428e+01 1.2569576e+02 1.2053682e+02 1.1981322e+02 8.0496206e+01 1.4580296e+02 7.2249528e+01 7.5903408e+01 1.2685206e+02 1.2876439e+02 6.1253059e+01 1.0691265e+02 1.5008520e+02 8.0955504e+01 1.1468202e+02 1.4080265e+02 4.2885032e+01 1.3357803e+02 6.5874899e+01 5.5456915e+01 4.3205663e+01 1.3703503e+02 9.4544240e+01 5.1898795e+01 5.0937652e+01 9.7727439e+01 1.0250079e+02 9.3012000e+01 9.1356224e+01 8.9218321e+01 7.5930440e+01 4.9024216e+01 1.2791934e+02 6.3019008e+01 6.3592966e+01 1.1418077e+02 1.1510740e+02 1.0109350e+02 1.0441275e+02 7.8726734e+01 7.3369550e+01 7.4917159e+01 1.0192806e+02 1.0126723e+02 9.3939345e+01 1.0602603e+02 - 8.0634893e+01 5.9710508e+01 7.2360609e+01 1.0520079e+02 9.2133083e+01 1.0248332e+02 3.8488195e+01 1.2489772e+02 3.3818602e+01 4.5809096e+01 1.0259918e+02 1.0155176e+02 2.4740035e+01 7.6853085e+01 1.3622682e+02 5.8018373e+01 1.0046055e+02 1.1846692e+02 6.4645984e+00 1.1946999e+02 2.7560323e+01 2.2751872e+01 0.0000000e+00 1.2090107e+02 5.9158709e+01 3.1589344e+01 3.0679074e+01 8.5888191e+01 7.0161825e+01 7.1469701e+01 6.1255478e+01 7.3413625e+01 4.9180208e+01 3.7147710e+01 1.1814093e+02 4.9373025e+01 5.6275628e+01 9.2648793e+01 9.9202633e+01 9.3951046e+01 9.2073852e+01 6.1017319e+01 5.6702567e+01 5.2385886e+01 8.5462404e+01 7.8681232e+01 7.2247692e+01 8.8452582e+01 8.8677847e+01 7.8392930e+01 7.5194502e+01 1.0820971e+02 1.0146341e+02 1.0402304e+02 5.9211945e+01 1.3020762e+02 4.9816827e+01 5.5129436e+01 1.0954360e+02 1.1207610e+02 4.1700397e+01 8.8278576e+01 1.3756516e+02 6.0672063e+01 1.0017441e+02 1.2597306e+02 2.4412748e+01 1.2064613e+02 4.3775306e+01 4.2744178e+01 2.3922416e+01 1.2535694e+02 7.6518505e+01 3.6116596e+01 3.7580707e+01 8.6666185e+01 8.5383775e+01 8.3015392e+01 7.3902475e+01 8.0452722e+01 6.5246505e+01 4.2195551e+01 1.1977189e+02 5.9013376e+01 6.1462590e+01 1.0275223e+02 1.0599311e+02 9.5399591e+01 9.8219758e+01 6.3045743e+01 5.7963882e+01 5.7230457e+01 8.7620660e+01 8.4026061e+01 7.6647045e+01 9.0162351e+01 - 8.4014782e+01 8.9920025e+01 6.7991164e+01 5.5672333e+01 5.8567285e+01 5.6283249e+01 1.1138623e+02 3.5515777e+01 1.0884475e+02 8.6692180e+01 4.2895237e+01 3.8765465e+01 1.3395990e+02 5.8623731e+01 3.5411947e+01 7.7729644e+01 4.7119248e+01 2.3464227e+01 1.2683588e+02 2.8565594e+01 1.0627015e+02 1.2720168e+02 1.2090107e+02 0.0000000e+00 7.7946790e+01 9.0863663e+01 9.3690034e+01 3.9647144e+01 7.0129011e+01 7.2219470e+01 6.6238469e+01 6.4398033e+01 9.9229976e+01 1.0092433e+02 2.3616375e+01 1.0871345e+02 1.0011974e+02 4.8676415e+01 3.6267341e+01 5.0110234e+01 5.8942774e+01 6.3664056e+01 6.6657741e+01 7.1168834e+01 4.0136851e+01 5.1695881e+01 5.7221443e+01 5.1097294e+01 1.0067356e+02 1.1554337e+02 7.9546304e+01 7.1563061e+01 8.4206890e+01 6.0724614e+01 1.2858685e+02 6.3844176e+01 1.2042963e+02 9.6398440e+01 7.1924521e+01 7.7402737e+01 1.4258220e+02 8.6348117e+01 4.4821128e+01 9.2543723e+01 5.0759968e+01 6.6363124e+01 1.3185109e+02 4.0776252e+01 1.1706252e+02 1.3724127e+02 1.2506275e+02 4.7563110e+01 1.0380884e+02 9.2973226e+01 1.0025161e+02 4.5500168e+01 9.9168484e+01 9.3714205e+01 8.9184713e+01 8.0113472e+01 1.1664332e+02 1.0560822e+02 3.5744187e+01 1.1759919e+02 1.0676392e+02 8.1549241e+01 5.9717359e+01 5.6336829e+01 7.4793280e+01 7.0590887e+01 7.3499996e+01 8.2317428e+01 5.3856976e+01 7.1188965e+01 7.1703236e+01 5.9776762e+01 - 5.4579493e+01 1.8439162e+01 4.8451830e+01 7.0826797e+01 5.0398057e+01 7.5468214e+01 3.7962103e+01 8.1589136e+01 4.4047516e+01 3.7881305e+01 5.8503078e+01 4.9610491e+01 6.5224824e+01 2.9580305e+01 9.9296242e+01 3.8035684e+01 7.2897138e+01 6.9176987e+01 6.3932910e+01 8.4125476e+01 4.2101063e+01 5.8985614e+01 5.9158709e+01 7.7946790e+01 0.0000000e+00 4.4571120e+01 4.4312216e+01 5.8831906e+01 1.1521071e+01 3.8968244e+01 1.5274460e+01 4.5797406e+01 3.9306336e+01 5.4280681e+01 8.3602854e+01 5.9253852e+01 6.1219331e+01 4.6101039e+01 6.0701775e+01 6.8683779e+01 6.2266503e+01 4.1612319e+01 4.0835227e+01 3.2788742e+01 5.2503328e+01 4.0778489e+01 4.0724273e+01 6.0284313e+01 9.6007115e+01 1.0475801e+02 7.3474519e+01 9.4191419e+01 9.9699057e+01 8.2721759e+01 9.9039662e+01 1.1084339e+02 8.6268166e+01 7.1925755e+01 1.0016763e+02 1.0752301e+02 9.4815959e+01 9.3867738e+01 1.0674473e+02 7.3659038e+01 7.6417070e+01 1.1227439e+02 8.0124055e+01 9.2899528e+01 8.1072145e+01 9.4105281e+01 7.5991536e+01 1.0328356e+02 9.7436353e+01 5.5514582e+01 6.4241118e+01 6.5956522e+01 1.0113807e+02 9.3853255e+01 8.5914841e+01 8.2427557e+01 9.5519428e+01 6.8813555e+01 9.2179638e+01 8.7641052e+01 7.9979824e+01 1.0293614e+02 9.2613999e+01 7.7710395e+01 9.1488951e+01 5.8520362e+01 5.6272781e+01 6.4410097e+01 7.1771075e+01 7.9679190e+01 7.2566090e+01 7.3459887e+01 - 6.3475916e+01 5.1072465e+01 4.7572416e+01 7.8851964e+01 6.8555057e+01 7.4645534e+01 4.4620009e+01 9.6325955e+01 3.6345616e+01 2.7562593e+01 7.5944177e+01 7.6017704e+01 4.9680717e+01 5.3798998e+01 1.0553405e+02 3.6717305e+01 7.0823355e+01 9.0518108e+01 3.7392580e+01 8.8700058e+01 2.9183655e+01 4.5851095e+01 3.1589344e+01 9.0863663e+01 4.4571120e+01 0.0000000e+00 1.4331374e+01 5.4560506e+01 5.3193030e+01 5.3846874e+01 3.9127582e+01 5.1132910e+01 4.6023449e+01 3.0427920e+01 8.7770845e+01 4.8917263e+01 4.8539421e+01 6.9373520e+01 7.1880931e+01 6.6717103e+01 6.8884085e+01 3.0972228e+01 2.6037993e+01 2.4802844e+01 5.5119789e+01 5.1598060e+01 4.4759887e+01 5.9642931e+01 6.8868779e+01 6.3688383e+01 4.9629653e+01 8.0744170e+01 7.5600190e+01 7.5810770e+01 5.5811505e+01 1.0020111e+02 4.5270283e+01 3.5651657e+01 8.1053159e+01 8.3925384e+01 5.5747564e+01 6.3007166e+01 1.0648665e+02 3.8997159e+01 7.0401682e+01 9.5914978e+01 4.1933617e+01 8.9539110e+01 3.8858412e+01 5.3238112e+01 3.5872644e+01 9.4141214e+01 5.7641123e+01 1.2026426e+01 2.2955436e+01 5.5187338e+01 6.4034861e+01 6.2362452e+01 4.9928633e+01 5.6372501e+01 5.6146876e+01 3.4171729e+01 8.8978209e+01 5.4512646e+01 5.2072306e+01 7.6990890e+01 7.7183745e+01 6.7757629e+01 7.3418601e+01 3.2896849e+01 2.7635063e+01 3.0115173e+01 5.6677134e+01 5.5570881e+01 4.8226362e+01 6.0968977e+01 - 7.4634920e+01 5.3764041e+01 5.8952390e+01 8.8943639e+01 7.7048325e+01 8.5399722e+01 4.7316553e+01 1.0341399e+02 4.3598433e+01 3.9128185e+01 8.3291289e+01 8.0120432e+01 5.1933446e+01 5.9605216e+01 1.1241662e+02 4.7827216e+01 8.0362506e+01 9.4630779e+01 3.7133568e+01 9.5563295e+01 3.5833692e+01 3.8424459e+01 3.0679074e+01 9.3690034e+01 4.4312216e+01 1.4331374e+01 0.0000000e+00 5.8684060e+01 5.2595978e+01 4.5422974e+01 4.1794531e+01 4.4099006e+01 3.4233565e+01 1.6620632e+01 8.8729481e+01 3.4597118e+01 3.4840814e+01 6.5601520e+01 6.9565659e+01 6.3286074e+01 6.2264219e+01 4.0101150e+01 3.4672446e+01 3.3684438e+01 6.1863956e+01 5.9307488e+01 5.3614063e+01 6.9494394e+01 8.2264926e+01 7.2114503e+01 6.2424412e+01 9.2353032e+01 8.6924168e+01 8.6937017e+01 6.3810936e+01 1.0926348e+02 5.5454576e+01 4.8565712e+01 9.1042842e+01 9.1911825e+01 6.0958764e+01 7.2672181e+01 1.1385931e+02 5.1658478e+01 8.0240267e+01 1.0283396e+02 4.3662247e+01 9.7134853e+01 4.8279452e+01 5.1541020e+01 3.7871794e+01 9.8775526e+01 6.3931939e+01 1.9090497e+01 2.1599388e+01 5.9861861e+01 6.9777735e+01 6.0441015e+01 5.7271391e+01 5.4131435e+01 5.3086816e+01 2.5766252e+01 9.0682718e+01 4.5978619e+01 4.2136963e+01 7.8001694e+01 7.7639652e+01 6.5283628e+01 6.9944746e+01 4.3053764e+01 3.7397296e+01 4.1003192e+01 6.4911153e+01 6.5754708e+01 5.9100002e+01 7.1731172e+01 - 6.7694082e+01 7.1563754e+01 4.4480183e+01 5.2141680e+01 5.2180997e+01 4.6038456e+01 8.5104954e+01 5.4327938e+01 7.9275304e+01 5.6527063e+01 4.5495996e+01 4.6197688e+01 1.0168645e+02 4.5262763e+01 5.5932854e+01 5.1022787e+01 3.5044027e+01 4.8316519e+01 9.1834414e+01 3.9737512e+01 7.5176094e+01 9.5506396e+01 8.5888191e+01 3.9647144e+01 5.8831906e+01 5.4560506e+01 5.8684060e+01 0.0000000e+00 5.6533270e+01 5.4243712e+01 4.4391941e+01 4.3142537e+01 7.4226505e+01 6.7169909e+01 3.5523055e+01 7.9699047e+01 7.1088543e+01 4.6036327e+01 3.3898042e+01 3.3664829e+01 4.7117288e+01 3.0121698e+01 3.1569028e+01 3.9550273e+01 1.7770434e+01 3.3755409e+01 3.3327124e+01 3.2681786e+01 7.1418155e+01 7.8563788e+01 4.7609916e+01 5.5035600e+01 5.8803394e+01 4.7041921e+01 8.9730662e+01 5.9369596e+01 8.2276244e+01 5.9311760e+01 5.1959946e+01 5.5144398e+01 1.0407281e+02 5.3765407e+01 5.7204193e+01 5.5824577e+01 3.5466798e+01 5.5277068e+01 9.3734821e+01 4.1778564e+01 7.8431859e+01 9.8229008e+01 8.6720688e+01 4.4787941e+01 6.6553210e+01 5.4538544e+01 6.1711859e+01 9.6091532e+00 6.3808679e+01 6.0275593e+01 5.1841934e+01 4.7344755e+01 7.9149752e+01 6.8863368e+01 3.7408724e+01 8.2070373e+01 7.3168695e+01 5.4666265e+01 3.9998866e+01 3.5269416e+01 5.1152135e+01 3.2624329e+01 3.4802286e+01 4.3722568e+01 2.2873770e+01 3.8903062e+01 3.7558093e+01 3.5362959e+01 - 5.7306925e+01 2.5637755e+01 5.0892962e+01 6.8249059e+01 4.7580645e+01 7.4106692e+01 4.8903452e+01 7.5087125e+01 5.4925103e+01 4.6125722e+01 5.3225160e+01 4.1225834e+01 7.6727630e+01 2.6802655e+01 9.3384687e+01 4.3658039e+01 7.0950658e+01 6.0544442e+01 7.5128735e+01 7.9000932e+01 5.3231491e+01 6.9318618e+01 7.0161825e+01 7.0129011e+01 1.1521071e+01 5.3193030e+01 5.2595978e+01 5.6533270e+01 0.0000000e+00 3.6935434e+01 1.7428093e+01 4.3917875e+01 4.4891030e+01 6.1412319e+01 7.7330730e+01 6.4978037e+01 6.5481968e+01 3.7745026e+01 5.4052075e+01 6.5130989e+01 5.7876867e+01 4.4793281e+01 4.4824655e+01 3.8249104e+01 4.9965971e+01 3.9150446e+01 4.1296862e+01 5.9333438e+01 1.0077950e+02 1.1109546e+02 7.7430075e+01 9.4573649e+01 1.0195057e+02 8.2119441e+01 1.0766410e+02 1.0877310e+02 9.5175089e+01 7.8922423e+01 1.0060733e+02 1.0815046e+02 1.0533450e+02 9.7215576e+01 1.0201786e+02 7.9890178e+01 7.5121782e+01 1.1073795e+02 9.0623492e+01 8.9279250e+01 9.0060605e+01 1.0350789e+02 8.6124905e+01 9.9827078e+01 1.0276313e+02 6.3287730e+01 7.1809390e+01 6.4712887e+01 1.0537403e+02 9.6807072e+01 9.0342018e+01 8.4276986e+01 1.0170041e+02 7.5806041e+01 8.7376452e+01 9.3789146e+01 8.4882831e+01 1.0365755e+02 9.0876322e+01 7.5518678e+01 9.0942807e+01 6.2388803e+01 6.0813122e+01 6.9877558e+01 7.1881310e+01 8.2005994e+01 7.5541363e+01 7.4039221e+01 - 8.7164629e+01 5.7107365e+01 7.2045649e+01 9.0435679e+01 7.5609062e+01 9.1201781e+01 6.8916398e+01 9.1941749e+01 7.3478218e+01 6.4492768e+01 7.5526180e+01 6.2326199e+01 8.7392955e+01 5.5202301e+01 1.0214524e+02 6.5696299e+01 8.3570014e+01 7.4247241e+01 7.7535154e+01 8.7363482e+01 6.8076236e+01 6.6918178e+01 7.1469701e+01 7.2219470e+01 3.8968244e+01 5.3846874e+01 4.5422974e+01 5.4243712e+01 3.6935434e+01 0.0000000e+00 3.9262906e+01 1.4612871e+01 3.0724467e+01 4.4203138e+01 6.8164405e+01 4.1650879e+01 3.7164953e+01 2.7745731e+01 3.9873072e+01 4.2622079e+01 2.8600087e+01 5.4049783e+01 5.1102441e+01 5.0576833e+01 5.9530021e+01 5.9400058e+01 5.9582715e+01 7.4772907e+01 1.1106761e+02 1.0731118e+02 8.6518991e+01 1.0557392e+02 1.0710876e+02 9.5866489e+01 1.0636702e+02 1.1356669e+02 9.8192095e+01 8.4098345e+01 1.0420223e+02 1.0496612e+02 1.0636027e+02 9.6223383e+01 1.0780220e+02 8.4670294e+01 8.5871838e+01 1.0726744e+02 8.8456598e+01 9.4411305e+01 9.1493412e+01 9.3169626e+01 8.2978435e+01 9.3652926e+01 9.4595606e+01 5.9227921e+01 6.1126387e+01 6.0259295e+01 9.5792437e+01 7.5287109e+01 8.4107916e+01 6.2648127e+01 8.2604636e+01 5.8050044e+01 7.6478565e+01 7.0419272e+01 5.8597665e+01 8.5477850e+01 7.3323752e+01 5.3456620e+01 6.5561451e+01 6.4752283e+01 6.1467578e+01 7.0557396e+01 7.3715465e+01 8.4404824e+01 7.9571984e+01 8.3640239e+01 - 4.7993485e+01 2.7853351e+01 3.6292241e+01 5.8618060e+01 4.0807549e+01 6.1644361e+01 4.5616303e+01 6.9839849e+01 4.6201267e+01 3.1610528e+01 4.7255308e+01 4.0975001e+01 7.0138262e+01 1.9858472e+01 8.5802843e+01 2.8925444e+01 5.8212816e+01 5.9152649e+01 6.6546426e+01 7.0107547e+01 4.3635022e+01 6.5706216e+01 6.1255478e+01 6.6238469e+01 1.5274460e+01 3.9127582e+01 4.1794531e+01 4.4391941e+01 1.7428093e+01 3.9262906e+01 0.0000000e+00 4.1073183e+01 4.6341661e+01 5.3668839e+01 7.1503188e+01 6.2540471e+01 6.1545007e+01 4.1908215e+01 5.1762566e+01 5.9033747e+01 5.6751837e+01 2.7595363e+01 2.7670087e+01 2.0985902e+01 3.7499021e+01 2.6989173e+01 2.6487927e+01 4.5833325e+01 8.3837635e+01 9.4129687e+01 6.0312738e+01 7.9664351e+01 8.5386028e+01 6.8332636e+01 9.1807514e+01 9.5671126e+01 7.9398059e+01 6.1861883e+01 8.5134676e+01 9.2689013e+01 9.2337078e+01 8.0233867e+01 9.2341718e+01 6.2580960e+01 6.1496502e+01 9.7149071e+01 7.8969056e+01 7.8033116e+01 7.4560518e+01 9.1652285e+01 7.3874298e+01 8.8733644e+01 8.6329260e+01 4.8601012e+01 5.8605250e+01 5.1448595e+01 8.9142305e+01 8.4108348e+01 7.3748754e+01 7.2284888e+01 8.8946943e+01 6.5206601e+01 7.9069231e+01 8.4114807e+01 7.6240617e+01 9.0602118e+01 7.9960035e+01 6.6943590e+01 8.1393721e+01 4.5264620e+01 4.3830826e+01 5.2750346e+01 5.6672269e+01 6.5322671e+01 5.8543878e+01 5.8623192e+01 - 8.6826846e+01 6.3980548e+01 6.8388971e+01 8.5622600e+01 7.4186085e+01 8.4242550e+01 7.5122653e+01 8.6473369e+01 7.6556924e+01 6.3834262e+01 7.2154847e+01 6.1142704e+01 9.1599977e+01 5.5580855e+01 9.3407941e+01 6.4341948e+01 7.5355494e+01 7.0238299e+01 7.9794168e+01 7.8469516e+01 7.0670444e+01 7.2647859e+01 7.3413625e+01 6.4398033e+01 4.5797406e+01 5.1132910e+01 4.4099006e+01 4.3142537e+01 4.3917875e+01 1.4612871e+01 4.1073183e+01 0.0000000e+00 4.0144586e+01 4.3385949e+01 5.6990097e+01 4.5399698e+01 3.7005815e+01 2.7741798e+01 3.0932512e+01 2.8932467e+01 1.9298585e+01 4.8206198e+01 4.5175018e+01 4.7605712e+01 5.1917268e+01 5.5846457e+01 5.5476944e+01 6.8042239e+01 1.0294522e+02 9.7642298e+01 7.8400401e+01 9.6148230e+01 9.6446954e+01 8.7543276e+01 9.9925622e+01 1.0213735e+02 9.2919919e+01 7.7382599e+01 9.2715919e+01 9.2002429e+01 1.0400541e+02 8.4917268e+01 9.7490690e+01 7.7109932e+01 7.6902777e+01 9.4046672e+01 8.7141006e+01 8.3795222e+01 8.6408622e+01 8.9751649e+01 8.0899273e+01 8.0509011e+01 8.3801132e+01 5.4031153e+01 5.5512573e+01 4.8076928e+01 8.3870264e+01 6.2812438e+01 7.3008481e+01 4.9397756e+01 7.4076855e+01 5.3248387e+01 6.3625207e+01 6.4629659e+01 5.2241698e+01 7.1207115e+01 5.8758945e+01 3.8984579e+01 5.1541113e+01 5.6015702e+01 5.3060222e+01 6.2214013e+01 6.2697099e+01 7.3746499e+01 6.9846206e+01 7.4575014e+01 - 8.9450800e+01 5.1534015e+01 7.8297567e+01 1.0431133e+02 8.7058021e+01 1.0495595e+02 5.1126575e+01 1.1302993e+02 5.8439709e+01 6.0015829e+01 9.2489658e+01 8.2112080e+01 6.3640304e+01 6.5781498e+01 1.2543792e+02 6.6368234e+01 9.9533930e+01 9.8094075e+01 5.4282470e+01 1.0947134e+02 5.2590572e+01 3.8237412e+01 4.9180208e+01 9.9229976e+01 3.9306336e+01 4.6023449e+01 3.4233565e+01 7.4226505e+01 4.4891030e+01 3.0724467e+01 4.6341661e+01 4.0144586e+01 0.0000000e+00 3.0272674e+01 9.5939467e+01 2.2917078e+01 2.9877011e+01 5.6734741e+01 6.9281679e+01 6.8355593e+01 5.6955026e+01 6.1657959e+01 5.7422302e+01 5.3606933e+01 7.6917980e+01 7.2070078e+01 6.9758020e+01 8.8234022e+01 1.1360205e+02 1.0592600e+02 9.1682733e+01 1.1780250e+02 1.1641483e+02 1.0928947e+02 9.7062394e+01 1.3179108e+02 8.8546930e+01 8.1552657e+01 1.1772343e+02 1.1894697e+02 8.8587059e+01 1.0360279e+02 1.3026015e+02 8.4341206e+01 1.0125620e+02 1.2587120e+02 6.9163100e+01 1.1517750e+02 8.1427241e+01 7.6304109e+01 6.5538900e+01 1.1634681e+02 9.6211058e+01 5.3172580e+01 5.3293487e+01 7.8695557e+01 1.0066185e+02 8.2698765e+01 8.8753434e+01 7.3900288e+01 7.8093994e+01 4.8505894e+01 1.0227612e+02 6.2395659e+01 5.4758348e+01 9.9826122e+01 9.3895808e+01 7.5764543e+01 8.3068286e+01 7.1207662e+01 6.6374351e+01 7.2718682e+01 8.8358051e+01 9.4128108e+01 8.7701997e+01 9.5869548e+01 - 9.0759728e+01 6.5622598e+01 7.4588337e+01 1.0323358e+02 9.1260218e+01 9.9403246e+01 5.8711718e+01 1.1503806e+02 5.7641333e+01 5.5627407e+01 9.6049374e+01 9.0691351e+01 6.0186698e+01 7.2631866e+01 1.2259749e+02 6.4011360e+01 9.3171369e+01 1.0416169e+02 4.3062930e+01 1.0596240e+02 4.9827064e+01 3.7756507e+01 3.7147710e+01 1.0092433e+02 5.4280681e+01 3.0427920e+01 1.6620632e+01 6.7169909e+01 6.1412319e+01 4.4203138e+01 5.3668839e+01 4.3385949e+01 3.0272674e+01 0.0000000e+00 9.3051646e+01 2.0437615e+01 2.0499081e+01 6.8468537e+01 7.2271206e+01 6.3370072e+01 5.9812718e+01 5.4198519e+01 4.8620306e+01 4.8855335e+01 7.3447926e+01 7.2825096e+01 6.7848276e+01 8.3203321e+01 9.5898721e+01 7.9292828e+01 7.6385176e+01 1.0551028e+02 9.8613050e+01 1.0053864e+02 7.1099405e+01 1.1972673e+02 6.5745816e+01 6.1813107e+01 1.0186325e+02 1.0002936e+02 6.7003391e+01 8.2284954e+01 1.2372613e+02 6.4667872e+01 9.2876653e+01 1.1043259e+02 4.7880961e+01 1.0727730e+02 5.8152859e+01 4.9533727e+01 4.2673913e+01 1.0497580e+02 6.9309550e+01 3.0972761e+01 2.5448103e+01 6.7945331e+01 7.4576837e+01 5.7689374e+01 6.4667382e+01 5.2537619e+01 4.8227120e+01 1.8293957e+01 9.4765509e+01 3.4735352e+01 2.9839078e+01 7.8603489e+01 7.9217141e+01 6.5100363e+01 6.6808938e+01 5.5683274e+01 4.9894671e+01 5.3215347e+01 7.5563470e+01 7.7061780e+01 7.1366782e+01 8.4797970e+01 - 9.6393581e+01 9.8239915e+01 7.6054362e+01 7.0982649e+01 7.4103818e+01 6.7060876e+01 1.1602357e+02 5.6332014e+01 1.1266301e+02 9.0673540e+01 6.0628290e+01 5.6377768e+01 1.3486426e+02 6.9853296e+01 4.8778172e+01 8.4109176e+01 5.5483376e+01 4.5993644e+01 1.2438168e+02 4.0627424e+01 1.0857800e+02 1.2436536e+02 1.1814093e+02 2.3616375e+01 8.3602854e+01 8.7770845e+01 8.8729481e+01 3.5523055e+01 7.7330730e+01 6.8164405e+01 7.1503188e+01 5.6990097e+01 9.5939467e+01 9.3051646e+01 0.0000000e+00 1.0059809e+02 8.9912255e+01 4.9656484e+01 2.9336249e+01 3.3906344e+01 4.7577437e+01 6.4982645e+01 6.6371353e+01 7.3260527e+01 4.5865345e+01 6.1332238e+01 6.4404100e+01 5.9564981e+01 1.0109170e+02 1.0678866e+02 7.9824299e+01 7.5516960e+01 8.1953201e+01 6.8101255e+01 1.2188172e+02 6.4507851e+01 1.1626094e+02 9.3673754e+01 6.9311043e+01 6.8581609e+01 1.3785670e+02 7.9344669e+01 5.1224432e+01 8.9607900e+01 5.6643313e+01 5.7739569e+01 1.2650339e+02 4.4693495e+01 1.1233303e+02 1.2790772e+02 1.1931107e+02 3.5977929e+01 9.2715874e+01 8.7307277e+01 9.1783288e+01 3.8042558e+01 8.6745306e+01 7.6235500e+01 7.9410146e+01 6.3085736e+01 1.0227039e+02 9.5093980e+01 1.5536014e+01 1.0370237e+02 9.2611777e+01 6.2566887e+01 3.9204363e+01 3.7027724e+01 5.3964274e+01 6.7351614e+01 6.9447778e+01 7.7661295e+01 5.0662708e+01 6.7253595e+01 6.8996113e+01 6.2586984e+01 - 1.0435565e+02 7.1606701e+01 8.9850722e+01 1.1700132e+02 1.0275462e+02 1.1481049e+02 6.6210228e+01 1.2584164e+02 6.9868131e+01 7.0939863e+01 1.0694863e+02 9.8119890e+01 6.9356174e+01 8.2322869e+01 1.3441578e+02 7.8728554e+01 1.0815683e+02 1.1181763e+02 5.4351116e+01 1.1822097e+02 6.2679858e+01 3.9570809e+01 4.9373025e+01 1.0871345e+02 5.9253852e+01 4.8917263e+01 3.4597118e+01 7.9699047e+01 6.4978037e+01 4.1650879e+01 6.2540471e+01 4.5399698e+01 2.2917078e+01 2.0437615e+01 1.0059809e+02 0.0000000e+00 1.3629020e+01 6.9115905e+01 7.6281485e+01 6.8881764e+01 5.9620861e+01 6.9888862e+01 6.4656170e+01 6.3778602e+01 8.6417511e+01 8.5208859e+01 8.1621352e+01 9.8107091e+01 1.1588335e+02 9.9038910e+01 9.5475669e+01 1.2320446e+02 1.1763058e+02 1.1702341e+02 9.0310685e+01 1.3563589e+02 8.5348313e+01 8.2013410e+01 1.1956837e+02 1.1724547e+02 8.2906950e+01 1.0147087e+02 1.3688190e+02 8.4828134e+01 1.0858537e+02 1.2577905e+02 6.2819668e+01 1.2120491e+02 7.7742444e+01 6.3038296e+01 5.9051070e+01 1.1756845e+02 8.8281839e+01 5.1208183e+01 4.5492558e+01 8.1775265e+01 9.2796689e+01 7.0519772e+01 8.3778701e+01 6.4770296e+01 6.2091949e+01 3.4709694e+01 1.0412493e+02 4.2990708e+01 3.6287810e+01 9.1631522e+01 9.0008306e+01 7.2940106e+01 7.4745598e+01 7.3985672e+01 6.8444173e+01 7.2892074e+01 9.1832837e+01 9.5485082e+01 8.9978561e+01 1.0181080e+02 - 1.0454727e+02 7.5675326e+01 8.7465872e+01 1.1275718e+02 1.0044687e+02 1.0949677e+02 7.3446734e+01 1.1971701e+02 7.5204177e+01 7.1831665e+01 1.0267272e+02 9.4048781e+01 7.8068869e+01 8.0638856e+01 1.2608744e+02 7.8357475e+01 1.0173552e+02 1.0570008e+02 6.1866263e+01 1.1018383e+02 6.7729220e+01 5.0836673e+01 5.6275628e+01 1.0011974e+02 6.1219331e+01 4.8539421e+01 3.4840814e+01 7.1088543e+01 6.5481968e+01 3.7164953e+01 6.1545007e+01 3.7005815e+01 2.9877011e+01 2.0499081e+01 8.9912255e+01 1.3629020e+01 0.0000000e+00 6.3083497e+01 6.6984065e+01 5.7211719e+01 4.9332509e+01 6.5775394e+01 6.0536561e+01 6.1721781e+01 8.0086855e+01 8.1582822e+01 7.8163896e+01 9.2917656e+01 1.1185687e+02 9.3838421e+01 9.0800417e+01 1.1672385e+02 1.1069702e+02 1.1100603e+02 8.8918545e+01 1.2670151e+02 8.4945764e+01 7.9243547e+01 1.1139259e+02 1.0768573e+02 8.6315296e+01 9.4037071e+01 1.2780618e+02 8.1154605e+01 1.0182820e+02 1.1532653e+02 6.7034873e+01 1.1239780e+02 7.7365163e+01 6.4675146e+01 6.2102098e+01 1.0645332e+02 8.1280556e+01 4.8804430e+01 4.2351410e+01 7.2528622e+01 8.4465588e+01 5.9285832e+01 7.6295351e+01 5.2781879e+01 5.5515525e+01 3.0855034e+01 9.2613979e+01 3.7380198e+01 2.7226279e+01 7.9570543e+01 7.7544733e+01 6.0408310e+01 6.1436143e+01 6.8303570e+01 6.3001418e+01 6.7935191e+01 8.3823007e+01 8.8327027e+01 8.3668375e+01 9.5495856e+01 - 8.3676824e+01 6.3093949e+01 6.9042411e+01 7.7048824e+01 6.4311290e+01 7.9845808e+01 8.3082093e+01 7.0894878e+01 8.6506131e+01 7.2003672e+01 5.9050232e+01 4.2764698e+01 1.0634879e+02 4.8124674e+01 8.1417932e+01 6.8231858e+01 7.1748386e+01 5.0294318e+01 9.8735991e+01 6.8847274e+01 8.2628616e+01 9.1249999e+01 9.2648793e+01 4.8676415e+01 4.6101039e+01 6.9373520e+01 6.5601520e+01 4.6036327e+01 3.7745026e+01 2.7745731e+01 4.1908215e+01 2.7741798e+01 5.6734741e+01 6.8468537e+01 4.9656484e+01 6.9115905e+01 6.3083497e+01 0.0000000e+00 2.1840287e+01 3.7992308e+01 2.7769734e+01 5.5921901e+01 5.5588956e+01 5.6159940e+01 4.9196139e+01 5.1403719e+01 5.5104378e+01 6.5607146e+01 1.1221889e+02 1.1656290e+02 8.7129576e+01 9.7461224e+01 1.0404759e+02 8.5890992e+01 1.2046590e+02 1.0088113e+02 1.1142614e+02 9.2439008e+01 9.7580754e+01 1.0044003e+02 1.2490720e+02 9.7745704e+01 8.9514437e+01 9.1424809e+01 7.5345087e+01 9.7708108e+01 1.0905483e+02 7.9003971e+01 1.0574212e+02 1.1490289e+02 1.0304964e+02 8.0697331e+01 1.0360734e+02 7.4651883e+01 7.9450914e+01 5.4359888e+01 1.0260378e+02 8.5725582e+01 9.0629358e+01 7.1160976e+01 1.0032028e+02 7.9697090e+01 6.1973149e+01 9.2269713e+01 7.9949382e+01 8.7535560e+01 6.9265283e+01 5.1596338e+01 6.9142826e+01 6.8444572e+01 6.7458391e+01 7.7802598e+01 6.8429207e+01 8.3230957e+01 7.9713970e+01 7.7298315e+01 - 8.8688989e+01 7.7504516e+01 6.9745558e+01 7.4330606e+01 6.8089089e+01 7.3561532e+01 9.5383270e+01 6.5466356e+01 9.5310960e+01 7.6980274e+01 5.9131149e+01 4.7637940e+01 1.1563136e+02 5.5913154e+01 6.8964262e+01 7.2490368e+01 6.3213261e+01 4.7715630e+01 1.0556208e+02 5.6797631e+01 9.0794983e+01 1.0136210e+02 9.9202633e+01 3.6267341e+01 6.0701775e+01 7.1880931e+01 6.9565659e+01 3.3898042e+01 5.4052075e+01 3.9873072e+01 5.1762566e+01 3.0932512e+01 6.9281679e+01 7.2271206e+01 2.9336249e+01 7.6281485e+01 6.6984065e+01 2.1840287e+01 0.0000000e+00 2.1150846e+01 2.2825254e+01 5.4798444e+01 5.4720687e+01 5.9109505e+01 4.3185493e+01 5.2843501e+01 5.5808376e+01 6.0628934e+01 1.0500554e+02 1.0746054e+02 8.0605082e+01 8.6994509e+01 9.2191592e+01 7.7264457e+01 1.1619494e+02 8.5381726e+01 1.0904964e+02 8.8555867e+01 8.3588960e+01 8.3995105e+01 1.2593270e+02 8.5728573e+01 7.4498794e+01 8.6252102e+01 6.5603903e+01 7.9257107e+01 1.1153619e+02 6.4282825e+01 1.0378636e+02 1.1442846e+02 1.0477680e+02 6.0780580e+01 9.3160429e+01 7.3964857e+01 7.7933264e+01 4.0511923e+01 9.0080118e+01 7.3294638e+01 8.0040787e+01 5.8486171e+01 9.3542787e+01 7.8870290e+01 4.0697482e+01 8.9180341e+01 7.6803025e+01 7.0057459e+01 4.9514600e+01 3.3919122e+01 5.2920146e+01 6.2442091e+01 6.2386742e+01 7.2252210e+01 5.6458040e+01 7.2359686e+01 7.0838910e+01 6.8322572e+01 - 9.6539756e+01 8.5928284e+01 7.4522848e+01 8.3775434e+01 7.9850742e+01 7.9246871e+01 9.8511095e+01 7.8881807e+01 9.6473002e+01 7.8461038e+01 7.2359735e+01 6.4623518e+01 1.1363484e+02 6.7070744e+01 7.7712357e+01 7.6328083e+01 6.7889425e+01 6.5043555e+01 1.0039680e+02 6.4721804e+01 9.0721398e+01 9.7446132e+01 9.3951046e+01 5.0110234e+01 6.8683779e+01 6.6717103e+01 6.3286074e+01 3.3664829e+01 6.5130989e+01 4.2622079e+01 5.9033747e+01 2.8932467e+01 6.8355593e+01 6.3370072e+01 3.3906344e+01 6.8881764e+01 5.7211719e+01 3.7992308e+01 2.1150846e+01 0.0000000e+00 2.0086302e+01 5.5140756e+01 5.3534314e+01 6.0319068e+01 4.9131775e+01 6.1347275e+01 6.1616862e+01 6.5856072e+01 1.0037992e+02 9.4648137e+01 7.7040555e+01 8.6728932e+01 8.6518243e+01 8.0104434e+01 1.0486678e+02 8.4500270e+01 1.0025673e+02 8.1763934e+01 7.8888197e+01 7.4799585e+01 1.1675052e+02 7.5938556e+01 7.9104045e+01 7.9350768e+01 6.8257572e+01 7.2657225e+01 1.0255259e+02 6.7111559e+01 9.4712919e+01 1.0157265e+02 9.5471505e+01 5.6288260e+01 7.8751609e+01 6.5561456e+01 6.6571381e+01 3.5630479e+01 7.5007526e+01 5.3694873e+01 6.7354589e+01 3.9190235e+01 7.6131235e+01 6.5933620e+01 3.7348497e+01 7.2993367e+01 6.0752721e+01 5.1833443e+01 3.3624698e+01 1.4041306e+01 3.2007171e+01 5.6987109e+01 5.6093410e+01 6.4540799e+01 5.2762740e+01 6.6034393e+01 6.5409575e+01 6.8142201e+01 - 1.0047059e+02 8.0598606e+01 8.1158182e+01 9.2648996e+01 8.3863980e+01 9.0935341e+01 9.3994660e+01 8.7448054e+01 9.5384330e+01 8.0987790e+01 7.8063998e+01 6.5806335e+01 1.1084145e+02 6.7588479e+01 9.0801454e+01 7.9909305e+01 8.0657632e+01 6.9589609e+01 9.8481985e+01 7.7868646e+01 8.9639383e+01 9.0889211e+01 9.2073852e+01 5.8942774e+01 6.2266503e+01 6.8884085e+01 6.2264219e+01 4.7117288e+01 5.7876867e+01 2.8600087e+01 5.6751837e+01 1.9298585e+01 5.6955026e+01 5.9812718e+01 4.7577437e+01 5.9620861e+01 4.9332509e+01 2.7769734e+01 2.2825254e+01 2.0086302e+01 0.0000000e+00 6.1870343e+01 5.9683698e+01 6.3669541e+01 5.8786639e+01 6.6458911e+01 6.7470380e+01 7.6201321e+01 1.1383933e+02 1.0785774e+02 8.9453138e+01 1.0209660e+02 1.0306601e+02 9.3748767e+01 1.1383682e+02 1.0231321e+02 1.0816185e+02 9.1424576e+01 9.6555993e+01 9.3874164e+01 1.2076120e+02 9.2154332e+01 9.4760961e+01 9.0175661e+01 8.2164856e+01 9.2265033e+01 1.0427827e+02 8.3216806e+01 1.0187157e+02 1.0436955e+02 9.7773028e+01 7.5339178e+01 9.2435756e+01 7.0173769e+01 7.0534545e+01 5.1567859e+01 9.0340173e+01 6.5872693e+01 8.1612685e+01 5.1965972e+01 8.3085018e+01 6.7078684e+01 5.5008291e+01 7.4423142e+01 6.1043594e+01 6.9541148e+01 5.3234161e+01 3.2548258e+01 4.6202748e+01 6.7876988e+01 6.5882701e+01 7.4991194e+01 6.8312718e+01 8.1412481e+01 7.9230647e+01 8.1988147e+01 - 4.6154401e+01 4.9473631e+01 2.3388137e+01 4.9561743e+01 4.2469500e+01 4.5504234e+01 5.7883081e+01 6.5638121e+01 4.9879759e+01 2.6565197e+01 4.6667098e+01 5.0055634e+01 7.3541203e+01 3.2151511e+01 7.5215950e+01 2.3024534e+01 4.0840112e+01 6.2177963e+01 6.6336014e+01 5.8493290e+01 4.6340199e+01 7.3453568e+01 6.1017319e+01 6.3664056e+01 4.1612319e+01 3.0972228e+01 4.0101150e+01 3.0121698e+01 4.4793281e+01 5.4049783e+01 2.7595363e+01 4.8206198e+01 6.1657959e+01 5.4198519e+01 6.4982645e+01 6.9888862e+01 6.5775394e+01 5.5921901e+01 5.4798444e+01 5.5140756e+01 6.1870343e+01 0.0000000e+00 5.6894418e+00 1.1427661e+01 2.4957331e+01 2.3284527e+01 1.6217867e+01 2.9395898e+01 5.8527758e+01 6.9127688e+01 3.3940637e+01 5.6423089e+01 5.8538665e+01 4.8210476e+01 7.1713863e+01 7.4319396e+01 6.0511051e+01 3.8655863e+01 5.9728245e+01 6.7001213e+01 8.0363767e+01 5.2789428e+01 7.7381261e+01 3.7643086e+01 4.1549245e+01 7.4532526e+01 7.0705006e+01 6.0978281e+01 5.6680784e+01 8.1000270e+01 6.4511915e+01 7.1021637e+01 6.1845462e+01 3.4932940e+01 4.6729854e+01 3.2943589e+01 6.4162353e+01 6.7061418e+01 4.8332111e+01 5.7017105e+01 7.3951203e+01 5.7884326e+01 6.7363436e+01 7.6095625e+01 7.0206636e+01 7.0725217e+01 6.4092314e+01 5.7424034e+01 6.9284389e+01 1.8420882e+01 1.8803970e+01 2.7729220e+01 3.2570567e+01 3.8086074e+01 3.1022940e+01 3.4802325e+01 - 5.0340959e+01 4.9623651e+01 2.8398705e+01 5.5243650e+01 4.7563306e+01 5.0926480e+01 5.6214457e+01 7.0679830e+01 4.8389024e+01 2.6459940e+01 5.1803173e+01 5.3861268e+01 7.0598941e+01 3.5549363e+01 7.9662126e+01 2.5524556e+01 4.5861620e+01 6.6171204e+01 6.2219580e+01 6.2843684e+01 4.4063627e+01 6.8951705e+01 5.6702567e+01 6.6657741e+01 4.0835227e+01 2.6037993e+01 3.4672446e+01 3.1569028e+01 4.4824655e+01 5.1102441e+01 2.7670087e+01 4.5175018e+01 5.7422302e+01 4.8620306e+01 6.6371353e+01 6.4656170e+01 6.0536561e+01 5.5588956e+01 5.4720687e+01 5.3534314e+01 5.9683698e+01 5.6894418e+00 0.0000000e+00 1.0380400e+01 2.9181812e+01 2.8200187e+01 2.1466206e+01 3.4872347e+01 6.0461043e+01 6.7268487e+01 3.6146467e+01 6.0534000e+01 6.0831191e+01 5.3099211e+01 6.8920996e+01 7.7947185e+01 5.8105101e+01 3.7420171e+01 6.2467193e+01 6.8302891e+01 7.6889337e+01 5.3075874e+01 8.1469987e+01 3.6924963e+01 4.6217723e+01 7.6550982e+01 6.6363929e+01 6.4880140e+01 5.3713385e+01 7.6080252e+01 6.0028226e+01 7.2919459e+01 5.9413083e+01 2.9851677e+01 4.1365044e+01 3.3862930e+01 6.2155182e+01 6.3300314e+01 4.6429440e+01 5.3460926e+01 6.9081971e+01 5.2251313e+01 6.8468990e+01 7.0592546e+01 6.4775878e+01 6.8846572e+01 6.3158141e+01 5.5584097e+01 6.6540823e+01 1.7737496e+01 1.6330222e+01 2.5631860e+01 3.4951228e+01 3.9606411e+01 3.2501720e+01 3.8923846e+01 - 4.4285576e+01 3.9652271e+01 2.6093239e+01 5.5637259e+01 4.4121310e+01 5.3853965e+01 4.6651052e+01 7.2636306e+01 3.9751783e+01 1.8289264e+01 5.1306381e+01 5.2437131e+01 6.3660427e+01 3.0164603e+01 8.4686805e+01 1.8111630e+01 5.0614647e+01 6.7487636e+01 5.7631520e+01 6.8101842e+01 3.6083687e+01 6.3728469e+01 5.2385886e+01 7.1168834e+01 3.2788742e+01 2.4802844e+01 3.3684438e+01 3.9550273e+01 3.8249104e+01 5.0576833e+01 2.0985902e+01 4.7605712e+01 5.3606933e+01 4.8855335e+01 7.3260527e+01 6.3778602e+01 6.1721781e+01 5.6159940e+01 5.9109505e+01 6.0319068e+01 6.3669541e+01 1.1427661e+01 1.0380400e+01 0.0000000e+00 3.3886893e+01 2.6956040e+01 2.0487396e+01 3.8030821e+01 6.4555951e+01 7.3746488e+01 4.1412061e+01 6.6198638e+01 6.8104368e+01 5.7655724e+01 7.1991872e+01 8.5456569e+01 5.9656279e+01 4.0910624e+01 7.0550333e+01 7.7779008e+01 7.6032825e+01 6.1625982e+01 8.7892267e+01 4.1641428e+01 5.1898379e+01 8.5893940e+01 6.5055778e+01 7.1805291e+01 5.5275094e+01 7.7493060e+01 5.9402520e+01 8.1986989e+01 6.7358225e+01 3.2381996e+01 4.4614731e+01 4.3206163e+01 7.1073457e+01 7.2063001e+01 5.5165959e+01 6.2359408e+01 7.5057174e+01 5.5203622e+01 7.6838302e+01 7.4713710e+01 6.9178814e+01 7.8999963e+01 7.2927807e+01 6.3946232e+01 7.5410790e+01 2.6631633e+01 2.4993960e+01 3.2668166e+01 4.3952011e+01 4.8149269e+01 4.0531789e+01 4.5203214e+01 - 5.1578065e+01 6.1838867e+01 3.0199738e+01 3.5707758e+01 3.4687502e+01 3.2560299e+01 7.7870074e+01 4.2815039e+01 7.1916642e+01 4.8227011e+01 2.9246039e+01 3.4158612e+01 9.7364346e+01 3.1617554e+01 5.1324728e+01 3.9639897e+01 2.4076625e+01 3.9820453e+01 9.0932126e+01 3.4627852e+01 6.9429793e+01 9.5864018e+01 8.5462404e+01 4.0136851e+01 5.2503328e+01 5.5119789e+01 6.1863956e+01 1.7770434e+01 4.9965971e+01 5.9530021e+01 3.7499021e+01 5.1917268e+01 7.6917980e+01 7.3447926e+01 4.5865345e+01 8.6417511e+01 8.0086855e+01 4.9196139e+01 4.3185493e+01 4.9131775e+01 5.8786639e+01 2.4957331e+01 2.9181812e+01 3.3886893e+01 0.0000000e+00 1.7896549e+01 1.9384224e+01 1.7610451e+01 6.6743281e+01 8.3348803e+01 4.3088616e+01 4.8762894e+01 5.8087151e+01 3.7166683e+01 9.2062715e+01 5.8933764e+01 8.2109849e+01 5.8054527e+01 5.2703892e+01 6.1755484e+01 1.0438118e+02 5.8041098e+01 5.5492366e+01 5.4918332e+01 2.7166275e+01 6.2206605e+01 9.5247092e+01 4.0569100e+01 7.9066228e+01 1.0369478e+02 8.8806734e+01 5.4274374e+01 7.4455902e+01 5.7863800e+01 6.7941716e+01 2.4283494e+01 7.3222204e+01 7.5170264e+01 5.9367686e+01 6.3024786e+01 9.0274439e+01 7.7225904e+01 5.0197871e+01 9.3096765e+01 8.5050229e+01 7.0444391e+01 5.7050168e+01 5.2734347e+01 6.8736017e+01 3.3810924e+01 3.7096809e+01 4.5824891e+01 2.6118396e+01 4.0660805e+01 3.7542435e+01 2.8851031e+01 - 3.6247181e+01 4.6405612e+01 1.9323090e+01 3.2325050e+01 2.0884628e+01 3.5148145e+01 6.4281400e+01 4.6449207e+01 5.9445003e+01 3.7164194e+01 2.4360587e+01 2.9238995e+01 8.6706574e+01 1.5562061e+01 6.2226613e+01 2.6652246e+01 3.2648886e+01 4.3137673e+01 8.3634420e+01 4.6840469e+01 5.8405076e+01 8.8416961e+01 7.8681232e+01 5.1695881e+01 4.0778489e+01 5.1598060e+01 5.9307488e+01 3.3755409e+01 3.9150446e+01 5.9400058e+01 2.6989173e+01 5.5846457e+01 7.2070078e+01 7.2825096e+01 6.1332238e+01 8.5208859e+01 8.1582822e+01 5.1403719e+01 5.2843501e+01 6.1347275e+01 6.6458911e+01 2.3284527e+01 2.8200187e+01 2.6956040e+01 1.7896549e+01 0.0000000e+00 8.2169427e+00 2.0385948e+01 6.8706189e+01 8.9151551e+01 4.5900295e+01 5.6041856e+01 6.6803381e+01 4.3040098e+01 9.2926996e+01 7.2059990e+01 8.0650740e+01 5.8069466e+01 6.4642091e+01 7.5968021e+01 1.0059275e+02 6.7691906e+01 6.8595867e+01 5.6450670e+01 3.6975906e+01 7.8342028e+01 9.1418396e+01 5.4895509e+01 7.7719535e+01 1.0356426e+02 8.5789593e+01 7.1882667e+01 8.2553853e+01 5.7635237e+01 6.9420590e+01 4.0460201e+01 8.3466470e+01 8.6433004e+01 6.8146009e+01 7.4702999e+01 9.6594928e+01 7.9405682e+01 6.7468296e+01 9.7547614e+01 9.0187558e+01 8.5525868e+01 7.3607666e+01 6.6814148e+01 8.2614113e+01 3.8743360e+01 4.1039510e+01 4.9359789e+01 4.0078765e+01 5.0413846e+01 4.5015087e+01 3.7047602e+01 - 3.5128592e+01 4.5944026e+01 1.4163097e+01 3.5702052e+01 2.6309981e+01 3.5774832e+01 6.0480562e+01 5.2791515e+01 5.4009631e+01 3.0597714e+01 3.1600990e+01 3.7337598e+01 8.0845235e+01 2.0068270e+01 6.6609891e+01 2.0679239e+01 3.3358292e+01 5.0695354e+01 7.7140773e+01 5.0702209e+01 5.2593287e+01 8.3425024e+01 7.2247692e+01 5.7221443e+01 4.0724273e+01 4.4759887e+01 5.3614063e+01 3.3327124e+01 4.1296862e+01 5.9582715e+01 2.6487927e+01 5.5476944e+01 6.9758020e+01 6.7848276e+01 6.4404100e+01 8.1621352e+01 7.8163896e+01 5.5104378e+01 5.5808376e+01 6.1616862e+01 6.7470380e+01 1.6217867e+01 2.1466206e+01 2.0487396e+01 1.9384224e+01 8.2169427e+00 0.0000000e+00 2.0029281e+01 6.2392418e+01 8.1648284e+01 3.9176487e+01 5.3663077e+01 6.2112928e+01 4.2055465e+01 8.4759756e+01 7.1859318e+01 7.2434579e+01 4.9953181e+01 6.1601091e+01 7.2489894e+01 9.2641255e+01 6.1748864e+01 7.1347219e+01 4.8535625e+01 3.6428647e+01 7.6988423e+01 8.3916086e+01 5.6525828e+01 6.9535184e+01 9.6132819e+01 7.8263113e+01 7.2328916e+01 7.5573875e+01 5.0427209e+01 6.2604886e+01 3.8645809e+01 7.7136851e+01 8.1514007e+01 6.1491907e+01 7.0582970e+01 9.0109828e+01 7.3433931e+01 6.9028736e+01 9.1845269e+01 8.5295148e+01 8.1925918e+01 7.2100649e+01 6.5850801e+01 8.0296019e+01 3.1670941e+01 3.3848989e+01 4.1734659e+01 3.6783574e+01 4.5002407e+01 3.8824573e+01 3.3695883e+01 - 4.1129895e+01 6.4901037e+01 2.1423477e+01 2.2672919e+01 2.9057708e+01 1.6882116e+01 7.9098048e+01 4.0887234e+01 7.0715114e+01 4.6541967e+01 2.7322110e+01 4.1180775e+01 9.7373692e+01 3.5416152e+01 5.0590104e+01 3.6158750e+01 1.3773199e+01 4.6700224e+01 9.3169818e+01 3.5462899e+01 6.9680390e+01 1.0166964e+02 8.8452582e+01 5.1097294e+01 6.0284313e+01 5.9642931e+01 6.9494394e+01 3.2681786e+01 5.9333438e+01 7.4772907e+01 4.5833325e+01 6.8042239e+01 8.8234022e+01 8.3203321e+01 5.9564981e+01 9.8107091e+01 9.2917656e+01 6.5607146e+01 6.0628934e+01 6.5856072e+01 7.6201321e+01 2.9395898e+01 3.4872347e+01 3.8030821e+01 1.7610451e+01 2.0385948e+01 2.0029281e+01 0.0000000e+00 5.4828351e+01 8.0445060e+01 3.4237882e+01 3.5894934e+01 4.9088447e+01 2.2820187e+01 8.9168165e+01 5.3102876e+01 7.8281670e+01 5.3808275e+01 4.5932196e+01 5.9770684e+01 1.0254631e+02 5.4413593e+01 5.3665913e+01 5.0300967e+01 1.7332458e+01 6.2093134e+01 9.6504600e+01 3.9214844e+01 7.6779083e+01 1.0699474e+02 9.0574105e+01 5.9774339e+01 7.5020108e+01 6.2304803e+01 7.3945636e+01 3.5591159e+01 7.4516621e+01 8.4242118e+01 6.0388171e+01 7.3996040e+01 9.6981696e+01 8.5675733e+01 6.1846627e+01 1.0241424e+02 9.6149232e+01 7.8602716e+01 6.8407612e+01 6.7699649e+01 8.1917516e+01 3.5463505e+01 4.0205490e+01 4.6116525e+01 2.7676206e+01 3.6865270e+01 3.3608483e+01 1.8856141e+01 - 6.5772846e+01 9.6168465e+01 5.3357249e+01 6.5903399e+01 7.5828722e+01 5.3546524e+01 9.4489878e+01 9.0029370e+01 7.8772686e+01 6.1909692e+01 8.0435182e+01 9.5332790e+01 9.6173035e+01 8.0998310e+01 9.0515702e+01 6.0088958e+01 5.6130479e+01 1.0087487e+02 9.1024403e+01 7.9161891e+01 7.7895641e+01 1.0980183e+02 8.8677847e+01 1.0067356e+02 9.6007115e+01 6.8868779e+01 8.2264926e+01 7.1418155e+01 1.0077950e+02 1.1106761e+02 8.3837635e+01 1.0294522e+02 1.1360205e+02 9.5898721e+01 1.0109170e+02 1.1588335e+02 1.1185687e+02 1.1221889e+02 1.0500554e+02 1.0037992e+02 1.1383933e+02 5.8527758e+01 6.0461043e+01 6.4555951e+01 6.6743281e+01 6.8706189e+01 6.2392418e+01 5.4828351e+01 0.0000000e+00 4.5409029e+01 2.5143236e+01 3.7932063e+01 2.7298994e+01 4.6028762e+01 5.5951013e+01 6.4821119e+01 4.9388081e+01 3.5200422e+01 4.2764895e+01 5.3584623e+01 7.7913028e+01 3.4338370e+01 8.4525291e+01 3.1414789e+01 5.1440751e+01 6.9862663e+01 8.3022145e+01 7.1032999e+01 5.3312357e+01 9.1512353e+01 7.8697354e+01 8.3676762e+01 5.2856606e+01 6.5105321e+01 7.4269448e+01 6.6681220e+01 5.5801365e+01 8.5780522e+01 4.7128620e+01 8.4509761e+01 8.8309595e+01 8.9469368e+01 9.5646391e+01 1.0300875e+02 1.0375282e+02 8.3178408e+01 8.8564423e+01 9.5348356e+01 9.9595372e+01 4.7011571e+01 5.0752482e+01 4.4055912e+01 5.0797190e+01 3.5651268e+01 3.4988025e+01 4.0944063e+01 - 9.6875427e+01 1.0963604e+02 7.8596788e+01 9.9313789e+01 1.0414584e+02 8.6270973e+01 1.0160848e+02 1.1818494e+02 8.6924608e+01 7.4865373e+01 1.0731445e+02 1.1626628e+02 9.3987100e+01 1.0036033e+02 1.1498513e+02 7.9022842e+01 8.2881084e+01 1.2231388e+02 8.0791389e+01 1.0165821e+02 8.2492827e+01 9.8701469e+01 7.8392930e+01 1.1554337e+02 1.0475801e+02 6.3688383e+01 7.2114503e+01 7.8563788e+01 1.1109546e+02 1.0731118e+02 9.4129687e+01 9.7642298e+01 1.0592600e+02 7.9292828e+01 1.0678866e+02 9.9038910e+01 9.3838421e+01 1.1656290e+02 1.0746054e+02 9.4648137e+01 1.0785774e+02 6.9127688e+01 6.7268487e+01 7.3746488e+01 8.3348803e+01 8.9151551e+01 8.1648284e+01 8.0445060e+01 4.5409029e+01 0.0000000e+00 4.8437361e+01 7.1035882e+01 4.9941702e+01 7.8600054e+01 2.8110511e+01 8.7000869e+01 3.5673503e+01 3.6703760e+01 6.1890827e+01 5.7018571e+01 5.9046903e+01 3.3238106e+01 1.0709913e+02 3.5223532e+01 7.7586070e+01 7.7550512e+01 6.3653116e+01 9.1822319e+01 3.7417242e+01 6.0395258e+01 5.8948971e+01 9.0087438e+01 1.7755644e+01 5.3458601e+01 5.3938926e+01 7.1213224e+01 2.5778208e+01 5.6972177e+01 2.7825374e+01 6.3178216e+01 5.1615099e+01 6.5450461e+01 9.8445018e+01 7.1441556e+01 7.6346164e+01 6.3085613e+01 7.8985232e+01 8.5834302e+01 8.1184253e+01 5.1715158e+01 5.1450715e+01 4.1645673e+01 6.2576016e+01 4.6997828e+01 4.7318215e+01 6.5681765e+01 - 5.2744762e+01 7.6432928e+01 3.3374287e+01 5.1299297e+01 5.7304792e+01 3.9590500e+01 7.8609179e+01 7.3459123e+01 6.4831146e+01 4.3556315e+01 6.1019350e+01 7.3263305e+01 8.5681781e+01 5.8770990e+01 7.6397958e+01 4.0521673e+01 3.8732895e+01 8.0071045e+01 7.8939390e+01 6.2223889e+01 6.2770197e+01 9.3937428e+01 7.5194502e+01 7.9546304e+01 7.3474519e+01 4.9629653e+01 6.2424412e+01 4.7609916e+01 7.7430075e+01 8.6518991e+01 6.0312738e+01 7.8400401e+01 9.1682733e+01 7.6385176e+01 7.9824299e+01 9.5475669e+01 9.0800417e+01 8.7129576e+01 8.0605082e+01 7.7040555e+01 8.9453138e+01 3.3940637e+01 3.6146467e+01 4.1412061e+01 4.3088616e+01 4.5900295e+01 3.9176487e+01 3.4237882e+01 2.5143236e+01 4.8437361e+01 0.0000000e+00 3.3834276e+01 2.9150077e+01 3.4698380e+01 5.7710363e+01 5.9028617e+01 4.8468550e+01 2.4773915e+01 3.7787959e+01 4.8317201e+01 7.6181368e+01 2.9082411e+01 7.2956505e+01 1.9745807e+01 3.4930072e+01 6.1807949e+01 7.4923301e+01 5.7007464e+01 4.8785726e+01 8.3810327e+01 6.9285102e+01 6.9233101e+01 4.7757166e+01 4.7248534e+01 5.7947360e+01 4.4030092e+01 5.0015758e+01 7.1054914e+01 3.6121031e+01 6.6308649e+01 7.6976988e+01 7.2592918e+01 7.6418178e+01 8.7969991e+01 8.6082978e+01 6.9608382e+01 7.0477023e+01 7.3721694e+01 8.0702816e+01 2.3293255e+01 2.7941391e+01 2.4738298e+01 2.9831529e+01 1.8809777e+01 1.3385812e+01 2.2384678e+01 - 6.4045807e+01 9.7441444e+01 4.8970944e+01 4.1899934e+01 6.0407026e+01 2.6673365e+01 1.0618241e+02 5.8142848e+01 9.3888000e+01 7.0968399e+01 5.7422731e+01 7.4347205e+01 1.1754018e+02 7.0857064e+01 5.3995166e+01 6.3208887e+01 2.8027557e+01 7.3005802e+01 1.1215055e+02 4.5591541e+01 9.2939190e+01 1.2569576e+02 1.0820971e+02 7.1563061e+01 9.4191419e+01 8.0744170e+01 9.2353032e+01 5.5035600e+01 9.4573649e+01 1.0557392e+02 7.9664351e+01 9.6148230e+01 1.1780250e+02 1.0551028e+02 7.5516960e+01 1.2320446e+02 1.1672385e+02 9.7461224e+01 8.6994509e+01 8.6728932e+01 1.0209660e+02 5.6423089e+01 6.0534000e+01 6.6198638e+01 4.8762894e+01 5.6041856e+01 5.3663077e+01 3.5894934e+01 3.7932063e+01 7.1035882e+01 3.3834276e+01 0.0000000e+00 2.3349391e+01 1.5133053e+01 8.7414450e+01 3.0768265e+01 8.0308284e+01 5.8129141e+01 2.0839480e+01 4.0508039e+01 1.0896258e+02 4.1501114e+01 4.7577436e+01 5.2570230e+01 2.2769665e+01 4.5439629e+01 1.0869025e+02 3.6416565e+01 8.1599888e+01 1.1619944e+02 1.0295828e+02 5.6348601e+01 6.9828825e+01 7.8862037e+01 8.8830808e+01 5.1497568e+01 6.7261308e+01 8.9623667e+01 5.8250048e+01 8.3822228e+01 1.0354952e+02 1.0214686e+02 7.0776764e+01 1.1579512e+02 1.1217787e+02 7.7796221e+01 7.4275269e+01 8.3085905e+01 9.2111247e+01 4.9893603e+01 5.5775860e+01 5.5546766e+01 3.5231043e+01 3.2140273e+01 3.5447865e+01 2.2154779e+01 - 7.6005332e+01 1.0411343e+02 5.7914155e+01 6.1874190e+01 7.6214608e+01 4.6412921e+01 1.0773656e+02 7.8254649e+01 9.3853962e+01 7.2578127e+01 7.4832884e+01 8.9211093e+01 1.1336450e+02 8.1699327e+01 7.1776886e+01 6.8424787e+01 4.4512797e+01 8.9480392e+01 1.0516427e+02 6.1882723e+01 9.1640876e+01 1.2053682e+02 1.0146341e+02 8.4206890e+01 9.9699057e+01 7.5600190e+01 8.6924168e+01 5.8803394e+01 1.0195057e+02 1.0710876e+02 8.5386028e+01 9.6446954e+01 1.1641483e+02 9.8613050e+01 8.1953201e+01 1.1763058e+02 1.1069702e+02 1.0404759e+02 9.2191592e+01 8.6518243e+01 1.0306601e+02 5.8538665e+01 6.0831191e+01 6.8104368e+01 5.8087151e+01 6.6803381e+01 6.2112928e+01 4.9088447e+01 2.7298994e+01 4.9941702e+01 2.9150077e+01 2.3349391e+01 0.0000000e+00 3.5503890e+01 7.0143515e+01 4.0501717e+01 6.6475171e+01 4.7462492e+01 1.6466726e+01 2.7711833e+01 9.5740477e+01 2.1647852e+01 6.2724689e+01 4.1368129e+01 3.8079041e+01 4.2826678e+01 9.7174657e+01 4.9912574e+01 6.8269597e+01 1.0134099e+02 9.1423475e+01 5.8763307e+01 4.9987393e+01 7.0492988e+01 7.8176260e+01 5.2208333e+01 4.7258323e+01 7.5456498e+01 4.1305986e+01 7.3162343e+01 8.7291078e+01 9.1472274e+01 7.4061194e+01 1.0269317e+02 1.0115382e+02 6.5111336e+01 6.8742431e+01 7.9801455e+01 8.4033637e+01 4.5220263e+01 5.0226228e+01 4.6342119e+01 3.5929855e+01 2.2980549e+01 2.8753918e+01 3.0511279e+01 - 5.3350209e+01 8.5957441e+01 3.8443894e+01 2.7328013e+01 4.5961673e+01 1.1734989e+01 9.7699857e+01 4.4895970e+01 8.7011270e+01 6.3409241e+01 4.2329832e+01 5.9693799e+01 1.1258412e+02 5.7502273e+01 4.5998877e+01 5.3951513e+01 1.4711478e+01 5.9227217e+01 1.0825185e+02 3.5592947e+01 8.6390775e+01 1.1981322e+02 1.0402304e+02 6.0724614e+01 8.2721759e+01 7.5810770e+01 8.6937017e+01 4.7041921e+01 8.2119441e+01 9.5866489e+01 6.8332636e+01 8.7543276e+01 1.0928947e+02 1.0053864e+02 6.8101255e+01 1.1702341e+02 1.1100603e+02 8.5890992e+01 7.7264457e+01 8.0104434e+01 9.3748767e+01 4.8210476e+01 5.3099211e+01 5.7655724e+01 3.7166683e+01 4.3040098e+01 4.2055465e+01 2.2820187e+01 4.6028762e+01 7.8600054e+01 3.4698380e+01 1.5133053e+01 3.5503890e+01 0.0000000e+00 9.2048534e+01 3.6096074e+01 8.3005184e+01 5.9222479e+01 3.1182225e+01 4.9469151e+01 1.1033135e+02 4.9241787e+01 4.3973479e+01 5.4311461e+01 1.2016934e+01 5.1353516e+01 1.0788823e+02 3.1780046e+01 8.3323468e+01 1.1704118e+02 1.0207985e+02 5.6086891e+01 7.5691703e+01 7.5953935e+01 8.6913767e+01 4.6041436e+01 7.3729261e+01 9.1113743e+01 6.2391236e+01 8.3137290e+01 1.0533427e+02 9.9757479e+01 6.6376708e+01 1.1485793e+02 1.0993197e+02 8.0700364e+01 7.3336208e+01 7.8833685e+01 9.0628196e+01 4.6589183e+01 5.2407318e+01 5.4728100e+01 3.1941349e+01 3.5113345e+01 3.5953027e+01 1.6839639e+01 - 9.4392866e+01 1.0103088e+02 8.0416696e+01 1.0741732e+02 1.0705531e+02 9.7162291e+01 8.6494671e+01 1.2965669e+02 7.1869304e+01 6.7761578e+01 1.1409052e+02 1.2145736e+02 7.2019935e+01 1.0065355e+02 1.3163101e+02 7.5585444e+01 9.5417979e+01 1.3178136e+02 5.9835051e+01 1.1680796e+02 6.7732633e+01 8.0496206e+01 5.9211945e+01 1.2858685e+02 9.9039662e+01 5.5811505e+01 6.3810936e+01 8.9730662e+01 1.0766410e+02 1.0636702e+02 9.1807514e+01 9.9925622e+01 9.7062394e+01 7.1099405e+01 1.2188172e+02 9.0310685e+01 8.8918545e+01 1.2046590e+02 1.1619494e+02 1.0486678e+02 1.1383682e+02 7.1713863e+01 6.8920996e+01 7.1991872e+01 9.2062715e+01 9.2926996e+01 8.4759756e+01 8.9168165e+01 5.5951013e+01 2.8110511e+01 5.7710363e+01 8.7414450e+01 7.0143515e+01 9.2048534e+01 0.0000000e+00 1.0853047e+02 1.5963522e+01 3.5701695e+01 8.3269712e+01 8.1944563e+01 3.1389658e+01 5.5437618e+01 1.2630646e+02 3.8980789e+01 9.1428313e+01 1.0171698e+02 4.0275395e+01 1.0998207e+02 1.8576102e+01 4.1266755e+01 3.7814183e+01 1.1148748e+02 3.8327219e+01 4.7391332e+01 4.7299198e+01 8.4565589e+01 4.9214542e+01 6.9594602e+01 4.5646270e+01 7.4933823e+01 5.2129829e+01 5.8820845e+01 1.1627446e+02 6.7010422e+01 7.4539303e+01 8.3372986e+01 9.7170202e+01 9.8636216e+01 9.5137271e+01 5.8559757e+01 5.6308062e+01 4.6602823e+01 7.7480851e+01 6.3500761e+01 6.0193919e+01 7.8725832e+01 - 8.9265690e+01 1.1768577e+02 7.2214482e+01 5.7679007e+01 7.7567057e+01 4.4773920e+01 1.2975010e+02 5.8060659e+01 1.1905736e+02 9.4888232e+01 6.7941583e+01 8.1847750e+01 1.4271833e+02 8.7059704e+01 4.0268016e+01 8.6742108e+01 4.0135992e+01 7.2656462e+01 1.3491906e+02 3.8969027e+01 1.1707424e+02 1.4580296e+02 1.3020762e+02 6.3844176e+01 1.1084339e+02 1.0020111e+02 1.0926348e+02 5.9369596e+01 1.0877310e+02 1.1356669e+02 9.5671126e+01 1.0213735e+02 1.3179108e+02 1.1972673e+02 6.4507851e+01 1.3563589e+02 1.2670151e+02 1.0088113e+02 8.5381726e+01 8.4500270e+01 1.0231321e+02 7.4319396e+01 7.7947185e+01 8.5456569e+01 5.8933764e+01 7.2059990e+01 7.1859318e+01 5.3102876e+01 6.4821119e+01 8.7000869e+01 5.9028617e+01 3.0768265e+01 4.0501717e+01 3.6096074e+01 1.0853047e+02 0.0000000e+00 1.0408133e+02 8.1752625e+01 2.5407050e+01 3.5504687e+01 1.3274740e+02 5.4387906e+01 2.6515160e+01 7.5637321e+01 3.5841672e+01 2.5301003e+01 1.3068480e+02 2.3457445e+01 1.0446853e+02 1.3432233e+02 1.2420588e+02 3.6521559e+01 8.1680689e+01 9.7091350e+01 1.0480980e+02 5.4909673e+01 7.5137501e+01 9.2295808e+01 7.0513206e+01 8.6103942e+01 1.1361843e+02 1.1559209e+02 5.6656632e+01 1.2604334e+02 1.2072524e+02 7.2716814e+01 6.5823919e+01 7.9397511e+01 8.7855616e+01 6.7513853e+01 7.3061762e+01 7.4517200e+01 4.4441865e+01 4.7960155e+01 5.4296042e+01 4.1985123e+01 - 7.9375894e+01 8.6715677e+01 6.7071619e+01 9.5528176e+01 9.3585225e+01 8.6707190e+01 7.2449251e+01 1.1915489e+02 5.7090180e+01 5.3143569e+01 1.0201866e+02 1.0952215e+02 6.0401281e+01 8.7417147e+01 1.2378920e+02 6.1206851e+01 8.5996821e+01 1.2123397e+02 5.0592274e+01 1.0859467e+02 5.3604457e+01 7.2249528e+01 4.9816827e+01 1.2042963e+02 8.6268166e+01 4.5270283e+01 5.5454576e+01 8.2276244e+01 9.5175089e+01 9.8192095e+01 7.9398059e+01 9.2919919e+01 8.8546930e+01 6.5745816e+01 1.1626094e+02 8.5348313e+01 8.4945764e+01 1.1142614e+02 1.0904964e+02 1.0025673e+02 1.0816185e+02 6.0511051e+01 5.8105101e+01 5.9656279e+01 8.2109849e+01 8.0650740e+01 7.2434579e+01 7.8281670e+01 4.9388081e+01 3.5673503e+01 4.8468550e+01 8.0308284e+01 6.6475171e+01 8.3005184e+01 1.5963522e+01 1.0408133e+02 0.0000000e+00 2.4877500e+01 7.9507931e+01 8.1554863e+01 2.9329579e+01 5.4245077e+01 1.2004398e+02 2.9836958e+01 8.2760613e+01 1.0019675e+02 3.5826874e+01 1.0350722e+02 7.6484558e+00 4.5178290e+01 3.2984243e+01 1.0850877e+02 4.3693052e+01 3.9357517e+01 4.3341369e+01 7.8423075e+01 5.4164909e+01 7.3099045e+01 4.5781249e+01 7.5339716e+01 5.8275767e+01 5.7065756e+01 1.1235076e+02 6.9717578e+01 7.5214809e+01 8.6011287e+01 9.6204784e+01 9.5848226e+01 9.5507502e+01 4.9923707e+01 4.7737804e+01 3.8685780e+01 7.0881045e+01 5.8046378e+01 5.3059464e+01 7.0128878e+01 - 6.1959792e+01 7.4334127e+01 4.5211911e+01 7.2091760e+01 7.1807128e+01 6.2694151e+01 6.8118857e+01 9.4584567e+01 5.3067906e+01 3.8689087e+01 7.8495935e+01 8.6959395e+01 6.7337787e+01 6.7141660e+01 9.9038009e+01 4.3039191e+01 6.1247392e+01 9.7254380e+01 5.8231450e+01 8.3758590e+01 4.9565379e+01 7.5903408e+01 5.5129436e+01 9.6398440e+01 7.1925755e+01 3.5651657e+01 4.8565712e+01 5.9311760e+01 7.8922423e+01 8.4098345e+01 6.1861883e+01 7.7382599e+01 8.1552657e+01 6.1813107e+01 9.3673754e+01 8.2013410e+01 7.9243547e+01 9.2439008e+01 8.8555867e+01 8.1763934e+01 9.1424576e+01 3.8655863e+01 3.7420171e+01 4.0910624e+01 5.8054527e+01 5.8069466e+01 4.9953181e+01 5.3808275e+01 3.5200422e+01 3.6703760e+01 2.4773915e+01 5.8129141e+01 4.7462492e+01 5.9222479e+01 3.5701695e+01 8.1752625e+01 2.4877500e+01 0.0000000e+00 5.8401382e+01 6.3037262e+01 5.1758521e+01 3.7082270e+01 9.5891957e+01 6.3184686e+00 5.8120596e+01 7.9620474e+01 5.0866002e+01 7.9235657e+01 2.4119668e+01 6.0217497e+01 4.5505352e+01 8.6377255e+01 3.8346156e+01 3.0860967e+01 4.0266134e+01 5.5717664e+01 4.5677084e+01 6.4677106e+01 3.1940341e+01 6.2905371e+01 6.0675141e+01 5.5880038e+01 9.0356550e+01 7.1393222e+01 7.2480230e+01 7.2182184e+01 7.7920918e+01 7.8064704e+01 8.1351795e+01 2.6757072e+01 2.6252707e+01 1.7315956e+01 4.6877048e+01 3.5267684e+01 2.9090492e+01 4.5584481e+01 - 7.9729499e+01 1.0645554e+02 6.0271815e+01 5.7918849e+01 7.4115879e+01 4.2289280e+01 1.1377169e+02 6.8300622e+01 1.0141059e+02 7.8339848e+01 6.9081680e+01 8.2790678e+01 1.2265740e+02 8.0167195e+01 5.7907829e+01 7.2558873e+01 3.7594900e+01 7.9639061e+01 1.1389652e+02 4.9300788e+01 9.8911831e+01 1.2685206e+02 1.0954360e+02 7.1924521e+01 1.0016763e+02 8.1053159e+01 9.1042842e+01 5.1959946e+01 1.0060733e+02 1.0420223e+02 8.5134676e+01 9.2715919e+01 1.1772343e+02 1.0186325e+02 6.9311043e+01 1.1956837e+02 1.1139259e+02 9.7580754e+01 8.3588960e+01 7.8888197e+01 9.6555993e+01 5.9728245e+01 6.2467193e+01 7.0550333e+01 5.2703892e+01 6.4642091e+01 6.1601091e+01 4.5932196e+01 4.2764895e+01 6.1890827e+01 3.7787959e+01 2.0839480e+01 1.6466726e+01 3.1182225e+01 8.3269712e+01 2.5407050e+01 7.9507931e+01 5.8401382e+01 0.0000000e+00 1.9741427e+01 1.0835614e+02 2.9520301e+01 4.7515131e+01 5.2127110e+01 3.0993582e+01 2.8044406e+01 1.0747255e+02 3.5380664e+01 8.0199825e+01 1.1073770e+02 1.0117765e+02 4.3594949e+01 5.7849663e+01 7.6479979e+01 8.3875021e+01 4.5348449e+01 5.2619886e+01 7.5195545e+01 4.7256684e+01 7.0993111e+01 9.2340663e+01 9.5792451e+01 6.0768747e+01 1.0641782e+02 1.0298117e+02 6.0164359e+01 5.9590555e+01 7.2271888e+01 7.8080617e+01 4.8444228e+01 5.3820136e+01 5.2797366e+01 3.0584418e+01 2.5746767e+01 3.3051142e+01 2.8383940e+01 - 9.5236435e+01 1.1610303e+02 7.3484970e+01 7.4883336e+01 8.8772499e+01 5.9668141e+01 1.2183378e+02 8.1811251e+01 1.0972274e+02 8.7473086e+01 8.2874608e+01 9.3607204e+01 1.2826227e+02 9.1208528e+01 6.8279029e+01 8.3600240e+01 5.2491929e+01 8.9683940e+01 1.1667103e+02 5.9852245e+01 1.0597886e+02 1.2876439e+02 1.1207610e+02 7.7402737e+01 1.0752301e+02 8.3925384e+01 9.1911825e+01 5.5144398e+01 1.0815046e+02 1.0496612e+02 9.2689013e+01 9.2002429e+01 1.1894697e+02 1.0002936e+02 6.8581609e+01 1.1724547e+02 1.0768573e+02 1.0044003e+02 8.3995105e+01 7.4799585e+01 9.3874164e+01 6.7001213e+01 6.8302891e+01 7.7779008e+01 6.1755484e+01 7.5968021e+01 7.2489894e+01 5.9770684e+01 5.3584623e+01 5.7018571e+01 4.8317201e+01 4.0508039e+01 2.7711833e+01 4.9469151e+01 8.1944563e+01 3.5504687e+01 8.1554863e+01 6.3037262e+01 1.9741427e+01 0.0000000e+00 1.0922860e+02 2.7349449e+01 5.6303690e+01 5.6875211e+01 4.6173436e+01 2.0937811e+01 1.0769581e+02 4.4984010e+01 8.1572309e+01 1.0670451e+02 1.0108429e+02 3.9165600e+01 4.9745983e+01 7.7079683e+01 8.1471827e+01 4.6447376e+01 4.1540288e+01 6.2845761e+01 4.1643949e+01 6.0976051e+01 8.2898183e+01 9.1415680e+01 5.6760576e+01 9.8506264e+01 9.5445477e+01 4.4589616e+01 4.8871416e+01 6.5226053e+01 6.6631732e+01 5.2846503e+01 5.6994581e+01 5.5291580e+01 3.6585457e+01 3.1502455e+01 3.9803157e+01 4.2597073e+01 - 9.6974769e+01 9.3706726e+01 8.8265565e+01 1.1945732e+02 1.1330458e+02 1.1261678e+02 7.2156905e+01 1.4308924e+02 6.0067201e+01 6.7206036e+01 1.2353045e+02 1.2819123e+02 4.8790475e+01 1.0381160e+02 1.4995442e+02 7.8172966e+01 1.1192436e+02 1.4239833e+02 3.9147735e+01 1.3407499e+02 5.6586348e+01 6.1253059e+01 4.1700397e+01 1.4258220e+02 9.4815959e+01 5.5747564e+01 6.0958764e+01 1.0407281e+02 1.0533450e+02 1.0636027e+02 9.2337078e+01 1.0400541e+02 8.8587059e+01 6.7003391e+01 1.3785670e+02 8.2906950e+01 8.6315296e+01 1.2490720e+02 1.2593270e+02 1.1675052e+02 1.2076120e+02 8.0363767e+01 7.6889337e+01 7.6032825e+01 1.0438118e+02 1.0059275e+02 9.2641255e+01 1.0254631e+02 7.7913028e+01 5.9046903e+01 7.6181368e+01 1.0896258e+02 9.5740477e+01 1.1033135e+02 3.1389658e+01 1.3274740e+02 2.9329579e+01 5.1758521e+01 1.0835614e+02 1.0922860e+02 0.0000000e+00 8.2251799e+01 1.4734708e+02 5.7479531e+01 1.0943619e+02 1.2768320e+02 2.0283294e+01 1.3046350e+02 2.8399728e+01 3.2634944e+01 2.4330648e+01 1.3421155e+02 6.5770971e+01 5.2000494e+01 5.1303644e+01 1.0131386e+02 7.6780090e+01 8.7673598e+01 7.0301754e+01 9.1180818e+01 6.3863540e+01 5.9647677e+01 1.3514898e+02 6.9585813e+01 7.8117796e+01 1.0627841e+02 1.1719543e+02 1.1350118e+02 1.1158301e+02 7.3388180e+01 6.9677873e+01 6.2600067e+01 9.6688638e+01 8.5724717e+01 8.0161332e+01 9.7118594e+01 - 8.1503736e+01 1.0042026e+02 6.0228836e+01 7.2722047e+01 8.1922523e+01 5.8173045e+01 1.0109869e+02 8.8005407e+01 8.7526988e+01 6.7751808e+01 8.1256608e+01 9.1867121e+01 1.0364727e+02 8.1688973e+01 8.2269843e+01 6.6704999e+01 5.3216965e+01 9.4151734e+01 9.2262838e+01 6.9859544e+01 8.3708797e+01 1.0691265e+02 8.8278576e+01 8.6348117e+01 9.3867738e+01 6.3007166e+01 7.2672181e+01 5.3765407e+01 9.7215576e+01 9.6223383e+01 8.0233867e+01 8.4917268e+01 1.0360279e+02 8.2284954e+01 7.9344669e+01 1.0147087e+02 9.4037071e+01 9.7745704e+01 8.5728573e+01 7.5938556e+01 9.2154332e+01 5.2789428e+01 5.3075874e+01 6.1625982e+01 5.8041098e+01 6.7691906e+01 6.1748864e+01 5.4413593e+01 3.4338370e+01 3.3238106e+01 2.9082411e+01 4.1501114e+01 2.1647852e+01 4.9241787e+01 5.5437618e+01 5.4387906e+01 5.4245077e+01 3.7082270e+01 2.9520301e+01 2.7349449e+01 8.2251799e+01 0.0000000e+00 7.3878681e+01 3.1174868e+01 4.7222709e+01 4.6757093e+01 8.2029835e+01 5.8883928e+01 5.4607234e+01 8.2869363e+01 7.5819103e+01 5.9507313e+01 2.8950216e+01 5.5382345e+01 6.0510793e+01 4.5699948e+01 2.6211425e+01 5.5316958e+01 2.0287288e+01 5.4979634e+01 6.5923022e+01 7.2818930e+01 7.0694092e+01 8.2235853e+01 8.1528646e+01 4.9202241e+01 5.7658407e+01 6.7632325e+01 6.8449829e+01 3.5414502e+01 3.8670050e+01 3.3033819e+01 3.3556212e+01 1.7776104e+01 2.2975509e+01 3.7025353e+01 - 9.0342999e+01 1.1472316e+02 7.4948446e+01 5.3387844e+01 7.1549830e+01 4.6446721e+01 1.3181712e+02 4.0312177e+01 1.2399455e+02 9.9522087e+01 5.7538847e+01 6.8429476e+01 1.4969714e+02 8.1465127e+01 1.5906666e+01 8.9720808e+01 4.0528754e+01 5.3964026e+01 1.4278884e+02 2.3234838e+01 1.2223201e+02 1.5008520e+02 1.3756516e+02 4.4821128e+01 1.0674473e+02 1.0648665e+02 1.1385931e+02 5.7204193e+01 1.0201786e+02 1.0780220e+02 9.2341718e+01 9.7490690e+01 1.3026015e+02 1.2372613e+02 5.1224432e+01 1.3688190e+02 1.2780618e+02 8.9514437e+01 7.4498794e+01 7.9104045e+01 9.4760961e+01 7.7381261e+01 8.1469987e+01 8.7892267e+01 5.5492366e+01 6.8595867e+01 7.1347219e+01 5.3665913e+01 8.4525291e+01 1.0709913e+02 7.2956505e+01 4.7577436e+01 6.2724689e+01 4.3973479e+01 1.2630646e+02 2.6515160e+01 1.2004398e+02 9.5891957e+01 4.7515131e+01 5.6303690e+01 1.4734708e+02 7.3878681e+01 0.0000000e+00 9.0310239e+01 4.0250493e+01 4.0814064e+01 1.4231355e+02 1.7233186e+01 1.1925058e+02 1.4709070e+02 1.3560489e+02 3.5453977e+01 9.9320837e+01 1.0556647e+02 1.1374009e+02 5.6384101e+01 9.2899116e+01 1.0193301e+02 8.6230830e+01 9.2566177e+01 1.2560720e+02 1.2295418e+02 4.8207834e+01 1.3421870e+02 1.2650784e+02 8.2449170e+01 6.7984183e+01 7.7576946e+01 9.0241429e+01 7.6232059e+01 8.1401648e+01 8.5971842e+01 5.2098768e+01 6.2877153e+01 6.7302589e+01 5.1396831e+01 - 6.2193155e+01 7.6797312e+01 4.4064529e+01 6.8899405e+01 7.0344788e+01 5.8551537e+01 7.2554999e+01 9.0752782e+01 5.7798231e+01 4.1369089e+01 7.5906105e+01 8.5058895e+01 7.3274815e+01 6.6748200e+01 9.4014298e+01 4.4092087e+01 5.6703652e+01 9.4171210e+01 6.4034849e+01 7.8988791e+01 5.4369609e+01 8.0955504e+01 6.0672063e+01 9.2543723e+01 7.3659038e+01 3.8997159e+01 5.1658478e+01 5.5824577e+01 7.9890178e+01 8.4670294e+01 6.2580960e+01 7.7109932e+01 8.4341206e+01 6.4667872e+01 8.9607900e+01 8.4828134e+01 8.1154605e+01 9.1424809e+01 8.6252102e+01 7.9350768e+01 9.0175661e+01 3.7643086e+01 3.6924963e+01 4.1641428e+01 5.4918332e+01 5.6450670e+01 4.8535625e+01 5.0300967e+01 3.1414789e+01 3.5223532e+01 1.9745807e+01 5.2570230e+01 4.1368129e+01 5.4311461e+01 3.8980789e+01 7.5637321e+01 2.9836958e+01 6.3184686e+00 5.2127110e+01 5.6875211e+01 5.7479531e+01 3.1174868e+01 9.0310239e+01 0.0000000e+00 5.3158428e+01 7.3460605e+01 5.6605186e+01 7.3735875e+01 2.9456705e+01 6.4618395e+01 5.1002162e+01 8.0777985e+01 3.5982830e+01 3.3818178e+01 4.3024947e+01 5.1647502e+01 4.2170473e+01 6.2831158e+01 2.8113439e+01 6.0806098e+01 6.1672858e+01 5.8391211e+01 8.5723757e+01 7.3312192e+01 7.3796913e+01 6.8191880e+01 7.3725065e+01 7.5139909e+01 7.8616901e+01 2.3875884e+01 2.4539751e+01 1.5370608e+01 4.1743403e+01 2.9205365e+01 2.3455095e+01 4.0495219e+01 - 5.5661967e+01 8.2020171e+01 3.6912057e+01 2.9070836e+01 4.4144751e+01 1.5267853e+01 9.4920727e+01 4.1318794e+01 8.5284253e+01 6.0882862e+01 3.8116774e+01 5.2878495e+01 1.1070938e+02 5.2190652e+01 4.1592184e+01 5.1673413e+01 6.6863159e+00 5.1857247e+01 1.0491427e+02 2.8106548e+01 8.3790386e+01 1.1468202e+02 1.0017441e+02 5.0759968e+01 7.6417070e+01 7.0401682e+01 8.0240267e+01 3.5466798e+01 7.5121782e+01 8.5871838e+01 6.1496502e+01 7.6902777e+01 1.0125620e+02 9.2876653e+01 5.6643313e+01 1.0858537e+02 1.0182820e+02 7.5345087e+01 6.5603903e+01 6.8257572e+01 8.2164856e+01 4.1549245e+01 4.6217723e+01 5.1898379e+01 2.7166275e+01 3.6975906e+01 3.6428647e+01 1.7332458e+01 5.1440751e+01 7.7586070e+01 3.4930072e+01 2.2769665e+01 3.8079041e+01 1.2016934e+01 9.1428313e+01 3.5841672e+01 8.2760613e+01 5.8120596e+01 3.0993582e+01 4.6173436e+01 1.0943619e+02 4.7222709e+01 4.0250493e+01 5.3158428e+01 0.0000000e+00 4.6584694e+01 1.0500774e+02 2.5178212e+01 8.2026861e+01 1.1295969e+02 9.8763088e+01 4.7451838e+01 7.2045612e+01 7.0416532e+01 8.0747074e+01 3.4764790e+01 6.9432226e+01 8.2680850e+01 5.7771388e+01 7.3603340e+01 9.8795884e+01 9.2513673e+01 5.5311499e+01 1.0716147e+02 1.0125514e+02 7.2104143e+01 6.2742306e+01 6.7294330e+01 7.9926839e+01 4.0553880e+01 4.6207082e+01 5.0238652e+01 2.2603769e+01 3.1206563e+01 3.2075290e+01 1.2738311e+01 - 1.0129050e+02 1.2203218e+02 8.0034172e+01 7.3881548e+01 8.9489925e+01 6.0174045e+01 1.3192567e+02 7.3103961e+01 1.2140040e+02 9.7756645e+01 7.9897429e+01 8.9716851e+01 1.4217071e+02 9.3410381e+01 5.4424379e+01 9.1941160e+01 5.1695315e+01 8.1270291e+01 1.3104581e+02 4.9759998e+01 1.1785105e+02 1.4080265e+02 1.2597306e+02 6.6363124e+01 1.1227439e+02 9.5914978e+01 1.0283396e+02 5.5277068e+01 1.1073795e+02 1.0726744e+02 9.7149071e+01 9.4046672e+01 1.2587120e+02 1.1043259e+02 5.7739569e+01 1.2577905e+02 1.1532653e+02 9.7708108e+01 7.9257107e+01 7.2657225e+01 9.2265033e+01 7.4532526e+01 7.6550982e+01 8.5893940e+01 6.2206605e+01 7.8342028e+01 7.6988423e+01 6.2093134e+01 6.9862663e+01 7.7550512e+01 6.1807949e+01 4.5439629e+01 4.2826678e+01 5.1353516e+01 1.0171698e+02 2.5301003e+01 1.0019675e+02 7.9620474e+01 2.8044406e+01 2.0937811e+01 1.2768320e+02 4.6757093e+01 4.0814064e+01 7.3460605e+01 4.6584694e+01 0.0000000e+00 1.2438456e+02 3.3969609e+01 9.9636435e+01 1.2375475e+02 1.1748234e+02 2.3077973e+01 6.8689211e+01 9.0480953e+01 9.5240022e+01 4.8073047e+01 5.9882126e+01 7.3195390e+01 5.9129010e+01 6.8642837e+01 9.7624418e+01 1.0388639e+02 4.5155945e+01 1.1087145e+02 1.0565907e+02 5.0474095e+01 4.6549548e+01 6.4193108e+01 6.8414509e+01 6.4175392e+01 6.8627530e+01 6.9654397e+01 4.2008943e+01 4.5004117e+01 5.2698309e+01 4.8629517e+01 - 9.2780917e+01 8.1245596e+01 8.2307783e+01 1.1467025e+02 1.0584064e+02 1.0892729e+02 6.0393752e+01 1.3581702e+02 5.1100259e+01 5.8751907e+01 1.1541129e+02 1.1717737e+02 3.9625184e+01 9.3130371e+01 1.4363407e+02 7.0549063e+01 1.0679776e+02 1.3204660e+02 2.3285280e+01 1.2712053e+02 4.5699542e+01 4.2885032e+01 2.4412748e+01 1.3185109e+02 8.0124055e+01 4.1933617e+01 4.3662247e+01 9.3734821e+01 9.0623492e+01 8.8456598e+01 7.8969056e+01 8.7141006e+01 6.9163100e+01 4.7880961e+01 1.2650339e+02 6.2819668e+01 6.7034873e+01 1.0905483e+02 1.1153619e+02 1.0255259e+02 1.0427827e+02 7.0705006e+01 6.6363929e+01 6.5055778e+01 9.5247092e+01 9.1418396e+01 8.3916086e+01 9.6504600e+01 8.3022145e+01 6.3653116e+01 7.4923301e+01 1.0869025e+02 9.7174657e+01 1.0788823e+02 4.0275395e+01 1.3068480e+02 3.5826874e+01 5.0866002e+01 1.0747255e+02 1.0769581e+02 2.0283294e+01 8.2029835e+01 1.4231355e+02 5.6605186e+01 1.0500774e+02 1.2438456e+02 0.0000000e+00 1.2512304e+02 3.0544219e+01 2.3514613e+01 7.4130060e+00 1.2750310e+02 6.4929202e+01 3.9319437e+01 3.6832826e+01 9.2003982e+01 7.5178924e+01 7.8027201e+01 6.7034025e+01 7.9763293e+01 5.4481420e+01 4.2781307e+01 1.2516077e+02 5.4635492e+01 6.1857184e+01 9.8823549e+01 1.0741372e+02 1.0065244e+02 9.9457465e+01 6.6187001e+01 6.1378753e+01 5.6697321e+01 9.0595691e+01 8.2791516e+01 7.6598426e+01 9.3405814e+01 - 7.8487676e+01 1.0121138e+02 6.0465480e+01 4.4830750e+01 6.1298742e+01 3.5159832e+01 1.1663128e+02 3.9155292e+01 1.0831182e+02 8.3737780e+01 4.9003254e+01 6.0198196e+01 1.3335068e+02 6.8920847e+01 2.3825590e+01 7.4644425e+01 2.6469274e+01 5.0020721e+01 1.2587614e+02 1.6569157e+01 1.0616227e+02 1.3357803e+02 1.2064613e+02 4.0776252e+01 9.2899528e+01 8.9539110e+01 9.7134853e+01 4.1778564e+01 8.9279250e+01 9.4411305e+01 7.8033116e+01 8.3795222e+01 1.1517750e+02 1.0727730e+02 4.4693495e+01 1.2120491e+02 1.1239780e+02 7.9003971e+01 6.4282825e+01 6.7111559e+01 8.3216806e+01 6.0978281e+01 6.4880140e+01 7.1805291e+01 4.0569100e+01 5.4895509e+01 5.6525828e+01 3.9214844e+01 7.1032999e+01 9.1822319e+01 5.7007464e+01 3.6416565e+01 4.9912574e+01 3.1780046e+01 1.0998207e+02 2.3457445e+01 1.0350722e+02 7.9235657e+01 3.5380664e+01 4.4984010e+01 1.3046350e+02 5.8883928e+01 1.7233186e+01 7.3735875e+01 2.5178212e+01 3.3969609e+01 1.2512304e+02 0.0000000e+00 1.0242134e+02 1.2998989e+02 1.1839058e+02 2.9284932e+01 8.3696311e+01 8.8380328e+01 9.6645943e+01 4.0289823e+01 7.7987113e+01 8.7234491e+01 7.0049289e+01 7.7748388e+01 1.0948596e+02 1.0622061e+02 4.1128371e+01 1.1803618e+02 1.1071446e+02 7.0008626e+01 5.6556546e+01 6.5156778e+01 7.7870168e+01 5.9029723e+01 6.4189149e+01 6.8815246e+01 3.4897484e+01 4.6504041e+01 5.0539270e+01 3.5432558e+01 - 7.8841599e+01 8.2520176e+01 6.5476545e+01 9.4950296e+01 9.1737724e+01 8.6511004e+01 6.8297668e+01 1.1756636e+02 5.3706874e+01 4.9874866e+01 9.9924624e+01 1.0616141e+02 5.6772043e+01 8.3963585e+01 1.2252639e+02 5.8631561e+01 8.5005199e+01 1.1822382e+02 4.5122900e+01 1.0690622e+02 4.9365337e+01 6.5874899e+01 4.3775306e+01 1.1706252e+02 8.1072145e+01 3.8858412e+01 4.8279452e+01 7.8431859e+01 9.0060605e+01 9.1493412e+01 7.4560518e+01 8.6408622e+01 8.1427241e+01 5.8152859e+01 1.1233303e+02 7.7742444e+01 7.7365163e+01 1.0574212e+02 1.0378636e+02 9.4712919e+01 1.0187157e+02 5.6680784e+01 5.3713385e+01 5.5275094e+01 7.9066228e+01 7.7719535e+01 6.9535184e+01 7.6779083e+01 5.3312357e+01 3.7417242e+01 4.8785726e+01 8.1599888e+01 6.8269597e+01 8.3323468e+01 1.8576102e+01 1.0446853e+02 7.6484558e+00 2.4119668e+01 8.0199825e+01 8.1572309e+01 2.8399728e+01 5.4607234e+01 1.1925058e+02 2.9456705e+01 8.2026861e+01 9.9636435e+01 3.0544219e+01 1.0242134e+02 0.0000000e+00 3.9873044e+01 2.6661914e+01 1.0647554e+02 4.2352984e+01 3.2517217e+01 3.5934518e+01 7.4869798e+01 5.2842629e+01 6.8198112e+01 4.3716328e+01 7.0013308e+01 5.2740281e+01 4.9581749e+01 1.0885734e+02 6.2826868e+01 6.8062698e+01 8.2606453e+01 9.2259354e+01 9.0648511e+01 9.0298552e+01 4.6657333e+01 4.3707019e+01 3.5322324e+01 6.8853524e+01 5.7333926e+01 5.1960633e+01 6.9541053e+01 - 1.1076072e+02 9.8808441e+01 9.6449408e+01 1.2729525e+02 1.2042979e+02 1.1963174e+02 8.0658719e+01 1.4582376e+02 7.2334816e+01 7.5747798e+01 1.2753691e+02 1.2856840e+02 6.1758876e+01 1.0700889e+02 1.5010497e+02 8.6588544e+01 1.1558471e+02 1.4125992e+02 4.3193866e+01 1.3380499e+02 6.5947683e+01 5.5456915e+01 4.2744178e+01 1.3724127e+02 9.4105281e+01 5.3238112e+01 5.1541020e+01 9.8229008e+01 1.0350789e+02 9.3169626e+01 9.1652285e+01 8.9751649e+01 7.6304109e+01 4.9533727e+01 1.2790772e+02 6.3038296e+01 6.4675146e+01 1.1490289e+02 1.1442846e+02 1.0157265e+02 1.0436955e+02 8.1000270e+01 7.6080252e+01 7.7493060e+01 1.0369478e+02 1.0356426e+02 9.6132819e+01 1.0699474e+02 9.1512353e+01 6.0395258e+01 8.3810327e+01 1.1619944e+02 1.0134099e+02 1.1704118e+02 4.1266755e+01 1.3432233e+02 4.5178290e+01 6.0217497e+01 1.1073770e+02 1.0670451e+02 3.2634944e+01 8.2869363e+01 1.4709070e+02 6.4618395e+01 1.1295969e+02 1.2375475e+02 2.3514613e+01 1.2998989e+02 3.9873044e+01 0.0000000e+00 2.2884132e+01 1.2711534e+02 5.9229035e+01 4.6264263e+01 3.7205873e+01 9.4942914e+01 6.8761000e+01 6.7108076e+01 6.5189272e+01 7.2522254e+01 3.8265965e+01 3.7458723e+01 1.2463752e+02 4.0142836e+01 5.1220486e+01 9.0587108e+01 1.0285858e+02 9.7386076e+01 9.1707895e+01 7.2972183e+01 6.7945955e+01 6.2749625e+01 9.5174920e+01 8.7027474e+01 8.2475794e+01 1.0130939e+02 - 8.9301443e+01 7.8344814e+01 7.7275260e+01 1.0935696e+02 1.0097960e+02 1.0326395e+02 5.9517543e+01 1.2980548e+02 4.9802207e+01 5.4596672e+01 1.0984855e+02 1.1156688e+02 4.2402351e+01 8.8136713e+01 1.3705084e+02 6.6066156e+01 1.0062696e+02 1.2590696e+02 2.4746099e+01 1.2051733e+02 4.3757685e+01 4.3205663e+01 2.3922416e+01 1.2506275e+02 7.5991536e+01 3.5872644e+01 3.7871794e+01 8.6720688e+01 8.6124905e+01 8.2978435e+01 7.3874298e+01 8.0899273e+01 6.5538900e+01 4.2673913e+01 1.1931107e+02 5.9051070e+01 6.2102098e+01 1.0304964e+02 1.0477680e+02 9.5471505e+01 9.7773028e+01 6.4511915e+01 6.0028226e+01 5.9402520e+01 8.8806734e+01 8.5789593e+01 7.8263113e+01 9.0574105e+01 7.8697354e+01 5.8948971e+01 6.9285102e+01 1.0295828e+02 9.1423475e+01 1.0207985e+02 3.7814183e+01 1.2420588e+02 3.2984243e+01 4.5505352e+01 1.0117765e+02 1.0108429e+02 2.4330648e+01 7.5819103e+01 1.3560489e+02 5.1002162e+01 9.8763088e+01 1.1748234e+02 7.4130060e+00 1.1839058e+02 2.6661914e+01 2.2884132e+01 0.0000000e+00 1.2026418e+02 5.8903729e+01 3.2251195e+01 2.9602325e+01 8.4832637e+01 6.8889527e+01 7.1191149e+01 6.0336279e+01 7.2559784e+01 4.8982087e+01 3.6707783e+01 1.1781316e+02 4.9756767e+01 5.6268871e+01 9.1700532e+01 1.0001520e+02 9.3368820e+01 9.2298098e+01 5.9462816e+01 5.4532368e+01 5.0008423e+01 8.3746079e+01 7.6295594e+01 7.0182182e+01 8.7228963e+01 - 1.0090028e+02 1.1524036e+02 7.9095743e+01 7.1670108e+01 8.3919128e+01 6.1169913e+01 1.2856490e+02 6.3570837e+01 1.2061803e+02 9.6766694e+01 7.1682523e+01 7.7132263e+01 1.4237098e+02 8.5394608e+01 4.4890956e+01 9.0309050e+01 5.0231130e+01 6.6405109e+01 1.3104700e+02 3.9784242e+01 1.1671609e+02 1.3703503e+02 1.2535694e+02 4.7563110e+01 1.0328356e+02 9.4141214e+01 9.8775526e+01 4.4787941e+01 9.9827078e+01 9.3652926e+01 8.8733644e+01 8.0509011e+01 1.1634681e+02 1.0497580e+02 3.5977929e+01 1.1756845e+02 1.0645332e+02 8.0697331e+01 6.0780580e+01 5.6288260e+01 7.5339178e+01 7.1021637e+01 7.2919459e+01 8.1986989e+01 5.4274374e+01 7.1882667e+01 7.2328916e+01 5.9774339e+01 8.3676762e+01 9.0087438e+01 6.9233101e+01 5.6348601e+01 5.8763307e+01 5.6086891e+01 1.1148748e+02 3.6521559e+01 1.0850877e+02 8.6377255e+01 4.3594949e+01 3.9165600e+01 1.3421155e+02 5.9507313e+01 3.5453977e+01 8.0777985e+01 4.7451838e+01 2.3077973e+01 1.2750310e+02 2.9284932e+01 1.0647554e+02 1.2711534e+02 1.2026418e+02 0.0000000e+00 7.8100658e+01 9.0253340e+01 9.4753732e+01 3.9895930e+01 6.9699005e+01 7.1943793e+01 6.6518025e+01 6.3681803e+01 9.9332119e+01 1.0123142e+02 2.3182555e+01 1.0836925e+02 1.0058473e+02 4.9663387e+01 3.5172167e+01 4.9958901e+01 5.8320601e+01 6.4999694e+01 6.8787773e+01 7.3001463e+01 4.1877272e+01 5.2614607e+01 5.8367375e+01 5.2381738e+01 - 9.6788965e+01 1.0509711e+02 7.5606409e+01 9.5809529e+01 9.9753130e+01 8.2868080e+01 9.9782382e+01 1.1115799e+02 8.6784934e+01 7.2602735e+01 1.0097913e+02 1.0777796e+02 9.5379460e+01 9.3916536e+01 1.0690917e+02 7.6254205e+01 7.7138630e+01 1.1283842e+02 8.0106230e+01 9.3131189e+01 8.1321403e+01 9.4544240e+01 7.6518505e+01 1.0380884e+02 9.7436353e+01 5.7641123e+01 6.3931939e+01 6.6553210e+01 1.0276313e+02 9.4595606e+01 8.6329260e+01 8.3801132e+01 9.6211058e+01 6.9309550e+01 9.2715874e+01 8.8281839e+01 8.1280556e+01 1.0360734e+02 9.3160429e+01 7.8751609e+01 9.2435756e+01 6.1845462e+01 5.9413083e+01 6.7358225e+01 7.4455902e+01 8.2553853e+01 7.5573875e+01 7.5020108e+01 5.2856606e+01 1.7755644e+01 4.7757166e+01 6.9828825e+01 4.9987393e+01 7.5691703e+01 3.8327219e+01 8.1680689e+01 4.3693052e+01 3.8346156e+01 5.7849663e+01 4.9745983e+01 6.5770971e+01 2.8950216e+01 9.9320837e+01 3.5982830e+01 7.2045612e+01 6.8689211e+01 6.4929202e+01 8.3696311e+01 4.2352984e+01 5.9229035e+01 5.8903729e+01 7.8100658e+01 0.0000000e+00 4.6474069e+01 4.5287437e+01 5.8729323e+01 1.1064704e+01 3.9585385e+01 1.5175316e+01 4.5767632e+01 4.0221593e+01 5.5038329e+01 8.4127756e+01 5.9887007e+01 6.2858592e+01 4.6364045e+01 6.2661979e+01 6.9191765e+01 6.3521064e+01 4.4003892e+01 4.3199685e+01 3.5391972e+01 5.3423655e+01 4.1000447e+01 4.1913268e+01 6.0990446e+01 - 7.1120745e+01 6.2893920e+01 5.2999105e+01 8.2994600e+01 7.5646769e+01 7.6600489e+01 5.5891231e+01 1.0003382e+02 4.6344340e+01 3.6577682e+01 8.1532607e+01 8.2730081e+01 5.6546373e+01 6.2324157e+01 1.0635691e+02 4.4731422e+01 7.1908807e+01 9.5251586e+01 4.1563236e+01 8.9655179e+01 3.9302011e+01 5.1898795e+01 3.6116596e+01 9.2973226e+01 5.5514582e+01 1.2026426e+01 1.9090497e+01 5.4538544e+01 6.3287730e+01 5.9227921e+01 4.8601012e+01 5.4031153e+01 5.3172580e+01 3.0972761e+01 8.7307277e+01 5.1208183e+01 4.8804430e+01 7.4651883e+01 7.3964857e+01 6.5561456e+01 7.0173769e+01 3.4932940e+01 2.9851677e+01 3.2381996e+01 5.7863800e+01 5.7635237e+01 5.0427209e+01 6.2304803e+01 6.5105321e+01 5.3458601e+01 4.7248534e+01 7.8862037e+01 7.0492988e+01 7.5953935e+01 4.7391332e+01 9.7091350e+01 3.9357517e+01 3.0860967e+01 7.6479979e+01 7.7079683e+01 5.2000494e+01 5.5382345e+01 1.0556647e+02 3.3818178e+01 7.0416532e+01 9.0480953e+01 3.9319437e+01 8.8380328e+01 3.2517217e+01 4.6264263e+01 3.2251195e+01 9.0253340e+01 4.6474069e+01 0.0000000e+00 1.3538106e+01 5.3113394e+01 5.3196988e+01 5.2445977e+01 4.0128682e+01 4.8408491e+01 4.5254857e+01 2.7901215e+01 8.6476671e+01 4.6923892e+01 4.5876694e+01 6.8208600e+01 7.1482497e+01 6.4142865e+01 6.7054658e+01 3.0235651e+01 2.4518436e+01 2.4228459e+01 5.4051469e+01 5.0768375e+01 4.4331464e+01 6.0072473e+01 - 8.4598071e+01 7.2984550e+01 6.6167771e+01 9.5298978e+01 8.8193196e+01 8.8284732e+01 6.4279469e+01 1.1064869e+02 5.6259421e+01 4.9600680e+01 9.3076352e+01 9.2969093e+01 6.0972284e+01 7.3863148e+01 1.1530934e+02 5.8037967e+01 8.2625530e+01 1.0467234e+02 4.2833926e+01 9.8743620e+01 4.8716519e+01 5.0937652e+01 3.7580707e+01 1.0025161e+02 6.4241118e+01 2.2955436e+01 2.1599388e+01 6.1711859e+01 7.1809390e+01 6.1126387e+01 5.8605250e+01 5.5512573e+01 5.3293487e+01 2.5448103e+01 9.1783288e+01 4.5492558e+01 4.2351410e+01 7.9450914e+01 7.7933264e+01 6.6571381e+01 7.0534545e+01 4.6729854e+01 4.1365044e+01 4.4614731e+01 6.7941716e+01 6.9420590e+01 6.2604886e+01 7.3945636e+01 7.4269448e+01 5.3938926e+01 5.7947360e+01 8.8830808e+01 7.8176260e+01 8.6913767e+01 4.7299198e+01 1.0480980e+02 4.3341369e+01 4.0266134e+01 8.3875021e+01 8.1471827e+01 5.1303644e+01 6.0510793e+01 1.1374009e+02 4.3024947e+01 8.0747074e+01 9.5240022e+01 3.6832826e+01 9.6645943e+01 3.5934518e+01 3.7205873e+01 2.9602325e+01 9.4753732e+01 4.5287437e+01 1.3538106e+01 0.0000000e+00 5.9439092e+01 5.2116255e+01 4.5618411e+01 4.2274123e+01 4.4042618e+01 3.3452233e+01 1.5681322e+01 9.0034958e+01 3.3671649e+01 3.4355635e+01 6.5700567e+01 7.1634451e+01 6.3900479e+01 6.3249568e+01 4.0415922e+01 3.4685578e+01 3.3570443e+01 6.2254123e+01 5.8730380e+01 5.3495051e+01 7.0502350e+01 - 7.2046825e+01 7.8256694e+01 4.7870674e+01 5.6097308e+01 5.8762665e+01 4.7445677e+01 8.9453536e+01 5.9630496e+01 8.2221977e+01 5.9360121e+01 5.2466035e+01 5.5193792e+01 1.0348887e+02 5.3050816e+01 5.7797446e+01 5.4750220e+01 3.6146496e+01 5.6120337e+01 9.2517055e+01 4.2125697e+01 7.7799606e+01 9.7727439e+01 8.6666185e+01 4.5500168e+01 6.5956522e+01 5.5187338e+01 5.9861861e+01 9.6091532e+00 6.4712887e+01 6.0259295e+01 5.1448595e+01 4.8076928e+01 7.8695557e+01 6.7945331e+01 3.8042558e+01 8.1775265e+01 7.2528622e+01 5.4359888e+01 4.0511923e+01 3.5630479e+01 5.1567859e+01 3.2943589e+01 3.3862930e+01 4.3206163e+01 2.4283494e+01 4.0460201e+01 3.8645809e+01 3.5591159e+01 6.6681220e+01 7.1213224e+01 4.4030092e+01 5.1497568e+01 5.2208333e+01 4.6041436e+01 8.4565589e+01 5.4909673e+01 7.8423075e+01 5.5717664e+01 4.5348449e+01 4.6447376e+01 1.0131386e+02 4.5699948e+01 5.6384101e+01 5.1647502e+01 3.4764790e+01 4.8073047e+01 9.2003982e+01 4.0289823e+01 7.4869798e+01 9.4942914e+01 8.4832637e+01 3.9895930e+01 5.8729323e+01 5.3113394e+01 5.9439092e+01 0.0000000e+00 5.5150178e+01 5.3643866e+01 4.4142618e+01 4.1765293e+01 7.3821373e+01 6.7048837e+01 3.5876471e+01 7.9033598e+01 7.0976592e+01 4.6300354e+01 3.3822671e+01 3.3326108e+01 4.6584888e+01 2.9806507e+01 3.2370815e+01 3.9830468e+01 1.7185864e+01 3.2290429e+01 3.2366085e+01 3.2969473e+01 - 1.0049921e+02 1.0993255e+02 7.8187129e+01 9.5195599e+01 1.0082368e+02 8.1584286e+01 1.0700211e+02 1.0810443e+02 9.4465517e+01 7.8346255e+01 1.0018817e+02 1.0702918e+02 1.0473386e+02 9.5757752e+01 1.0146719e+02 8.0622059e+01 7.4847322e+01 1.1006750e+02 8.9372482e+01 8.8515845e+01 8.8986178e+01 1.0250079e+02 8.5383775e+01 9.9168484e+01 1.0113807e+02 6.4034861e+01 6.9777735e+01 6.3808679e+01 1.0537403e+02 9.5792437e+01 8.9142305e+01 8.3870264e+01 1.0066185e+02 7.4576837e+01 8.6745306e+01 9.2796689e+01 8.4465588e+01 1.0260378e+02 9.0080118e+01 7.5007526e+01 9.0340173e+01 6.4162353e+01 6.2155182e+01 7.1073457e+01 7.3222204e+01 8.3466470e+01 7.7136851e+01 7.4516621e+01 5.5801365e+01 2.5778208e+01 5.0015758e+01 6.7261308e+01 4.7258323e+01 7.3729261e+01 4.9214542e+01 7.5137501e+01 5.4164909e+01 4.5677084e+01 5.2619886e+01 4.1540288e+01 7.6780090e+01 2.6211425e+01 9.2899116e+01 4.2170473e+01 6.9432226e+01 5.9882126e+01 7.5178924e+01 7.7987113e+01 5.2842629e+01 6.8761000e+01 6.8889527e+01 6.9699005e+01 1.1064704e+01 5.3196988e+01 5.2116255e+01 5.5150178e+01 0.0000000e+00 3.6291168e+01 1.6191882e+01 4.2433865e+01 4.4748933e+01 6.0688298e+01 7.6857544e+01 6.4230285e+01 6.5686412e+01 3.7433091e+01 5.4958556e+01 6.4255976e+01 5.7846165e+01 4.6133019e+01 4.6163795e+01 3.9940877e+01 5.0338990e+01 3.9216682e+01 4.2101301e+01 5.9541675e+01 - 1.1189719e+02 1.0723603e+02 8.8126068e+01 1.0662714e+02 1.0683647e+02 9.5891382e+01 1.0631202e+02 1.1320713e+02 9.8473009e+01 8.4232910e+01 1.0440988e+02 1.0445443e+02 1.0657334e+02 9.5644660e+01 1.0769294e+02 8.7540397e+01 8.6250801e+01 1.0770179e+02 8.8196544e+01 9.3899935e+01 9.1363293e+01 9.3012000e+01 8.3015392e+01 9.3714205e+01 9.3853255e+01 6.2362452e+01 6.0441015e+01 6.0275593e+01 9.6807072e+01 7.5287109e+01 8.4108348e+01 6.2812438e+01 8.2698765e+01 5.7689374e+01 7.6235500e+01 7.0519772e+01 5.9285832e+01 8.5725582e+01 7.3294638e+01 5.3694873e+01 6.5872693e+01 6.7061418e+01 6.3300314e+01 7.2063001e+01 7.5170264e+01 8.6433004e+01 8.1514007e+01 8.4242118e+01 8.5780522e+01 5.6972177e+01 7.1054914e+01 8.9623667e+01 7.5456498e+01 9.1113743e+01 6.9594602e+01 9.2295808e+01 7.3099045e+01 6.4677106e+01 7.5195545e+01 6.2845761e+01 8.7673598e+01 5.5316958e+01 1.0193301e+02 6.2831158e+01 8.2680850e+01 7.3195390e+01 7.8027201e+01 8.7234491e+01 6.8198112e+01 6.7108076e+01 7.1191149e+01 7.1943793e+01 3.9585385e+01 5.2445977e+01 4.5618411e+01 5.3643866e+01 3.6291168e+01 0.0000000e+00 3.8763554e+01 1.4845277e+01 3.0981758e+01 4.4617080e+01 6.8383071e+01 4.1520868e+01 3.8322491e+01 2.6581295e+01 4.1299234e+01 4.2549166e+01 2.9380197e+01 5.4781947e+01 5.2250136e+01 5.1972025e+01 6.0107251e+01 5.8980255e+01 5.9859380e+01 7.5272093e+01 - 8.4829596e+01 9.4130367e+01 6.2426861e+01 8.1606687e+01 8.5567959e+01 6.8943256e+01 9.2151249e+01 9.6222078e+01 7.9666601e+01 6.2433721e+01 8.6064121e+01 9.2882552e+01 9.2368932e+01 8.0104303e+01 9.2828159e+01 6.4448525e+01 6.2597563e+01 9.7694150e+01 7.8221887e+01 7.8549193e+01 7.4411286e+01 9.1356224e+01 7.3902475e+01 8.9184713e+01 8.5914841e+01 4.9928633e+01 5.7271391e+01 5.1841934e+01 9.0342018e+01 8.4107916e+01 7.3748754e+01 7.3008481e+01 8.8753434e+01 6.4667382e+01 7.9410146e+01 8.3778701e+01 7.6295351e+01 9.0629358e+01 8.0040787e+01 6.7354589e+01 8.1612685e+01 4.8332111e+01 4.6429440e+01 5.5165959e+01 5.9367686e+01 6.8146009e+01 6.1491907e+01 6.0388171e+01 4.7128620e+01 2.7825374e+01 3.6121031e+01 5.8250048e+01 4.1305986e+01 6.2391236e+01 4.5646270e+01 7.0513206e+01 4.5781249e+01 3.1940341e+01 4.7256684e+01 4.1643949e+01 7.0301754e+01 2.0287288e+01 8.6230830e+01 2.8113439e+01 5.7771388e+01 5.9129010e+01 6.7034025e+01 7.0049289e+01 4.3716328e+01 6.5189272e+01 6.0336279e+01 6.6518025e+01 1.5175316e+01 4.0128682e+01 4.2274123e+01 4.4142618e+01 1.6191882e+01 3.8763554e+01 0.0000000e+00 3.9816899e+01 4.6071585e+01 5.3442915e+01 7.1801901e+01 6.1985936e+01 6.1889695e+01 4.1894102e+01 5.3117294e+01 5.8845016e+01 5.7020837e+01 3.0178780e+01 3.0258917e+01 2.3923978e+01 3.8496516e+01 2.7354968e+01 2.7969869e+01 4.6955733e+01 - 1.0283484e+02 9.6845807e+01 7.8822389e+01 9.6165626e+01 9.5299267e+01 8.6618567e+01 9.9085514e+01 1.0097221e+02 9.2416965e+01 7.6586270e+01 9.2050283e+01 9.0769216e+01 1.0346853e+02 8.3485474e+01 9.6747396e+01 7.8689211e+01 7.6373707e+01 9.3937681e+01 8.6213664e+01 8.2553797e+01 8.5471169e+01 8.9218321e+01 8.0452722e+01 8.0113472e+01 8.2427557e+01 5.6372501e+01 5.4131435e+01 4.7344755e+01 8.4276986e+01 6.2648127e+01 7.2284888e+01 4.9397756e+01 7.3900288e+01 5.2537619e+01 6.3085736e+01 6.4770296e+01 5.2781879e+01 7.1160976e+01 5.8486171e+01 3.9190235e+01 5.1965972e+01 5.7017105e+01 5.3460926e+01 6.2359408e+01 6.3024786e+01 7.4702999e+01 7.0582970e+01 7.3996040e+01 8.4509761e+01 6.3178216e+01 6.6308649e+01 8.3822228e+01 7.3162343e+01 8.3137290e+01 7.4933823e+01 8.6103942e+01 7.5339716e+01 6.2905371e+01 7.0993111e+01 6.0976051e+01 9.1180818e+01 5.4979634e+01 9.2566177e+01 6.0806098e+01 7.3603340e+01 6.8642837e+01 7.9763293e+01 7.7748388e+01 7.0013308e+01 7.2522254e+01 7.2559784e+01 6.3681803e+01 4.5767632e+01 4.8408491e+01 4.4042618e+01 4.1765293e+01 4.2433865e+01 1.4845277e+01 3.9816899e+01 0.0000000e+00 4.0302983e+01 4.3667560e+01 5.6968066e+01 4.5446121e+01 3.8179391e+01 2.6864520e+01 3.2062395e+01 2.8836458e+01 2.0532071e+01 4.7441284e+01 4.5056990e+01 4.7645040e+01 5.1283835e+01 5.4071723e+01 5.4316374e+01 6.7424633e+01 - 1.1474279e+02 1.0594045e+02 9.4082002e+01 1.1944126e+02 1.1640518e+02 1.0953858e+02 9.7049413e+01 1.3184420e+02 8.8810529e+01 8.1697875e+01 1.1836949e+02 1.1868208e+02 8.8889599e+01 1.0343004e+02 1.3049354e+02 8.8960217e+01 1.0220432e+02 1.2649970e+02 6.9035486e+01 1.1526610e+02 8.1407154e+01 7.5930440e+01 6.5246505e+01 1.1664332e+02 9.5519428e+01 5.6146876e+01 5.3086816e+01 7.9149752e+01 1.0170041e+02 8.2604636e+01 8.8946943e+01 7.4076855e+01 7.8093994e+01 4.8227120e+01 1.0227039e+02 6.2091949e+01 5.5515525e+01 1.0032028e+02 9.3542787e+01 7.6131235e+01 8.3085018e+01 7.3951203e+01 6.9081971e+01 7.5057174e+01 9.0274439e+01 9.6594928e+01 9.0109828e+01 9.6981696e+01 8.8309595e+01 5.1615099e+01 7.6976988e+01 1.0354952e+02 8.7291078e+01 1.0533427e+02 5.2129829e+01 1.1361843e+02 5.8275767e+01 6.0675141e+01 9.2340663e+01 8.2898183e+01 6.3863540e+01 6.5923022e+01 1.2560720e+02 6.1672858e+01 9.8795884e+01 9.7624418e+01 5.4481420e+01 1.0948596e+02 5.2740281e+01 3.8265965e+01 4.8982087e+01 9.9332119e+01 4.0221593e+01 4.5254857e+01 3.3452233e+01 7.3821373e+01 4.4748933e+01 3.0981758e+01 4.6071585e+01 4.0302983e+01 0.0000000e+00 3.0101810e+01 9.6386336e+01 2.2562487e+01 3.0593034e+01 5.6029274e+01 7.0969534e+01 6.8347045e+01 5.7830049e+01 6.2175286e+01 5.7832151e+01 5.4328744e+01 7.7237182e+01 7.1588181e+01 6.9882946e+01 8.8711377e+01 - 9.7214313e+01 7.9450812e+01 7.8853308e+01 1.0719872e+02 9.8784875e+01 1.0076244e+02 7.0818507e+01 1.1993511e+02 6.5909195e+01 6.1730091e+01 1.0272645e+02 9.9996445e+01 6.6898610e+01 8.2433996e+01 1.2418317e+02 7.0177298e+01 9.4106008e+01 1.1143862e+02 4.7367526e+01 1.0773962e+02 5.8008177e+01 4.9024216e+01 4.2195551e+01 1.0560822e+02 6.8813555e+01 3.4171729e+01 2.5766252e+01 6.8863368e+01 7.5806041e+01 5.8050044e+01 6.5206601e+01 5.3248387e+01 4.8505894e+01 1.8293957e+01 9.5093980e+01 3.4709694e+01 3.0855034e+01 7.9697090e+01 7.8870290e+01 6.5933620e+01 6.7078684e+01 5.7884326e+01 5.2251313e+01 5.5203622e+01 7.7225904e+01 7.9405682e+01 7.3433931e+01 8.5675733e+01 8.9469368e+01 6.5450461e+01 7.2592918e+01 1.0214686e+02 9.1472274e+01 9.9757479e+01 5.8820845e+01 1.1559209e+02 5.7065756e+01 5.5880038e+01 9.5792451e+01 9.1415680e+01 5.9647677e+01 7.2818930e+01 1.2295418e+02 5.8391211e+01 9.2513673e+01 1.0388639e+02 4.2781307e+01 1.0622061e+02 4.9581749e+01 3.7458723e+01 3.6707783e+01 1.0123142e+02 5.5038329e+01 2.7901215e+01 1.5681322e+01 6.7048837e+01 6.0688298e+01 4.4617080e+01 5.3442915e+01 4.3667560e+01 3.0101810e+01 0.0000000e+00 9.3791981e+01 2.0536724e+01 2.0646123e+01 6.8121539e+01 7.3919662e+01 6.3685692e+01 6.0799644e+01 5.3297202e+01 4.7542988e+01 4.7932096e+01 7.2963315e+01 7.1386281e+01 6.6798016e+01 8.3177472e+01 - 1.0129717e+02 1.0650429e+02 7.9272941e+01 7.5130433e+01 8.1406022e+01 6.8039777e+01 1.2170807e+02 6.3447790e+01 1.1649784e+02 9.3877739e+01 6.8627468e+01 6.7856062e+01 1.3770974e+02 7.8220222e+01 5.0727534e+01 8.7993700e+01 5.5978474e+01 5.7819722e+01 1.2591575e+02 4.3110792e+01 1.1204143e+02 1.2791934e+02 1.1977189e+02 3.5744187e+01 9.2179638e+01 8.8978209e+01 9.0682718e+01 3.7408724e+01 8.7376452e+01 7.6478565e+01 7.9069231e+01 6.3625207e+01 1.0227612e+02 9.4765509e+01 1.5536014e+01 1.0412493e+02 9.2613979e+01 6.1973149e+01 4.0697482e+01 3.7348497e+01 5.5008291e+01 6.7363436e+01 6.8468990e+01 7.6838302e+01 5.0197871e+01 6.7468296e+01 6.9028736e+01 6.1846627e+01 9.5646391e+01 9.8445018e+01 7.6418178e+01 7.0776764e+01 7.4061194e+01 6.6376708e+01 1.1627446e+02 5.6656632e+01 1.1235076e+02 9.0356550e+01 6.0768747e+01 5.6760576e+01 1.3514898e+02 7.0694092e+01 4.8207834e+01 8.5723757e+01 5.5311499e+01 4.5155945e+01 1.2516077e+02 4.1128371e+01 1.0885734e+02 1.2463752e+02 1.1781316e+02 2.3182555e+01 8.4127756e+01 8.6476671e+01 9.0034958e+01 3.5876471e+01 7.6857544e+01 6.8383071e+01 7.1801901e+01 5.6968066e+01 9.6386336e+01 9.3791981e+01 0.0000000e+00 1.0070355e+02 9.0692470e+01 5.0719486e+01 2.8198626e+01 3.4354286e+01 4.7323557e+01 6.5432453e+01 6.7842830e+01 7.4534942e+01 4.6612794e+01 6.1230782e+01 6.4598541e+01 6.0076562e+01 - 1.1715727e+02 9.9242285e+01 9.7764929e+01 1.2456992e+02 1.1755956e+02 1.1699562e+02 9.0300541e+01 1.3533997e+02 8.5827932e+01 8.2034095e+01 1.2001979e+02 1.1675724e+02 8.3507961e+01 1.0132215e+02 1.3679634e+02 9.0152205e+01 1.0934994e+02 1.2634221e+02 6.3190431e+01 1.2098899e+02 7.7950414e+01 6.3019008e+01 5.9013376e+01 1.1759919e+02 8.7641052e+01 5.4512646e+01 4.5978619e+01 8.2070373e+01 9.3789146e+01 7.0419272e+01 8.4114807e+01 6.4629659e+01 6.2395659e+01 3.4735352e+01 1.0370237e+02 4.2990708e+01 3.7380198e+01 9.2269713e+01 8.9180341e+01 7.2993367e+01 7.4423142e+01 7.6095625e+01 7.0592546e+01 7.4713710e+01 9.3096765e+01 9.7547614e+01 9.1845269e+01 1.0241424e+02 1.0300875e+02 7.1441556e+01 8.7969991e+01 1.1579512e+02 1.0269317e+02 1.1485793e+02 6.7010422e+01 1.2604334e+02 6.9717578e+01 7.1393222e+01 1.0641782e+02 9.8506264e+01 6.9585813e+01 8.2235853e+01 1.3421870e+02 7.3312192e+01 1.0716147e+02 1.1087145e+02 5.4635492e+01 1.1803618e+02 6.2826868e+01 4.0142836e+01 4.9756767e+01 1.0836925e+02 5.9887007e+01 4.6923892e+01 3.3671649e+01 7.9033598e+01 6.4230285e+01 4.1520868e+01 6.1985936e+01 4.5446121e+01 2.2562487e+01 2.0536724e+01 1.0070355e+02 0.0000000e+00 1.3713342e+01 6.7880265e+01 7.7326644e+01 6.8533656e+01 5.9988617e+01 6.9280363e+01 6.3974828e+01 6.3431086e+01 8.5966099e+01 8.3905121e+01 8.0831136e+01 9.8033331e+01 - 1.1297797e+02 9.3375440e+01 9.2902302e+01 1.1812992e+02 1.1053157e+02 1.1131296e+02 8.8047596e+01 1.2654573e+02 8.4883235e+01 7.8989257e+01 1.1180257e+02 1.0702506e+02 8.6043102e+01 9.3563758e+01 1.2819478e+02 8.5918694e+01 1.0292718e+02 1.1602193e+02 6.6541522e+01 1.1253778e+02 7.6955908e+01 6.3592966e+01 6.1462590e+01 1.0676392e+02 7.9979824e+01 5.2072306e+01 4.2136963e+01 7.3168695e+01 8.4882831e+01 5.8597665e+01 7.6240617e+01 5.2241698e+01 5.4758348e+01 2.9839078e+01 9.2611777e+01 3.6287810e+01 2.7226279e+01 7.9949382e+01 7.6803025e+01 6.0752721e+01 6.1043594e+01 7.0206636e+01 6.4775878e+01 6.9178814e+01 8.5050229e+01 9.0187558e+01 8.5295148e+01 9.6149232e+01 1.0375282e+02 7.6346164e+01 8.6082978e+01 1.1217787e+02 1.0115382e+02 1.0993197e+02 7.4539303e+01 1.2072524e+02 7.5214809e+01 7.2480230e+01 1.0298117e+02 9.5445477e+01 7.8117796e+01 8.1528646e+01 1.2650784e+02 7.3796913e+01 1.0125514e+02 1.0565907e+02 6.1857184e+01 1.1071446e+02 6.8062698e+01 5.1220486e+01 5.6268871e+01 1.0058473e+02 6.2858592e+01 4.5876694e+01 3.4355635e+01 7.0976592e+01 6.5686412e+01 3.8322491e+01 6.1889695e+01 3.8179391e+01 3.0593034e+01 2.0646123e+01 9.0692470e+01 1.3713342e+01 0.0000000e+00 6.3066889e+01 6.8786627e+01 5.7468105e+01 5.0522323e+01 6.5313804e+01 6.0124429e+01 6.1755037e+01 8.0155107e+01 8.0837227e+01 7.7795720e+01 9.3298535e+01 - 1.1332147e+02 1.1647600e+02 8.8623411e+01 9.9109782e+01 1.0436174e+02 8.6968762e+01 1.2033603e+02 1.0148023e+02 1.1162111e+02 9.2848686e+01 9.8375725e+01 1.0056426e+02 1.2467958e+02 9.7378503e+01 9.0545907e+01 9.2742793e+01 7.6335127e+01 9.8782585e+01 1.0815353e+02 7.9322095e+01 1.0541321e+02 1.1418077e+02 1.0275223e+02 8.1549241e+01 1.0293614e+02 7.6990890e+01 7.8001694e+01 5.4666265e+01 1.0365755e+02 8.5477850e+01 9.0602118e+01 7.1207115e+01 9.9826122e+01 7.8603489e+01 6.2566887e+01 9.1631522e+01 7.9570543e+01 8.7535560e+01 7.0057459e+01 5.1833443e+01 6.9541148e+01 7.0725217e+01 6.8846572e+01 7.8999963e+01 7.0444391e+01 8.5525868e+01 8.1925918e+01 7.8602716e+01 8.3178408e+01 6.3085613e+01 6.9608382e+01 7.7796221e+01 6.5111336e+01 8.0700364e+01 8.3372986e+01 7.2716814e+01 8.6011287e+01 7.2182184e+01 6.0164359e+01 4.4589616e+01 1.0627841e+02 4.9202241e+01 8.2449170e+01 6.8191880e+01 7.2104143e+01 5.0474095e+01 9.8823549e+01 7.0008626e+01 8.2606453e+01 9.0587108e+01 9.1700532e+01 4.9663387e+01 4.6364045e+01 6.8208600e+01 6.5700567e+01 4.6300354e+01 3.7433091e+01 2.6581295e+01 4.1894102e+01 2.6864520e+01 5.6029274e+01 6.8121539e+01 5.0719486e+01 6.7880265e+01 6.3066889e+01 0.0000000e+00 2.3802455e+01 3.8055716e+01 2.7559438e+01 5.7780932e+01 5.7925654e+01 5.8536623e+01 5.1544516e+01 5.2677272e+01 5.6869145e+01 6.7466656e+01 - 1.0578889e+02 1.0747191e+02 8.1391372e+01 8.7260165e+01 9.1687623e+01 7.7341307e+01 1.1661923e+02 8.4109756e+01 1.0999842e+02 8.9364913e+01 8.3042096e+01 8.2876406e+01 1.2678730e+02 8.4767086e+01 7.3500915e+01 8.6935325e+01 6.5412712e+01 7.8775676e+01 1.1199104e+02 6.2659414e+01 1.0425819e+02 1.1510740e+02 1.0599311e+02 5.9717359e+01 9.2613999e+01 7.7183745e+01 7.7639652e+01 3.9998866e+01 9.0876322e+01 7.3323752e+01 7.9960035e+01 5.8758945e+01 9.3895808e+01 7.9217141e+01 3.9204363e+01 9.0008306e+01 7.7544733e+01 6.9265283e+01 4.9514600e+01 3.3624698e+01 5.3234161e+01 6.4092314e+01 6.3158141e+01 7.2927807e+01 5.7050168e+01 7.3607666e+01 7.2100649e+01 6.8407612e+01 8.8564423e+01 7.8985232e+01 7.0477023e+01 7.4275269e+01 6.8742431e+01 7.3336208e+01 9.7170202e+01 6.5823919e+01 9.6204784e+01 7.7920918e+01 5.9590555e+01 4.8871416e+01 1.1719543e+02 5.7658407e+01 6.7984183e+01 7.3725065e+01 6.2742306e+01 4.6549548e+01 1.0741372e+02 5.6556546e+01 9.2259354e+01 1.0285858e+02 1.0001520e+02 3.5172167e+01 6.2661979e+01 7.1482497e+01 7.1634451e+01 3.3822671e+01 5.4958556e+01 4.1299234e+01 5.3117294e+01 3.2062395e+01 7.0969534e+01 7.3919662e+01 2.8198626e+01 7.7326644e+01 6.8786627e+01 2.3802455e+01 0.0000000e+00 2.1090766e+01 2.3204022e+01 5.6452089e+01 5.7312437e+01 6.1804642e+01 4.4702060e+01 5.3632879e+01 5.7129269e+01 6.1724384e+01 - 1.0090012e+02 9.4185506e+01 7.7383892e+01 8.7038576e+01 8.6016051e+01 8.0044593e+01 1.0423619e+02 8.3763998e+01 1.0022492e+02 8.1553500e+01 7.8584905e+01 7.3918586e+01 1.1633784e+02 7.4831312e+01 7.9034804e+01 8.0003184e+01 6.8293148e+01 7.3166650e+01 1.0171883e+02 6.6295631e+01 9.4143429e+01 1.0109350e+02 9.5399591e+01 5.6336829e+01 7.7710395e+01 6.7757629e+01 6.5283628e+01 3.5269416e+01 7.5518678e+01 5.3456620e+01 6.6943590e+01 3.8984579e+01 7.5764543e+01 6.5100363e+01 3.7027724e+01 7.2940106e+01 6.0408310e+01 5.1596338e+01 3.3919122e+01 1.4041306e+01 3.2548258e+01 5.7424034e+01 5.5584097e+01 6.3946232e+01 5.2734347e+01 6.6814148e+01 6.5850801e+01 6.7699649e+01 9.5348356e+01 8.5834302e+01 7.3721694e+01 8.3085905e+01 7.9801455e+01 7.8833685e+01 9.8636216e+01 7.9397511e+01 9.5848226e+01 7.8064704e+01 7.2271888e+01 6.5226053e+01 1.1350118e+02 6.7632325e+01 7.7576946e+01 7.5139909e+01 6.7294330e+01 6.4193108e+01 1.0065244e+02 6.5156778e+01 9.0648511e+01 9.7386076e+01 9.3368820e+01 4.9958901e+01 6.9191765e+01 6.4142865e+01 6.3900479e+01 3.3326108e+01 6.4255976e+01 4.2549166e+01 5.8845016e+01 2.8836458e+01 6.8347045e+01 6.3685692e+01 3.4354286e+01 6.8533656e+01 5.7468105e+01 3.8055716e+01 2.1090766e+01 0.0000000e+00 1.9587414e+01 5.4665883e+01 5.3979935e+01 6.0823283e+01 4.9170762e+01 6.0382217e+01 6.1059084e+01 6.6032510e+01 - 1.1458263e+02 1.0762589e+02 9.0394446e+01 1.0252406e+02 1.0253782e+02 9.3690955e+01 1.1365951e+02 1.0129820e+02 1.0860917e+02 9.1616854e+01 9.6170563e+01 9.2771642e+01 1.2108153e+02 9.1146091e+01 9.4225501e+01 9.1977394e+01 8.2164719e+01 9.2295107e+01 1.0423702e+02 8.2026162e+01 1.0184272e+02 1.0441275e+02 9.8219758e+01 7.4793280e+01 9.1488951e+01 7.3418601e+01 6.9944746e+01 5.1152135e+01 9.0942807e+01 6.5561451e+01 8.1393721e+01 5.1541113e+01 8.3068286e+01 6.6808938e+01 5.3964274e+01 7.4745598e+01 6.1436143e+01 6.9142826e+01 5.2920146e+01 3.2007171e+01 4.6202748e+01 6.9284389e+01 6.6540823e+01 7.5410790e+01 6.8736017e+01 8.2614113e+01 8.0296019e+01 8.1917516e+01 9.9595372e+01 8.1184253e+01 8.0702816e+01 9.2111247e+01 8.4033637e+01 9.0628196e+01 9.5137271e+01 8.7855616e+01 9.5507502e+01 8.1351795e+01 7.8080617e+01 6.6631732e+01 1.1158301e+02 6.8449829e+01 9.0241429e+01 7.8616901e+01 7.9926839e+01 6.8414509e+01 9.9457465e+01 7.7870168e+01 9.0298552e+01 9.1707895e+01 9.2298098e+01 5.8320601e+01 6.3521064e+01 6.7054658e+01 6.3249568e+01 4.6584888e+01 5.7846165e+01 2.9380197e+01 5.7020837e+01 2.0532071e+01 5.7830049e+01 6.0799644e+01 4.7323557e+01 5.9988617e+01 5.0522323e+01 2.7559438e+01 2.3204022e+01 1.9587414e+01 0.0000000e+00 6.2309500e+01 6.0898714e+01 6.5148508e+01 5.9385771e+01 6.6194766e+01 6.7739627e+01 7.6726753e+01 - 5.7751687e+01 6.6143926e+01 3.4163561e+01 5.7488923e+01 5.6780654e+01 4.8453607e+01 6.9395643e+01 7.4005948e+01 5.8460717e+01 3.6723148e+01 5.9145471e+01 6.5188047e+01 7.8297706e+01 5.0053567e+01 7.7883565e+01 3.6088097e+01 4.2791906e+01 7.3614765e+01 6.8114475e+01 6.1606176e+01 5.4103194e+01 7.8726734e+01 6.3045743e+01 7.0590887e+01 5.8520362e+01 3.2896849e+01 4.3053764e+01 3.2624329e+01 6.2388803e+01 6.4752283e+01 4.5264620e+01 5.6015702e+01 7.1207662e+01 5.5683274e+01 6.7351614e+01 7.3985672e+01 6.8303570e+01 6.8444572e+01 6.2442091e+01 5.6987109e+01 6.7876988e+01 1.8420882e+01 1.7737496e+01 2.6631633e+01 3.3810924e+01 3.8743360e+01 3.1670941e+01 3.5463505e+01 4.7011571e+01 5.1715158e+01 2.3293255e+01 4.9893603e+01 4.5220263e+01 4.6589183e+01 5.8559757e+01 6.7513853e+01 4.9923707e+01 2.6757072e+01 4.8444228e+01 5.2846503e+01 7.3388180e+01 3.5414502e+01 7.6232059e+01 2.3875884e+01 4.0553880e+01 6.4175392e+01 6.6187001e+01 5.9029723e+01 4.6657333e+01 7.2972183e+01 5.9462816e+01 6.4999694e+01 4.4003892e+01 3.0235651e+01 4.0415922e+01 2.9806507e+01 4.6133019e+01 5.4781947e+01 3.0178780e+01 4.7441284e+01 6.2175286e+01 5.3297202e+01 6.5432453e+01 6.9280363e+01 6.5313804e+01 5.7780932e+01 5.6452089e+01 5.4665883e+01 6.2309500e+01 0.0000000e+00 5.9323624e+00 1.2044072e+01 2.4905153e+01 2.3525871e+01 1.6527262e+01 3.0186745e+01 - 5.9933239e+01 6.4379260e+01 3.7003881e+01 6.2155842e+01 5.9657834e+01 5.3853568e+01 6.6243356e+01 7.8376978e+01 5.5649864e+01 3.5262320e+01 6.2636223e+01 6.7247720e+01 7.4246133e+01 5.0952670e+01 8.2773404e+01 3.6418678e+01 4.8170159e+01 7.6603053e+01 6.3188645e+01 6.6321256e+01 5.0698662e+01 7.3369550e+01 5.7963882e+01 7.3499996e+01 5.6272781e+01 2.7635063e+01 3.7397296e+01 3.4802286e+01 6.0813122e+01 6.1467578e+01 4.3830826e+01 5.3060222e+01 6.6374351e+01 4.9894671e+01 6.9447778e+01 6.8444173e+01 6.3001418e+01 6.7458391e+01 6.2386742e+01 5.6093410e+01 6.5882701e+01 1.8803970e+01 1.6330222e+01 2.4993960e+01 3.7096809e+01 4.1039510e+01 3.3848989e+01 4.0205490e+01 5.0752482e+01 5.1450715e+01 2.7941391e+01 5.5775860e+01 5.0226228e+01 5.2407318e+01 5.6308062e+01 7.3061762e+01 4.7737804e+01 2.6252707e+01 5.3820136e+01 5.6994581e+01 6.9677873e+01 3.8670050e+01 8.1401648e+01 2.4539751e+01 4.6207082e+01 6.8627530e+01 6.1378753e+01 6.4189149e+01 4.3707019e+01 6.7945955e+01 5.4532368e+01 6.8787773e+01 4.3199685e+01 2.4518436e+01 3.4685578e+01 3.2370815e+01 4.6163795e+01 5.2250136e+01 3.0258917e+01 4.5056990e+01 5.7832151e+01 4.7542988e+01 6.7842830e+01 6.3974828e+01 6.0124429e+01 5.7925654e+01 5.7312437e+01 5.3979935e+01 6.0898714e+01 5.9323624e+00 0.0000000e+00 1.0444497e+01 2.9922183e+01 2.8579166e+01 2.1846997e+01 3.6074363e+01 - 6.3457259e+01 7.0870779e+01 4.1910686e+01 6.7348489e+01 6.6554855e+01 5.7752717e+01 6.9351745e+01 8.5529924e+01 5.6940709e+01 3.8520737e+01 7.0375840e+01 7.6585087e+01 7.3314923e+01 5.9463969e+01 8.8746611e+01 4.1132189e+01 5.3162085e+01 8.5624617e+01 6.1841092e+01 7.2790407e+01 5.2119128e+01 7.4917159e+01 5.7230457e+01 8.2317428e+01 6.4410097e+01 3.0115173e+01 4.1003192e+01 4.3722568e+01 6.9877558e+01 7.0557396e+01 5.2750346e+01 6.2214013e+01 7.2718682e+01 5.3215347e+01 7.7661295e+01 7.2892074e+01 6.7935191e+01 7.7802598e+01 7.2252210e+01 6.4540799e+01 7.4991194e+01 2.7729220e+01 2.5631860e+01 3.2668166e+01 4.5824891e+01 4.9359789e+01 4.1734659e+01 4.6116525e+01 4.4055912e+01 4.1645673e+01 2.4738298e+01 5.5546766e+01 4.6342119e+01 5.4728100e+01 4.6602823e+01 7.4517200e+01 3.8685780e+01 1.7315956e+01 5.2797366e+01 5.5291580e+01 6.2600067e+01 3.3033819e+01 8.5971842e+01 1.5370608e+01 5.0238652e+01 6.9654397e+01 5.6697321e+01 6.8815246e+01 3.5322324e+01 6.2749625e+01 5.0008423e+01 7.3001463e+01 3.5391972e+01 2.4228459e+01 3.3570443e+01 3.9830468e+01 3.9940877e+01 5.1972025e+01 2.3923978e+01 4.7645040e+01 5.4328744e+01 4.7932096e+01 7.4534942e+01 6.3431086e+01 6.1755037e+01 5.8536623e+01 6.1804642e+01 6.0823283e+01 6.5148508e+01 1.2044072e+01 1.0444497e+01 0.0000000e+00 3.4307702e+01 2.7121961e+01 2.0710083e+01 3.8625257e+01 - 6.4938467e+01 8.0704283e+01 4.1062795e+01 4.8233553e+01 5.5647896e+01 3.6194106e+01 9.0027983e+01 5.8011372e+01 8.0198785e+01 5.6308881e+01 5.1178234e+01 5.9798398e+01 1.0236814e+02 5.4961296e+01 5.5668875e+01 5.0817184e+01 2.6441425e+01 6.0993665e+01 9.2841787e+01 4.0445555e+01 7.6720259e+01 1.0192806e+02 8.7620660e+01 5.3856976e+01 7.1771075e+01 5.6677134e+01 6.4911153e+01 2.2873770e+01 7.1881310e+01 7.3715465e+01 5.6672269e+01 6.2697099e+01 8.8358051e+01 7.5563470e+01 5.0662708e+01 9.1832837e+01 8.3823007e+01 6.8429207e+01 5.6458040e+01 5.2762740e+01 6.8312718e+01 3.2570567e+01 3.4951228e+01 4.3952011e+01 2.6118396e+01 4.0078765e+01 3.6783574e+01 2.7676206e+01 5.0797190e+01 6.2576016e+01 2.9831529e+01 3.5231043e+01 3.5929855e+01 3.1941349e+01 7.7480851e+01 4.4441865e+01 7.0881045e+01 4.6877048e+01 3.0584418e+01 3.6585457e+01 9.6688638e+01 3.3556212e+01 5.2098768e+01 4.1743403e+01 2.2603769e+01 4.2008943e+01 9.0595691e+01 3.4897484e+01 6.8853524e+01 9.5174920e+01 8.3746079e+01 4.1877272e+01 5.3423655e+01 5.4051469e+01 6.2254123e+01 1.7185864e+01 5.0338990e+01 6.0107251e+01 3.8496516e+01 5.1283835e+01 7.7237182e+01 7.2963315e+01 4.6612794e+01 8.5966099e+01 8.0155107e+01 5.1544516e+01 4.4702060e+01 4.9170762e+01 5.9385771e+01 2.4905153e+01 2.9922183e+01 3.4307702e+01 0.0000000e+00 1.7529137e+01 1.8957997e+01 1.7414248e+01 - 6.7042110e+01 8.6401320e+01 4.4522309e+01 5.6228270e+01 6.4679939e+01 4.2394779e+01 9.0806703e+01 7.1527671e+01 7.8436074e+01 5.6132456e+01 6.3576005e+01 7.4227547e+01 9.8317754e+01 6.4888954e+01 6.8728685e+01 5.2828824e+01 3.6612932e+01 7.7077066e+01 8.8540412e+01 5.4861540e+01 7.5061503e+01 1.0126723e+02 8.4026061e+01 7.1188965e+01 7.9679190e+01 5.5570881e+01 6.5754708e+01 3.8903062e+01 8.2005994e+01 8.4404824e+01 6.5322671e+01 7.3746499e+01 9.4128108e+01 7.7061780e+01 6.7253595e+01 9.5485082e+01 8.8327027e+01 8.3230957e+01 7.2359686e+01 6.6034393e+01 8.1412481e+01 3.8086074e+01 3.9606411e+01 4.8149269e+01 4.0660805e+01 5.0413846e+01 4.5002407e+01 3.6865270e+01 3.5651268e+01 4.6997828e+01 1.8809777e+01 3.2140273e+01 2.2980549e+01 3.5113345e+01 6.3500761e+01 4.7960155e+01 5.8046378e+01 3.5267684e+01 2.5746767e+01 3.1502455e+01 8.5724717e+01 1.7776104e+01 6.2877153e+01 2.9205365e+01 3.1206563e+01 4.5004117e+01 8.2791516e+01 4.6504041e+01 5.7333926e+01 8.7027474e+01 7.6295594e+01 5.2614607e+01 4.1000447e+01 5.0768375e+01 5.8730380e+01 3.2290429e+01 3.9216682e+01 5.8980255e+01 2.7354968e+01 5.4071723e+01 7.1588181e+01 7.1386281e+01 6.1230782e+01 8.3905121e+01 8.0837227e+01 5.2677272e+01 5.3632879e+01 6.0382217e+01 6.6194766e+01 2.3525871e+01 2.8579166e+01 2.7121961e+01 1.7529137e+01 0.0000000e+00 8.3379586e+00 2.0396738e+01 - 6.0587547e+01 7.8696820e+01 3.7869414e+01 5.3896844e+01 5.9803687e+01 4.1393218e+01 8.2520801e+01 7.1254863e+01 7.0114512e+01 4.7840550e+01 6.0492950e+01 7.0626670e+01 9.0371198e+01 5.8813818e+01 7.1489399e+01 4.4962167e+01 3.6457496e+01 7.5683811e+01 8.1141611e+01 5.6689136e+01 6.6804474e+01 9.3939345e+01 7.6647045e+01 7.1703236e+01 7.2566090e+01 4.8226362e+01 5.9100002e+01 3.7558093e+01 7.5541363e+01 7.9571984e+01 5.8543878e+01 6.9846206e+01 8.7701997e+01 7.1366782e+01 6.8996113e+01 8.9978561e+01 8.3668375e+01 7.9713970e+01 7.0838910e+01 6.5409575e+01 7.9230647e+01 3.1022940e+01 3.2501720e+01 4.0531789e+01 3.7542435e+01 4.5015087e+01 3.8824573e+01 3.3608483e+01 3.4988025e+01 4.7318215e+01 1.3385812e+01 3.5447865e+01 2.8753918e+01 3.5953027e+01 6.0193919e+01 5.4296042e+01 5.3059464e+01 2.9090492e+01 3.3051142e+01 3.9803157e+01 8.0161332e+01 2.2975509e+01 6.7302589e+01 2.3455095e+01 3.2075290e+01 5.2698309e+01 7.6598426e+01 5.0539270e+01 5.1960633e+01 8.2475794e+01 7.0182182e+01 5.8367375e+01 4.1913268e+01 4.4331464e+01 5.3495051e+01 3.2366085e+01 4.2101301e+01 5.9859380e+01 2.7969869e+01 5.4316374e+01 6.9882946e+01 6.6798016e+01 6.4598541e+01 8.0831136e+01 7.7795720e+01 5.6869145e+01 5.7129269e+01 6.1059084e+01 6.7739627e+01 1.6527262e+01 2.1846997e+01 2.0710083e+01 1.8957997e+01 8.3379586e+00 0.0000000e+00 2.0008075e+01 - 5.3277883e+01 7.8640757e+01 3.2314474e+01 3.5998441e+01 4.7290161e+01 2.2109777e+01 8.8101213e+01 5.2937279e+01 7.7073141e+01 5.2966379e+01 4.5229543e+01 5.8855583e+01 1.0117284e+02 5.2368513e+01 5.4037694e+01 4.5446623e+01 1.7367667e+01 6.1240972e+01 9.4706847e+01 3.9996616e+01 7.5206474e+01 1.0602603e+02 9.0162351e+01 5.9776762e+01 7.3459887e+01 6.0968977e+01 7.1731172e+01 3.5362959e+01 7.4039221e+01 8.3640239e+01 5.8623192e+01 7.4575014e+01 9.5869548e+01 8.4797970e+01 6.2586984e+01 1.0181080e+02 9.5495856e+01 7.7298315e+01 6.8322572e+01 6.8142201e+01 8.1988147e+01 3.4802325e+01 3.8923846e+01 4.5203214e+01 2.8851031e+01 3.7047602e+01 3.3695883e+01 1.8856141e+01 4.0944063e+01 6.5681765e+01 2.2384678e+01 2.2154779e+01 3.0511279e+01 1.6839639e+01 7.8725832e+01 4.1985123e+01 7.0128878e+01 4.5584481e+01 2.8383940e+01 4.2597073e+01 9.7118594e+01 3.7025353e+01 5.1396831e+01 4.0495219e+01 1.2738311e+01 4.8629517e+01 9.3405814e+01 3.5432558e+01 6.9541053e+01 1.0130939e+02 8.7228963e+01 5.2381738e+01 6.0990446e+01 6.0072473e+01 7.0502350e+01 3.2969473e+01 5.9541675e+01 7.5272093e+01 4.6955733e+01 6.7424633e+01 8.8711377e+01 8.3177472e+01 6.0076562e+01 9.8033331e+01 9.3298535e+01 6.7466656e+01 6.1724384e+01 6.6032510e+01 7.6726753e+01 3.0186745e+01 3.6074363e+01 3.8625257e+01 1.7414248e+01 2.0396738e+01 2.0008075e+01 0.0000000e+00 diff --git a/examples/wholebrainWC/connectivity_96/weights.txt b/examples/wholebrainWC/connectivity_96/weights.txt deleted file mode 100644 index 739160d9..00000000 --- a/examples/wholebrainWC/connectivity_96/weights.txt +++ /dev/null @@ -1,96 +0,0 @@ -3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 1.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 1.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 0.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 3.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 3.0000000e+00 3.0000000e+00 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 0.0000000e+00 diff --git a/examples/wholebrainWC/small_LB.jl b/examples/wholebrainWC/small_LB.jl deleted file mode 100644 index 5f9fc4e8..00000000 --- a/examples/wholebrainWC/small_LB.jl +++ /dev/null @@ -1,51 +0,0 @@ -using Plots, Neuroblox, OrdinaryDiffEq, MetaGraphs, Graphs, CSV, DataFrames,LinearAlgebra, MAT, Random, Plots - -clb = [0.0 1.0 0.0; 0.0 0.0 1.0; 1.0 0.0 0.0] - -function LinearConnectionsLB(;name, sys=sys, adj_matrix=adj_matrix, connector=connector) - adj = adj_matrix .* connector - eqs = [] - for region_num in 1:length(sys) - norm_factor = sum(adj_matrix[:, region_num]) - # @show num_conn - push!(eqs, sys[region_num].jcn ~ sum(adj[:, region_num])/norm_factor) - end - return @named Circuit = ODESystem(eqs, systems = sys) -end - -blox = [] -for i = 1:3 - lb = LarterBreakspearBlox(name=Symbol("LB$i")) - push!(blox,lb) -end - -sys = [b.odesystem for b in blox] -con = [s.connector for s in blox] -@named LB_circuit_lin = LinearConnectionsLB(sys=sys, adj_matrix=clb,connector=con) -mysys = structural_simplify(LB_circuit_lin) - -mysys.states -mysys.ps - -uw = rand(Int(length(mysys.states)/3)) -uv = 0.1*rand(Int(length(mysys.states)/3)) .- 0.05 -uz = 0.1*rand(Int(length(mysys.states)/3)) .- 0.05 -u0 = collect(Iterators.flatten(zip(uv,uz,uw))) - -prob = ODEProblem(mysys,u0,(0.0,6e5),[]) - -p_new = prob.p -for t_index in 1:3 - p_new[(t_index-1)*2+1] = 0.35 - p_new[(t_index-1)*2+2] = 0.65 -end -prob2 = remake(prob;p=p_new) -sol2 = solve(prob2,Rodas5(),saveat=0.1) - -plot(sol2,xlim=(0,600),ylim=(-1,1)) -savefig("LBsmall.png") - - - - - diff --git a/examples/wholebrainWC/wb_LB.jl b/examples/wholebrainWC/wb_LB.jl deleted file mode 100644 index 3cd46a80..00000000 --- a/examples/wholebrainWC/wb_LB.jl +++ /dev/null @@ -1,52 +0,0 @@ -using Plots, Neuroblox, OrdinaryDiffEq, MetaGraphs, Graphs, CSV, DataFrames,LinearAlgebra, MAT, Random, Plots - -connLB = matread(joinpath(@__DIR__, "DATA","mean_structural_connectivity.mat")) -clb = connLB["mean_structural_connectivity"] - -function LinearConnectionsLB(;name, sys=sys, adj_matrix=adj_matrix, connector=connector) - adj = adj_matrix .* connector - eqs = [] - for region_num in 1:length(sys) - norm_factor = sum(adj_matrix[:, region_num]) - # @show num_conn - push!(eqs, sys[region_num].jcn ~ sum(adj[:, region_num])/norm_factor) - end - return @named Circuit = ODESystem(eqs, systems = sys) -end - -blox = [] -for i = 1:78 - lb = LarterBreakspearBlox(name=Symbol("LB$i")) - push!(blox,lb) -end - -sys = [b.odesystem for b in blox] -con = [s.connector for s in blox] -@named LB_circuit_lin = LinearConnectionsLB(sys=sys, adj_matrix=clb,connector=con) -mysys = structural_simplify(LB_circuit_lin) - -mysys.states -mysys.ps - -uw = rand(Int(length(mysys.states)/3)) -uv = 0.1*rand(Int(length(mysys.states)/3)) .- 0.05 -uz = 0.1*rand(Int(length(mysys.states)/3)) .- 0.05 -u0 = collect(Iterators.flatten(zip(uv,uz,uw))) - -prob = ODEProblem(mysys,u0,(0.0,6e5),[]) - -p_new = prob.p -for t_index in 1:78 - p_new[(t_index-1)*2+1] = 0.35 - p_new[(t_index-1)*2+2] = 0.61 -end -prob2 = remake(prob;p=p_new) -sol2 = solve(prob2,Rodas5(),saveat=0.1) - -plot(sol2.t,sol2[1,:],label=false,xlim=(0,600),ylim=(-1,1)) - - - - - - diff --git a/examples/wholebrainWC/wholebrainLB.jl b/examples/wholebrainWC/wholebrainLB.jl deleted file mode 100644 index baa0bc8d..00000000 --- a/examples/wholebrainWC/wholebrainLB.jl +++ /dev/null @@ -1,155 +0,0 @@ -### A Pluto.jl notebook ### -# v0.19.19 - -using Markdown -using InteractiveUtils - -# This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error). -macro bind(def, element) - quote - local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end - local el = $(esc(element)) - global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el) - el - end -end - -# ╔═╡ 44e6a44a-d577-11ec-384e-23dbb7b36131 -begin - import Pkg - Pkg.add("CSV") - Pkg.add("DataFrames") - Pkg.add("MAT") - Pkg.add("Plots") - Pkg.add("OrdinaryDiffEq") - Pkg.develop(path=joinpath(@__DIR__, "..", "..","..", "Neuroblox.jl")) - using Plots, Neuroblox, OrdinaryDiffEq, CSV, DataFrames,LinearAlgebra, MAT, Random -end - -# ╔═╡ 9b4e0bc6-4af6-4311-be1b-5948ec818b29 -connectivity = CSV.read(joinpath(@__DIR__,"connectivity_96/weights.txt"), DataFrame; - types=Float64, - header=false, - delim=' ', - ignorerepeated = true) - -# ╔═╡ 34b168a9-529f-4b9f-a616-713f6a0d644b -connLB = matread(joinpath(@__DIR__, "DATA","mean_structural_connectivity.mat")) - -# ╔═╡ a22cd490-b682-482e-9601-3ac82f49770a -clb = connLB["mean_structural_connectivity"] - -# ╔═╡ f43cde71-80f3-462b-b792-0be92f9f28bc -0.140202/sum(clb[:,1]) - -# ╔═╡ ef5dde28-2525-452e-9428-08f2708c36f5 -c = Matrix{Float64}(connectivity) - -# ╔═╡ 706e0021-e86d-4e96-8b79-87277c628afd -begin - blox = [] - for i = 1:78 - lb = LarterBreakspearBlox(name=Symbol("LB$i")) - push!(blox,lb) - end -end - -# ╔═╡ 1abbb345-e14c-4501-9717-c09b25d73e91 -sys = [b.odesystem for b in blox] - -# ╔═╡ 4e617a58-6887-4782-941a-b2e387272d5b -function LinearConnectionsWC(;name, sys=sys, adj_matrix=adj_matrix, connector=connector) - adj = adj_matrix .* connector - eqs = [] - for region_num in 1:length(sys) - norm_factor = sum(adj_matrix[:, region_num]) - # @show num_conn - push!(eqs, sys[region_num].jcn ~ sum(adj[:, region_num])/norm_factor) - end - return @named Circuit = ODESystem(eqs, systems = sys) -end - -# ╔═╡ abac20d3-bdcb-4ed6-b807-4278a72bc0d3 -connect = [s.connector for s in blox] - -# ╔═╡ 99dba142-6ee9-4ffa-b9dc-a377c0de9f2a -@named LB_Circuit_lin = LinearConnectionsWC(sys=sys, adj_matrix=clb, connector=connect) - -# ╔═╡ eb905a35-b314-4aa4-8f31-bdf382d8f528 -equations(LB_Circuit_lin)[1] - -# ╔═╡ 69920cca-0cd3-4761-92f5-8dcca67500dc -mysys = structural_simplify(LB_Circuit_lin) - -# ╔═╡ d8f367ad-52dd-4cc2-9c65-0f84cd22d62e -mysys.states - -# ╔═╡ d593209e-2fc8-40c0-883b-935b5512c779 -mysys.ps - -# ╔═╡ 5865eab8-fc50-417c-85e6-32a8915ce3cf -C_list = [ s for s in mysys.ps if endswith("₊C", string(s))] - -# ╔═╡ 4d417746-9435-4ca9-9ce3-299dc848e5c1 -deltaVZ_list = [ s for s in mysys.ps if endswith("₊δ_VZ", string(s))] - -# ╔═╡ 649e0326-64d8-436e-818d-2705d16a74a0 -begin - uw = 0.4*rand(Int(length(mysys.states)/3)) .+ 0.11 - uv = 0.9*rand(Int(length(mysys.states)/3)) .- 0.6 - uz = 0.9*rand(Int(length(mysys.states)/3)) .- 0.9 - u0 = collect(Iterators.flatten(zip(uv,uz,uw))) -end - -# ╔═╡ 9778982a-e706-457f-8723-703d6fefbdb0 -prob = ODEProblem(mysys,u0,(0.0,100.0),[]) - -# ╔═╡ 41587582-f793-4198-af39-7cd0637d57cc -md""" -coup -$(@bind coup html"") -delta -$(@bind delta html"") -""" - -# ╔═╡ b201b708-908a-4321-8c06-da3b442af069 -begin - p_new = Dict() - for (c,d) in zip(C_list,deltaVZ_list) - p_new[c] = coup - p_new[d] = delta - end - prob2 = remake(prob;p=p_new) - sol = solve(prob2,Rodas4(),saveat=0.1) -end - -# ╔═╡ 4545b94d-fd25-4a3d-ba30-faeff8c89b8c -plot(sol,label=false,xlim=(0,100),ylim=(-1,3)) - -# ╔═╡ 1357d862-557b-4460-8c20-61c7ec9ef872 -size(sol) - -# ╔═╡ Cell order: -# ╠═44e6a44a-d577-11ec-384e-23dbb7b36131 -# ╠═9b4e0bc6-4af6-4311-be1b-5948ec818b29 -# ╠═34b168a9-529f-4b9f-a616-713f6a0d644b -# ╠═a22cd490-b682-482e-9601-3ac82f49770a -# ╠═f43cde71-80f3-462b-b792-0be92f9f28bc -# ╠═ef5dde28-2525-452e-9428-08f2708c36f5 -# ╠═4e617a58-6887-4782-941a-b2e387272d5b -# ╠═706e0021-e86d-4e96-8b79-87277c628afd -# ╠═1abbb345-e14c-4501-9717-c09b25d73e91 -# ╠═abac20d3-bdcb-4ed6-b807-4278a72bc0d3 -# ╠═99dba142-6ee9-4ffa-b9dc-a377c0de9f2a -# ╠═eb905a35-b314-4aa4-8f31-bdf382d8f528 -# ╠═69920cca-0cd3-4761-92f5-8dcca67500dc -# ╠═d8f367ad-52dd-4cc2-9c65-0f84cd22d62e -# ╠═d593209e-2fc8-40c0-883b-935b5512c779 -# ╠═5865eab8-fc50-417c-85e6-32a8915ce3cf -# ╠═4d417746-9435-4ca9-9ce3-299dc848e5c1 -# ╠═b201b708-908a-4321-8c06-da3b442af069 -# ╠═649e0326-64d8-436e-818d-2705d16a74a0 -# ╠═9778982a-e706-457f-8723-703d6fefbdb0 -# ╟─41587582-f793-4198-af39-7cd0637d57cc -# ╠═4545b94d-fd25-4a3d-ba30-faeff8c89b8c -# ╠═1357d862-557b-4460-8c20-61c7ec9ef872 diff --git a/examples/wholebrainWC/wholebrainWC.jl b/examples/wholebrainWC/wholebrainWC.jl deleted file mode 100644 index 1c72b524..00000000 --- a/examples/wholebrainWC/wholebrainWC.jl +++ /dev/null @@ -1,195 +0,0 @@ -### A Pluto.jl notebook ### -# v0.19.9 - -using Markdown -using InteractiveUtils - -# This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error). -macro bind(def, element) - quote - local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end - local el = $(esc(element)) - global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el) - el - end -end - -# ╔═╡ 44e6a44a-d577-11ec-384e-23dbb7b36131 -begin - import Pkg - # activate the shared project environment - Pkg.activate(@__DIR__) - # instantiate, i.e. make sure that all packages are downloaded - Pkg.instantiate() - Pkg.add("OrdinaryDiffEq") - Pkg.add("MetaGraphs") - Pkg.add("Graphs") - Pkg.add("Plots") - Pkg.add("CSV") - Pkg.add("DataFrames") - Pkg.add("LinearAlgebra") - Pkg.develop(path=joinpath(@__DIR__, "..", "..","..", "Neuroblox.jl")) - using Plots, Neuroblox, OrdinaryDiffEq, MetaGraphs, Graphs, CSV, DataFrames,LinearAlgebra -end - -# ╔═╡ 9b4e0bc6-4af6-4311-be1b-5948ec818b29 -connectivity = CSV.read(joinpath(@__DIR__,"connectivity_96/weights.txt"), DataFrame; - types=Float64, - header=false, - delim=' ', - ignorerepeated = true) - -# ╔═╡ ef5dde28-2525-452e-9428-08f2708c36f5 -c = Matrix{Float64}(connectivity) - -# ╔═╡ b208f23a-69c3-4de0-b0c8-52c36808952e -begin - c_nt = copy(c) - c_nt[diagind(c_nt)] .= 0.0 -end - -# ╔═╡ 512ea317-ce6c-4791-81f6-0fbde4b3b646 -c_nt - -# ╔═╡ 706e0021-e86d-4e96-8b79-87277c628afd -begin - blox = [] - for i = 1:96 - wc = wilson_cowan(name=Symbol("WC$i"), - τ_E=0.5, - τ_I=1.0, - a_E=1.0, - a_I=1.0, - c_EE=4.0, - c_IE=30.0, - c_EI=30.0, - c_II=10.0, - θ_E=0.0, - θ_I=0.0, - η=0.4) - push!(blox,wc) - end -end - -# ╔═╡ 1abbb345-e14c-4501-9717-c09b25d73e91 -sys = [b.odesystem for b in blox] - -# ╔═╡ 4e617a58-6887-4782-941a-b2e387272d5b -function LinearConnectionsWC(;name, sys=sys, adj_matrix=adj_matrix, connector=connector) - adj = adj_matrix .* connector - eqs = [] - for region_num in 1:length(sys) - #num_conn = 1.0*count(!iszero,adj_matrix[:, region_num]) - # @show num_conn - push!(eqs, sys[region_num].jcn ~ sum(adj[:, region_num])) - push!(eqs, sys[region_num].P ~ 0.0) - end - return @named Circuit = ODESystem(eqs, systems = sys) -end - -# ╔═╡ abac20d3-bdcb-4ed6-b807-4278a72bc0d3 -connect = [s.connector for s in blox] - -# ╔═╡ 99dba142-6ee9-4ffa-b9dc-a377c0de9f2a -@named WC_Circuit_lin = LinearConnectionsWC(sys=sys, adj_matrix=c_nt, connector=connect) - -# ╔═╡ 69920cca-0cd3-4761-92f5-8dcca67500dc -mysys = structural_simplify(WC_Circuit_lin) - -# ╔═╡ d8f367ad-52dd-4cc2-9c65-0f84cd22d62e -length(mysys.states) - -# ╔═╡ d593209e-2fc8-40c0-883b-935b5512c779 -mysys.ps - -# ╔═╡ 9778982a-e706-457f-8723-703d6fefbdb0 -prob = ODEProblem(mysys,0.5*ones(length(mysys.states)),(0.0,100.0),[]) - -# ╔═╡ c8a72998-f76a-4bad-acd9-d16c1a997415 -md""" -tau_E -$(@bind tauE html"") -tau_I -$(@bind tauI html"") -eta -$(@bind eta html"") -""" - -# ╔═╡ 9e0007f9-829b-4e70-b38a-ee9120daafdb -md""" -WC₊θ_E -$(@bind tE html"") -WC₊θ_I -$(@bind tI html"") -""" - -# ╔═╡ 4feee4e3-e36c-448f-84de-88f61b586c91 -md""" -WC₊c_EE, -$(@bind cEE html"") -WC₊c_IE -$(@bind cIE html"") -""" - -# ╔═╡ 41587582-f793-4198-af39-7cd0637d57cc -md""" -WC₊c_II, -$(@bind cII html"") -WC₊c_EI -$(@bind cEI html"") -""" - -# ╔═╡ b201b708-908a-4321-8c06-da3b442af069 -begin - p_new = prob.p - for t_index in 1:96 - p_new[(t_index-1)*11+1] = tauE - p_new[(t_index-1)*11+2] = tauI - p_new[(t_index-1)*11+5] = cEE - p_new[(t_index-1)*11+6] = cIE - p_new[(t_index-1)*11+7] = cII - p_new[(t_index-1)*11+8] = cEI - p_new[(t_index-1)*11+9] = tE - p_new[(t_index-1)*11+10] = tI - p_new[(t_index-1)*11+11] = eta - end - prob2 = remake(prob;p=p_new) - sol = solve(prob2,Rodas4(),saveat=0.1) -end - -# ╔═╡ 469f3bd1-18f7-42f8-8972-3e9a4713bf66 - - -# ╔═╡ 20c27485-3265-49b3-bb9e-4867b539a71e -tauE,tauI, tE,tI,cEE,cIE,cII,cEI,eta - -# ╔═╡ 4545b94d-fd25-4a3d-ba30-faeff8c89b8c -plot(sol,label=false) - -# ╔═╡ 1357d862-557b-4460-8c20-61c7ec9ef872 -size(sol) - -# ╔═╡ Cell order: -# ╠═44e6a44a-d577-11ec-384e-23dbb7b36131 -# ╠═9b4e0bc6-4af6-4311-be1b-5948ec818b29 -# ╠═ef5dde28-2525-452e-9428-08f2708c36f5 -# ╠═b208f23a-69c3-4de0-b0c8-52c36808952e -# ╠═512ea317-ce6c-4791-81f6-0fbde4b3b646 -# ╠═4e617a58-6887-4782-941a-b2e387272d5b -# ╠═706e0021-e86d-4e96-8b79-87277c628afd -# ╠═1abbb345-e14c-4501-9717-c09b25d73e91 -# ╠═abac20d3-bdcb-4ed6-b807-4278a72bc0d3 -# ╠═99dba142-6ee9-4ffa-b9dc-a377c0de9f2a -# ╠═69920cca-0cd3-4761-92f5-8dcca67500dc -# ╠═d8f367ad-52dd-4cc2-9c65-0f84cd22d62e -# ╠═d593209e-2fc8-40c0-883b-935b5512c779 -# ╠═9778982a-e706-457f-8723-703d6fefbdb0 -# ╠═b201b708-908a-4321-8c06-da3b442af069 -# ╟─c8a72998-f76a-4bad-acd9-d16c1a997415 -# ╟─9e0007f9-829b-4e70-b38a-ee9120daafdb -# ╟─4feee4e3-e36c-448f-84de-88f61b586c91 -# ╠═41587582-f793-4198-af39-7cd0637d57cc -# ╠═469f3bd1-18f7-42f8-8972-3e9a4713bf66 -# ╠═20c27485-3265-49b3-bb9e-4867b539a71e -# ╠═4545b94d-fd25-4a3d-ba30-faeff8c89b8c -# ╠═1357d862-557b-4460-8c20-61c7ec9ef872 diff --git a/src/Neuroblox.jl b/src/Neuroblox.jl index 255ff2b5..1bfc7654 100644 --- a/src/Neuroblox.jl +++ b/src/Neuroblox.jl @@ -8,12 +8,18 @@ using Reexport using Graphs using MetaGraphs -import LinearAlgebra as la +using ForwardDiff: Dual, Partials, jacobian +using ForwardDiff +ForwardDiff.can_dual(::Type{Complex{Float64}}) = true +using ChainRules: _eigen_norm_phase_fwd! + +using LinearAlgebra +using ToeplitzMatrices: Toeplitz +using ExponentialUtilities: exponential! + using AbstractFFTs using FFTW -import ToeplitzMatrices as tm using DSP, Statistics -import ExponentialUtilities as eu using OrdinaryDiffEq using DifferentialEquations using Interpolations @@ -52,7 +58,7 @@ abstract type AbstractNeuronBlox <: AbstractBlox end abstract type NeuralMassBlox <: AbstractBlox end abstract type CompositeBlox <: AbstractBlox end abstract type StimulusBlox <: AbstractBlox end -abstract type ObserverBlox <: AbstractBlox end +abstract type ObserverBlox end # not AbstractBlox since it should not show up in the GUI # we define these in neural_mass.jl # abstract type HarmonicOscillatorBlox <: NeuralMassBlox end @@ -81,6 +87,7 @@ Para_dict = Dict{Symbol, Union{<: Real, Num}} include("utilities/spectral_tools.jl") include("utilities/learning_tools.jl") +include("utilities/bold_methods.jl") include("control/controlerror.jl") include("measurementmodels/fmri.jl") include("datafitting/spectralDCM.jl") @@ -174,11 +181,9 @@ function __init__() #end end -export harmonic_oscillator, jansen_ritC, jansen_ritSC, jansen_rit_spm12, - next_generation, thetaneuron, qif_neuron, if_neuron, hh_neuron_excitatory, - hh_neuron_inhibitory, synaptic_network, van_der_pol, wilson_cowan -export IFNeuronBlox, LIFNeuronBlox, QIFNeuronBlox, HHNeuronExciBlox, HHNeuronInhibBlox, LinearNeuralMassBlox, - WilsonCowanBlox, HarmonicOscillatorBlox, JansenRitCBlox, JansenRitSCBlox, LarterBreakspearBlox, +export JansenRitSPM12, next_generation, qif_neuron, if_neuron, hh_neuron_excitatory, + hh_neuron_inhibitory, synaptic_network, van_der_pol +export IFNeuronBlox, LIFNeuronBlox, QIFNeuronBlox, HHNeuronExciBlox, HHNeuronInhibBlox, CanonicalMicroCircuitBlox, WinnerTakeAllBlox, CorticalBlox, SuperCortical export LinearNeuralMass, HarmonicOscillator, JansenRit, WilsonCowan, LarterBreakspear, NextGenerationBlox, NextGenerationResolvedBlox, NextGenerationEIBlox export Matrisome, Striosome, Striatum, GPi, GPe, Thalamus, STN, TAN, SNc @@ -189,18 +194,18 @@ export CosineSource, CosineBlox, NoisyCosineBlox, PhaseBlox, ImageStimulus export PowerSpectrumBlox, BandPassFilterBlox export OUBlox, OUCouplingBlox export phase_inter, phase_sin_blox, phase_cos_blox -export LinearConnections, SynapticConnections, ODEfromGraph, ODEfromGraphNeuron, - connectcomplexblox, spikeconnections, adjmatrixfromdigraph, create_rl_loop +export SynapticConnections, create_rl_loop export add_blox! export powerspectrum, complexwavelet, bandpassfilter, hilberttransform, phaseangle, mar2csd, csd2mar, mar_ml export learningrate, ControlError export boldsignal, BalloonModel -export vecparam, unvecparam, csd_Q, spectralVI +export vecparam, csd_Q, spectralVI export simulate, random_initials export system_from_graph, graph_delays -export create_adjacency_edges! +export create_adjacency_edges!, adjmatrixfromdigraph export get_namespaced_sys, nameof export run_experiment!, run_trial! export addnontunableparams, get_hemodynamic_observers +export boldsignal_endo_balloon end diff --git a/src/Neurographs.jl b/src/Neurographs.jl index 16b04e81..412b24d0 100644 --- a/src/Neurographs.jl +++ b/src/Neurographs.jl @@ -12,154 +12,6 @@ function add_blox!(g::MetaDiGraph,blox) add_vertex!(g, :blox, blox) end -function joinmetagraphs(metagraphs::Vector{T}) where T <: Any - ngraphs = length(metagraphs) - - wholegraph = MetaDiGraph() - nvertex = 0 - for i = 1:ngraphs - for j in vertices(metagraphs[i].lngraph) - add_vertex!(wholegraph, props(metagraphs[i].lngraph, j)) - end - for e in edges(metagraphs[i].lngraph) - add_edge!(wholegraph, nvertex+src(e), nvertex+dst(e), props(metagraphs[i].lngraph, e)) - end - nvertex += nv(metagraphs[i].lngraph) - end - return wholegraph -end - -function LinearConnections(;name, sys=sys, adj_matrix=adj_matrix, connector=connector) - adj = adj_matrix .* connector - eqs = [] - for region_num in 1:length(sys) - push!(eqs, sys[region_num].jcn ~ sum(adj[:, region_num])) - end - return ODESystem(eqs, name=name, systems=sys) -end - -function SynapticConnections(;name, sys=sys, adj_matrix=adj_matrix, connector=connector) - adj = adj_matrix .* connector - syn_eqs = [ 0~sys[1].V - sys[1].V] - Nrns = length(sys) - for ii = 1:Nrns - # for sparse adj matrices it is efficient to only consider presynaptic neurons for computing synaptic input - presyn = findall(x-> x>0.0, adj_matrix[:,ii]) - wts = adj_matrix[presyn,ii] - presyn_nrn = sys[presyn] - postsyn_nrn = sys[ii] - if length(presyn)>0 - ind = collect(1:length(presyn)) - eqs = [postsyn_nrn.I_syn ~ sum(p-> (presyn_nrn[p].E_syn-postsyn_nrn.V)*adj[presyn[p],ii],ind), - postsyn_nrn.jcn~postsyn_nrn.I_syn] - push!(syn_eqs,eqs[1]) - push!(syn_eqs,eqs[2]) - else - eqs = [postsyn_nrn.I_syn~0, - postsyn_nrn.jcn~postsyn_nrn.I_syn] - push!(syn_eqs,eqs[1]) - push!(syn_eqs,eqs[2]) - end - - end - popfirst!(syn_eqs) - @named synaptic_eqs = ODESystem(syn_eqs,t) - synaptic_network = compose(synaptic_eqs, sys;name=name) - return synaptic_network -end - -function ODEfromGraph(g::MetaDiGraph, jcn; name) - vert = [] - sys = [] - for v in vertices(g) - b = get_prop(g, v, :blox) - push!(vert, v) - push!(sys, b.odesystem) - end - eqs = [] - for (i, (v, s)) in enumerate(zip(vert, sys)) - if any(occursin.("jcn(t)", string.(states(s)))) # only connect systems with jcn - if s.jcn isa Symbolics.Arr - input = [] - for vn in inneighbors(g, v) # vertices that point towards s - M = get_prop(g, vn, v, :weightmatrix) - connector = get_prop(g, vn, :blox).connector - push!(input, M*connector) - end - input = sum(input) - for i = 1:length(s.jcn) - push!(eqs, s.jcn[i] ~ input[i]) - end - else - input = Num(0) - for vn in inneighbors(g, v) # vertices that point towards s - input += get_prop(g, vn, :blox).connector * get_prop(g, vn, v, :weight) - end - push!(eqs, s.jcn ~ input + jcn[i]) - end - end - end - return compose(ODESystem(eqs; name=:connected), sys; name=name) -end - -function ODEfromGraph(g::MetaDiGraph ;name) - eqs = [] - sys = [] - for v in vertices(g) - b = get_prop(g, v, :blox) - if isa(b, AbstractBlox) || isa(b, Neuroblox.AbstractComponent) - s = b.odesystem - push!(sys, s) - if any(occursin.("jcn(t)", string.(states(s)))) - if isa(b, AbstractNeuronBlox) - input = Num(0) - for vn in inneighbors(g, v) # vertices that point towards s - bn = get_prop(g, vn, :blox) - if !isa(bn, AbstractNeuronBlox) # only neurons can be inputs to neurons - continue - end - input += bn.connector * get_prop(g, vn, v, :weight) * (bn.odesystem.E_syn - s.V) - end - push!(eqs, s.I_syn ~ input) - push!(eqs, s.jcn ~ s.I_syn) - else - if s.jcn isa Symbolics.Arr - bi = b.bloxinput # bloxinput only exists if s.jcn isa Symbolics.Arr - input = [zeros(Num,length(s.jcn))] - for vn in inneighbors(g, v) # vertices that point towards s - M = get_prop(g, vn, v, :weightmatrix) - connector = get_prop(g, vn, :blox).connector - if connector isa Symbolics.Arr - connector = collect(connector) - end - push!(input, vec(M*connector)) - end - input = sum(input) - for i = 1:length(s.jcn) - push!(eqs, bi[i] ~ input[i]) - end - else - input = Num(0) - for vn in inneighbors(g, v) # vertices that point towards s - connector = get_prop(g,vn,:blox).connector - if connector isa Symbolics.Arr - input += sum(vec(get_prop(g, vn, v, :weightmatrix)*collect(connector))) - else - input += connector * get_prop(g, vn, v, :weight) - end - end - if haskey(props(g,v),:jcn) - input += get_prop(g,v,:jcn) - end - push!(eqs, s.jcn ~ input) - end - end - end - end - end - return compose(ODESystem(eqs, t; name=:connected), sys; name=name) -end - function get_blox(g::MetaDiGraph) bs = [] for v in vertices(g) @@ -174,6 +26,21 @@ end get_sys(g::MetaDiGraph) = get_sys.(get_blox(g)) +function connector_from_graph(g::MetaDiGraph) + bloxs = get_blox(g) + link = BloxConnector(bloxs) + for v in vertices(g) + b = get_prop(g, v, :blox) + for vn in inneighbors(g, v) + bn = get_prop(g, vn, :blox) + kwargs = props(g, vn, v) + link(bn, b; kwargs...) + end + end + + return link +end + # Helper function to get delays from a graph function graph_delays(g::MetaDiGraph) bc = connector_from_graph(g) @@ -218,21 +85,6 @@ function system_from_parts(parts::AbstractVector; name) return compose(ODESystem(Equation[], t, [], []; name), get_sys.(parts)) end -function connector_from_graph(g::MetaDiGraph) - bloxs = get_blox(g) - link = BloxConnector(bloxs) - for v in vertices(g) - b = get_prop(g, v, :blox) - for vn in inneighbors(g, v) - bn = get_prop(g, vn, :blox) - kwargs = props(g, vn, v) - link(bn, b; kwargs...) - end - end - - return link -end - function action_selection_from_graph(g::MetaDiGraph) idxs = findall(vertices(g)) do v b = get_prop(g, v, :blox) @@ -277,39 +129,6 @@ function learning_rules_from_graph(g::MetaDiGraph) return d end -function spikeconnections(;name, sys=sys, psp_amplitude=psp_amplitude, τ=τ, spiketimes=spiketimes) - psps = psp_amplitude .* exp.(-(t .- spiketimes) ./ τ) - eqs = [] - for region_num in 1:length(sys) - push!(eqs, sys[region_num].jcn ~ sum(psps[:, region_num])) - end - return ODESystem(eqs, t, name=name, systems=sys) -end - -function connectcomplexblox(bloxlist, adjacency_matrices ;name) - nr = length(bloxlist) - g = joinmetagraphs(bloxlist) - row = 0 - for i = 1:nr - nodes_source = nv(bloxlist[i].lngraph) - col = 0 - for j = 1:nr - nodes_sink = nv(bloxlist[j].lngraph) - if i == j - col += nodes_sink - continue - end - for idx in CartesianIndices(adjacency_matrices[i, j]) - add_edge!(g, row+idx[1], col+idx[2], :weight, adjacency_matrices[i, j][idx]) - end - col += nodes_sink - end - row += nodes_source - end - - return ODEfromGraph(g, name=name) -end - ## Create Learning Loop function create_rl_loop(;name, ROIs, datasets, parameters, c_ext) # Create LearningBlox for each Region diff --git a/src/blox/blox_utilities.jl b/src/blox/blox_utilities.jl index d345a92c..61787483 100644 --- a/src/blox/blox_utilities.jl +++ b/src/blox/blox_utilities.jl @@ -1,57 +1,17 @@ -# function progress_scope(params; lvl=0) -# para_list = [] -# for p in params -# pp = ModelingToolkit.unwrap(p) -# if ModelingToolkit.hasdefault(pp) -# d = ModelingToolkit.getdefault(pp) -# if typeof(d)==SymbolicUtils.BasicSymbolic{Real} -# if lvl==0 -# pp = ParentScope(pp) -# else -# pp = DelayParentScope(pp,lvl) -# end -# end -# end -# push!(para_list,ModelingToolkit.wrap(pp)) -# end -# return para_list -# end - -""" -This function progresses the scope of parameters and leaves floating point values untouched -""" -function progress_scope(args...) - paramlist = [] - for p in args - if p isa Num - p = ParentScope(p) - # pp = ModelingToolkit.unwrap(p) - # if ModelingToolkit.hasdefault(pp) - # d = ModelingToolkit.getdefault(pp) - # if typeof(d)==SymbolicUtils.BasicSymbolic{Real} - # pp = ParentScope(pp) - # end - # end - # push!(para_list,ModelingToolkit.wrap(pp)) - push!(paramlist, p) - else - push!(paramlist, p) - end - end - return paramlist -end - """ - This function compiles already existing parameters with floats after making them parameters. - Keyword arguments are used because parameter definition requires names, not just values + function paramscoping(;kwargs...) + + Scope arguments that are already a symbolic model parameter thereby keep the correct namespace + and make those that are not yet symbolic a symbol. + Keyword arguments are used, because parameter definition require names, not just values. """ -function compileparameterlist(;kwargs...) +function paramscoping(;kwargs...) paramlist = [] for (kw, v) in kwargs - if v isa Union{Float64, Int} # note that Num is also subtype of Real. Thus union of types seems to be the solution. - paramlist = vcat(paramlist, @parameters $kw = v [tunable=true]) + if v isa Num + paramlist = vcat(paramlist, ParentScope(v)) else - paramlist = vcat(paramlist, v) + paramlist = vcat(paramlist, @parameters $kw = v [tunable=true]) end end return paramlist @@ -162,13 +122,13 @@ function input_equations(blox) if isnothing(idx) namespace_equation( inp ~ 0, - sys, + sys, namespaced_name(inner_namespaceof(blox), nameof(blox)) - ) + ) else namespace_equation( - sys_eqs[idx], - sys, + sys_eqs[idx], + sys, namespaced_name(inner_namespaceof(blox), nameof(blox)) ) end @@ -198,6 +158,8 @@ weight_learning_rules(bc::BloxConnector) = bc.learning_rules weight_learning_rules(blox::AbstractComponent) = weight_learning_rules(blox.connector) weight_learning_rules(blox::CompositeBlox) = weight_learning_rules(blox.connector) +get_blox_parts(blox) = blox.parts + function get_weight(kwargs, name_blox1, name_blox2) if haskey(kwargs, :weight) return kwargs[:weight] @@ -206,6 +168,14 @@ function get_weight(kwargs, name_blox1, name_blox2) end end +function get_weightmatrix(kwargs, name_blox1, name_blox2) + if haskey(kwargs, :weightmatrix) + return kwargs[:weightmatrix] + else + error("Connection weight from $name_blox1 to $name_blox2 is not specified.") + end +end + function get_delay(kwargs, name_blox1, name_blox2) if haskey(kwargs, :delay) return kwargs[:delay] @@ -249,10 +219,24 @@ function count_spikes(x::AbstractVector{T}; minprom=zero(T), maxprom=nothing, mi return length(spikes) end -function get_hemodynamic_observers(sys_from_graph, nr) +""" + function get_hemodynamic_observers(sys, nr) + + Function extracts those states of an MTK system that were tagged "hemodynamic_observer". + + Arguments: + - `sys`: MTK system + - `nr` : number of regions of a model + + Returns: + - `obs_idx`: indices of states with "hemodynamic_observer" tag in MTK system + - `obs_states`: states with "hemodynamic_observer" tag in MTK system + +""" +function get_hemodynamic_observers(sys, nr) obs_idx = Dict([k => [] for k in 1:nr]) obs_states = Dict([k => [] for k in 1:nr]) - for (i, s) in enumerate(states(sys_from_graph)) + for (i, s) in enumerate(states(sys)) if isequal(getdescription(s), "hemodynamic_observer") regionidx = parse(Int64, split(string(s), "₊")[1][end]) push!(obs_idx[regionidx], i) @@ -262,17 +246,30 @@ function get_hemodynamic_observers(sys_from_graph, nr) return (obs_idx, obs_states) end -function addnontunableparams(param, model) - newparam = [] +""" + function addnontunableparams(param, model) + + Function adds parameters of a model that were not marked as tunable to a list of tunable parameters + and respects the MTK ordering of parameters. + + Arguments: + - `paramlist`: parameters of an MTK system that were tagged as tunable + - `sys`: MTK system + + Returns: + - `completeparamlist`: complete parameter list of a system, including those that were not tagged as tunable +""" +function addnontunableparams(paramlist, sys) + completeparamlist = [] k = 0 - for p in parameters(model) + for p in parameters(sys) if istunable(p) k += 1 - push!(newparam, param[k]) + push!(completeparamlist, paramlist[k]) else - push!(newparam, Symbolics.getdefaultval(p)) + push!(completeparamlist, Symbolics.getdefaultval(p)) end end - append!(newparam, param[k+1:end]) - return newparam + append!(completeparamlist, paramlist[k+1:end]) + return completeparamlist end \ No newline at end of file diff --git a/src/blox/canonicalmicrocircuit.jl b/src/blox/canonicalmicrocircuit.jl index f0060f9e..b5449604 100644 --- a/src/blox/canonicalmicrocircuit.jl +++ b/src/blox/canonicalmicrocircuit.jl @@ -1,62 +1,41 @@ # Canonical micro-circuit model -# two ways to design it: either add function to edges or to blox. - -# some thoughts on design: -# - include measurement models into blox. Or at least define which variables will be measured (which would be the input to the measurement model). -# Differ that from connector, since that is between things. -# - - -@parameters t -D = Differential(t) - -# define a sigmoid function -sigmoid(x::Real, r::Real) = one(x) / (one(x) + exp(-r*x)) """ Jansen-Rit model block for canonical micro circuit, analogous to the implementation in SPM12 """ -mutable struct jansen_rit_spm12 <: AbstractComponent - τ::Num - r::Num - connector::Num - odesystem::ODESystem - function jansen_rit_spm12(;name, τ=1.0, r=2.0/3.0) - params = @parameters τ=τ - sts = @variables x(t)=1.0 y(t)=1.0 jcn(t)=0.0 +mutable struct JansenRitSPM12 <: NeuralMassBlox + params + output + jcn + odesystem + namespace + function JansenRitSPM12(;name, namespace=nothing, τ=1.0, r=2.0/3.0) + p = paramscoping(τ=τ, r=r) + τ, r = p + + sts = @variables x(t)=1.0 [output=true] y(t)=1.0 jcn(t)=0.0 [input=true] eqs = [D(x) ~ y - ((2/τ)*x), D(y) ~ -x/(τ*τ) + jcn/τ] - odesys = ODESystem(eqs, t, sts, params; name=name) - new(τ, r, sigmoid(odesys.x, r), odesys) + + sys = System(eqs, name=name) + new(p, sts[1], sts[3], sys, namespace) end end mutable struct CanonicalMicroCircuitBlox <: CompositeBlox - τ_ss::Num - τ_sp::Num - τ_ii::Num - τ_dp::Num - r_ss::Num - r_sp::Num - r_ii::Num - r_dp::Num - connector::Symbolics.Arr{Num} - noDetail::Vector{Num} - detail::Vector{Num} - bloxinput::Symbolics.Arr{Num} - odesystem::ODESystem - function CanonicalMicroCircuitBlox(;name, τ_ss=0.002, τ_sp=0.002, τ_ii=0.016, τ_dp=0.028, r_ss=2.0/3.0, r_sp=2.0/3.0, r_ii=2.0/3.0, r_dp=2.0/3.0) - @variables jcn(t)[1:4], x(t)[1:4] - - @named ss = jansen_rit_spm12(τ=τ_ss, r=r_ss) # spiny stellate - @named sp = jansen_rit_spm12(τ=τ_sp, r=r_sp) # superficial pyramidal - @named ii = jansen_rit_spm12(τ=τ_ii, r=r_ii) # inhibitory interneurons granular layer - @named dp = jansen_rit_spm12(τ=τ_dp, r=r_dp) # deep pyramidal + namespace + parts + odesystem + connector + function CanonicalMicroCircuitBlox(;name, namespace=nothing, τ_ss=0.002, τ_sp=0.002, τ_ii=0.016, τ_dp=0.028, r_ss=2.0/3.0, r_sp=2.0/3.0, r_ii=2.0/3.0, r_dp=2.0/3.0) + @named ss = JansenRitSPM12(;namespace=namespaced_name(namespace, name), τ=τ_ss, r=r_ss) # spiny stellate + @named sp = JansenRitSPM12(;namespace=namespaced_name(namespace, name), τ=τ_sp, r=r_sp) # superficial pyramidal + @named ii = JansenRitSPM12(;namespace=namespaced_name(namespace, name), τ=τ_ii, r=r_ii) # inhibitory interneurons granular layer + @named dp = JansenRitSPM12(;namespace=namespaced_name(namespace, name), τ=τ_dp, r=r_dp) # deep pyramidal g = MetaDiGraph() - add_vertex!(g, Dict(:blox => ss, :name => name, :jcn => jcn[1])) - add_vertex!(g, Dict(:blox => sp, :name => name, :jcn => jcn[2])) - add_vertex!(g, Dict(:blox => ii, :name => name, :jcn => jcn[3])) - add_vertex!(g, Dict(:blox => dp, :name => name, :jcn => jcn[4])) + sblox_parts = vcat(ss, sp, ii, dp) + add_blox!.(Ref(g), sblox_parts) add_edge!(g, 1, 1, :weight, -800.0) add_edge!(g, 2, 1, :weight, -800.0) @@ -69,14 +48,16 @@ mutable struct CanonicalMicroCircuitBlox <: CompositeBlox add_edge!(g, 3, 4, :weight, -400.0) add_edge!(g, 4, 4, :weight, -200.0) - @named odecmc = ODEfromGraph(g) - eqs = [ - x[1] ~ ss.connector - x[2] ~ sp.connector - x[3] ~ ii.connector - x[4] ~ dp.connector - ] - odesys = extend(ODESystem(eqs, t, name=:connected), odecmc, name=name) - new(τ_ss, τ_sp, τ_ii, τ_dp, r_ss, r_sp, r_ii, r_dp, odesys.x, [odesys.ss.x,odesys.sp.x,odesys.ii.x,odesys.dp.x], [odesys.ss.x,odesys.sp.x,odesys.ii.x,odesys.dp.x], odesys.jcn, odesys) + # Construct a BloxConnector object from the graph + # containing all connection equations from lower levels and this level. + bc = connector_from_graph(g) + # If a namespace is not provided, assume that this is the highest level + # and construct the ODEsystem from the graph. + # If there is a higher namespace, construct only a subsystem containing the parts of this level + # and propagate the BloxConnector object `bc` to the higher level + # to potentially add more terms to the same connections. + sys = isnothing(namespace) ? system_from_graph(g, bc; name) : system_from_parts(sblox_parts; name) + + new(namespace, sblox_parts, sys, bc) end end diff --git a/src/blox/connections.jl b/src/blox/connections.jl index a2756f3d..406929b6 100644 --- a/src/blox/connections.jl +++ b/src/blox/connections.jl @@ -178,6 +178,46 @@ function (bc::BloxConnector)( bc(asc_out, neurons_in[end]; kwargs...) end +function (bc::BloxConnector)( + bloxout::CanonicalMicroCircuitBlox, + bloxin::CanonicalMicroCircuitBlox; + kwargs... +) + sysparts_out = get_blox_parts(bloxout) + sysparts_in = get_blox_parts(bloxin) + + wm = get_weightmatrix(kwargs, namespaced_nameof(bloxin), namespaced_nameof(bloxout)) + + idxs = findall(!iszero, wm) + for idx in idxs + bc(sysparts_out[idx[2]], sysparts_in[idx[1]]; weight=wm[idx]) + end +end + +# define a sigmoid function +sigmoid(x, r) = one(x) / (one(x) + exp(-r*x)) + +function (bc::BloxConnector)( + bloxout::JansenRitSPM12, + bloxin::JansenRitSPM12; + kwargs... +) + sys_out = get_namespaced_sys(bloxout) + sys_in = get_namespaced_sys(bloxin) + + w = generate_weight_param(bloxout, bloxin; kwargs...) + push!(bc.weights, w) + + x = namespace_expr(bloxout.output, sys_out) + r = namespace_expr(bloxout.params[2], sys_out) + push!(bc.weights, r) + + eq = sys_in.jcn ~ sigmoid(x, r)*w + + accumulate_equation!(bc, eq) +end + + function (bc::BloxConnector)( bloxout::NeuralMassBlox, bloxin::NeuralMassBlox; @@ -308,7 +348,7 @@ function (bc::BloxConnector)( kwargs... ) neurons_in = get_exci_neurons(wta_in) - + for neuron_postsyn in neurons_in bc(neuron_out, neuron_postsyn; kwargs...) end diff --git a/src/blox/neural_mass.jl b/src/blox/neural_mass.jl index 243f6e2f..ca83bd9f 100644 --- a/src/blox/neural_mass.jl +++ b/src/blox/neural_mass.jl @@ -1,125 +1,6 @@ @parameters t D = Differential(t) -mutable struct LinearNeuralMassBlox <: AbstractComponent - connector::Num - odesystem::ODESystem - function LinearNeuralMassBlox(;name) - states = @variables x(t) jcn(t) - eqs = D(x) ~ jcn - odesys = ODESystem(eqs, t, states, []; name=name) - new(odesys.x, odesys) - end -end - -mutable struct HarmonicOscillatorBlox <: NeuralMassBlox - # all parameters are Num as to allow symbolic expressions - connector::Num - noDetail::Vector{Num} - detail::Vector{Num} - initial::Dict{Num, Tuple{Float64, Float64}} - odesystem::ODESystem - function HarmonicOscillatorBlox(;name, ω=25*(2*pi), ζ=1.0, k=625*(2*pi), h=35.0) - params = progress_scope(ω, ζ, k, h) - params = compileparameterlist(ω=params[1], ζ=params[2], k=params[3], h=params[4]) - sts = @variables x(t)=1.0 y(t)=1.0 jcn(t)=0.0 - ω, ζ, k, h = params - eqs = [D(x) ~ y-(2*ω*ζ*x)+ k*(2/π)*(atan((jcn)/h)) - D(y) ~ -(ω^2)*x] - odesys = ODESystem(eqs, t, sts, params; name=name) - new(odesys.x,[odesys.x],[odesys.x,odesys.y], - Dict(odesys.x => (-1.0,1.0), odesys.y => (-1.0,1.0)), - odesys) - end -end -# this assignment is temporary until all the code is changed to the new name -const harmonic_oscillator = HarmonicOscillatorBlox - -# This is for later to connect the icons to the different blox -# function gui.icon(Type::HarmonicOscillatorBlox) -# return HarmonicOscillatorImage - -mutable struct JansenRitCBlox <: NeuralMassBlox - connector::Num - noDetail::Vector{Num} - detail::Vector{Num} - initial::Dict{Num, Tuple{Float64, Float64}} - odesystem::ODESystem - function JansenRitCBlox(;name, τ=0.001, H=20.0, λ=5.0, r=0.15) - params = progress_scope(τ, H, λ, r) - params = compileparameterlist(τ=params[1], H=params[2], λ=params[3], r=params[4]) - sts = @variables x(t)=1.0 y(t)=1.0 jcn(t)=0.0 - τ, H, λ, r = params - eqs = [D(x) ~ y - ((2/τ)*x), - D(y) ~ -x/(τ*τ) + (H/τ)*((2*λ)/(1 + exp(-r*(jcn))) - λ)] - odesys = ODESystem(eqs, t, sts, params; name=name) - new(odesys.x,[odesys.x],[odesys.x,odesys.y], - Dict(odesys.x => (-1.0,1.0), odesys.y => (-1.0,1.0)), - odesys) - end -end -# this assignment is temporary until all the code is changed to the new name -const jansen_ritC = JansenRitCBlox - -mutable struct JansenRitSCBlox <: NeuralMassBlox - connector::Num - noDetail::Vector{Num} - detail::Vector{Num} - initial::Dict{Num, Tuple{Float64, Float64}} - odesystem::ODESystem - function JansenRitSCBlox(;name, τ=0.014, H=20.0, λ=400.0, r=0.1) - params = progress_scope(τ, H, λ, r) - params = compileparameterlist(τ=params[1], H=params[2], λ=params[3], r=params[4]) - sts = @variables x(t)=1.0 y(t)=1.0 jcn(t)=0.0 - τ, H, λ, r = params - eqs = [D(x) ~ y - ((2/τ)*x), - D(y) ~ -x/(τ*τ) + (H/τ)*((2*λ)/(1 + exp(-r*(jcn))) - λ)] - odesys = ODESystem(eqs, t, sts, params; name=name) - new(odesys.x,[odesys.x],[odesys.x,odesys.y], - Dict(odesys.x => (-1.0,1.0), odesys.y => (-1.0,1.0)), - odesys) - end -end -# this assignment is temporary until all the code is changed to the new name -const jansen_ritSC = JansenRitSCBlox - -mutable struct WilsonCowanBlox <: NeuralMassBlox - τ_E::Num - τ_I::Num - a_E::Num - a_I::Num - c_EE::Num - c_EI::Num - c_IE::Num - c_II::Num - θ_E::Num - θ_I::Num - η::Num - connector::Num - noDetail::Vector{Num} - detail::Vector{Num} - odesystem::ODESystem - function WilsonCowanBlox(;name, - τ_E=1.0, - τ_I=1.0, - a_E=1.2, - a_I=2.0, - c_EE=5.0, - c_IE=6.0, - c_EI=10.0, - c_II=1.0, - θ_E=2.0, - θ_I=3.5, - η=1.0) - params = @parameters τ_E=τ_E τ_I=τ_I a_E=a_E a_I=a_I c_EE=c_EE c_IE=c_IE c_EI=c_EI c_II=c_II θ_E=θ_E θ_I=θ_I η=η - sts = @variables E(t)=1.0 I(t)=1.0 jcn(t)=0.0 P(t)=0.0 - eqs = [D(E) ~ -E/τ_E + 1/(1 + exp(-a_E*(c_EE*E - c_IE*I - θ_E + P + η*(jcn)))), - D(I) ~ -I/τ_I + 1/(1 + exp(-a_I*(c_EI*E - c_II*I - θ_I)))] - odesys = ODESystem(eqs, t, sts, params; name=name) - new(τ_E,τ_I,a_E, a_I, c_EE, c_IE, c_EI, c_II, θ_E, θ_I, η, odesys.E, [odesys.E],[odesys.E, odesys.I],odesys) - end -end - mutable struct NextGenerationBlox <: NeuralMassBlox C::Num Δ::Num @@ -199,105 +80,27 @@ end # this assignment is temporary until all the code is changed to the new name const next_generation = NextGenerationBlox -mutable struct LarterBreakspearBlox <: NeuralMassBlox - C::Num - δ_VZ::Num - T_Ca::Num - δ_Ca::Num - g_Ca::Num - V_Ca::Num - T_K::Num - δ_K::Num - g_K::Num - V_K::Num - T_Na::Num - δ_Na::Num - g_Na::Num - V_Na::Num - V_L::Num - g_L::Num - V_T::Num - Z_T::Num - Q_Vmax::Num - Q_Zmax::Num - IS::Num - a_ee::Num - a_ei::Num - a_ie::Num - a_ne::Num - a_ni::Num - b::Num - τ_K::Num - ϕ::Num - r_NMDA::Num - connector::Num - noDetail::Vector{Num} - detail::Vector{Num} - initial::Dict{Num, Tuple{Float64, Float64}} - odesystem::ODESystem - function LarterBreakspearBlox(;name, - T_Ca=-0.01, - δ_Ca=0.15, - g_Ca=1.0, - V_Ca=1.0, - T_K=0.0, - δ_K=0.3, - g_K=2.0, - V_K=-0.7, - T_Na=0.3, - δ_Na=0.15, - g_Na=6.7, - V_Na=0.53, - V_L=-0.5, - g_L=0.5, - V_T=0.0, - Z_T=0.0, - δ_VZ=0.61, - Q_Vmax=1.0, - Q_Zmax=1.0, - IS = 0.3, - a_ee=0.36, - a_ei=2.0, - a_ie=2.0, - a_ne=1.0, - a_ni=0.4, - b=0.1, - τ_K=1.0, - ϕ=0.7, - r_NMDA=0.25, - C=0.35) - params = @parameters C=C δ_VZ=δ_VZ T_Ca=T_Ca δ_Ca=δ_Ca g_Ca=g_Ca V_Ca=V_Ca T_K=T_K δ_K=δ_K g_K=g_K V_K=V_K T_Na=T_Na δ_Na=δ_Na g_Na=g_Na V_Na=V_Na V_L=V_L g_L=g_L V_T=V_T Z_T=Z_T Q_Vmax=Q_Vmax Q_Zmax=Q_Zmax IS=IS a_ee=a_ee a_ei=a_ei a_ie=a_ie a_ne=a_ne a_ni=a_ni b=b τ_K=τ_K ϕ=ϕ r_NMDA=r_NMDA - sts = @variables V(t)=0.5 Z(t)=0.5 W(t)=0.5 jcn(t)=0.0 Q_V(t) Q_Z(t) m_Ca(t) m_Na(t) m_K(t) - - eqs = [D(V) ~ -(g_Ca + (1 - C) * r_NMDA * a_ee * Q_V + C * r_NMDA * a_ee * jcn) * m_Ca * (V-V_Ca) - - g_K * W * (V - V_K) - g_L * (V - V_L) - - (g_Na * m_Na + (1 - C) * a_ee * Q_V + C * a_ee * jcn) * (V-V_Na) - - a_ie * Z * Q_Z + a_ne * IS, - D(Z) ~ b * (a_ni * IS + a_ei * V * Q_V), - D(W) ~ ϕ * (m_K - W) / τ_K, - Q_V ~ 0.5*Q_Vmax*(1 + tanh((V-V_T)/δ_VZ)), - Q_Z ~ 0.5*Q_Zmax*(1 + tanh((Z-Z_T)/δ_VZ)), - m_Ca ~ 0.5*(1 + tanh((V-T_Ca)/δ_Ca)), - m_Na ~ 0.5*(1 + tanh((V-T_Na)/δ_Na)), - m_K ~ 0.5*(1 + tanh((V-T_K)/δ_K))] - odesys = ODESystem(eqs, t, sts, params; name=name) - new(C, δ_VZ, T_Ca, δ_Ca, g_Ca, V_Ca, T_K, δ_K, g_K, V_K, T_Na, δ_Na, g_Na,V_Na, V_L, - g_L, V_T, Z_T, Q_Vmax, Q_Zmax, IS, a_ee, a_ei, a_ie, a_ne, a_ni, b, τ_K, ϕ, r_NMDA, - 0.5*Q_Vmax*(1 + tanh((odesys.V-V_T)/δ_VZ)), - [odesys.V],[odesys.V, odesys.Z, odesys.W], - Dict(odesys.V => (-1.0,1.0), odesys.Z => (-1.0,1.0), odesys.W => (0.0,1.0)), - odesys) - end -end - -""" -New versions of blox begin here! """ + LinearNeuralMass(name, namespace) +Create standard linear neural mass blox with a single internal state. +There are no parameters in this blox. +This is a blox of the sort used for spectral DCM modeling. +The formal definition of this blox is: + +```math +\\frac{d}{dx} = \\sum{jcn} +``` + +where ``jcn``` is any input to the blox. + + +Arguments: +- name: Options containing specification about deterministic. +- namespace: Additional namespace above name if needed for inheritance. """ -Units note: no units because no parameters :) -""" + struct LinearNeuralMass <: NeuralMassBlox output jcn @@ -312,8 +115,25 @@ struct LinearNeuralMass <: NeuralMassBlox end """ -Units note: Frequency should be tuned by user. -Updated with additional factors to make ms. + HarmonicOscillator(name, namespace, ω, ζ, k, h) + + Create a harmonic oscillator blox with the specified parameters. + The formal definition of this blox is: + +```math +\\frac{dx}{dt} = y-(2*\\omega*\\zeta*x)+ k*(2/\\pi)*(atan((\\sum{jcn})/h) +\\frac{dy}{dt} = -(\\omega^2)*x +``` + where ``jcn`` is any input to the blox. + + +Arguments: +- name: Name given to ODESystem object within the blox. +- namespace: Additional namespace above name if needed for inheritance. +- ω: Base frequency. Note the default value is scaled to give oscillations in milliseconds to match other blocks. +- ζ: Damping ratio. +- k: Gain. +- h: Threshold. """ struct HarmonicOscillator <: NeuralMassBlox params @@ -322,8 +142,8 @@ struct HarmonicOscillator <: NeuralMassBlox odesystem namespace function HarmonicOscillator(;name, namespace=nothing, ω=25*(2*pi)*0.001, ζ=1.0, k=625*(2*pi), h=35.0) - p = progress_scope(ω, ζ, k, h) - p = compileparameterlist(ω=p[1], ζ=p[2], k=p[3], h=p[4]) + # p = progress_scope(ω, ζ, k, h) + p = paramscoping(ω=ω, ζ=ζ, k=k, h=h) sts = @variables x(t)=1.0 [output=true] y(t)=1.0 jcn(t)=0.0 [input=true] ω, ζ, k, h = p eqs = [D(x) ~ y-(2*ω*ζ*x)+ k*(2/π)*(atan((jcn)/h)) @@ -334,10 +154,31 @@ struct HarmonicOscillator <: NeuralMassBlox end """ -Units note: all units from the original Parkinson's paper EXCEPT τ. -The original delays were in seconds, so multiplied to be consistent with other blocks in ms. + JansenRit(name, namespace, τ, H, λ, r, cortical) + + Create a Jansen Rit blox as described in Liu et al. + The formal definition of this blox is: + +```math +\\frac{dx}{dt} = y-\\frac{2}{\\tau}x +\\frac{dy}{dt} = -\\frac{x}{\\tau^2} + \\frac{H}{\\tau} [\\frac{2\\lambda}{1+\\text{exp}(-r*\\sum{jcn})} - \\lambda] +``` + +where ``jcn`` is any input to the blox. + +Arguments: +- name: Name given to ODESystem object within the blox. +- namespace: Additional namespace above name if needed for inheritance. +- τ: Time constant. This is changed from the original source as the time constant was in seconds, while all our blocks are in milliseconds. +- H: See equation for use. +- λ: See equation for use. +- r: See equation for use. +- cortical: Boolean to determine whether to use cortical or subcortical parameters. Specifying any of the parameters above will override this. + +Citations: +1. Liu C, Zhou C, Wang J, Fietkiewicz C, Loparo KA. The role of coupling connections in a model of the cortico-basal ganglia-thalamocortical neural loop for the generation of beta oscillations. Neural Netw. 2020 Mar;123:381-392. doi: 10.1016/j.neunet.2019.12.021. + """ -# Constructing a new Jansen Rit blox to handle both delays and non-delays, along with default parameter inputs struct JansenRit <: NeuralMassBlox params output @@ -357,8 +198,8 @@ struct JansenRit <: NeuralMassBlox λ = isnothing(λ) ? (cortical ? 5.0 : 400.0) : λ r = isnothing(r) ? (cortical ? 0.15 : 0.1) : r - p = progress_scope(τ, H, λ, r) - p = compileparameterlist(τ=p[1], H=p[2], λ=p[3], r=p[4]) + # p = progress_scope(τ, H, λ, r) + p = paramscoping(τ=τ, H=H, λ=λ, r=r) τ, H, λ, r = p sts = @variables x(..)=1.0 [output=true] y(t)=1.0 jcn(t)=0.0 [input=true] eqs = [D(x(t)) ~ y - ((2/τ)*x(t)), @@ -371,8 +212,21 @@ struct JansenRit <: NeuralMassBlox end """ -Units note: Unclear where the defaults come from (close but not quite Wilson-Cowan referenced in TVB and elsewhere). -They're on the same order of magnitude as the original parameters which are in ms, so good to go for now. + WilsonCown(name, namespace, τ_E, τ_I, a_E, a_I, c_EE, c_IE, c_EI, c_II, θ_E, θ_I, η) + + Create a standard Wilson Cowan blox. + The formal definition of this blox is: + +```math +\\frac{dE}{dt} = \\frac{-E}{\\tau_E} + \\frac{1}{1 + \\text{exp}(-a_E*(c_{EE}*E - c_{IE}*I - \\theta_E + \\eta*(\\sum{jcn}))} +\\frac{dI}{dt} = \\frac{-I}{\\tau_I} + \\frac{1}{1 + exp(-a_I*(c_{EI}*E - c_{II}*I - \\theta_I)} +``` +where ``jcn`` is any input to the blox. + +Arguments: +- name: Name given to ODESystem object within the blox. +- namespace: Additional namespace above name if needed for inheritance. +- Others: See equation for use. """ struct WilsonCowan <: NeuralMassBlox params @@ -394,8 +248,8 @@ struct WilsonCowan <: NeuralMassBlox θ_I=3.5, η=1.0 ) - p = progress_scope(τ_E, τ_I, a_E, a_I, c_EE, c_IE, c_EI, c_II, θ_E, θ_I, η) - p = compileparameterlist(τ_E=p[1], τ_I=p[2], a_E=p[3], a_I=p[4], c_EE=p[5], c_IE=p[6], c_EI=p[7], c_II=p[8], θ_E=p[9], θ_I=p[10], η=p[11]) + # p = progress_scope(τ_E, τ_I, a_E, a_I, c_EE, c_IE, c_EI, c_II, θ_E, θ_I, η) + p = paramscoping(τ_E=τ_E, τ_I=τ_I, a_E=a_E, a_I=a_I, c_EE=c_EE, c_IE=c_IE, c_EI=c_EI, c_II=c_II, θ_E=θ_E, θ_I=θ_I, η=η) τ_E, τ_I, a_E, a_I, c_EE, c_IE, c_EI, c_II, θ_E, θ_I, η = p sts = @variables E(t)=1.0 [output=true] I(t)=1.0 jcn(t)=0.0 [input=true] #P(t)=0.0 eqs = [D(E) ~ -E/τ_E + 1/(1 + exp(-a_E*(c_EE*E - c_IE*I - θ_E + η*(jcn)))), #old form: D(E) ~ -E/τ_E + 1/(1 + exp(-a_E*(c_EE*E - c_IE*I - θ_E + P + η*(jcn)))), @@ -406,7 +260,21 @@ struct WilsonCowan <: NeuralMassBlox end """ -Units note: From Yamashita et al. paper, designed to be in ms. Good to go for now. + LarterBreakspear(name, namespace, ...) + + Create a Larter Breakspear blox described in Endo et al. For a full list of the parameters used see the reference. + If you need to modify the parameters, see Chesebro et al. and van Nieuwenhuizen et al. for physiological ranges. + +Arguments: +- name: Name given to ODESystem object within the blox. +- namespace: Additional namespace above name if needed for inheritance. +- Other parameters: See reference for full list. Note that parameters are scaled so that units of time are in milliseconds. + +Citations: +1. Endo H, Hiroe N, Yamashita O. Evaluation of Resting Spatio-Temporal Dynamics of a Neural Mass Model Using Resting fMRI Connectivity and EEG Microstates. Front Comput Neurosci. 2020 Jan 17;13:91. doi: 10.3389/fncom.2019.00091. +2. Chesebro AG, Mujica-Parodi LR, Weistuch C. Ion gradient-driven bifurcations of a multi-scale neuronal model. Chaos Solitons Fractals. 2023 Feb;167:113120. doi: 10.1016/j.chaos.2023.113120. +3. van Nieuwenhuizen, H, Chesebro, AG, Polis, C, Clarke, K, Strey, HH, Weistuch, C, Mujica-Parodi, LR. Ketosis regulates K+ ion channels, strengthening brain-wide signaling disrupted by age. Preprint. bioRxiv 2023.05.10.540257; doi: https://doi.org/10.1101/2023.05.10.540257. + """ struct LarterBreakspear <: NeuralMassBlox params @@ -448,8 +316,8 @@ struct LarterBreakspear <: NeuralMassBlox r_NMDA=0.25, C=0.35 ) - p = progress_scope(C, δ_VZ, T_Ca, δ_Ca, g_Ca, V_Ca, T_K, δ_K, g_K, V_K, T_Na, δ_Na, g_Na, V_Na, V_L, g_L, V_T, Z_T, Q_Vmax, Q_Zmax, IS, a_ee, a_ei, a_ie, a_ne, a_ni, b, τ_K, ϕ,r_NMDA) - p = compileparameterlist(C=p[1], δ_VZ=p[2], T_Ca=p[3], δ_Ca=p[4], g_Ca=p[5], V_Ca=p[6], T_K=p[7], δ_K=p[8], g_K=p[9], V_K=p[10], T_Na=p[11], δ_Na=p[12], g_Na=p[13],V_Na=p[14], V_L=p[15], g_L=p[16], V_T=p[17], Z_T=p[18], Q_Vmax=p[19], Q_Zmax=p[20], IS=p[21], a_ee=p[22], a_ei=p[23], a_ie=p[24], a_ne=p[25], a_ni=p[26], b=p[27], τ_K=p[28], ϕ=p[29], r_NMDA=p[30]) + # p = progress_scope(C, δ_VZ, T_Ca, δ_Ca, g_Ca, V_Ca, T_K, δ_K, g_K, V_K, T_Na, δ_Na, g_Na, V_Na, V_L, g_L, V_T, Z_T, Q_Vmax, Q_Zmax, IS, a_ee, a_ei, a_ie, a_ne, a_ni, b, τ_K, ϕ,r_NMDA) + p = paramscoping(C=C, δ_VZ=δ_VZ, T_Ca=T_Ca, δ_Ca=δ_Ca, g_Ca=g_Ca, V_Ca=V_Ca, T_K=T_K, δ_K=δ_K, g_K=g_K, V_K=V_K, T_Na=T_Na, δ_Na=δ_Na, g_Na=g_Na, V_Na=V_Na, V_L=V_L, g_L=g_L, V_T=V_T, Z_T=Z_T, Q_Vmax=Q_Vmax, Q_Zmax=Q_Zmax, IS=IS, a_ee=a_ee, a_ei=a_ei, a_ie=a_ie, a_ne=a_ne, a_ni=a_ni, b=b, τ_K=τ_K, ϕ=ϕ, r_NMDA=r_NMDA) C, δ_VZ, T_Ca, δ_Ca, g_Ca, V_Ca, T_K, δ_K, g_K, V_K, T_Na, δ_Na, g_Na,V_Na, V_L, g_L, V_T, Z_T, Q_Vmax, Q_Zmax, IS, a_ee, a_ei, a_ie, a_ne, a_ni, b, τ_K, ϕ, r_NMDA = p sts = @variables V(t)=0.5 Z(t)=0.5 W(t)=0.5 jcn(t)=0.0 [input=true] Q_V(t) [output=true] Q_Z(t) m_Ca(t) m_Na(t) m_K(t) diff --git a/src/blox/neuron_models.jl b/src/blox/neuron_models.jl index f7c88b4b..71b973fe 100644 --- a/src/blox/neuron_models.jl +++ b/src/blox/neuron_models.jl @@ -33,30 +33,6 @@ mutable struct QIFNeuronBlox <: AbstractNeuronBlox end end -""" -thetaneuron has the following parameters: - η: Constant drive - α_inv: Time to peak of spike - k: All-to-all coupling strength -and the following variables: - θ(t): Theta neuron state - g(t): Synaptic current - jcn(t): Synaptic input -and returns: - an ODE System -""" -function theta_neuron(;name, η=η, α_inv=α_inv, k=k) - - params = @parameters η=η α_inv=α_inv k=k - sts = @variables θ(t)=0.0 g(t)=0.0 jcn(t)=0.0 - - eqs = [D(θ) ~ 1-cos(θ) + (1+cos(θ))*(η + k*g), - D(g) ~ α_inv*(jcn - g)] - - return ODESystem(eqs, t, sts, params; name=name) - -end - # Leaky Integrate and Fire neuron with synaptic dynamics mutable struct IFNeuronBlox <: AbstractNeuronBlox # all parameters are Num as to allow symbolic expressions diff --git a/src/datafitting/spectralDCM.jl b/src/datafitting/spectralDCM.jl index 0d68d622..bf847229 100644 --- a/src/datafitting/spectralDCM.jl +++ b/src/datafitting/spectralDCM.jl @@ -13,19 +13,22 @@ spm_logdet : mimick SPM12's way to compute the logarithm of the determinan variationalbayes : main routine that computes the variational Bayes estimate of model parameters """ -using ForwardDiff -using ForwardDiff: Dual -using ForwardDiff: Partials -using LinearAlgebra: Eigen -using LinearAlgebra -# using ToeplitzMatrices -using ExponentialUtilities - -ForwardDiff.can_dual(::Type{Complex{Float64}}) = true -using ChainRules: _eigen_norm_phase_fwd! tagtype(::Dual{T,V,N}) where {T,V,N} = T +""" + function LinearAlgebra.eigen(M::Matrix{Dual{T, P, np}}) where {T, P, np} + + Dispatch of LinearAlgebra.eigen for dual matrices with complex numbers. Make the eigenvalue decomposition + amenable to automatic differentiation. To do so compute the analytical derivative of eigenvalues + and eigenvectors. + + Arguments: + - `M`: matrix of type Dual of which to compute the eigenvalue decomposition. + + Returns: + - `Eigen(evals, evecs)`: eigenvalue decomposition returned as type LinearAlgebra.Eigen +""" function LinearAlgebra.eigen(M::Matrix{Dual{T, P, np}}) where {T, P, np} nd = size(M, 1) A = (p->p.value).(M) @@ -182,12 +185,21 @@ end return y end +""" + function matlab_norm(A, p) + + Simple helper function to implement the norm of a matrix that is equivalent to the one given in MATLAB for order=1, 2, Inf. + This is needed for the reproduction of the exact same results of SPM12. -function matlab_norm(A, p) + Arguments: + - `A`: matrix + - `p`: order of norm +""" +function matlab_norm(M, p) if p == 1 - return maximum(vec(sum(abs.(A),dims=1))) + return maximum(vec(sum(abs.(M),dims=1))) elseif p == Inf - return maximum(vec(sum(abs.(A),dims=2))) + return maximum(vec(sum(abs.(M),dims=2))) elseif p == 2 print("Not implemented yet!\n") return NaN @@ -206,15 +218,23 @@ function csd_Q(csd) end end end - Q = inv(Q .+ matlab_norm(Q, 1)/32*la.Matrix(la.I, size(Q))) # TODO: MATLAB's and Julia's norm function are different! Reconciliate? + Q = inv(Q .+ matlab_norm(Q, 1)/32*Matrix(I, size(Q))) # TODO: MATLAB's and Julia's norm function are different! Reconciliate? return Q end +""" + function spm_logdet(M) + + SPM12 style implementation of the logarithm of the determinant of a matrix. + + Arguments: + - `M`: matrix +""" function spm_logdet(M) TOL = 1e-16 - s = la.diag(M) + s = diag(M) if sum(abs.(s)) != sum(abs.(M[:])) - ~, s, ~ = la.svd(M) + ~, s, ~ = svd(M) end return sum(log.(s[(s .> TOL) .& (s .< TOL^-1)])) end @@ -228,6 +248,14 @@ mutable struct vb_state Σθ::Matrix{Float64} end +""" + vecparam(param::OrderedDict{Any, Any}) + + Function to flatten an ordered dictionary of model parameters and return a simple list of parameter values. + + Arguments: + - `param`: dictionary of model parameters (may contain numbers and lists of numbers) +""" function vecparam(param::OrderedDict{Any, Any}) flatparam = Float64[] for v in values(param) @@ -242,22 +270,22 @@ function vecparam(param::OrderedDict{Any, Any}) return flatparam end -function unvecparam(vals, param::OrderedDict{Any,Any}) - iter = 1 - paramnewvals = copy(param) - for (k, v) in param - if (typeof(v) <: Array) - paramnewvals[k] = vals[iter:iter+length(v)-1] - iter += length(v) - else - paramnewvals[k] = vals[iter] - iter += 1 - end - end - return paramnewvals -end - - +""" + variationalbayes(idx_A, y, derivatives, w, V, p, priors, niter) + + Computes parameter estimation using variational Laplace that is to a large extend equivalent to the SPM12 implementation + and provides the exact same values. + + Arguments: + - `idx_A`: indices of connection weight parameter matrix A in model Jacobian + - `y`: empirical cross-spectral density (input data) + - `derivatives`: jacobian of model as well as gradient of observer function + - `w`: fequencies at which to estimate cross-spectral densities + - `V`: projection matrix from full parameter space to reduced space that removes parameters with zero variance prior + - `p`: order of multivariate autoregressive model for estimation of cross-spectral densities from data + - `priors`: Bayesian priors, mean and variance thereof. Laplace approximation assumes Gaussian distributions + - `niter`: number of iterations of the optimization procedure +""" @views function variationalbayes(idx_A, y, derivatives, w, V, p, priors, niter) # extract priors Πθ_pr = priors[:Σ][:Πθ_pr] @@ -290,7 +318,7 @@ end local ϵ_λ, iΣ, Σλ, Σθ, dFdpp, dFdp for k = 1:niter state.iter = k - dfdp = ForwardDiff.jacobian(f_prep, μθ_po) * V + dfdp = jacobian(f_prep, μθ_po) * V norm_dfdp = matlab_norm(dfdp, Inf); revert = isnan(norm_dfdp) || norm_dfdp > exp(32); @@ -311,7 +339,7 @@ end # J_test = JacVec(f_prep, μθ_po) # dfdp = stack(J_test*v for v in eachcol(V)) - dfdp = ForwardDiff.jacobian(f_prep, μθ_po) * V + dfdp = jacobian(f_prep, μθ_po) * V # check for stability norm_dfdp = matlab_norm(dfdp, Inf); @@ -441,26 +469,28 @@ end end """ -Performs a variational inference to fit a cross spectral density. Current implementation provides a Variational Laplace fit. -(ToDo: generalize to different VI algorithms) - -Input: -- data : Dataframe with column names corresponding to the regions of measurement. -- neuraldynmodel : MTK model, it is an ODESystem or a System (haven't tested with System yet). -- observationmodel : MTK model that defines measurement function (ex. bold signal). - Current implementation limits to one measurement functional form for all regions. -- initcond : Dictionary of initial conditions, numerical values for all states -- csdsetup : Dictionary of parameters required for the computation of the cross spectral density --- dt : sampling interval --- freq : frequencies at which to evaluate the CSD --- p : order parameter of the multivariate autoregression model -- params : Dataframe of parameters with the following columns: --- name : corresponds to MTK model name --- mean : corresponds to prior mean value --- variance : corresponds to the prior variances -- hyperparams : Dataframe of parameters with the following columns: --- Πλ_pr : prior precision matrix for λ hyperparameter(s) --- μλ_pr : prior mean(s) for λ hyperparameter(s) + spectralVI(data, neuraldynmodel, observationmodel, initcond, csdsetup, params, hyperparams) + + Interface function to performs variational inference to fit model parameters to empirical cross spectral density. + The current implementation provides a Variational Laplace fit (see function above `variationalbayes`). + + Arguments: + - `data` : Dataframe with column names corresponding to the regions of measurement. + - `neuraldynmodel` : MTK model, it is an ODESystem or a System (haven't tested with System yet). + - `observationmodel` : MTK model that defines measurement function (ex. bold signal). + Current implementation limits to one measurement functional form for all regions. + - `initcond` : Dictionary of initial conditions, numerical values for all states + - `csdsetup` : Dictionary of parameters required for the computation of the cross spectral density + -- `dt` : sampling interval + -- `freq` : frequencies at which to evaluate the CSD + -- `p` : order parameter of the multivariate autoregression model + - `params` : Dataframe of parameters with the following columns: + -- `name` : corresponds to MTK model name + -- `mean` : corresponds to prior mean value + -- `variance` : corresponds to the prior variances + - `hyperparams` : Dataframe of parameters with the following columns: + -- `Πλ_pr` : prior precision matrix for λ hyperparameter(s) + -- `μλ_pr` : prior mean(s) for λ hyperparameter(s) """ function spectralVI(data, neuraldynmodel, observationmodel, initcond, csdsetup, params, hyperparams) # compute cross-spectral density diff --git a/src/gui/GUI.jl b/src/gui/GUI.jl index 6b630b1e..4f8c1d94 100644 --- a/src/gui/GUI.jl +++ b/src/gui/GUI.jl @@ -61,21 +61,6 @@ const MENU = "menu" const NODE = "node" const LINK = "link" -# function arguments(::Type{Neuroblox.Merger}) -# OrderedDict( -# ) -# end - -# function arguments(::Type{Neuroblox.LinHemo}) -# OrderedDict( -# ) -# end - -# function arguments(::Type{Neuroblox.Hemodynamics}) -# OrderedDict( -# ) -# end - function arguments(::Type{Neuroblox.ImageStimulus}) OrderedDict( :height => NCAD(15, INTEGER, 1, 100,[], false), @@ -110,44 +95,6 @@ function outputs(::Type{Neuroblox.WinnerTakeAllBlox}) ["out1","out2","out3","out4","out5"] end -# function arguments(::Type{Neuroblox.LinearNeuralMassBlox}) -# OrderedDict( -# :τ => NCAD(0.01, NUMBER, 1.0, 10.0,[]), -# ) -# end - -# function arguments(::Type{Neuroblox.LinearNeuralMass}) -# OrderedDict( -# :τ => NCAD(0.01, NUMBER, 1.0, 10.0,[]), -# ) -# end - -#TODO: create connector compatible stochastic blox -# function arguments(::Type{Neuroblox.OUBlox}) -# OrderedDict( -# :μ => NCAD(0.0, NUMBER, -100.0, 100.0,[]), -# :τ => NCAD(1.0, NUMBER, 0.00001,10,[]), -# :σ => NCAD(1.0, NUMBER, 0.00001,10,[]) -# ) -# end - -# function arguments(::Type{Neuroblox.OUCouplingBlox}) -# OrderedDict( -# :μ => NCAD(0.0, NUMBER, -100.0, 100.0,[]), -# :τ => NCAD(1.0, NUMBER, 0.00001,10,[]), -# :σ => NCAD(1.0, NUMBER, 0.00001,10,[]) -# ) -# end - -# function arguments(::Type{Neuroblox.HarmonicOscillatorBlox}) -# OrderedDict( -# :ω => NCAD(25*(2*pi), NUMBER, (2*pi), 150*(2*pi),[]), -# :ζ => NCAD(1.0, NUMBER, -1.0, 1.0,[]), -# :k => NCAD(625*(2*pi), NUMBER, (2*pi), 22500*(2*pi),[]), -# :h => NCAD(35.0, NUMBER, 0.01, 90.0,[]) -# ) -# end - function arguments(::Type{Neuroblox.HarmonicOscillator}) OrderedDict( #:measurement => NCAD("Measurement", MENU, 1 , 4 ,["none","fMRI", "EEG", "LFP"]), @@ -163,24 +110,6 @@ function plotdetail(::Type{Neuroblox.HarmonicOscillator}) OrderedDict(:detail => ["x","y"], :nodetail => ["x"]) end -# function arguments(::Type{Neuroblox.JansenRitCBlox}) -# OrderedDict( -# :τ => NCAD(0.001, NUMBER, 0.001, 2.0,[]), -# :H => NCAD(20.0, NUMBER, 0.0, 500.0,[]), -# :λ => NCAD(5.0, NUMBER, 1.0, 25.0,[]), -# :r => NCAD(0.15, NUMBER, 0.1, 5.0,[]) -# ) -# end - -# function arguments(::Type{Neuroblox.JansenRitSCBlox}) -# OrderedDict( -# :τ => NCAD(0.014, NUMBER, 0.001, 0.1,[]), -# :H => NCAD(20.0, NUMBER, 0.0, 500.0,[]), -# :λ => NCAD(400.0, NUMBER, 20.0, 500.0,[]), -# :r => NCAD(0.1, NUMBER, 0.1, 5.0,[]) -# ) -# end - function arguments(::Type{Neuroblox.JansenRit}) OrderedDict( :τ => NCAD(0.014, NUMBER, 0.001, 0.1,[],true), @@ -194,22 +123,6 @@ function plotdetail(::Type{Neuroblox.JansenRit}) OrderedDict(:detail => ["x","y"], :nodetail => ["x"]) end -# function arguments(::Type{Neuroblox.WilsonCowanBlox}) -# OrderedDict( -# :τ_E => NCAD(1.0, NUMBER, 1.0, 100.0,[]), -# :τ_I => NCAD(1.0, NUMBER, 1.0, 100.0,[]), -# :a_E => NCAD(1.2, NUMBER, 1.0, 100.0,[]), -# :a_I => NCAD(2.0, NUMBER, 1.0, 100.0,[]), -# :c_EE => NCAD(5.0, NUMBER, 1.0, 100.0,[]), -# :c_EI => NCAD(10.0, NUMBER, 1.0, 100.0,[]), -# :c_IE => NCAD(6.0, NUMBER, 1.0, 100.0,[]), -# :c_II => NCAD(1.0, NUMBER, 1.0, 100.0,[]), -# :θ_E => NCAD(2.0, NUMBER, 1.0, 100.0,[]), -# :θ_I => NCAD(3.5, NUMBER, 1.0, 100.0,[]), -# :η => NCAD(1.0, NUMBER, 1.0, 100.0,[]) -# ) -# end - function arguments(::Type{Neuroblox.WilsonCowan}) OrderedDict( :τ_E => NCAD(1.0, NUMBER, 1.0, 100.0,[],true), @@ -230,39 +143,6 @@ function plotdetail(::Type{Neuroblox.WilsonCowan}) OrderedDict(:detail => ["E","I"], :nodetail => ["E"]) end -# function arguments(::Type{Neuroblox.LarterBreakspearBlox}) -# OrderedDict( -# :C => NCAD(0.35, NUMBER, 0.0, 1.0,[]), -# :δ_VZ => NCAD(0.61, NUMBER, 0.1, 2.0,[]), -# :T_Ca => NCAD(-0.01, NUMBER, 0.02, -0.04,[]), -# :δ_Ca => NCAD(0.15, NUMBER, 0.1, 0.2,[]), -# :g_Ca => NCAD(1.0, NUMBER, 0.96, 1.01,[]), #tested in Jolien's work/similar to V_Ca in Anthony's paper -# :V_Ca => NCAD(1.0, NUMBER, 0.96, 1.01,[]), #limits established by bifurcation -# :T_K => NCAD(0.0, NUMBER, -0.05, 0.05,[]), -# :δ_K => NCAD(0.3, NUMBER,0.25, 0.35,[]), -# :g_K => NCAD(2.0, NUMBER, 1.95, 2.05,[]), #tested in Jolien's work -# :V_K => NCAD(-0.7, NUMBER, -0.8, -0.6,[]), #limits established by bifurcation -# :T_Na => NCAD(0.3, NUMBER, 0.25, 0.35,[]), -# :δ_Na => NCAD(0.15, NUMBER, 0.1, 0.2,[]), -# :g_Na => NCAD(6.7, NUMBER, 6.6, 6.8,[]), #tested in Botond and Jolien's work -# :V_Na => NCAD(0.53, NUMBER, 0.41, 0.59,[]), #limits established by bifurcation -# :V_L => NCAD(-0.5, NUMBER, -0.6, -0.4,[]), -# :g_L => NCAD(0.5, NUMBER, 0.4, 0.6,[]), -# :V_T => NCAD(0.0, NUMBER, -0.05, 0.05,[]), -# :Z_T => NCAD(0.0, NUMBER, -0.05, 0.05,[]), -# :IS => NCAD(0.3, NUMBER, 0.0, 1.0,[]), -# :a_ee => NCAD(0.36, NUMBER, 0.33, 0.39,[]), #tested in Botond and Jolien's work -# :a_ei => NCAD(2.0, NUMBER, 1.95, 2.05,[]), #tested in Botond and Jolien's work -# :a_ie => NCAD(2.0, NUMBER, 1.95, 2.05,[]), #testing in Jolien's work -# :a_ne => NCAD(1.0, NUMBER, 0.95, 1.05,[]), -# :a_ni => NCAD(0.4, NUMBER, 0.3, 0.5,[]), -# :b => NCAD(0.1, NUMBER, 0.05, 0.15,[]), -# :τ_K => NCAD(1.0, NUMBER, 0.8, 1.2,[]), #shouldn't be varied, but useful in bifurcations to "harshen" the potassium landscape -# :ϕ => NCAD(0.7, NUMBER, 0.6, 0.8,[]), -# :r_NMDA => NCAD( 0.25, NUMBER, 0.2, 0.3,[]) #tested in Botond's work -# ) -# end - function arguments(::Type{Neuroblox.LarterBreakspear}) OrderedDict( :C => NCAD(0.35, NUMBER, 0.0, 1.0,[],true), @@ -300,17 +180,6 @@ function plotdetail(::Type{Neuroblox.LarterBreakspear}) OrderedDict(:detail => ["V","Z","W"], :nodetail => ["V"]) end -# function arguments(::Type{Neuroblox.NextGenerationBlox}) -# OrderedDict( -# :C => NCAD(30.0, NUMBER, 1.0, 50.0,[]), -# :Δ => NCAD(1.0, NUMBER, 0.01, 100.0,[]), -# :η_0 => NCAD(5.0, NUMBER, 0.01, 20.0,[]), -# :v_syn => NCAD(-10.0, NUMBER, -20.0, 0.0,[]), -# :alpha_inv => NCAD(35.0, NUMBER, 0.01, 10.0,[]), -# :k => NCAD(0.105, NUMBER, 0.01, 2.0,[]) -# ) -# end - function arguments(::Type{Neuroblox.NextGenerationEIBlox}) OrderedDict( :Cₑ => NCAD(52.0, NUMBER, 1.0, 50.0,[],true), @@ -366,28 +235,6 @@ function info_link(::Type{Neuroblox.HebbianPlasticity}) Dict(:link => "https://www.neuroblox.org") end -#TODO: create connector compatible CMC -# function arguments(::Type{Neuroblox.CanonicalMicroCircuitBlox}) -# OrderedDict( -# :τ_ss => NCAD(0.002, NUMBER, 0.0001, 0.1,[]), -# :τ_sp => NCAD(0.002, NUMBER, 0.0001, 0.1,[]), -# :τ_ii => NCAD(0.016, NUMBER, 0.0001, 0.1,[]), -# :τ_dp => NCAD(0.028, NUMBER, 0.0001, 0.1,[]), -# :r_ss => NCAD(2.0/3.0, NUMBER, 0.1, 5.0,[]), -# :r_sp => NCAD(2.0/3.0, NUMBER, 0.1, 5.0,[]), -# :r_ii => NCAD(2.0/3.0, NUMBER, 0.1, 5.0,[]), -# :r_dp => NCAD(2.0/3.0, NUMBER, 0.1, 5.0,[]) -# ) -# end - -# function inputs(::Type{Neuroblox.CanonicalMicroCircuitBlox}) -# ["in_ss","in_sp","in_ii","in_sp"] -# end - -# function outputs(::Type{Neuroblox.CanonicalMicroCircuitBlox}) -# ["out_ss","out_sp","out_ii","out_sp"] -# end - function arguments(::Type{Neuroblox.Thalamus}) OrderedDict( :N_exci => NCAD(25, INTEGER, 1, 100,[],true), @@ -467,38 +314,6 @@ function arguments(::Type{Neuroblox.GreedyPolicy}) ) end -#TODO: create connector compatible CMC -# function arguments(::Type{Neuroblox.IFNeuronBlox}) #TODO: add correct settings for the arguments -# OrderedDict( -# :C => NCAD(30.0, NUMBER, 1.0, 50.0,[]), -# :E_syn => NCAD(1.0, NUMBER, 0.01, 100.0,[]), -# :G_syn => NCAD(5.0, NUMBER, 0.01, 20.0,[]), -# :I_in => NCAD(-10.0, NUMBER, -20.0, 0.0,[]), -# :freq => NCAD(35.0, NUMBER, 0.01, 10.0,[]), -# :phase => NCAD(0.105, NUMBER, 0.01, 2.0,[]), -# :τ => NCAD(0.105, NUMBER, 0.01, 2.0,[]) -# ) -# end - -# function arguments(::Type{Neuroblox.QIFNeuronBlox}) #TODO: add correct settings for the arguments -# OrderedDict( -# :E_syn => NCAD(1.0, NUMBER, 0.01, 100.0,[]), -# :G_syn => NCAD(5.0, NUMBER, 0.01, 20.0,[]), -# :w => NCAD(-10.0, NUMBER, -20.0, 0.0,[]), -# :τ => NCAD(0.105, NUMBER, 0.01, 2.0,[]) -# ) -# end - -# function arguments(::Type{Neuroblox.LIFNeuronBlox}) #TODO: add correct settings for the arguments -# OrderedDict( -# :I_in => NCAD(0.0, NUMBER, -5.0, 5.0,[]), -# :V_L => NCAD(-70.0, NUMBER, -90, -10,[]), -# :τ => NCAD(10.0, NUMBER, 0.01, 100.0,[]), -# :R => NCAD(100.0, NUMBER, 0.01, 200.0,[]), -# :θ => NCAD(-10.0, NUMBER, -20, 20.0,[]), -# ) -# end - function arguments(::Type{Neuroblox.HHNeuronExciBlox}) #TODO: add correct settings for the arguments OrderedDict( :t_spike_window => NCAD(90.0, NUMBER, 0.1, 100.0,[],true), diff --git a/src/measurementmodels/fmri.jl b/src/measurementmodels/fmri.jl index 50dd2328..cd6c6fd2 100644 --- a/src/measurementmodels/fmri.jl +++ b/src/measurementmodels/fmri.jl @@ -8,20 +8,33 @@ boldsignal : computes BOLD signal """ """ -### Input variables ### -name : name of ODE system -jcn : neural activity -s : vascular signal -lnf : logarithm of rCBF -lnν : logarithm of venous volume -lnq : logarithm of deoxyhemoglobin (dHb) - -### Parameter ### -lnκ : logarithmic prefactor to signal decay H[1], set to 0 for standard parameter value. -lnτ : logarithmic prefactor to transit time H[3], set to 0 for standard parameter value. - -### Return variables ### -returns an ODESystem of the biophysical model for the hemodynamics + BalloonModel(;name, namespace=nothing, lnκ=0.0, lnτ=0.0) + + Create a balloon model blox which computes the hemodynamic responses to some underlying neuronal activity + The formal definition of this blox is: + """ + # ```math + # \\frac{ds}{dt} = \\text{jcn} - \\kappa s - \\gamma (u-1) + # \\frac{du}{dt} = s + # \\frac{d\\nu}{dt} = u - v^{1/\\alpha} + # \\frac{dq}{dt} = u E(u, E_0)/E_0 - v^{1/\\alpha} q/v + # ``` +""" + where ``jcn`` is any input to the blox (represents the neuronal activity) + +Arguments: +- `name`: Name given to `ODESystem` object within the blox. +- `namespace`: Additional namespace above `name` if needed for inheritance. +- `lnκ`: logarithmic prefactor to signal decay H[1], set to 0 for standard parameter value. +- `lnτ`: logarithmic prefactor to transit time H[3], set to 0 for standard parameter value. + +NB: the prefix ln of the variables u, ν, q as well as the parameters κ, τ denotes their transformation into logarithmic space +to enforce their positivity. This transformation is considered in the derivates of the model equations below. + +Citations: +1. Stephan K E, Weiskopf N, Drysdale P M, Robinson P A, and Friston K J. Comparing Hemodynamic Models with DCM. NeuroImage 38, no. 3 (2007): 387–401. doi: 10.1016/j.neuroimage.2007.07.040 +2. Hofmann D, Chesebro A G, Rackauckas C, Mujica-Parodi L R, Friston K J, Edelman A, and Strey H H. Leveraging Julia's Automated Differentiation and Symbolic Computation to Increase Spectral DCM Flexibility and Speed, 2023. doi: 10.1101/2023.10.27.564407 + """ struct BalloonModel <: ObserverBlox params @@ -39,17 +52,17 @@ struct BalloonModel <: ObserverBlox =# H = [0.64, 0.32, 2.00, 0.32, 0.4] - p = progress_scope(lnκ, lnτ) # progress scope if needed - p = compileparameterlist(lnκ=p[1], lnτ=p[2]) # finally compile all parameters - lnκ, lnτ = p # assign the modified parameters + # p = progress_scope(lnκ, lnτ) # progress scope if needed + p = paramscoping(lnκ=lnκ, lnτ=lnτ) # finally compile all parameters + lnκ, lnτ = p # assign the modified parameters - sts = @variables s(t)=1.0 lnf(t)=1.0 lnν(t)=1.0 [output=true, description="hemodynamic_observer"] lnq(t)=1.0 [output=true, description="hemodynamic_observer"] jcn(t)=0.0 [input=true] + sts = @variables s(t)=1.0 lnu(t)=1.0 lnν(t)=1.0 [output=true, description="hemodynamic_observer"] lnq(t)=1.0 [output=true, description="hemodynamic_observer"] jcn(t)=0.0 [input=true] eqs = [ - D(s) ~ jcn - H[1]*exp(lnκ)*s - H[2]*(exp(lnf) - 1), - D(lnf) ~ s / exp(lnf), - D(lnν) ~ (exp(lnf) - exp(lnν)^(H[4]^-1)) / (H[3]*exp(lnτ)*exp(lnν)), - D(lnq) ~ (exp(lnf)/exp(lnq)*((1 - (1 - H[5])^(exp(lnf)^-1))/H[5]) - exp(lnν)^(H[4]^-1 - 1))/(H[3]*exp(lnτ)) + D(s) ~ jcn - H[1]*exp(lnκ)*s - H[2]*(exp(lnu) - 1), + D(lnu) ~ s / exp(lnu), + D(lnν) ~ (exp(lnu) - exp(lnν)^(H[4]^-1)) / (H[3]*exp(lnτ)*exp(lnν)), + D(lnq) ~ (exp(lnu)/exp(lnq)*((1 - (1 - H[5])^(exp(lnu)^-1))/H[5]) - exp(lnν)^(H[4]^-1 - 1))/(H[3]*exp(lnτ)) ] sys = System(eqs, name=name) new(p, Num(0), sts[5], sys, namespace) @@ -57,22 +70,28 @@ struct BalloonModel <: ObserverBlox end - """ -BOLD signal model as described in: + boldsignal(;name, lnϵ=0.0) + + Bold signal observer function. This requires connection to the variables ν and q of a balloon model. + The formal definition of this blox is: + """ + # ```math + # \\lambda(\\nu, q) = V_0 \\left[ k_1 (1-q) + k_2 \\left( 1 - \\frac{q}{v} \\right) + k_3 (1-v)\\right] + # ``` +""" -Stephan KE, Weiskopf N, Drysdale PM, Robinson PA, Friston KJ (2007) -Comparing hemodynamic models with DCM. NeuroImage 38: 387-401. +Arguments: +- `name`: Name given to `ODESystem` object within the blox. +- lnϵ : logarithm of ratio of intra- to extra-vascular signal -### Input variables ### -lnν : logarithm of venous volume -lnq : logarithm of deoxyhemoglobin (dHb) +NB: the prefix ln of the variables ν, q as well as the parameters ϵ denotes their transformation into logarithmic space +to enforce their positivity. -### Parameter ### -lnϵ : logarithm of ratio of intra- to extra-vascular signal +Citations: +1. Stephan K E, Weiskopf N, Drysdale P M, Robinson P A, and Friston K J. Comparing Hemodynamic Models with DCM. NeuroImage 38, no. 3 (2007): 387–401. doi: 10.1016/j.neuroimage.2007.07.040 +2. Hofmann D, Chesebro A G, Rackauckas C, Mujica-Parodi L R, Friston K J, Edelman A, and Strey H H. Leveraging Julia's Automated Differentiation and Symbolic Computation to Increase Spectral DCM Flexibility and Speed, 2023. doi: 10.1101/2023.10.27.564407 -### Return variables ### -returns ODESystem """ function boldsignal(;name, lnϵ=0.0) # NB: Biophysical constants for 1.5T scanners @@ -87,7 +106,7 @@ function boldsignal(;name, lnϵ=0.0) nu0 = 40.3 # resting oxygen extraction fraction E0 = 0.4 - # -Coefficients in BOLD signal model + # Coefficients in BOLD signal model k1 = 4.3*nu0*E0*TE params = @parameters lnϵ=lnϵ diff --git a/src/utilities/bold_methods.jl b/src/utilities/bold_methods.jl new file mode 100644 index 00000000..8dd2a62c --- /dev/null +++ b/src/utilities/bold_methods.jl @@ -0,0 +1,45 @@ +# Simulate the BOLD signal. + +# This is the version of the Balloon-Windkessel model used in Endo et al. (2020), and subsequently in Antal et al. (2023) and van Niuewenhuizen et al. (2023). +# As it is only a convolution after the simulation of the neural activity, it is not a block for inclusion in the ODESystem. + +""" +Simulated BOLD response to input + +""" + +function boldsignal_endo_balloon(t, y, TR=800, dt_orig=1) + + # Parameters are from Endo et al. (2020). + κ = 0.65; + α = 0.32; + τ = 0.98; + ρ = 0.34; + V_0 = 0.02; + γ = 0.41; + + bold = zeros(size(y)); + + for roi in 1:length(y[:, 1]) + s = ones(1, length(y[1, :])).*0.1; + f = ones(size(s)).*0.1; + v = ones(size(s)).*0.1; + q = ones(size(s)).*0.1; + + for i in 2:length(y[1, :]) + z = y[roi, i]; + dt = t[i]-t[i-1]; + ds = z - (κ*s[i-1])-(γ*(f[i-1]-1)); + df = s[i-1]; + dv = (f[i-1]-(v[i-1]^(1/α)))/τ; + dq = (((f[i-1]*(1-(1-(ρ^(1/f[i-1])))))/ρ)-(((v[i-1]^(1/α))*(q[i-1]))/v[i-1]))/τ; + s[i] = s[i-1] + ds*dt; + f[i] = f[i-1] + df*dt; + v[i] = v[i-1] + dv*dt; + q[i] = q[i-1] + dq*dt; + end + bold[roi, :] = V_0 .* ((7 .* ρ .* (1 .- q ./ v)) .+ ((2 .* ρ .- 0.2) .* (1 .-v ))); + end + + return (bold[:, 1:Int(round(TR/dt_orig)):end]) +end \ No newline at end of file diff --git a/src/utilities/spectral_tools.jl b/src/utilities/spectral_tools.jl index 5ed4dc7b..12153775 100644 --- a/src/utilities/spectral_tools.jl +++ b/src/utilities/spectral_tools.jl @@ -182,7 +182,7 @@ function mar2csd(mar, freqs, sf) nf = length(w) csd = zeros(ComplexF64, nf, nd, nd) for i = 1:nf - af_tmp = la.I + af_tmp = I for k = 1:p af_tmp = af_tmp + A[k] * exp(-im * k * w[i]) end @@ -203,7 +203,7 @@ function mar2csd(mar, freqs) nf = length(w) csd = zeros(eltype(Σ), nf, nd, nd) for i = 1:nf - af_tmp = la.I + af_tmp = I for k = 1:p af_tmp = af_tmp + A[k] * exp(-im * k * w[i]) end @@ -276,7 +276,7 @@ function csd2mar(csd, w, dt, p) for i = 1:m for j = 1:m A[((i-1)*p+1):i*p, j] = ccf[(1:p) .+ 1, i, j] - B[((i-1)*p+1):i*p, ((j-1)*p+1):j*p] = tm.Toeplitz(ccf[1:p, i, j], vcat(ccf[1,i,j], ccf[2:p, j, i])) # SymmetricToeplitz(ccf[1:p, i, j]) + B[((i-1)*p+1):i*p, ((j-1)*p+1):j*p] = Toeplitz(ccf[1:p, i, j], vcat(ccf[1,i,j], ccf[2:p, j, i])) # SymmetricToeplitz(ccf[1:p, i, j]) end end a = B\A diff --git a/test/components.jl b/test/components.jl index 359559d4..97e6133a 100644 --- a/test/components.jl +++ b/test/components.jl @@ -136,84 +136,31 @@ end @test sol.retcode == ReturnCode.Success end - - -@testset "Canonical micro circuit" begin - """ - Canonical micro circuit tests - - first create a single canonical micro circuit and simulate. Then create a two region model and connect two - to form the circuit that is given in Figure 4 of Bastos et al. 2015. - """ - # canonical micro circuit based on single Jansen-Rit blox - @named singleregion = CanonicalMicroCircuitBlox() - eqs = [] - for bi in singleregion.bloxinput - push!(eqs, bi ~ 0) - end - @named singleregionODE = ODESystem(eqs, systems=[singleregion.odesystem]) - singleregionODE = structural_simplify(singleregionODE) - sol = simulate(singleregionODE, [], (0.0, 10.0), []) - # TODO: it would be nicer if this was without the singleregion namespace... - @test sol[!,"singleregion₊dp₊x(t)"][end] + sol[!,"singleregion₊ii₊x(t)"][end] ≈ -5.159425345927338 -end - -@testset "Canonical & Janset-Rit network" begin +@testset "Canonical Micro Circuit network" begin # connect multiple canonical micro circuits according to Figure 4 in Bastos et al. 2015 - @named r1 = CanonicalMicroCircuitBlox() - @named r2 = CanonicalMicroCircuitBlox() - @named jr = JansenRitCBlox() + global_ns = :g # global namespace + @named r1 = CanonicalMicroCircuitBlox(;namespace=global_ns) + @named r2 = CanonicalMicroCircuitBlox(;namespace=global_ns) g = MetaDiGraph() - add_vertex!(g, Dict(:blox => r1)) # V1 (see fig. 4 in Bastos et al. 2015) - add_vertex!(g, Dict(:blox => r2)) # V4 (see fig. 4 in Bastos et al. 2015) + add_blox!.(Ref(g), [r1, r2]) + add_edge!(g, 1, 2, :weightmatrix, [0 1 0 0; # superficial pyramidal to spiny stellate - 0 0 0 0; - 0 0 0 0; - 0 1 0 0]) # superficial pyramidal to deep pyramidal + 0 0 0 0; + 0 0 0 0; + 0 1 0 0]) # superficial pyramidal to deep pyramidal # define connections from column (source) to row (sink) add_edge!(g, 2, 1, :weightmatrix, [0 0 0 0; - 0 0 0 -1; - 0 0 0 -1; - 0 0 0 0]) - - @named cmc_network = ODEfromGraph(g) - cmc_network = structural_simplify(cmc_network) - - sol = simulate(cmc_network, [], (0.0, 10.0), []) - @test sum(sol[end, 2:end]) ≈ -4827.086868187682 - - # now add a Neural mass model with one output and one input - add_vertex!(g, Dict(:blox => jr)) - add_edge!(g, 3, 1, :weightmatrix, [0; 0; 0; 1]) - add_edge!(g, 1, 3, :weightmatrix, [[1 0 0 0];]) - add_edge!(g, 3, 3, :weight, -1) - - @named cmc_network2 = ODEfromGraph(g) - cmc_network2 = structural_simplify(cmc_network2) - sol = simulate(cmc_network2, [], (0.0, 10.0), []) - @test sum(sol[end, 2:end]) ≈ -4823.399802568824 + 0 0 0 -1; + 0 0 0 -1; + 0 0 0 0]) + sys = system_from_graph(g; name=global_ns) + sys_simpl =structural_simplify(sys) - # now connect canonical micro circuits with symbolic weight matrices - g = MetaDiGraph() - add_vertex!(g, Dict(:blox => r1)) - add_vertex!(g, Dict(:blox => r2)) - - A_forward = [0 1 0 0; - 0 0 0 0; - 0 0 0 0; - 0 1 0 0] - A_backward = [0 0 0 0; - 0 0 0 -1; - 0 0 0 -1; - 0 0 0 0] - @parameters wm_forward[1:length(A_forward)] = vec(A_forward) - add_edge!(g, 1, 2, :weightmatrix, reshape(wm_forward, 4, 4)) - @parameters wm_backward[1:length(A_backward)] = vec(A_backward) - add_edge!(g, 2, 1, :weightmatrix, reshape(wm_backward, 4, 4)) - - @named cmc_network = ODEfromGraph(g) - cmc_network = structural_simplify(cmc_network) + prob = ODEProblem(sys_simpl, [], (0, 10)) + sol = solve(prob, Vern7(), saveat=0.1) + sum(sol[end, 2:end]) + @test sol.retcode == ReturnCode.Success end @testset "Next Generation Neural Mass" begin @@ -237,38 +184,6 @@ end @test norm.(R[length(R)]) < 0.1 end -@testset "Theta network" begin - """ - thetaneuron.jl test - - Test approach: generate a network of theta neurons and connect them through an all-to-all - adjacency matrix via a spike function. Then compute the real part of the Kuramoto order parameter. - The average of this parameter should be close to zero as synchrony varies in the network from a positive - to a negative amplitude. - """ - - # Generate Theta Network - network = [] - N = 50 - for i = 1:N - η = rand(Cauchy(1.0, 0.05)) # Constant Drive - @named neuron = Neuroblox.theta_neuron(name=Symbol("neuron$i"), η=η, α_inv=1.0, k=-2.0) - push!(network, neuron) - end - - # Create Circuit - adj_matrix = (1/N)*ones(N,N) - n = 3 - a_n = 2.0^n*(factorial(n)^2.0)/(factorial(2*n)) - @named theta_circuit = LinearConnections(sys=network, adj_matrix=adj_matrix, connector=[a_n*(1-cos(neuron.θ))^n for neuron in network]) - - sim_dur = 2.0 - sol = Neuroblox.simulate(structural_simplify(theta_circuit), [], (0.0, sim_dur), []) - R = real(exp.(im*sol[!, "neuron1₊θ(t)"])) - - @test abs(Statistics.mean(R)) < 0.7 -end - @testset "QIF synaptic network" begin """ qif_neuron.jl and synaptic_network.jl test @@ -312,39 +227,6 @@ end @test sol.t[end] == sim_dur end -# Are we keeping this one? -@testset "LIF network" begin -""" -network of LIFs test -""" -# N = 6 # 6 neurons - -# # neuron properties -# I_in = ones(N); # same input current to all -# τ = 5*collect(1:N); # increasing membrane time constant -# # synaptic properties -# syn_amp = 0.4*ones(N, N); # synaptic amplitudes -# syn_τ = 5*ones(N) -# nrn_network=[] -# nrn_spiketimes=[] - -# for i = 1:N -# nn = LIFNeuronBlox(name=Symbol("lif$i"), I_in=I_in[i], τ=τ[i]) -# push!(nrn_network, nn.odesystem) -# push!(nrn_spiketimes, nn.odesystem.st) -# end - -# # connect the neurons -# @named syn_net = spikeconnections(sys=nrn_network, psp_amplitude=syn_amp, τ=syn_τ, spiketimes=nrn_spiketimes) - -# sim_dur = 50.0 -# prob = ODEProblem(structural_simplify(syn_net), [], (0.0, sim_dur), []) -# sol = solve(prob, AutoVern7(Rodas4())) #pass keyword arguments to solver - -# @test length(sol.prob.p[end]) == 5 -# @test length(sol.prob.p[21]) == 11 -end - @testset "Van der Pol" begin @named VdP = van_der_pol() @@ -371,18 +253,18 @@ sol = solve(prob_ou,alg_hints = [:stiff]) @test std(sol[1,:]) > 0.0 # there should be variance end -@testset "OUBlox & Janset-Rit network" begin -@named ou1 = OUBlox() -@named jr = JansenRitCBlox() -sys = [ou1.odesystem, jr.odesystem] -eqs = [sys[1].jcn ~ 0.0, sys[2].jcn ~ sys[1].x] -@named ou1connected = compose(System(eqs;name=:connected),sys) -ousimpl = structural_simplify(ou1connected) -prob_oujr = SDEProblem(ousimpl,[],(0.0, 2.0)) -sol = solve(prob_oujr, alg_hints = [:stiff]) -@test sol.retcode == SciMLBase.ReturnCode.Success -@test std(sol[2,:]) > 0.0 # there should be variance -end +# @testset "OUBlox & Janset-Rit network" begin +# @named ou1 = OUBlox() +# @named jr = JansenRitCBlox() +# sys = [ou1.odesystem, jr.odesystem] +# eqs = [sys[1].jcn ~ 0.0, sys[2].jcn ~ sys[1].x] +# @named ou1connected = compose(System(eqs;name=:connected),sys) +# ousimpl = structural_simplify(ou1connected) +# prob_oujr = SDEProblem(ousimpl,[],(0.0, 2.0)) +# sol = solve(prob_oujr, alg_hints = [:stiff]) +# @test sol.retcode == SciMLBase.ReturnCode.Success +# @test std(sol[2,:]) > 0.0 # there should be variance +# end @testset "OUBlox-OUCouplingBlox network" begin @named ou1 = OUBlox() @@ -416,39 +298,39 @@ sol = solve(prob_ouconnect) @test cor(sol[1,:],sol[2,:]) < 0.2 # Pearson correlation should be negative or small end -@testset "Time-series output" begin - phase_int = phase_inter(0:3,[0.0,1.0,2.0,1.0]) - phase_cos_out(ω,t) = phase_cos_blox(ω,t,phase_int) - phase_sin_out(ω,t) = phase_sin_blox(ω,t,phase_int) - @test phase_cos_out(0.1,2.5)≈0.9689124217106447 - @test phase_sin_out(0.1,2.5)≈0.24740395925452294 - - # now test how to connect this time series to a neural mass blox - @named Str2 = jansen_ritC(τ=0.0022, H=20, λ=300, r=0.3) - @parameters phase_input = 0 - - sys = [Str2.odesystem] - eqs = [sys[1].jcn ~ phase_input] - @named phase_system = ODESystem(eqs,systems=sys) - phase_system_simpl = structural_simplify(phase_system) - phase_ode = ODEProblem(phase_system_simpl,[],(0,3.0),[]) - - # create callback functions - # we always want to update phase_input to be our phase_cos_out(t) - condition = function (u,t,integrator) - true - end +# @testset "Time-series output" begin +# phase_int = phase_inter(0:3,[0.0,1.0,2.0,1.0]) +# phase_cos_out(ω,t) = phase_cos_blox(ω,t,phase_int) +# phase_sin_out(ω,t) = phase_sin_blox(ω,t,phase_int) +# @test phase_cos_out(0.1,2.5)≈0.9689124217106447 +# @test phase_sin_out(0.1,2.5)≈0.24740395925452294 - function affect!(integrator) - integrator.p[1] = phase_cos_out(10*pi,integrator.t) - end +# # now test how to connect this time series to a neural mass blox +# @named Str2 = jansen_ritC(τ=0.0022, H=20, λ=300, r=0.3) +# @parameters phase_input = 0 - cb = DiscreteCallback(condition,affect!) +# sys = [Str2.odesystem] +# eqs = [sys[1].jcn ~ phase_input] +# @named phase_system = ODESystem(eqs,systems=sys) +# phase_system_simpl = structural_simplify(phase_system) +# phase_ode = ODEProblem(phase_system_simpl,[],(0,3.0),[]) - sol = solve(phase_ode,Tsit5(),callback=cb) - @test sol.retcode == SciMLBase.ReturnCode.Success - @test sol[2,:][5] ≈ 13.49728948607267 -end +# # create callback functions +# # we always want to update phase_input to be our phase_cos_out(t) +# condition = function (u,t,integrator) +# true +# end + +# function affect!(integrator) +# integrator.p[1] = phase_cos_out(10*pi,integrator.t) +# end + +# cb = DiscreteCallback(condition,affect!) + +# sol = solve(phase_ode,Tsit5(),callback=cb) +# @test sol.retcode == SciMLBase.ReturnCode.Success +# @test sol[2,:][5] ≈ 13.49728948607267 +# end @testset "HH Neuron excitatory & inhibitory network" begin nn1 = HHNeuronExciBlox(name=Symbol("nrn1"), I_bg=3, freq=4; t_spike_window=0.1) diff --git a/test/jansen_rit_component_tests.jl b/test/jansen_rit_component_tests.jl index 8f77e5c0..a809737a 100644 --- a/test/jansen_rit_component_tests.jl +++ b/test/jansen_rit_component_tests.jl @@ -1,23 +1,19 @@ -""" -DEPRECATED - -This file uses the old blocks before timing update to be consistent. Use jansen_rit_component_tests_new_timing.jl instead. -""" - using Neuroblox, DifferentialEquations, DataFrames, Test, Distributions, Statistics, LinearAlgebra, Graphs, MetaGraphs, Random +τ_factor = 1000 #needed because the old units were in seconds, and we need ms to be consistent + # Create Regions -@named Str = jansen_ritC(τ=0.0022, H=20, λ=300, r=0.3) -@named GPe = jansen_ritC(τ=0.04, H=20, λ=400, r=0.1) -@named STN = jansen_ritC(τ=0.01, H=20, λ=500, r=0.1) -@named GPi = jansen_ritSC(τ=0.014, H=20, λ=400, r=0.1) -@named Th = jansen_ritSC(τ=0.002, H=10, λ=20, r=5) -@named EI = jansen_ritSC(τ=0.01, H=20, λ=5, r=5) -@named PY = jansen_ritSC(τ=0.001, H=20, λ=5, r=0.15) -@named II = jansen_ritSC(τ=2.0, H=60, λ=5, r=5) +@named Str = jansen_ritC(τ=0.0022*τ_factor, H=20, λ=300, r=0.3) +@named gpe = jansen_ritC(τ=0.04*τ_factor, H=20, λ=400, r=0.1) +@named stn = jansen_ritC(τ=0.01*τ_factor, H=20, λ=500, r=0.1) +@named gpi = jansen_ritSC(τ=0.014*τ_factor, H=20, λ=400, r=0.1) +@named Th = jansen_ritSC(τ=0.002*τ_factor, H=10, λ=20, r=5) +@named EI = jansen_ritSC(τ=0.01*τ_factor, H=20, λ=5, r=5) +@named PY = jansen_ritSC(τ=0.001*τ_factor, H=20, λ=5, r=0.15) +@named II = jansen_ritSC(τ=2.0*τ_factor, H=60, λ=5, r=5) # Connect Regions through Adjacency Matrix -blox = [Str, GPe, STN, GPi, Th, EI, PY, II] +blox = [Str, gpe, stn, gpi, Th, EI, PY, II] sys = [s.odesystem for s in blox] connect = [s.connector for s in blox] @@ -34,10 +30,10 @@ adj_matrix_lin = [0 0 0 0 0 0 0 0; @named CBGTC_Circuit_lin = LinearConnections(sys=sys, adj_matrix=adj_matrix_lin, connector=connect) -sim_dur = 10.0 # Simulate for 10 Seconds +sim_dur = 2000.0 # Simulate for 2 seconds mysys = structural_simplify(CBGTC_Circuit_lin) -sol = simulate(mysys, [], (0.0, sim_dur), [], Vern7(); saveat=0.001) -@test sol[!, "GPi₊x(t)"][4] ≈ -0.48421810231972134 +sol = simulate(mysys, [], (0.0, sim_dur), [], Vern7(); saveat=1) +@test sol[!, "gpi₊x(t)"][4] ≈ -2219.2560209502685 #updated to new value in ms """ Testing new Jansen-Rit blox @@ -50,15 +46,15 @@ same thing as the old simulate call with AutoVern7(Rodas4() since there are no d """ # test new Jansen-Rit blox -@named Str = JansenRit(τ=0.0022, H=20, λ=300, r=0.3) -@named GPe = JansenRit(τ=0.04, cortical=false) # all default subcortical except τ -@named STN = JansenRit(τ=0.01, H=20, λ=500, r=0.1) -@named GPi = JansenRit(cortical=false) # default parameters subcortical Jansen Rit blox -@named Th = JansenRit(τ=0.002, H=10, λ=20, r=5) -@named EI = JansenRit(τ=0.01, H=20, λ=5, r=5) +@named Str = JansenRit(τ=0.0022*τ_factor, H=20, λ=300, r=0.3) +@named gpe = JansenRit(τ=0.04*τ_factor, cortical=false) # all default subcortical except τ +@named stn = JansenRit(τ=0.01*τ_factor, H=20, λ=500, r=0.1) +@named gpi = JansenRit(cortical=false) # default parameters subcortical Jansen Rit blox +@named Th = JansenRit(τ=0.002*τ_factor, H=10, λ=20, r=5) +@named EI = JansenRit(τ=0.01*τ_factor, H=20, λ=5, r=5) @named PY = JansenRit(cortical=true) # default parameters cortical Jansen Rit blox -@named II = JansenRit(τ=2.0, H=60, λ=5, r=5) -blox = [Str, GPe, STN, GPi, Th, EI, PY, II] +@named II = JansenRit(τ=2.0*τ_factor, H=60, λ=5, r=5) +blox = [Str, gpe, stn, gpi, Th, EI, PY, II] # test graphs g = MetaDiGraph() @@ -99,16 +95,16 @@ add_edge!(g, 8, 8, Dict(:weight => 3.3*C_Cor)) @named final_system = system_from_graph(g, params) final_delays = graph_delays(g) -sim_dur = 10.0 # Simulate for 10 Seconds +sim_dur = 2000.0 # Simulate for 2 Seconds final_system_sys = structural_simplify(final_system) prob = DDEProblem(final_system_sys, [], (0.0, sim_dur), constant_lags = final_delays) alg = MethodOfSteps(Vern7()) -sol_dde_no_delays = solve(prob, alg, saveat=0.001) +sol_dde_no_delays = solve(prob, alg, saveat=1) sol2 = DataFrame(sol_dde_no_delays) -@test isapprox(sol2[!, "GPi₊x(t)"][500:1000], sol[!, "GPi₊x(t)"][500:1000], rtol=1e-8) +@test isapprox(sol2[!, "gpi₊x(t)"][500:1000], sol[!, "gpi₊x(t)"][500:1000], rtol=1e-8) # Alternative version using adjacency matrix @@ -118,13 +114,13 @@ create_adjacency_edges!(g2, adj_matrix_lin) @named final_system = system_from_graph(g2, params) final_delays = graph_delays(g2) -sim_dur = 600.0 # Simulate for 10 Seconds +sim_dur = 2000.0 # Simulate for 2 Seconds final_system_sys = structural_simplify(final_system) prob = DDEProblem(final_system_sys, [], (0.0, sim_dur), constant_lags = final_delays) alg = MethodOfSteps(Vern7()) -sol_dde_no_delays = solve(prob, alg, saveat=0.001) +sol_dde_no_delays = solve(prob, alg, saveat=1) sol3 = DataFrame(sol_dde_no_delays) -@test isapprox(sol3[!, "GPi₊x(t)"][500:1000], sol[!, "GPi₊x(t)"][500:1000], rtol=1e-8) \ No newline at end of file +@test isapprox(sol3[!, "gpi₊x(t)"][500:1000], sol[!, "gpi₊x(t)"][500:1000], rtol=1e-8) \ No newline at end of file diff --git a/test/jansen_rit_component_tests_new_timing.jl b/test/jansen_rit_component_tests_new_timing.jl deleted file mode 100644 index a809737a..00000000 --- a/test/jansen_rit_component_tests_new_timing.jl +++ /dev/null @@ -1,126 +0,0 @@ -using Neuroblox, DifferentialEquations, DataFrames, Test, Distributions, Statistics, LinearAlgebra, Graphs, MetaGraphs, Random - -τ_factor = 1000 #needed because the old units were in seconds, and we need ms to be consistent - -# Create Regions -@named Str = jansen_ritC(τ=0.0022*τ_factor, H=20, λ=300, r=0.3) -@named gpe = jansen_ritC(τ=0.04*τ_factor, H=20, λ=400, r=0.1) -@named stn = jansen_ritC(τ=0.01*τ_factor, H=20, λ=500, r=0.1) -@named gpi = jansen_ritSC(τ=0.014*τ_factor, H=20, λ=400, r=0.1) -@named Th = jansen_ritSC(τ=0.002*τ_factor, H=10, λ=20, r=5) -@named EI = jansen_ritSC(τ=0.01*τ_factor, H=20, λ=5, r=5) -@named PY = jansen_ritSC(τ=0.001*τ_factor, H=20, λ=5, r=0.15) -@named II = jansen_ritSC(τ=2.0*τ_factor, H=60, λ=5, r=5) - -# Connect Regions through Adjacency Matrix -blox = [Str, gpe, stn, gpi, Th, EI, PY, II] -sys = [s.odesystem for s in blox] -connect = [s.connector for s in blox] - -@parameters C_Cor=60 C_BG_Th=60 C_Cor_BG_Th=5 C_BG_Th_Cor=5 - -adj_matrix_lin = [0 0 0 0 0 0 0 0; - -0.5*C_BG_Th -0.5*C_BG_Th C_BG_Th 0 0 0 0 0; - 0 -0.5*C_BG_Th 0 0 0 0 C_Cor_BG_Th 0; - 0 -0.5*C_BG_Th C_BG_Th 0 0 0 0 0; - 0 0 0 -0.5*C_BG_Th 0 0 0 0; - 0 0 0 0 C_BG_Th_Cor 0 6*C_Cor 0; - 0 0 0 0 0 4.8*C_Cor 0 -1.5*C_Cor; - 0 0 0 0 0 0 1.5*C_Cor 3.3*C_Cor] - -@named CBGTC_Circuit_lin = LinearConnections(sys=sys, adj_matrix=adj_matrix_lin, connector=connect) - -sim_dur = 2000.0 # Simulate for 2 seconds -mysys = structural_simplify(CBGTC_Circuit_lin) -sol = simulate(mysys, [], (0.0, sim_dur), [], Vern7(); saveat=1) -@test sol[!, "gpi₊x(t)"][4] ≈ -2219.2560209502685 #updated to new value in ms - -""" -Testing new Jansen-Rit blox - -This sets up the exact same system as above, but using the JansenRit with different flags cortical/subcortical flags. - -The purpose of this test is to make sure that setting up everything using System rather than ODESystem works as expected. -It also shows test code for the new system_from_graph calls and handling delays when everything is 0 (MethodOfSteps returns the -same thing as the old simulate call with AutoVern7(Rodas4() since there are no delays.) -""" - -# test new Jansen-Rit blox -@named Str = JansenRit(τ=0.0022*τ_factor, H=20, λ=300, r=0.3) -@named gpe = JansenRit(τ=0.04*τ_factor, cortical=false) # all default subcortical except τ -@named stn = JansenRit(τ=0.01*τ_factor, H=20, λ=500, r=0.1) -@named gpi = JansenRit(cortical=false) # default parameters subcortical Jansen Rit blox -@named Th = JansenRit(τ=0.002*τ_factor, H=10, λ=20, r=5) -@named EI = JansenRit(τ=0.01*τ_factor, H=20, λ=5, r=5) -@named PY = JansenRit(cortical=true) # default parameters cortical Jansen Rit blox -@named II = JansenRit(τ=2.0*τ_factor, H=60, λ=5, r=5) -blox = [Str, gpe, stn, gpi, Th, EI, PY, II] - -# test graphs -g = MetaDiGraph() -add_blox!.(Ref(g), blox) - -# Store parameters to be passed later on -params = @parameters C_Cor=60 C_BG_Th=60 C_Cor_BG_Th=5 C_BG_Th_Cor=5 - -add_edge!(g, 2, 1, Dict(:weight => -0.5*C_BG_Th)) -add_edge!(g, 2, 2, Dict(:weight => -0.5*C_BG_Th)) -add_edge!(g, 2, 3, Dict(:weight => C_BG_Th)) -add_edge!(g, 3, 2, Dict(:weight => -0.5*C_BG_Th)) -add_edge!(g, 3, 7, Dict(:weight => C_Cor_BG_Th)) -add_edge!(g, 4, 2, Dict(:weight => -0.5*C_BG_Th)) -add_edge!(g, 4, 3, Dict(:weight => C_BG_Th)) -add_edge!(g, 5, 4, Dict(:weight => -0.5*C_BG_Th)) -add_edge!(g, 6, 5, Dict(:weight => C_BG_Th_Cor)) -add_edge!(g, 6, 7, Dict(:weight => 6*C_Cor)) -add_edge!(g, 7, 6, Dict(:weight => 4.8*C_Cor)) -add_edge!(g, 7, 8, Dict(:weight => -1.5*C_Cor)) -add_edge!(g, 8, 7, Dict(:weight => 1.5*C_Cor)) -add_edge!(g, 8, 8, Dict(:weight => 3.3*C_Cor)) - -# add_edge!(g, 2, 1, Dict(:weight => -0.5*60, :delay => 0.01)) -# add_edge!(g, 2, 2, Dict(:weight => -0.5*60, :delay => 0.01)) -# add_edge!(g, 2, 3, Dict(:weight => 60, :delay => 0.01)) -# add_edge!(g, 3, 2, Dict(:weight => -0.5*60, :delay => 0.01)) -# add_edge!(g, 3, 7, Dict(:weight => 5, :delay => 0.01)) -# add_edge!(g, 4, 2, Dict(:weight => -0.5*60, :delay => 0.01)) -# add_edge!(g, 4, 3, Dict(:weight => 60, :delay => 0.01)) -# add_edge!(g, 5, 4, Dict(:weight => -0.5*60, :delay => 0.01)) -# add_edge!(g, 6, 5, Dict(:weight => 5, :delay => 0.01)) -# add_edge!(g, 6, 7, Dict(:weight => 6*60, :delay => 0.01)) -# add_edge!(g, 7, 6, Dict(:weight => 4.8*60, :delay => 0.01)) -# add_edge!(g, 7, 8, Dict(:weight => -1.5*60, :delay => 0.01)) -# add_edge!(g, 8, 7, Dict(:weight => 1.5*60, :delay => 0.01)) -# add_edge!(g, 8, 8, Dict(:weight => 3.3*60, :delay => 0.01)) - -@named final_system = system_from_graph(g, params) -final_delays = graph_delays(g) -sim_dur = 2000.0 # Simulate for 2 Seconds -final_system_sys = structural_simplify(final_system) -prob = DDEProblem(final_system_sys, - [], - (0.0, sim_dur), - constant_lags = final_delays) -alg = MethodOfSteps(Vern7()) -sol_dde_no_delays = solve(prob, alg, saveat=1) -sol2 = DataFrame(sol_dde_no_delays) -@test isapprox(sol2[!, "gpi₊x(t)"][500:1000], sol[!, "gpi₊x(t)"][500:1000], rtol=1e-8) - - -# Alternative version using adjacency matrix -g2 = MetaDiGraph() -add_blox!.(Ref(g2), blox) -create_adjacency_edges!(g2, adj_matrix_lin) - -@named final_system = system_from_graph(g2, params) -final_delays = graph_delays(g2) -sim_dur = 2000.0 # Simulate for 2 Seconds -final_system_sys = structural_simplify(final_system) -prob = DDEProblem(final_system_sys, - [], - (0.0, sim_dur), - constant_lags = final_delays) -alg = MethodOfSteps(Vern7()) -sol_dde_no_delays = solve(prob, alg, saveat=1) -sol3 = DataFrame(sol_dde_no_delays) -@test isapprox(sol3[!, "gpi₊x(t)"][500:1000], sol[!, "gpi₊x(t)"][500:1000], rtol=1e-8) \ No newline at end of file diff --git a/test/jansen_rit_hemodynamic_tests.jl b/test/jansen_rit_hemodynamic_tests.jl deleted file mode 100644 index 42c796e3..00000000 --- a/test/jansen_rit_hemodynamic_tests.jl +++ /dev/null @@ -1,43 +0,0 @@ -using Neuroblox, DifferentialEquations, DataFrames, Test, Distributions, Statistics, LinearAlgebra, Graphs, MetaGraphs, Random - -# Store parameters to be passed later on -params = @parameters C_Cor=60 C_BG_Th=60 C_Cor_BG_Th=5 C_BG_Th_Cor=5 - -adj_matrix_lin = [0 0 0 0 0 0 0 0 1; - -0.5*C_BG_Th -0.5*C_BG_Th C_BG_Th 0 0 0 0 0 0; - 0 -0.5*C_BG_Th 0 0 0 0 C_Cor_BG_Th 0 0; - 0 -0.5*C_BG_Th C_BG_Th 0 0 0 0 0 0; - 0 0 0 -0.5*C_BG_Th 0 0 0 0 0; - 0 0 0 0 C_BG_Th_Cor 0 6*C_Cor 0 0; - 0 0 0 0 0 4.8*C_Cor 0 -1.5*C_Cor 0; - 0 0 0 0 0 0 1.5*C_Cor 3.3*C_Cor 0; - 0 0 0 0 0 0 0 0 0] - -# test new Jansen-Rit blox -@named Str = JansenRit(τ=0.0022, H=20, λ=300, r=0.3) -@named GPe = JansenRit(τ=0.04, cortical=false) # all default subcortical except τ -@named STN = JansenRit(τ=0.01, H=20, λ=500, r=0.1) -@named GPi = JansenRit(cortical=false) # default parameters subcortical Jansen Rit blox -@named Th = JansenRit(τ=0.002, H=10, λ=20, r=5) -@named EI = JansenRit(τ=0.01, H=20, λ=5, r=5) -@named PY = JansenRit(cortical=true) # default parameters cortical Jansen Rit blox -@named II = JansenRit(τ=2.0, H=60, λ=5, r=5) -@named hemo = AlternativeBalloonModel() -blox = [Str, GPe, STN, GPi, Th, EI, PY, II, hemo] - -# Alternative version using adjacency matrix -g = MetaDiGraph() -add_blox!.(Ref(g), blox) -create_adjacency_edges!(g, adj_matrix_lin) - -@named final_system = system_from_graph(g, params) -final_delays = graph_delays(g) -sim_dur = 600.0 # Simulate for 10 Seconds -final_system_sys = structural_simplify(final_system) -prob = DDEProblem(final_system_sys, - [], - (0.0, sim_dur), - constant_lags = final_delays) -alg = MethodOfSteps(Vern7()) -sol_dde_no_delays = solve(prob, alg, saveat=0.001) -sol3 = DataFrame(sol_dde_no_delays) \ No newline at end of file diff --git a/test/old_component_tests/jansen_rit_tests.jl b/test/old_component_tests/jansen_rit_tests.jl deleted file mode 100644 index 289820aa..00000000 --- a/test/old_component_tests/jansen_rit_tests.jl +++ /dev/null @@ -1,79 +0,0 @@ -using Neuroblox, DifferentialEquations, DataFrames, Test, Distributions, Statistics, LinearAlgebra, Graphs, MetaGraphs, Random - -""" -Tests formerly in components.jl -""" -# Create Regions -@named Str = jansen_ritC(τ=0.0022, H=20, λ=300, r=0.3) -@named GPe = jansen_ritC(τ=0.04, H=20, λ=400, r=0.1) -@named STN = jansen_ritC(τ=0.01, H=20, λ=500, r=0.1) -@named GPi = jansen_ritSC(τ=0.014, H=20, λ=400, r=0.1) -@named Th = jansen_ritSC(τ=0.002, H=10, λ=20, r=5) -@named EI = jansen_ritSC(τ=0.01, H=20, λ=5, r=5) -@named PY = jansen_ritSC(τ=0.001, H=20, λ=5, r=0.15) -@named II = jansen_ritSC(τ=2.0, H=60, λ=5, r=5) - -# Connect Regions through Adjacency Matrix -blox = [Str, GPe, STN, GPi, Th, EI, PY, II] -sys = [s.odesystem for s in blox] -connect = [s.connector for s in blox] - -@parameters C_Cor=60 C_BG_Th=60 C_Cor_BG_Th=5 C_BG_Th_Cor=5 - -adj_matrix_lin = [0 0 0 0 0 0 0 0; - -0.5*C_BG_Th -0.5*C_BG_Th C_BG_Th 0 0 0 0 0; - 0 -0.5*C_BG_Th 0 0 0 0 C_Cor_BG_Th 0; - 0 -0.5*C_BG_Th C_BG_Th 0 0 0 0 0; - 0 0 0 -0.5*C_BG_Th 0 0 0 0; - 0 0 0 0 C_BG_Th_Cor 0 6*C_Cor 0; - 0 0 0 0 0 4.8*C_Cor 0 -1.5*C_Cor; - 0 0 0 0 0 0 1.5*C_Cor 3.3*C_Cor] - -@named CBGTC_Circuit_lin = LinearConnections(sys=sys, adj_matrix=adj_matrix_lin, connector=connect) - -sim_dur = 10.0 # Simulate for 10 Seconds -mysys = structural_simplify(CBGTC_Circuit_lin) -sol = simulate(mysys, [], (0.0, sim_dur), [], Vern7(); saveat=0.001) -@test sol[!, "GPi₊x(t)"][4] ≈ -0.48421810231972134 - -sol = simulate(mysys, random_initials(mysys,blox),(0.0, sim_dur), []) -@test size(sol)[2] == 17 # make sure that all the states are simulated (16 + timestamp) - -""" -Components Test for Cortical-Subcortical Jansen-Rit blox - Cortical: PFC (Just Pyramidal Cells (PY), no Exc. Interneurons or Inh. Interneurons) - Subcortical: Basal Ganglia (GPe, STN, GPi) + Thalamus -""" - -# Create Regions -@named GPe = JansenRitCBlox(τ=0.04, H=20, λ=400, r=0.1) -@named STN = JansenRitCBlox(τ=0.01, H=20, λ=500, r=0.1) -@named GPi = JansenRitCBlox(τ=0.014, H=20, λ=400, r=0.1) -@named Thalamus = JansenRitSCBlox(τ=0.002, H=10, λ=20, r=5) -@named PFC = JansenRitSCBlox(τ=0.001, H=20, λ=5, r=0.15) - -# Connect Regions through Adjacency Matrix -blox = [GPe, STN, GPi, Thalamus, PFC] -sys = [s.odesystem for s in blox] -connect = [s.connector for s in blox] - -@parameters C_Cor=60 C_BG_Th=60 C_Cor_BG_Th=5 C_BG_Th_Cor=5 - -adj_matrix_lin = [0 C_BG_Th 0 0 0; - -0.5*C_BG_Th 0 0 0 C_Cor_BG_Th; - -0.5*C_BG_Th C_BG_Th 0 0 0; - 0 0 -0.5*C_BG_Th 0 0; - 0 0 0 C_BG_Th_Cor 0] - -@named CBGTC_Circuit_lin = LinearConnections(sys=sys, adj_matrix=adj_matrix_lin, connector=connect) -sim_dur = 10.0 # Simulate for 10 Seconds -mysys = structural_simplify(CBGTC_Circuit_lin) -sol = simulate(mysys, [], (0.0, sim_dur), []) - -""" -New tests for JansenRit blox - -These are to make sure the new JansenRit blox works identically to the former one. -""" - -# see jansen_rit_component_tests.jl \ No newline at end of file diff --git a/test/old_component_tests/larter_breakspear_tests.jl b/test/old_component_tests/larter_breakspear_tests.jl deleted file mode 100644 index ea622124..00000000 --- a/test/old_component_tests/larter_breakspear_tests.jl +++ /dev/null @@ -1,21 +0,0 @@ -using Neuroblox, DifferentialEquations, DataFrames, Test, Distributions, Statistics, LinearAlgebra, Graphs, MetaGraphs, Random - -""" -Tests formerly in components.jl -""" - -""" -Larter-Breakspear model test -""" -@named lb = LarterBreakspearBlox() -sys = [lb.odesystem] -eqs = [sys[1].jcn ~ 0] -@named lb_connect = ODESystem(eqs,systems=sys) -lb_simpl = structural_simplify(lb_connect) - -@test length(states(lb_simpl)) == 3 - -prob = ODEProblem(lb_simpl,[0.5,0.5,0.5],(0,10.0),[]) -sol = solve(prob,Tsit5()) - -@test sol[1,10] ≈ -0.6246710908910991 \ No newline at end of file diff --git a/test/old_component_tests/wilson_cowan_tests.jl b/test/old_component_tests/wilson_cowan_tests.jl deleted file mode 100644 index 2f6ae827..00000000 --- a/test/old_component_tests/wilson_cowan_tests.jl +++ /dev/null @@ -1,21 +0,0 @@ -using Neuroblox, DifferentialEquations, DataFrames, Test, Distributions, Statistics, LinearAlgebra, Graphs, MetaGraphs, Random - - -""" -Tests formerly in components.jl -""" - -""" -wilson_cowan test - -Test for Wilson-Cowan model -""" -sim_dur = 10.0 #unsure where the sim_dur came from originally because it wasn't part of the test, so this is arbitrary -@named WC = WilsonCowanBlox() -sys = [WC.odesystem] -eqs = [sys[1].jcn ~ 0.0, sys[1].P ~ 0.0] -@named WC_sys = ODESystem(eqs,systems=sys) -WC_sys_s = structural_simplify(WC_sys) -prob = ODEProblem(WC_sys_s, [], (0,sim_dur), []) -sol = solve(prob,AutoVern7(Rodas4()),saveat=0.01) -#@test sol[1,end] ≈ 0.17513685727060388 \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 0bebe41d..7bab03ca 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -9,7 +9,7 @@ using SafeTestsets # @time @safetestset "Neural Signal Measurement Models Tests" begin include("measurementmodels.jl") end # @time @safetestset "Spectral Utilities Tests" begin include("spectraltools.jl") end @time @safetestset "Data Fitting Tests" begin include("datafitting.jl") end -@time @safetestset "ODE from Graph and simulate" begin include("graph_to_dataframe.jl") end +#@time @safetestset "ODE from Graph and simulate" begin include("graph_to_dataframe.jl") end #This no longer works because it's built on the old blocks @time @safetestset "Learning Tests" begin include("learning.jl") end @time @safetestset "Control Tests" begin include("controllers.jl") end @time @safetestset "Source Tests" begin include("source_components.jl") end @@ -20,9 +20,6 @@ using SafeTestsets # @time @safetestset "Fitting Tests" begin include("fitting.jl") end # @time @safetestset "Bayesian Fitting Tests" begin include("bayesian_fitting.jl") end -# Extra tests for comparison across blox versions -#@time @safetestset "New Jansen-Rit Tests" begin include("jansen_rit_component_tests_new_timing.jl") end -#@time @safetestset "Old Jansen-Rit Tests" begin include("old_component_tests/jansen_rit_tests.jl") end -#@time @safetestset "Old Wilson-Cowan Tests" begin include("old_component_tests/wilson_cowan_tests.jl") end -#@time @safetestset "New Larter-Breakspear Tests" begin include("new_LB_blox.jl") end -#@time @safetestset "Old Larter-Breakspear Tests" begin include("old_component_tests/larter_breakspear_tests.jl") end +# Extra tests illustrating use - could be removed once examples are written +#@time @safetestset "New Jansen-Rit Tests" begin include("jansen_rit_component_tests.jl") end +#@time @safetestset "New Larter-Breakspear Tests" begin include("new_LB_blox.jl") end \ No newline at end of file diff --git a/test/temp_test.jl b/test/temp_test.jl deleted file mode 100644 index b332e252..00000000 --- a/test/temp_test.jl +++ /dev/null @@ -1,17 +0,0 @@ -using Neuroblox, DifferentialEquations, DataFrames, Test, Distributions, Statistics, LinearAlgebra, Graphs, MetaGraphs, Random - -@named LB1 = LarterBreakspear() -@named LB2 = LarterBreakspear() - -adj = [0 1; 1 0] -g = MetaDiGraph() -add_blox!.(Ref(g), [LB1, LB2]) -create_adjacency_edges!(g, adj) - -@named sys = system_from_graph(g) -sys = structural_simplify(sys) - -sim_dur = 1e2 -prob = ODEProblem(sys, [], (0.0, sim_dur), []) -sol = solve(prob, AutoVern7(Rodas4()), saveat=0.1) -@test sol.retcode == ReturnCode.Success \ No newline at end of file