From 03996adc43e0133961757cd581db6913d9764ec9 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:27:31 +0200 Subject: [PATCH 01/92] test CI tools coverage --- Project.toml | 1 + README.md | 4 ++-- test/Artifacts.toml | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Project.toml b/Project.toml index a1fc698..7088f37 100644 --- a/Project.toml +++ b/Project.toml @@ -4,6 +4,7 @@ authors = ["Laura Beghini"] version = "0.1.0" [deps] +Coverage = "a2441757-f6aa-5fb2-8edb-039e3f45d037" DSP = "717857b8-e6f2-59f4-9121-6e50c889abd2" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" diff --git a/README.md b/README.md index 9e79511..10596f7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MRINavigator -[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. diff --git a/test/Artifacts.toml b/test/Artifacts.toml index 0492276..3b138b9 100644 --- a/test/Artifacts.toml +++ b/test/Artifacts.toml @@ -2,6 +2,6 @@ git-tree-sha1 = "208c7712788dc5e36c33a94974dbc847aade46f2" lazy = true - [[TestDataNavigator.download]] - sha256 = "d83423df8642b8d445c69ecca8a012265cb7a0d0ca25bd153a3044d953a0597f" - url = "https://github.com/NordicMRspine/TestData/raw/main/TestData.tar.gz" +[[TestDataNavigator.download]] +sha256 = "d83423df8642b8d445c69ecca8a012265cb7a0d0ca25bd153a3044d953a0597f" +url = "https://github.com/NordicMRspine/TestData/raw/main/TestData.tar.gz" From fc9bd1c906abd35fff5a3c8b27a3b6f6346512ad Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:30:07 +0200 Subject: [PATCH 02/92] test CI tools coverage --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 10596f7..55c452a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MRINavigator -[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +[![Build Status](https://github.com/NordicMRspine/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![codecov](https://codecov.io/gh/NordicMRspine/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 688bfa0508d5bd32c615360525d81e88abcea8a0 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:37:21 +0200 Subject: [PATCH 03/92] test CI tools coverage --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 55c452a..f36978e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,14 @@ # MRINavigator -[![Build Status](https://github.com/NordicMRspine/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![codecov](https://codecov.io/gh/NordicMRspine/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +![Lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg) +[![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) +[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=main)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=main) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From fe8dbf403114affa57042fec7b94a2aa0e212638 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:38:24 +0200 Subject: [PATCH 04/92] test CI tools coverage --- README.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/README.md b/README.md index f36978e..9b20b7e 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,6 @@ # MRINavigator - -![Lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg) [![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) -[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=main)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=main) +[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=setup)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=setup) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 117adcbffe17573c45dfe64f76250d833e9d1aea Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 17:22:35 +0200 Subject: [PATCH 05/92] test adjustdata --- test/DataTests.jl | 64 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/test/DataTests.jl b/test/DataTests.jl index 828bcaa..7acb637 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -1,20 +1,62 @@ -function test_AdjustData(datadir::String) +function test_AdjustData_raw(datadir::String) - data = FileIO.load(joinpath(datadir, "data.jld2"), "data") - flags = ExtractFlags(data) - noisemat = ExtractNoiseData!(data, flags) - ReverseBipolar!(data, flags) - flags_Bireverse = ExtractFlags(data) - numProfiles = size(data.profiles, 1) - RemoveRef!(data, 1, 1) + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + flags = ExtractFlags(rawData) + + # test order slices + number = length(rawData.profiles) + rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 + rawData = @set rawData.profiles[1].head.idx.slice = 2 + position = rawData.profiles[1].head.idx.slice + OrderSlices!(rawData) + position_ordered = rawData.profiles[1].head.idx.slice + + @test position_ordered < position + + # the noise acquision has flag 19 + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 + noisemat_rawData = rawData.profiles[1].data + noisemat = ExtractNoiseData!(rawData) - @test any(flags_Bireverse[:,22] .== false) @test any(flags_Bireverse[:,19] .== false) - @test size(data.profiles, 1) == numProfiles - 2 + @test noisemat == noisemat_rawData + + # test reverse bipolar + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 + reversed_profile = rawData.profiles[1].data + ReverseBipolar!(rawData) + flags_Bireverse = ExtractFlags(rawData) + + @test any(flags_Bireverse[:,22] .== false) + @test reversed_profile == reverse!(rawData.profiles[1].data) + + # check number of profiles + numflags = size(flags,1) + numProfiles = size(rawData.profiles, 1) + RemoveRef!(rawData) + slices = rawData.params["enc_lim_slice"].maximum + 1 + echoes = size(rawData.params["TE"],1) + 1 + + @test size(rawData.profiles, 1) == numProfiles - (slices * echoes) + @test numProfiles == numflags - 1 + +end + +function test_AdjustData_acq(datadir::String) + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + CopyTE!(rawData, acqData) + (nav, nav_time) = ExtractNavigator(rawData) + selectEcho!(acqData, 0) + selectSlice!(acqData, 0, nav, nav_time) + + @test acqData.traj[1].TE === convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) end + function test_SpineCenterline(datadir::String, tmpResdir::String) map = FileIO.load(joinpath(datadir, "map.jld2"), "map") OrderSlices!(map) @@ -47,7 +89,7 @@ end function testdata(datadir::String, tmpResdir::String) @testset "DataTests" begin - test_AdjustData() + test_AdjustData_raw() test_SpineCenterline() test_CoilSensMap() end From 12386828079aa7a313fd2bd3bbf6b49008bc9a39 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 8 Aug 2023 17:46:49 +0200 Subject: [PATCH 06/92] test progress --- Project.toml | 1 + test/DataTests.jl | 69 +++++++++++++++++++++++++++++++---------------- test/navTests.jl | 36 +++++++++++++++++++++++++ test/runtests.jl | 5 +++- 4 files changed, 87 insertions(+), 24 deletions(-) create mode 100644 test/navTests.jl diff --git a/Project.toml b/Project.toml index 7088f37..8ad7f0a 100644 --- a/Project.toml +++ b/Project.toml @@ -17,6 +17,7 @@ MRIReco = "bdf86e05-2d2b-5731-a332-f3fe1f9e047f" NIfTI = "a3a9e032-41b5-5fc4-967a-a6b7a19844d3" PolygonOps = "647866c9-e3ac-4575-94e7-e3d426903924" REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee" Scratch = "6c6a2e73-6563-6170-7368-637461726353" Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" diff --git a/test/DataTests.jl b/test/DataTests.jl index 7acb637..7b994d1 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -4,8 +4,7 @@ function test_AdjustData_raw(datadir::String) rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") flags = ExtractFlags(rawData) - # test order slices - number = length(rawData.profiles) + # test OrderSlices! rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 rawData = @set rawData.profiles[1].head.idx.slice = 2 position = rawData.profiles[1].head.idx.slice @@ -22,7 +21,7 @@ function test_AdjustData_raw(datadir::String) @test any(flags_Bireverse[:,19] .== false) @test noisemat == noisemat_rawData - # test reverse bipolar + # test reverse bipolar. The revese flag is number 22 rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 reversed_profile = rawData.profiles[1].data ReverseBipolar!(rawData) @@ -43,46 +42,70 @@ function test_AdjustData_raw(datadir::String) end -function test_AdjustData_acq(datadir::String) +function test_AdjustData_acq(datadir::String, tmpResdir::String) + numProfiles = size(rawData.profiles, 1) rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") acqData = AcquisitionData(rawData, estimateProfileCenter=true) CopyTE!(rawData, acqData) (nav, nav_time) = ExtractNavigator(rawData) - selectEcho!(acqData, 0) - selectSlice!(acqData, 0, nav, nav_time) + nav_rawData = zeros(ComplexF32, size(rawData.profiles[1].data)[1], size(rawData.profiles[1].data)[2], + rawData.params["reconSize"][2], rawData.params["enc_lim_slice"].maximum +1) + for ii = 4:2:numProfiles + nav_rawData[:,:,div(ii-2,2),1] = rawData.profiles[ii].data + end - @test acqData.traj[1].TE === convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) + @test acqData.traj[1].TE == convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) + # The first 2 profiles are reference data + @test nav[:,:,:,:] == nav_rawData + @test nav_time[1,1] == convert(typeof(nav_time[1,1]), rawData.profiles[4].head.acquisition_time_stamp) end -function test_SpineCenterline(datadir::String, tmpResdir::String) - map = FileIO.load(joinpath(datadir, "map.jld2"), "map") - OrderSlices!(map) - acq = AcquisitionData(map, estimateProfileCenter=true) - sensit = CompSensit(acq) - img = Reconstruct(acq, sensit) - niftiSaveMap(img, acq, tmpResdir * "/gre2D_Ref.nii") - - @test isfile(tmpResdir * "/gre2D_Ref.nii") - -end - function test_CoilSensMap(datadir::String, tmpResdir::String) + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") acqMap = AcquisitionData(map, estimateProfileCenter=true) data = FileIO.load(joinpath(datadir, "data.jld2"), "data") acqData = AcquisitionData(data, estimateProfileCenter=true) sensit = CompSensit(acqMap) - sensit = ResizeSensit!(sensit, acqMap, acqData) + #binarize sensit + thresh = 0.5* mean(abs.(sensit)) + cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) + sensit_binar = zeros(Int64, size(sensit)) + sensit_binar[cartes_index_binar] .= 1 + sensit_binar = circshift(sensit_binar, (0,-1,0,0)) + #resize sensit + sensit_resized = ResizeSensit!(sensit, acqMap, acqData) + #compare sensit with basic version img = directreco(acqData) sensit_basic = estimateCoilSensitivities(img) sensit_basic = sensit_basic[:,:,1,:,:,1] - - err = norm(vec(sensit)-vec(sensit_basic))/norm(vec(sensit_basic)) + err = norm(vec(sensit_resized)-vec(sensit_basic))/norm(vec(sensit_basic)) + # test whole algorithm @test err < 3 + # test ResizeSensit! + @test size(sensit_resized) == size(sensit_basic) + # test removeBehindBack! + err = norm(vec(reverse(sensit_binar[:,33:end,1,:], dims = 2))-vec(sensit_binar[:,1:32,1,:]))/norm(vec(sensit_binar[:,1:32,1,:])) + @test err < 0.15 + + # Save sensitivity maps in a temporary folder + FileIO.save(joinpath(tmpResdir, "sensit.jld2"), "sensit", sensit) + +end + +function test_niftsave(datadir::String, tmpResdir::String) + + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acq = AcquisitionData(map, estimateProfileCenter=true) + sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + img = Reconstruct(acq, sensit) + niftiSaveImg(img, acq, tmpResdir * "/gre2D_Ref.nii") + + @test isfile(tmpResdir * "/gre2D_Ref.nii") end @@ -90,7 +113,7 @@ end function testdata(datadir::String, tmpResdir::String) @testset "DataTests" begin test_AdjustData_raw() - test_SpineCenterline() test_CoilSensMap() + test_niftisave() end end \ No newline at end of file diff --git a/test/navTests.jl b/test/navTests.jl new file mode 100644 index 0000000..9c5d215 --- /dev/null +++ b/test/navTests.jl @@ -0,0 +1,36 @@ + +function test_knav(datadir::String, tmpResdir::String) + + # Load data + rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(map, estimateProfileCenter=true) + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + deleteat!(rawData.profiles, 1:2) # remove reference data + acqData = AcquisitionData(data, estimateProfileCenter=true) + noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") + sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + sensit = ResizeSensit!(sensit, acqMap, acqData) + + # Simulate nav data + + # Simulate centerline + + # Simulate trac + + # Navigator correction + + # Reconstruct the data + + img = Reconstruct(acqData, sensit, noisemat) + + @test + +end + + +function test(datadir::String, tmpResdir::String) + @testset "NavigatorTests" begin + test_knav() + test_navunwrap() + end +end \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 0450f09..130cc8f 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,6 +1,7 @@ using MRINavigator using FileIO using Test +using Coverage using Scratch using LazyArtifacts @@ -11,5 +12,7 @@ const datadir = joinpath(artifact"TestDataNavigator", "data") const tmpResdir = @get_scratch!("tmp") @info "If you want to check the output of the tests, please head to $tmpResdir." +include("dataTests.jl") +include("navTests.jl") -include("DataTests.jl") \ No newline at end of file +coverage = process_folder() \ No newline at end of file From 50867feb16c61b985deae80d22f93010c4fc6b26 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:27:31 +0200 Subject: [PATCH 07/92] test CI tools coverage --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9b20b7e..10596f7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # MRINavigator -[![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) -[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=setup)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=setup) + +[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From d63bcf924b27649afd78707cc56b9e2beb8f109c Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:30:07 +0200 Subject: [PATCH 08/92] test CI tools coverage --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 10596f7..55c452a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MRINavigator -[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +[![Build Status](https://github.com/NordicMRspine/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![codecov](https://codecov.io/gh/NordicMRspine/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 742d5875af5da6fc2b8ade6036bbc40d3d65b5b2 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:37:21 +0200 Subject: [PATCH 09/92] test CI tools coverage --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 55c452a..f36978e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,14 @@ # MRINavigator -[![Build Status](https://github.com/NordicMRspine/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![codecov](https://codecov.io/gh/NordicMRspine/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +![Lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg) +[![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) +[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=main)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=main) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 42dc0228f5cac6c7851505a2f0443c045a529a11 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:38:24 +0200 Subject: [PATCH 10/92] test CI tools coverage --- README.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/README.md b/README.md index f36978e..9b20b7e 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,6 @@ # MRINavigator - -![Lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg) [![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) -[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=main)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=main) +[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=setup)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=setup) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 3404b57d028cc3f6e5df71e5d2e9a39b3263cd3b Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 17:22:35 +0200 Subject: [PATCH 11/92] test adjustdata --- test/DataTests.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/test/DataTests.jl b/test/DataTests.jl index 7b994d1..9f97f98 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -113,6 +113,7 @@ end function testdata(datadir::String, tmpResdir::String) @testset "DataTests" begin test_AdjustData_raw() + test_SpineCenterline() test_CoilSensMap() test_niftisave() end From a6992675bf575e5abc1c18e72ee017460475f87f Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 8 Aug 2023 17:46:49 +0200 Subject: [PATCH 12/92] test progress --- test/DataTests.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/test/DataTests.jl b/test/DataTests.jl index 9f97f98..7b994d1 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -113,7 +113,6 @@ end function testdata(datadir::String, tmpResdir::String) @testset "DataTests" begin test_AdjustData_raw() - test_SpineCenterline() test_CoilSensMap() test_niftisave() end From 2818b06a375295bbfbdda8ddb0728a70bbdd74af Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Fri, 11 Aug 2023 16:41:00 +0200 Subject: [PATCH 13/92] test progress --- src/NavParameters.jl | 2 +- src/Navigator.jl | 14 ++--- test/DataTests.jl | 15 +++-- test/navTests.jl | 135 +++++++++++++++++++++++++++++++++++++++---- test/runtests.jl | 5 +- test/testFunction.jl | 12 ++++ test/unwrapTests.jl | 0 7 files changed, 155 insertions(+), 28 deletions(-) create mode 100644 test/testFunction.jl create mode 100644 test/unwrapTests.jl diff --git a/src/NavParameters.jl b/src/NavParameters.jl index 5455e41..465690c 100644 --- a/src/NavParameters.jl +++ b/src/NavParameters.jl @@ -24,7 +24,7 @@ Define default parameters for data loading, navigator correction and image recon * `path_noise::String` - path to the file where the noise acquisition will be saved. The file extension must be .jld2 * `path_results::String` - path to the results folder -# Additional not required parameters are +# Additional optional parameters are * `path_niftiMap::String` - path to the file where the reconstructed reference data will be saved in nifti format. The file extension must be .nii * `path_centerline::String` - path to the folder where the Spinal Cord Toolbox (SCT) centerline results will be saved * `path_physio::String` - path to the physiological trace recording in .mat format. The variable should be a two columns vector. diff --git a/src/Navigator.jl b/src/Navigator.jl index f57fd89..980c6eb 100644 --- a/src/Navigator.jl +++ b/src/Navigator.jl @@ -1,4 +1,4 @@ -export NavCorr! +export NavCorr!, comp_centerline, wrap_corr!, TE_corr!, apply_corr! """ navOutput = NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::Dict{Symbol, Any}, addData::additionalNavInput) where {T} @@ -62,13 +62,13 @@ function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::D if params[:corr_type] == "FFT_unwrap" (wrapped_points, correlation) = find_wrapped(nav, addData.nav_time, addData.trace, addData.numslices, addData.TR) - nav = wrap_corr(nav, wrapped_points, correlation, addData.numslices) + nav = wrap_corr!(nav, wrapped_points, correlation, addData.numslices) end nav_return = deepcopy(nav) # Correct for different TEs - nav = TE_corr(nav, acqData, addData.dt_nav, addData.TE_nav, addData.numsamples, addData.numechoes) + nav = TE_corr!(nav, acqData, addData.dt_nav, addData.TE_nav, addData.numsamples, addData.numechoes) nav = exp.(im*nav) # Apply the correction to the data @@ -139,7 +139,7 @@ function comp_centerline(addData::additionalNavInput) end """ - nav = TE_corr(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T} + nav = TE_corr!(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T} Compute the phase value for the navigator correction basing on the exact acquisition time of each data sample in the line and for each echo. Return a four dimensional navigator array. @@ -154,7 +154,7 @@ Return a four dimensional navigator array. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ -function TE_corr(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T} +function TE_corr!(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T} # Set up navigator phase timing nav = nav ./ TE_nav @@ -230,7 +230,7 @@ function remove_ref_ph!(nav::Array{Complex{T}, 4}, lines::Int64, index::Int64) w end """ - wrap_corr(nav::Array{Float64, 4}, wrapped_points::Array{Int8, 2}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64) + wrap_corr!(nav::Array{Float64, 4}, wrapped_points::Array{Int8, 2}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64) Unwrap the wrapped points identified with the find_wrapped funtion. These functions can be used only if physiological recording is available. @@ -241,7 +241,7 @@ Unwrap the wrapped points identified with the find_wrapped funtion. These functi * `slices::Int64` - number of slices """ -function wrap_corr(nav::Array{Float64, 4}, wrapped_points::Array{Int8, 2}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64) +function wrap_corr!(nav::Array{Float64, 4}, wrapped_points::Array{Int8, 2}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64) invertNavSign!(nav, correlation, slices) wrapped_points_local = reshape(wrapped_points, (1, 1, size(wrapped_points)...)) diff --git a/test/DataTests.jl b/test/DataTests.jl index 7b994d1..99404f8 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -17,8 +17,9 @@ function test_AdjustData_raw(datadir::String) rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 noisemat_rawData = rawData.profiles[1].data noisemat = ExtractNoiseData!(rawData) + flags_nonoise = ExtractFlags(rawData) - @test any(flags_Bireverse[:,19] .== false) + @test any(flags_nonoise[:,19] .== false) @test noisemat == noisemat_rawData # test reverse bipolar. The revese flag is number 22 @@ -42,8 +43,9 @@ function test_AdjustData_raw(datadir::String) end -function test_AdjustData_acq(datadir::String, tmpResdir::String) +function test_AdjustData_acq(datadir::String) + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") numProfiles = size(rawData.profiles, 1) rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") acqData = AcquisitionData(rawData, estimateProfileCenter=true) @@ -97,7 +99,7 @@ function test_CoilSensMap(datadir::String, tmpResdir::String) end -function test_niftsave(datadir::String, tmpResdir::String) +function test_niftisave(datadir::String, tmpResdir::String) map = FileIO.load(joinpath(datadir, "map.jld2"), "map") acq = AcquisitionData(map, estimateProfileCenter=true) @@ -112,8 +114,9 @@ end function testdata(datadir::String, tmpResdir::String) @testset "DataTests" begin - test_AdjustData_raw() - test_CoilSensMap() - test_niftisave() + test_AdjustData_raw(datadir) + test_AdjustData_acq(datadir) + test_CoilSensMap(datadir, tmpResdir) + test_niftisave(datadir, tmpResdir) end end \ No newline at end of file diff --git a/test/navTests.jl b/test/navTests.jl index 9c5d215..b0033ff 100644 --- a/test/navTests.jl +++ b/test/navTests.jl @@ -1,36 +1,147 @@ +function test_centerline_position(datadir::String) -function test_knav(datadir::String, tmpResdir::String) + rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(rawMap, estimateProfileCenter=true) + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + deleteat!(rawData.profiles, 1:2) # remove reference data + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") + centerline = [32.0] + addData = additionalNavInput(noise, rawData, acqData, acqMap, nothing, nothing, centerline) + centerline = comp_centerline(addData) + + @test centerline == [128] +end + +function test_wrap_corr() + + slices = 1 + nav = ones(Float64, 1,1,128,1) + nav[1,1,:,1] = sin.(Array(1:80:10240)) + wrapped_points = zeros(Int8, 128, 1) + wrapped_points[10:13,1] .= 1 + # test with positive correlation + correlation = [0.5] + nav_unwrapped = deepcopy(nav) + nav_unwrapped = wrap_corr!(nav_unwrapped, wrapped_points, correlation, slices) + + @test any(nav_unwrapped[1,1,10:13,1] .== nav[1,1,10:13,1] .+ 2pi) + + # test with negaticve correlation + correlation = [-0.5] + nav_unwrapped = deepcopy(nav) + nav_unwrapped = wrap_corr!(nav_unwrapped, wrapped_points, correlation, slices) + + @test any(nav_unwrapped[1,1,10:13,1] .== nav[1,1,10:13,1] .- 2pi) + +end + +function test_apply_corr(datadir::String, tmpResdir::String) # Load data - rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") - acqMap = AcquisitionData(map, estimateProfileCenter=true) rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") deleteat!(rawData.profiles, 1:2) # remove reference data - acqData = AcquisitionData(data, estimateProfileCenter=true) + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + CopyTE!(rawData, acqData) + acqData_nocorr = deepcopy(acqData) noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") sensit = ResizeSensit!(sensit, acqMap, acqData) # Simulate nav data + nav = ones(Float64, 1,1,128,1) + nav[1,1,:,1] = 3 .* sin.(Array(1:1:128)) + + nav = TE_corr!(nav, acqData, 1e-5, acqData.traj[1].TE .* 1e-3, 256, 1) + nav = exp.(im .* nav) + apply_corr!(nav, acqData, 1,128,256,1) - # Simulate centerline + # Reconstruct the data + img_corr = Reconstruct(acqData, sensit, noise) + img = Reconstruct(acqData_nocorr, sensit, noise) - # Simulate trac + # Reverse the correction + nav = ones(Float64, 1,1,128,1) + nav[1,1,:,1] = - 3 .* sin.(Array(1:1:128)) + nav = TE_corr!(nav, acqData, 1e-5, acqData.traj[1].TE .* 1e-3, 256, 1) + nav = exp.(im .* nav) + apply_corr!(nav, acqData, 1,128,256,1) + img_corrcorr = Reconstruct(acqData, sensit, noise) - # Navigator correction + uniformity = measUniformity(img.data, sensit) + uniformity_corr = measUniformity(img_corr.data, sensit) + uniformity_corrcorr = measUniformity(img_corrcorr.data, sensit) - # Reconstruct the data + @test uniformity - uniformity_corrcorr < 1e-6 + @test uniformity - uniformity_corr > 1.3 + + err = norm(vec(img_corrcorr.data)-vec(img.data))/norm(vec(img.data)) + @test err < 1e-6 + + err = norm(vec(img_corr.data)-vec(img.data))/norm(vec(img.data)) + @test err > 1 + +end + +function test_FFTnav_unwrap(datadir::String, tmpResdir::String) + + # Load data + rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(rawMap, estimateProfileCenter=true) + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + deleteat!(rawData.profiles, 1:2) # remove reference data + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + acqData.traj[1].TE = rawData.profiles[2].head.user_int[8] .* 1e-3 + (nav, nav_time) = ExtractNavigator(rawData) + nav_time = nav_time[:,1:1] .* 2.5 + acqData_nocorr = deepcopy(acqData) + noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") + sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + sensit = ResizeSensit!(sensit, acqMap, acqData) + centerline = [32.0] + + # Simulate nav data + nav = ones(Complex{Float32}, 1,1,128,1) + nav[1,1,:,1] = exp.(im * 2 * sin.(Array(0.5:0.5:64))) + nav = repeat(nav, 256, 32, 1, 1) + + # Simulate resp recording + trace_data = sin.(Array(-4:0.1:68)) + trace_time = range(findmin(nav_time)[1] - 7 * 500, findmax(nav_time)[1] + 10 * 500, length(trace_data)) + trace = hcat(trace_time, trace_data) - img = Reconstruct(acqData, sensit, noisemat) + # FFT correction + addData = additionalNavInput(noise, rawData, acqData, acqMap, nav_time, trace, centerline) + params = defaultNavParams() + params[:corr_type] = "FFT_unwrap" + params[:use_SCT] = true + output = NavCorr!(nav, acqData, params, addData) + + # Reconstruct the data + img_corr = Reconstruct(acqData, sensit, noise) + img = Reconstruct(acqData_nocorr, sensit, noise) - @test + uniformity = measUniformity(img.data, sensit) + uniformity_corr = measUniformity(img_corr.data, sensit) + @test uniformity - uniformity_corr > 1.5 + + err = norm(vec(img_corr.data)-vec(img.data))/norm(vec(img.data)) + @test err > 1 + + @test norm(vec(output.navigator[1,1,:,1])-vec(angle.(nav[1,1,:,1])))/norm(vec(angle.(nav[1,1,:,1]))) < 0.06 + + @test output.centerline == [128] + end + function test(datadir::String, tmpResdir::String) @testset "NavigatorTests" begin - test_knav() - test_navunwrap() + test_centerline_position(datadir::String) + test_wrap_corr() + test_apply_corr(datadir, tmpResdir) + test_FFTnav_unwrap() end end \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 130cc8f..ed9cbed 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -2,6 +2,7 @@ using MRINavigator using FileIO using Test using Coverage +using Setfield using Scratch using LazyArtifacts @@ -12,7 +13,7 @@ const datadir = joinpath(artifact"TestDataNavigator", "data") const tmpResdir = @get_scratch!("tmp") @info "If you want to check the output of the tests, please head to $tmpResdir." +include("testFunction.jl") include("dataTests.jl") include("navTests.jl") - -coverage = process_folder() \ No newline at end of file +include("unwrapTests.jl") \ No newline at end of file diff --git a/test/testFunction.jl b/test/testFunction.jl new file mode 100644 index 0000000..ab3ed75 --- /dev/null +++ b/test/testFunction.jl @@ -0,0 +1,12 @@ + +function measUniformity(img::Matrix{T}, sensit::Array{T,4}) where {T} + + maxval = findmax(abs.(img))[1] + img = img ./ maxval + thresh = 0.5* mean(abs.(sensit[:,:,1,1])) + mask_index = findall(x -> x > thresh, abs.(sensit[:,:,1,1])) + uniformity = 1 / std(abs.(img[mask_index])) + + return uniformity + +end \ No newline at end of file diff --git a/test/unwrapTests.jl b/test/unwrapTests.jl new file mode 100644 index 0000000..e69de29 From 7586181aabf26eb901142eb48d71aaca84dd5bf8 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Fri, 11 Aug 2023 16:47:24 +0200 Subject: [PATCH 14/92] weird commit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9b20b7e..1603d5e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # MRINavigator -[![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) -[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=setup)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=setup) +[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/Laura2305/MRINavigator.jl) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 1656746813c60fdbe031ad2118dd2ee5688711ca Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Sat, 12 Aug 2023 22:58:57 +0200 Subject: [PATCH 15/92] modified unwrap for 1 slice data --- src/Unwrap.jl | 5 ++++- test/navTests.jl | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Unwrap.jl b/src/Unwrap.jl index 7513ee6..3358fcd 100644 --- a/src/Unwrap.jl +++ b/src/Unwrap.jl @@ -26,9 +26,12 @@ function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace # Invert navigator sign if the correlation is negative invertNavSign!(nav_norm, correlation, slices) - # Find navigator slices with higher correlationt to the trace + # Find navigator slices with higher correlation to the trace max_corr = findmax(abs.(correlation))[1] std_corr = std(abs.(correlation)) + if isnan(std_corr) + std_corr = 1 + end corr_relevant = findall(>(max_corr - 1.5*std_corr), abs.(correlation)) size_corr_relevant = size(corr_relevant,1) diff --git a/test/navTests.jl b/test/navTests.jl index b0033ff..ab546a8 100644 --- a/test/navTests.jl +++ b/test/navTests.jl @@ -117,6 +117,9 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) params[:use_SCT] = true output = NavCorr!(nav, acqData, params, addData) + + + # Reconstruct the data img_corr = Reconstruct(acqData, sensit, noise) img = Reconstruct(acqData_nocorr, sensit, noise) @@ -136,12 +139,11 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) end - function test(datadir::String, tmpResdir::String) @testset "NavigatorTests" begin test_centerline_position(datadir::String) test_wrap_corr() test_apply_corr(datadir, tmpResdir) - test_FFTnav_unwrap() + test_FFTnav_unwrap(datadir, tmpResdir) end end \ No newline at end of file From f2743a08cd85f04b7c8ba2774bdb8b7785c49f39 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Sat, 12 Aug 2023 23:31:44 +0200 Subject: [PATCH 16/92] finished navTests --- test/navTests.jl | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/test/navTests.jl b/test/navTests.jl index ab546a8..9fa6271 100644 --- a/test/navTests.jl +++ b/test/navTests.jl @@ -102,7 +102,7 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) # Simulate nav data nav = ones(Complex{Float32}, 1,1,128,1) - nav[1,1,:,1] = exp.(im * 2 * sin.(Array(0.5:0.5:64))) + nav[1,1,:,1] = exp.(im * 3.25 * sin.(Array(0.5:0.5:64)) .* sin.(Array(0:0.0235:3))) nav = repeat(nav, 256, 32, 1, 1) # Simulate resp recording @@ -117,9 +117,6 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) params[:use_SCT] = true output = NavCorr!(nav, acqData, params, addData) - - - # Reconstruct the data img_corr = Reconstruct(acqData, sensit, noise) img = Reconstruct(acqData_nocorr, sensit, noise) @@ -132,9 +129,13 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) err = norm(vec(img_corr.data)-vec(img.data))/norm(vec(img.data)) @test err > 1 - @test norm(vec(output.navigator[1,1,:,1])-vec(angle.(nav[1,1,:,1])))/norm(vec(angle.(nav[1,1,:,1]))) < 0.06 + @test 0.3 < norm(vec(output.navigator[1,1,:,1])-vec(angle.(nav[1,1,:,1])))/norm(vec(angle.(nav[1,1,:,1]))) < 0.5 @test output.centerline == [128] + + @test 0.7 < output.correlation[1] < 0.9 + + @test length(findall(x -> x==1, output.wrapped_points)) >= 1 end From da715dfb24c6890e43c87dc372524f4a1eaa0db5 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 14 Aug 2023 10:38:33 +0200 Subject: [PATCH 17/92] bug fix unwrap --- src/Unwrap.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Unwrap.jl b/src/Unwrap.jl index 3358fcd..5fb27fe 100644 --- a/src/Unwrap.jl +++ b/src/Unwrap.jl @@ -289,8 +289,7 @@ function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, delay = alignsignals(trace_data[time_relevant], nav_align[time_relevant])[2] trace_time = time - if delay < TR/2 - print(delay) + if -TR/2 < delay < TR/2 trace_time = circshift(time, delay) end From 12c306964eab1456e5511c6b47303c8c7333a41e Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 14 Aug 2023 18:00:56 +0200 Subject: [PATCH 18/92] ultimate unit tests --- Project.toml | 3 ++- src/NavData.jl | 4 ++-- src/Unwrap.jl | 17 ++++++++++------- test/DataTests.jl | 7 ++++--- test/navTests.jl | 30 ++++++++++++++++-------------- test/runtests.jl | 4 ++++ test/unwrapTests.jl | 38 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 76 insertions(+), 27 deletions(-) diff --git a/Project.toml b/Project.toml index 8ad7f0a..b5359f3 100644 --- a/Project.toml +++ b/Project.toml @@ -8,6 +8,7 @@ Coverage = "a2441757-f6aa-5fb2-8edb-039e3f45d037" DSP = "717857b8-e6f2-59f4-9121-6e50c889abd2" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" MRIBase = "f7771a9a-6e57-4e71-863b-6e4b6a2f17df" @@ -16,8 +17,8 @@ MRIFiles = "5a6f062f-bf45-497d-b654-ad17aae2a530" MRIReco = "bdf86e05-2d2b-5731-a332-f3fe1f9e047f" NIfTI = "a3a9e032-41b5-5fc4-967a-a6b7a19844d3" PolygonOps = "647866c9-e3ac-4575-94e7-e3d426903924" -REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee" +REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" Scratch = "6c6a2e73-6563-6170-7368-637461726353" Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" diff --git a/src/NavData.jl b/src/NavData.jl index 3cd7292..ab6e523 100644 --- a/src/NavData.jl +++ b/src/NavData.jl @@ -6,7 +6,7 @@ mutable struct additionalNavInput numechoes::Int64 numsamples::Int64 numlines::Int64 - TR::Int64 + TR::Float64 TE_nav::Float64 dt_nav::Float64 freq_enc_FoV::Union{Array{Int64}, Nothing} @@ -58,7 +58,7 @@ function additionalNavInput( numechoes = numContrasts(acqData) numsamples = acqData.encodingSize[1] numlines = convert(Int64, size(acqData.kdata[1],1)/numsamples) - TR = rawData.params["TR"] + TR = rawData.params["TR"] *1e-3 ii=1 while rawData.profiles[ii].head.user_int[8] < rawData.profiles[ii+1].head.user_int[8] diff --git a/src/Unwrap.jl b/src/Unwrap.jl index 5fb27fe..6b9f46f 100644 --- a/src/Unwrap.jl +++ b/src/Unwrap.jl @@ -1,5 +1,7 @@ +export find_wrapped + """ - find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Int64) + find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Float64) Identify the position of the wrapped points in the navigator phase estimates. The respiratory belt recording is necessary. Return the position of the wrapped points and the correlation between each navigator slice and the trace data. @@ -9,9 +11,9 @@ Return the position of the wrapped points and the correlation between each navig * `nav_time::Array{Float64, 2}` - navigator data time stamps in ms from the beginning of the day, for each slice * `trace::Array{Float64, 2}` - physiological trace recording. Two columns vector. The first column contains the time stamps in ms from the beginning of the day * `slices::Int64` - number of slices -* `TR::Int64` - acqusition repetition time (TR) +* `TR::Float64` - acqusition repetition time (TR) in seconds """ -function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Int64) +function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Float64) time = trace[:,1] trace_data = trace[:,2] ./ findmax(trace[:,2])[1] .* pi/2 @@ -270,7 +272,7 @@ end """ - trace_time = align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Int64) + trace_time = align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Float64) Align the signal in the first imput (time stamps in the second imput) to the signal in the third imput (time stamps in the fourth input). acquisition TR in the last input. Use the finddelay function from DSP.jl, find the peak of the signals cross-correlation. @@ -281,15 +283,16 @@ Return the new time vector for the signal in the third input. * `nav_time_align::Array{Float64, 1}` - time stamps for the navigator phase estimates in ms from the beginning of the day * `trace_data::Array{Float64, 1}` - respiratory belt recording in ms from the beginning of the day * `time::Array{Float64, 1}` - time stamps for the respiratory belt recording in se -* `TR::Int64` - acquisition repetition time +* `TR::Float64` - acquisition repetition time in seconds """ -function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Int64) +function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Float64) time_relevant = findall(x -> (x>(findmin(abs.(nav_time_align))[1]) && x< (findmax(abs.(nav_time_align))[1])), time) delay = alignsignals(trace_data[time_relevant], nav_align[time_relevant])[2] trace_time = time + sampling_freq = size(time,1)/(time[end]-time[1])*1000 - if -TR/2 < delay < TR/2 + if -TR/2 < delay / sampling_freq < TR/2 trace_time = circshift(time, delay) end diff --git a/test/DataTests.jl b/test/DataTests.jl index 99404f8..005a45c 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -47,7 +47,6 @@ function test_AdjustData_acq(datadir::String) rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") numProfiles = size(rawData.profiles, 1) - rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") acqData = AcquisitionData(rawData, estimateProfileCenter=true) CopyTE!(rawData, acqData) (nav, nav_time) = ExtractNavigator(rawData) @@ -73,7 +72,7 @@ function test_CoilSensMap(datadir::String, tmpResdir::String) acqData = AcquisitionData(data, estimateProfileCenter=true) sensit = CompSensit(acqMap) #binarize sensit - thresh = 0.5* mean(abs.(sensit)) + thresh = 0.5 * mean(abs.(sensit)) cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) sensit_binar = zeros(Int64, size(sensit)) sensit_binar[cartes_index_binar] .= 1 @@ -119,4 +118,6 @@ function testdata(datadir::String, tmpResdir::String) test_CoilSensMap(datadir, tmpResdir) test_niftisave(datadir, tmpResdir) end -end \ No newline at end of file +end + +testdata(datadir, tmpResdir) \ No newline at end of file diff --git a/test/navTests.jl b/test/navTests.jl index 9fa6271..46598be 100644 --- a/test/navTests.jl +++ b/test/navTests.jl @@ -36,16 +36,18 @@ function test_wrap_corr() end -function test_apply_corr(datadir::String, tmpResdir::String) +function test_apply_corr(datadir::String) # Load data rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") deleteat!(rawData.profiles, 1:2) # remove reference data acqData = AcquisitionData(rawData, estimateProfileCenter=true) CopyTE!(rawData, acqData) + rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(rawMap, estimateProfileCenter=true) acqData_nocorr = deepcopy(acqData) noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") - sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + sensit = CompSensit(acqMap) sensit = ResizeSensit!(sensit, acqMap, acqData) # Simulate nav data @@ -83,7 +85,7 @@ function test_apply_corr(datadir::String, tmpResdir::String) end -function test_FFTnav_unwrap(datadir::String, tmpResdir::String) +function test_FFTnav_unwrap(datadir::String) # Load data rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") @@ -96,7 +98,7 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) nav_time = nav_time[:,1:1] .* 2.5 acqData_nocorr = deepcopy(acqData) noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") - sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + sensit = sensit = CompSensit(acqMap) sensit = ResizeSensit!(sensit, acqMap, acqData) centerline = [32.0] @@ -107,7 +109,7 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) # Simulate resp recording trace_data = sin.(Array(-4:0.1:68)) - trace_time = range(findmin(nav_time)[1] - 7 * 500, findmax(nav_time)[1] + 10 * 500, length(trace_data)) + trace_time = range(findmin(nav_time)[1] - 8 * 500, findmax(nav_time)[1] + 9 * 500, length(trace_data)) trace = hcat(trace_time, trace_data) # FFT correction @@ -127,24 +129,24 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) @test uniformity - uniformity_corr > 1.5 err = norm(vec(img_corr.data)-vec(img.data))/norm(vec(img.data)) - @test err > 1 - - @test 0.3 < norm(vec(output.navigator[1,1,:,1])-vec(angle.(nav[1,1,:,1])))/norm(vec(angle.(nav[1,1,:,1]))) < 0.5 + @test err > 0.7 @test output.centerline == [128] - @test 0.7 < output.correlation[1] < 0.9 + @test 0.6 < output.correlation[1] < 0.8 @test length(findall(x -> x==1, output.wrapped_points)) >= 1 end -function test(datadir::String, tmpResdir::String) +function testnav(datadir::String) @testset "NavigatorTests" begin - test_centerline_position(datadir::String) + test_centerline_position(datadir) test_wrap_corr() - test_apply_corr(datadir, tmpResdir) - test_FFTnav_unwrap(datadir, tmpResdir) + test_apply_corr(datadir) + test_FFTnav_unwrap(datadir) end -end \ No newline at end of file +end + +testnav(datadir) \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index ed9cbed..c76d4f9 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,8 +1,12 @@ using MRINavigator +using MRIReco +using MRICoilSensitivities using FileIO using Test using Coverage using Setfield +using Statistics +using ImageUtils using Scratch using LazyArtifacts diff --git a/test/unwrapTests.jl b/test/unwrapTests.jl index e69de29..e739c1e 100644 --- a/test/unwrapTests.jl +++ b/test/unwrapTests.jl @@ -0,0 +1,38 @@ +function test_find_wrapped() + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + deleteat!(rawData.profiles, 1:2) + (nav, nav_time) = ExtractNavigator(rawData) + nav_time = nav_time[:,1:1] .* 2.5 + + # Simulate nav data + nav_unwrapped = ones(Float64, 1,1,128,1) + nav_unwrapped[1,1,:,1] = 3 * sin.(Array(0.5:0.5:64)) .+0.2 + nav = angle.(exp.(im * nav_unwrapped)) + wrapped_groundTruth = findall(x -> x > 0.1, abs.(nav .- nav_unwrapped)[1,1,:,:]) + + # Simulate resp recording + trace_data = sin.(Array(-5:0.1:68)) + trace_time = range(findmin(nav_time)[1] - 9 * 500, findmax(nav_time)[1] + 8 * 500, length(trace_data)) + trace = hcat(trace_time, trace_data) + slices = 1 + TR = convert(Int64, rawData.params["TR"]) .* 1e-3 + + (wrapped_points, correlation) = find_wrapped(nav, nav_time, trace, slices, TR) + wrapped_computed = findall(x-> x==1, wrapped_points) + + nav = wrap_corr!(nav, wrapped_points, correlation, 1) + + @test 0.5 < correlation[1] < 0.6 + @test wrapped_computed == wrapped_groundTruth + +end + + +function testunwrap() + @testset "UnwrapTests" begin + test_find_wrapped() + end +end + +testunwrap() \ No newline at end of file From 55f010d8a1b1d9a9d7c5517fdf1471bb427df86a Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 15 Aug 2023 14:09:50 +0200 Subject: [PATCH 19/92] fix and improve find_wrapped function --- src/NavData.jl | 13 ++++++------- src/NavParameters.jl | 4 ++-- src/Navigator.jl | 2 +- src/Unwrap.jl | 45 ++++++++++++++++++++++---------------------- test/unwrapTests.jl | 3 +-- 5 files changed, 33 insertions(+), 34 deletions(-) diff --git a/src/NavData.jl b/src/NavData.jl index ab6e523..39de468 100644 --- a/src/NavData.jl +++ b/src/NavData.jl @@ -6,7 +6,6 @@ mutable struct additionalNavInput numechoes::Int64 numsamples::Int64 numlines::Int64 - TR::Float64 TE_nav::Float64 dt_nav::Float64 freq_enc_FoV::Union{Array{Int64}, Nothing} @@ -37,10 +36,11 @@ Construct the additional data structure that is needed as imput to navCorr! * `acqData::AcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl # Optional arguments with default value = nothing -* `acqMap::Union{AcquisitionData, Nothing} = nothing` - acquisition data structure obtained converting reference data with MRIReco.jl -* `nav_time::Union{Array{Complex{Float32}, 2}, Nothing}` - time stamps for the navigator data obtained with ExtractNavigator (in ms from the beginning of the day) -* `trace::Union{Matrix{Float64}, Nothing}` - respiratory trace time stamps and values in matrix with two colunms (1:time [ms], 2:trace) -* `centerline::Union{Vector{Float64}, Nothing}` - coordinates of the spinal cord ceterline obtained with callSCT +* `acqMap::Union{AcquisitionData, Nothing} = nothing` - acquisition data structure obtained converting reference data with MRIReco.jl +* `nav_time::Union{Array{Complex{Float32}, 2}, Nothing}` - time stamps for the navigator data obtained with ExtractNavigator (in ms from the beginning of the day) +* `trace::Union{Matrix{Float64}, Nothing}` - respiratory trace time stamps and values in matrix with two colunms (1:time [ms], 2:trace). + Include time points before and after the image acquisition (at least 2 s). +* `centerline::Union{Vector{Float64}, Nothing}` - coordinates of the spinal cord ceterline obtained with callSCT MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ @@ -58,7 +58,6 @@ function additionalNavInput( numechoes = numContrasts(acqData) numsamples = acqData.encodingSize[1] numlines = convert(Int64, size(acqData.kdata[1],1)/numsamples) - TR = rawData.params["TR"] *1e-3 ii=1 while rawData.profiles[ii].head.user_int[8] < rawData.profiles[ii+1].head.user_int[8] @@ -73,7 +72,7 @@ function additionalNavInput( (freq_enc_FoV, freq_enc_samples, phase_enc_FoV, phase_enc_samples) = Find_scaling_sensit(acqMap, acqData) end - return additionalNavInput(numslices, numechoes, numsamples, numlines, TR, TE_nav, dt_nav, + return additionalNavInput(numslices, numechoes, numsamples, numlines, TE_nav, dt_nav, freq_enc_FoV, freq_enc_samples, phase_enc_samples, nav_time, noisemat, trace, centerline) end diff --git a/src/NavParameters.jl b/src/NavParameters.jl index 465690c..5820041 100644 --- a/src/NavParameters.jl +++ b/src/NavParameters.jl @@ -27,8 +27,8 @@ Define default parameters for data loading, navigator correction and image recon # Additional optional parameters are * `path_niftiMap::String` - path to the file where the reconstructed reference data will be saved in nifti format. The file extension must be .nii * `path_centerline::String` - path to the folder where the Spinal Cord Toolbox (SCT) centerline results will be saved -* `path_physio::String` - path to the physiological trace recording in .mat format. The variable should be a two columns vector. - The first column should contain the time in seconds from the beginning of the day +* `path_physio::String` - path to the physiological trace recording in .mat format. The variable should be a two columns vector (1:time [ms], 2:trace). + The time should be expressed in seconds from the beginning of the day and contains time points befroe and after the image acquisiton (at least 2 s). ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 SCT reference: https://spinalcordtoolbox.com diff --git a/src/Navigator.jl b/src/Navigator.jl index 980c6eb..6888295 100644 --- a/src/Navigator.jl +++ b/src/Navigator.jl @@ -61,7 +61,7 @@ function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::D wrapped_points = nothing if params[:corr_type] == "FFT_unwrap" - (wrapped_points, correlation) = find_wrapped(nav, addData.nav_time, addData.trace, addData.numslices, addData.TR) + (wrapped_points, correlation) = find_wrapped(nav, addData.nav_time, addData.trace, addData.numslices) nav = wrap_corr!(nav, wrapped_points, correlation, addData.numslices) end diff --git a/src/Unwrap.jl b/src/Unwrap.jl index 6b9f46f..a643bf7 100644 --- a/src/Unwrap.jl +++ b/src/Unwrap.jl @@ -1,25 +1,26 @@ export find_wrapped """ - find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Float64) + find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64) Identify the position of the wrapped points in the navigator phase estimates. The respiratory belt recording is necessary. Return the position of the wrapped points and the correlation between each navigator slice and the trace data. # Arguments -* `nav::Array{Float64, 4}` - navigator phase estimates +* `nav::Array{Float64, 4}` - navigator phase estimates * `nav_time::Array{Float64, 2}` - navigator data time stamps in ms from the beginning of the day, for each slice -* `trace::Array{Float64, 2}` - physiological trace recording. Two columns vector. The first column contains the time stamps in ms from the beginning of the day -* `slices::Int64` - number of slices -* `TR::Float64` - acqusition repetition time (TR) in seconds +* `trace::Array{Float64, 2}` - physiological trace recording. Two columns vector (1:time [ms], 2:trace). The first column contains the time stamps in ms from the beginning of the day. + Include time points before and after the image acquisition (at least 2 s). +* `slices::Int64` - number of slices """ -function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Float64) +function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64) time = trace[:,1] trace_data = trace[:,2] ./ findmax(trace[:,2])[1] .* pi/2 - trace_data = smooth_trace(time, trace_data) + trace_data = smooth_lowpass(time, trace_data) + trace_data = smooth_highpass(time, trace_data)[:,1] nav_norm = deepcopy(nav[1,1,:,:]) - nav_norm = smooth_nav(nav_time, nav_norm, slices) + nav_norm = smooth_highpass(nav_time, nav_norm, slices) # Interpolate the trace values to the navigator time points for each slice trace_data_int = interpolate(trace_data, time, nav_time, slices) @@ -43,15 +44,16 @@ function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace order = sortperm(nav_time_align) nav_align = nav_align[order] nav_time_align = nav_time_align[order] - nav_align = smooth_trace(nav_time_align, nav_align) # smooth the signal after combining multiple slices + nav_align = smooth_lowpass(nav_time_align, nav_align) # smooth the signal after combining multiple slices nav_align = interpolate(nav_align, nav_time_align, time) - trace_time = align(nav_align, nav_time_align, trace_data, time, TR) + trace_time = align(nav_align, nav_time_align, trace_data, time) # Invert navigator sign if the correlation is negative invertNavSign!(nav_norm, correlation, slices) # Interpolate the trace values to the navigator time points for each slice - time_relevant = findall(x -> (x>(findmin(abs.(nav_time_align))[1]) && x< (findmax(abs.(nav_time_align))[1])), trace_time) + sampling_time = (time[end]-time[1]) / size(time,1) + time_relevant = findall(x -> (x>(findmin(abs.(nav_time))[1] - 5 * sampling_time) && x< (findmax(abs.(nav_time))[1]) + 5 * sampling_time), trace_time) trace_data_int = interpolate(trace_data[time_relevant], trace_time[time_relevant], nav_time, slices) # Compute correlation after alignemnt @@ -108,7 +110,7 @@ function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace end """ - trace_data = smooth_trace(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) + trace_data = smooth_lowpass(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) Smooth the physiological trace recording using a butterworth low-pass filter (cut-off frequency 0.7Hz, 3 poles) @@ -116,7 +118,7 @@ Smooth the physiological trace recording using a butterworth low-pass filter (cu * `time::Array{Float64, 1}` - time in ms from the beginning of the day for the belt recording * `trace_data::Array{Float64, 1}` - belt recording """ -function smooth_trace(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) +function smooth_lowpass(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) sampling_freq = size(time,1)/(time[end]-time[1])*1000 filter = digitalfilter(Lowpass(0.7, fs = sampling_freq), Butterworth(3)) @@ -126,16 +128,16 @@ function smooth_trace(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) end """ - nav_norm = smooth_nav(nav_time::Array{Float64, 2}, nav_norm::Array{Float64, 2}, slices:: Int64) + nav_norm = smooth_highpass(nav_time::Array{Float64, 2}, nav_norm::Array{Float64, 2}, slices:: Int64) Remove the low frequencies components from the navigatior phase estimate using a butterworth high-pass filter (cut-off frequency 0.5Hz, 3 poles) # Arguments -* `nav_time::Array{Float64, 2}` - navigator data time stamps in ms from the beginning of the day, for each slice -* `nav_norm::Array{Float64, 1}` - navigator phase estimates +* `nav_time::Array{Float64}` - navigator data time stamps in ms from the beginning of the day, for each slice +* `nav_norm::Array{Float64}` - navigator phase estimates * `slices::Int64` - number of slices """ -function smooth_nav(nav_time::Array{Float64, 2}, nav_norm::Array{Float64, 2}, slices::Int64) +function smooth_highpass(nav_time::Array{Float64}, nav_norm::Array{Float64}, slices = 1) sampling_freq = size(nav_time, 1) * size(nav_time,2) / (findmax(abs.(nav_time))[1] - findmin(abs.(nav_time))[1]) *1000 filter = digitalfilter(Highpass(0.15, fs = sampling_freq), Butterworth(5)) @@ -272,9 +274,9 @@ end """ - trace_time = align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Float64) + trace_time = align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}) -Align the signal in the first imput (time stamps in the second imput) to the signal in the third imput (time stamps in the fourth input). acquisition TR in the last input. +Align the signal in the first imput (time stamps in the second imput) to the signal in the third imput (time stamps in the fourth input). Use the finddelay function from DSP.jl, find the peak of the signals cross-correlation. Return the new time vector for the signal in the third input. @@ -283,16 +285,15 @@ Return the new time vector for the signal in the third input. * `nav_time_align::Array{Float64, 1}` - time stamps for the navigator phase estimates in ms from the beginning of the day * `trace_data::Array{Float64, 1}` - respiratory belt recording in ms from the beginning of the day * `time::Array{Float64, 1}` - time stamps for the respiratory belt recording in se -* `TR::Float64` - acquisition repetition time in seconds """ -function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Float64) +function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}) time_relevant = findall(x -> (x>(findmin(abs.(nav_time_align))[1]) && x< (findmax(abs.(nav_time_align))[1])), time) delay = alignsignals(trace_data[time_relevant], nav_align[time_relevant])[2] trace_time = time sampling_freq = size(time,1)/(time[end]-time[1])*1000 - if -TR/2 < delay / sampling_freq < TR/2 + if -1 < delay / sampling_freq < 1 trace_time = circshift(time, delay) end diff --git a/test/unwrapTests.jl b/test/unwrapTests.jl index e739c1e..61a7f86 100644 --- a/test/unwrapTests.jl +++ b/test/unwrapTests.jl @@ -16,9 +16,8 @@ function test_find_wrapped() trace_time = range(findmin(nav_time)[1] - 9 * 500, findmax(nav_time)[1] + 8 * 500, length(trace_data)) trace = hcat(trace_time, trace_data) slices = 1 - TR = convert(Int64, rawData.params["TR"]) .* 1e-3 - (wrapped_points, correlation) = find_wrapped(nav, nav_time, trace, slices, TR) + (wrapped_points, correlation) = find_wrapped(nav, nav_time, trace, slices) wrapped_computed = findall(x-> x==1, wrapped_points) nav = wrap_corr!(nav, wrapped_points, correlation, 1) From 67056fbb8d8a5534196cf1f4bb555d0188085a29 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 15 Aug 2023 14:34:23 +0200 Subject: [PATCH 20/92] added dependencies --- Project.toml | 6 ++++-- src/MRINavigator.jl | 5 +++++ src/main.jl | 35 +++++------------------------------ 3 files changed, 14 insertions(+), 32 deletions(-) diff --git a/Project.toml b/Project.toml index b5359f3..f7b7c44 100644 --- a/Project.toml +++ b/Project.toml @@ -4,14 +4,16 @@ authors = ["Laura Beghini"] version = "0.1.0" [deps] +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" Coverage = "a2441757-f6aa-5fb2-8edb-039e3f45d037" DSP = "717857b8-e6f2-59f4-9121-6e50c889abd2" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" -JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -MRIBase = "f7771a9a-6e57-4e71-863b-6e4b6a2f17df" +LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" +MAT = "23992714-dd62-5051-b70f-ba57cb901cac" MRICoilSensitivities = "c57eb701-aafc-44a2-a53c-128049758959" MRIFiles = "5a6f062f-bf45-497d-b654-ad17aae2a530" MRIReco = "bdf86e05-2d2b-5731-a332-f3fe1f9e047f" diff --git a/src/MRINavigator.jl b/src/MRINavigator.jl index 90ac921..583e2a7 100644 --- a/src/MRINavigator.jl +++ b/src/MRINavigator.jl @@ -11,6 +11,11 @@ using NIfTI using REPL.TerminalMenus using DataInterpolations using DSP +using FileIO +using MAT +using CSV +using DataFrames + include("AdjustData.jl") include("CoilSensMap.jl") diff --git a/src/main.jl b/src/main.jl index 24dbcad..660d62f 100644 --- a/src/main.jl +++ b/src/main.jl @@ -1,39 +1,14 @@ -#= -function loadData(params::Dict{Symbol, Any}) - rawData = RawAcquisitionData(ISMRMRDFile(params[:path_imgData]), - slice = params[:slices], - contrast = params[:echoes], - repetition = params[:rep]) - if params[:rep] != 0 - for ii = 1:length(rawData.profiles) - rawData = @set rawData.profiles[ii].head.idx.repetition = 0 - end - end - OrderSlices!(rawData) - if params[:rep] == 0 - noisemat = ExtractNoiseData!(rawData) - FileIO.save(params[:path_noise],"noisemat",noisemat) - else - noisemat = FileIO.load(params[:path_noise], "noisemat") - end - ReverseBipolar!(rawData) - RemoveRef!(rawData, params[:slices], params[:echoes]) - (nav, nav_time) = ExtractNavigator(rawData, params[:slices]) - nav_time = nav_time .* 2.5 # seconds from beginning of the day - rawMap = RawAcquisitionData(ISMRMRDFile(params[:path_mapData]), - slice = params[:slices], - contrtast = params[:echoes], - repetition = params[:rep]) - -end -COPY THE USAGE EXAMPLE HERE AND DIVIDE IT IN FUNCTIONS -=# \ No newline at end of file + + + function nav_pipeline() + + end \ No newline at end of file From 6ccfb65268a3e4763714a5267fa918b6e5286dca Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 15 Aug 2023 18:12:48 +0200 Subject: [PATCH 21/92] main function update, find_centerline_pos name change, comp_SCT, use_SCT name change --- src/AdjustData.jl | 7 +- src/CoilSensMap.jl | 28 ++++++- src/NavParameters.jl | 10 +-- src/Navigator.jl | 10 +-- src/SpineCenterline.jl | 30 +++++++- src/main.jl | 161 ++++++++++++++++++++++++++++++++++++++++- test/navTests.jl | 4 +- 7 files changed, 229 insertions(+), 21 deletions(-) diff --git a/src/AdjustData.jl b/src/AdjustData.jl index 3dd7f80..6f7f829 100644 --- a/src/AdjustData.jl +++ b/src/AdjustData.jl @@ -131,10 +131,12 @@ end """ RemoveRef!(rawData::RawAcquisitionData, slices::Union{Vector{Int64}, Nothing}, echoes::Union{Vector{Int64}, Nothing}) -Remove reference data that are not useful for the navigator-based crrection from acquisitions with phase stabilization on Siemens scanners. +Remove reference data that are not useful for the navigator-based correction from acquisitions with phase stabilization on Siemens scanners. +Make sure that this is needed on your data checking the time stamps with mapVBVD in Matlab. Not solid to recalls. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 +mapVBVD reference: https://github.com/CIC-methods/FID-A/blob/master/inputOutput/mapVBVD/README.md # Arguments * `rawData::RawAcquisitionData` - raw data structure obtained loading raw data with MRIReco.jl @@ -201,6 +203,7 @@ end Extract the navigator profiles from the MRIReco.jl raw data structure. These are registered with the same indices (contract, slice, encoding step) as the image data for the first echo time. Return a navigator array and a navigator time array. The navigator array has four dimensions in order: k-space samples, coils, k-space lines, slices. +Effective only if the navigator profile was acquired after the first image profile. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 @@ -209,6 +212,8 @@ MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ function ExtractNavigator(rawData::RawAcquisitionData) + @info "The navigaotr extraction is effective only if the navigator profile was acquired after the first image profile." + total_num = length(rawData.profiles) numberslices = rawData.params["enc_lim_slice"].maximum +1 contrasts = zeros(Int64, total_num) diff --git a/src/CoilSensMap.jl b/src/CoilSensMap.jl index f66da8a..b837948 100644 --- a/src/CoilSensMap.jl +++ b/src/CoilSensMap.jl @@ -1,7 +1,7 @@ -export CompSensit, ResizeSensit!, CompRoughMask +export CompSensit, ResizeSensit!, CompRoughMask, CompResizeSaveSensit """ - sensit = CompSensit(acq::AcquisitionData, thresh = 0.135) + sensit = CompSensit(acq::AcquisitionData, thresh = 0.13) Compute the coils sensitivity maps with masking tuned for spinal cord imaging. Use MRICoilSensitivities.jl from MRIReco.jl alternatively. @@ -12,7 +12,7 @@ MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 * `acqData::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl * `tresh::Float64` - masking treshold: increase for reduced mask size, decrease for extended mask size """ -function CompSensit(acq::AcquisitionData, thresh = 0.135) +function CompSensit(acq::AcquisitionData, thresh = 0.13) sensit = espirit(acq,(6,6),30,eigThresh_1=0.02, eigThresh_2=0) slices = numSlices(acq) @@ -217,4 +217,26 @@ function Find_scaling_sensit(acqMap::AcquisitionData{T}, acqData::AcquisitionDat return freq_enc_FoV, freq_enc_samples, phase_enc_FoV, phase_enc_samples +end + +""" + CompResizeSaveSensit(acqMap::AcquisitionData, acqData::AcquisitionData, path_sensit::String) + +Compute, resize to the image data dimension and save the coils sensitivity maps with masking tuned for spinal cord imaging. +Use MRICoilSensitivities.jl from MRIReco.jl alternatively. + +MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 + +# Arguments +* `acqMap::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl +* `acqData::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl +* `tresh::Float64` - masking treshold: increase for reduced mask size, decrease for extended mask size +""" +function CompResizeSaveSensit(acqMap::AcquisitionData, acqData::AcquisitionData, path_sensit::String, thresh = 0.13) + + sensit = CompSensit(acqMap, thresh) + sensit = ResizeSensit!(sensit, acqMap, acqData) + #Save coil sensitivity + FileIO.save(path_sensit,"sensit",sensit) + end \ No newline at end of file diff --git a/src/NavParameters.jl b/src/NavParameters.jl index 5820041..02fbfc9 100644 --- a/src/NavParameters.jl +++ b/src/NavParameters.jl @@ -9,11 +9,10 @@ Define default parameters for data loading, navigator correction and image recon * `slices::Union{Nothing, Vector}` - number of the slices to be loaded, nothing means all slices * `echoes::Union{Nothing, Vector}` - number of the echoes to be loaded, nothing means all echoes * `rep::Int` - repetition to be loaded, the first repetition is 0. It is mandatory to select one -* `reconstruct_map::Bool` - reconstruct the reference scan and save it in nifti format. To be unsed for spinal cord centerline computation * `comp_sensit::Bool` - compute the sensitivity maps using the reference scan -* `comp_SCT::Bool` - use the Spinal Cord Toolbox (SCT) to find the centerlne position +* `comp_centerline::Bool` - use the Spinal Cord Toolbox (SCT) to find the centerlne position * `trust_SCT::Bool` - trust SCT or display the resutls and wait for user feedback with the julia REPL -* `use_SCT::Bool` - use the spinal cord centerline information in the navigator-based correction +* `use_centerline::Bool` - use the spinal cord centerline information in the navigator-based correction * `corr_type::String` - correction type. Options: "none", "knav", "FFT", "FFT_unwrap" * `FFT_interval::String` - interval in mm to be considered for the FFT based approach @@ -40,11 +39,10 @@ function defaultNavParams() params[:slices] = nothing params[:echoes] = nothing params[:rep] = 0 - params[:reconstruct_map] = false params[:comp_sensit] = true - params[:comp_SCT] = false + params[:comp_centerline] = true params[:trust_SCT] = false - params[:use_SCT] = false + params[:use_centerline] = true params[:corr_type] = "FFT" params[:FFT_interval] = 35 # [millimiters] diff --git a/src/Navigator.jl b/src/Navigator.jl index 6888295..8296d27 100644 --- a/src/Navigator.jl +++ b/src/Navigator.jl @@ -1,4 +1,4 @@ -export NavCorr!, comp_centerline, wrap_corr!, TE_corr!, apply_corr! +export NavCorr!, comp_centerline_pos, wrap_corr!, TE_corr!, apply_corr! """ navOutput = NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::Dict{Symbol, Any}, addData::additionalNavInput) where {T} @@ -28,8 +28,8 @@ function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::D #noisemat = fftshift(fft(ifftshift(noisemat, [1]), [1]), [1]) nav_center = div(addData.numsamples, 2) - if params[:use_SCT] == true - centerline = comp_centerline(addData) + if params[:use_centerline] == true + centerline = comp_centerline_pos(addData) for ii = 1:addData.numslices nav[:,:,:,ii] = circshift(nav[:,:,:,ii], nav_center-centerline[ii]) end @@ -111,14 +111,14 @@ function comp_weights(navabs::Array{T, 4}, noisestd::Matrix{T}, lines::Int64, sl end """ - centerline = comp_centerline(addData::additionalNavInput) + centerline = comp_centerline_pos(addData::additionalNavInput) Convert and return centerline position from the reference data cordinate to the acquisition data coordinates (number of voxels). # Arguments * `addData::additionalNavInput` - mandatory additional data structure obtained with the constructor: additionalNavInput """ -function comp_centerline(addData::additionalNavInput) +function comp_centerline_pos(addData::additionalNavInput) # Compute resolution and disc freq_enc_ref_res = addData.freq_enc_FoV[1] / addData.freq_enc_samples[1] diff --git a/src/SpineCenterline.jl b/src/SpineCenterline.jl index 6b094c1..dc9c7e9 100644 --- a/src/SpineCenterline.jl +++ b/src/SpineCenterline.jl @@ -1,4 +1,4 @@ -export ReconstructSaveMap, ReconstructMap, niftiSaveImg, callSCT +export ReconstructSaveMap, ReconstructMap, niftiSaveImg, callSCT, findCenterline """ @@ -126,4 +126,30 @@ function callSCT(params::Dict{Symbol, Any}) end end -end \ No newline at end of file +end + + +""" + findCenterline(params::Dict{Symbol, Any}) + +Reconstruct the reference data, call spinal cord toolbox and find spinal cord centerline. +If trust_SCT = false in the parameters dictionary the user interaction is required in the Julia REPL. + +# Arguments +* `params::Dict{Symbol, Any}` - paramerters dictionary + +SCT reference: https://spinalcordtoolbox.com +""" +function findCenterline(params::Dict{Symbol, Any}) + + @info "Reco and Save" + # reconstruct and save in nifti the refence data + ReconstructSaveMap(params[:path_niftiMap], params[:path_refData]) + + @info "Find SC Centerline" + # find the spinal cord centerline on the reconstructed reference data + if params[:comp_centerline] == true + callSCT(params) + end + +end diff --git a/src/main.jl b/src/main.jl index 660d62f..de1b3d2 100644 --- a/src/main.jl +++ b/src/main.jl @@ -1,14 +1,171 @@ +export runNavPipeline, saveNoise, loadRawData, convertRawToAcq +""" + runNavPipeline(params::Dict{Symbol, Any}) +Run the navigator pipeline. Return reconstructed image and navigaotr correction output (check NavCorr!). +# Arguments +* `params::Dict{Symbol, Any}` - MRINavigator parameter structure, check defaultNavParams() for info +""" +function runNavPipeline(params::Dict{Symbol, Any}) + + findCenterline(params) + saveNoise(params[:path_imgData], params[:path_noise]::String) + rawData = loadRawData(params) + @info "load noise" + # load noise nacquisition + noisemat = FileIO.load(params[:path_noise], "noisemat") + @info "Extract navigator data. The time stamps are accurate only for Siemens data." + @info "The navigaotr extraction is effective only if the navigator profile was acquired after the first image profile." + (nav, nav_time) = ExtractNavigator(rawData) + nav_time = nav_time .* 2.5 # seconds from beginning of the day (Siemens data only) + acqData = convertRawToAcq(rawData) + # slice and echo selection on acquisition data + selectEcho!(acqData, params[:echoes]) + selectSlice!(acqData, params[:slices], nav, nav_time) + @info "read ref data" + # read reference data + rawMap = RawAcquisitionData(ISMRMRDFile(params[:path_refData])) + OrderSlices!(rawMap) + acqMap = AcquisitionData(rawMap, estimateProfileCenter=true) + @info "sensemaps" + ## compute or load the coil sensitivity map + if params[:comp_sensit] + CompResizeSaveSensit(acqMap, acqData, params[:path_sensit]) + end - function nav_pipeline() + #Load coil sensitivity + sensit = FileIO.load(params[:path_sensit], "sensit") + sensit = reshape(sensit[:,:,params[:slices],:],(size(sensit,1), size(sensit,2), + size(params[:slices],1), size(sensit,4))) - end \ No newline at end of file + # Load centerline (ON LINUX: file is centerline.csv, ON WINDOWS AND MAC: is centerline.nii.csv) + centerline = nothing + if params[:use_centerline] == true + try + run(`cat /etc/os-release`, wait = true) + catch e + if isa(e, ProcessFailedException) + centerline = CSV.read(params[:path_centerline] * "centerline.nii.csv", DataFrame, header=false) + else + centerline = CSV.read(params[:path_centerline] * "centerline.csv", DataFrame, header=false) + end + end + centerline = centerline.Column1 + centerline = centerline[params[:slices]] + end + + #Load trace + trace = nothing + if params[:corr_type] == "FFT_unwrap" + trace = read(matopen(params[:path_physio] * string(params[:rep]+1) * ".mat"), "data") + end + + @info "nav corr" + # Navigator correction + if params[:corr_type] != "none" + addData = additionalNavInput(noisemat, rawData, acqData, acqMap, nav_time, trace, centerline) + output = NavCorr!(nav, acqData, params, addData) + end + + @info "recon" + ## Reconstruct the data + img = Reconstruct(acqData, sensit, noisemat) + + return output, img + +end + + +""" + saveNoise(path_imgData::String, path_noise::String) + +Extract the noise acquisition form the image data and save it. +Call ExtractNoiseData!, check this function for more info. + +# Arguments +* `path_imgData::String` - path to the ISMRMRD file containing the image data +* `path_noise::String` - path where the noise file will be saved + +ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 +""" +function saveNoise(path_imgData::String, path_noise::String) + + @info "Load first rep, save noise acquisition" + # load the first repetition, slice and echo and save the noise acquisition for optimal results + # the noise acquisition is saved in the first repetition only + rawData = RawAcquisitionData(ISMRMRDFile(path_imgData), + slice = 0, contrast = 0, repetition = 0) + noisemat = ExtractNoiseData!(rawData) + FileIO.save(path_noise,"noisemat",noisemat) + +end + + +""" + loadRawData(params::Dict{Symbol, Any}) + +Load the raw data file saved in ISMRMRD format in julia using MRIReco.jl +Call ExtractNoiseData!, OrderSlices!, ReverseBipolar!, RemoveRef!. +Check the specific functions for info. + +MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 +ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 + +# Arguments +* `params::Dict{Symbol, Any}` - MRINavigator parameter structure, check defaultNavParams() for info +""" +function loadRawData(params::Dict{Symbol, Any}) + + @info "Load Raw data" + # load raw data + rawData = RawAcquisitionData(ISMRMRDFile(params[:path_imgData]), + repetition = params[:rep]) + + if params[:rep] != 0 + for ii = 1:length(rawData.profiles) + rawData = @set rawData.profiles[ii].head.idx.repetition = 0 + end + else + ExtractNoiseData!(rawData) # remove the noise acquisition only necessary for the first rep + end + OrderSlices!(rawData) + ReverseBipolar!(rawData) + RemoveRef!(rawData) + + return rawData + +end + + +""" + convertRawToAcq(rawData::::RawAcquisitionData) + +Convert raw data to acquisition data using MRIReco.jl, then apply small adjustments. +Return acquisition data structure. + +MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 + +# Arguments +* `rawData::RawAcquisitionData` - raw data structure obtained loading raw data with MRIReco.jl +""" +function convertRawToAcq(rawData::RawAcquisitionData) + + @info "convert data and adjust" + # convert to acquisitionData (note: the estimateProfileCenter flag is set to true) + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + CopyTE!(rawData, acqData) + AdjustSubsampleIndices!(acqData) + acqData = convertUndersampledData(acqData) + + return acqDats + +end \ No newline at end of file diff --git a/test/navTests.jl b/test/navTests.jl index 46598be..1440e33 100644 --- a/test/navTests.jl +++ b/test/navTests.jl @@ -8,7 +8,7 @@ function test_centerline_position(datadir::String) noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") centerline = [32.0] addData = additionalNavInput(noise, rawData, acqData, acqMap, nothing, nothing, centerline) - centerline = comp_centerline(addData) + centerline = comp_centerline_pos(addData) @test centerline == [128] end @@ -116,7 +116,7 @@ function test_FFTnav_unwrap(datadir::String) addData = additionalNavInput(noise, rawData, acqData, acqMap, nav_time, trace, centerline) params = defaultNavParams() params[:corr_type] = "FFT_unwrap" - params[:use_SCT] = true + params[:use_centerline] = true output = NavCorr!(nav, acqData, params, addData) # Reconstruct the data From a4e43dab4035e2753df84cf48ccc0049ab3ca397 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 15 Aug 2023 21:47:16 +0200 Subject: [PATCH 22/92] typo --- src/main.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.jl b/src/main.jl index de1b3d2..0714718 100644 --- a/src/main.jl +++ b/src/main.jl @@ -166,6 +166,6 @@ function convertRawToAcq(rawData::RawAcquisitionData) AdjustSubsampleIndices!(acqData) acqData = convertUndersampledData(acqData) - return acqDats + return acqData end \ No newline at end of file From ef3e88a311918e555de0cb64ba7aac3ba585b850 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 21 Aug 2023 15:32:13 +0200 Subject: [PATCH 23/92] documentation --- Project.toml | 1 + docs/build/API/index.html | 2 + docs/build/GettingStarted/index.html | 2 + docs/build/Pipelines/index.html | 2 + docs/build/assets/documenter.js | 331 ++++++++++++++++++ docs/build/assets/search.js | 267 ++++++++++++++ docs/build/assets/themes/documenter-dark.css | 7 + docs/build/assets/themes/documenter-light.css | 9 + docs/build/assets/themeswap.js | 66 ++++ docs/build/assets/warner.js | 49 +++ docs/build/index.html | 2 + docs/build/search/index.html | 2 + docs/build/search_index.js | 3 + docs/make.jl | 18 + docs/src/API.md | 63 ++++ docs/src/GettingStarted.md | 1 + docs/src/Pipelines.md | 1 + docs/src/index.md | 17 + src/Navigator.jl | 1 - src/Reconstruction.jl | 2 - src/main.jl | 1 - 21 files changed, 843 insertions(+), 4 deletions(-) create mode 100644 docs/build/API/index.html create mode 100644 docs/build/GettingStarted/index.html create mode 100644 docs/build/Pipelines/index.html create mode 100644 docs/build/assets/documenter.js create mode 100644 docs/build/assets/search.js create mode 100644 docs/build/assets/themes/documenter-dark.css create mode 100644 docs/build/assets/themes/documenter-light.css create mode 100644 docs/build/assets/themeswap.js create mode 100644 docs/build/assets/warner.js create mode 100644 docs/build/index.html create mode 100644 docs/build/search/index.html create mode 100644 docs/build/search_index.js create mode 100644 docs/make.jl create mode 100644 docs/src/API.md create mode 100644 docs/src/GettingStarted.md create mode 100644 docs/src/Pipelines.md create mode 100644 docs/src/index.md diff --git a/Project.toml b/Project.toml index f7b7c44..f5ed6b2 100644 --- a/Project.toml +++ b/Project.toml @@ -9,6 +9,7 @@ Coverage = "a2441757-f6aa-5fb2-8edb-039e3f45d037" DSP = "717857b8-e6f2-59f4-9121-6e50c889abd2" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" +Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" diff --git a/docs/build/API/index.html b/docs/build/API/index.html new file mode 100644 index 0000000..e74cab3 --- /dev/null +++ b/docs/build/API/index.html @@ -0,0 +1,2 @@ + +API · MRINavigator.jl

API

This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.

Run compact pipeline

Missing docstring.

Missing docstring for MRINavigator.defaultNavParams :: Tuple{}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.runNavPipeline :: Dict{Symbol, Any}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.saveNoise :: Tuple{String, String}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.loadRawData :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

<!–

Coil sensitivity maps

Missing docstring.

Missing docstring for MRINavigator.CompSensit :: Union{Tuple{MRIBase.AcquisitionData}, Tuple{MRIBase.AcquisitionData, Any}}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.CompRoughMask :: Tuple{MRIBase.AcquisitionData, Int64, Any}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.ResizeSensit! :: Union{Tuple{T}, Tuple{Array{Complex{T}, 4}, MRIBase.AcquisitionData, MRIBase.AcquisitionData}} where T. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.CompResizeSaveSensit :: Union{Tuple{MRIBase.AcquisitionData, MRIBase.AcquisitionData, String}, Tuple{MRIBase.AcquisitionData, MRIBase.AcquisitionData, String, Any}}. Check Documenter's build log for details.

Find centerline

Missing docstring.

Missing docstring for MRINavigator.findCenterline :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.ReconstructMap :: Tuple{String}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.ReconstructSaveMap :: Tuple{String, String}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.callSCT :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.comp_centerline_pos :: Tuple{additionalNavInput}. Check Documenter's build log for details.

Utils

Missing docstring.

Missing docstring for MRINavigator.Reconstruct :: AcquisitionData, Array{Complex{T},4}, Union{Array{Complex{T}},Nothing} where {T}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.directreco :: Tuple{MRIBase.AcquisitionData}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.niftiSaveImg :: Union{Tuple{T}, Tuple{AbstractArray{T}, MRIBase.AcquisitionData, String}} where T. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.NavCorr! :: Array{Complex{T}, 4}, AcquisitionData, Dict{Symbol, Any}, additionalNavInput where{T}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.wrap_corr! :: Tuple{Array{Float64, 4}, Matrix{Int8}, VecOrMat{Float64}, Int64}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.find_wrapped :: Tuple{Array{Float64, 4}, Matrix{Float64}, Matrix{Float64}, Int64}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.TE_corr! :: Union{Tuple{T}, Tuple{Array{T, 4}, MRIBase.AcquisitionData, Float64, Float64, Int64, Int64}} where T. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.apply_corr! :: Union{Tuple{T}, Tuple{Array{T, 4}, MRIBase.AcquisitionData, Int64, Int64, Int64, Int64}} where T. Check Documenter's build log for details.

Adjust data

Missing docstring.

Missing docstring for MRINavigator.OrderSlices! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.ExtractFlags :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.ExtractNoiseData! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.ReverseBipolar! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.RemoveRef! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.CopyTE! :: Tuple{MRIBase.RawAcquisitionData, MRIBase.AcquisitionData}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.AdjustSubsampleIndices! :: Tuple{MRIBase.AcquisitionData}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.ExtractNavigator :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.selectEcho! :: Tuple{MRIBase.AcquisitionData, Vector{Int64}}. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.selectSlice! :: Union{Tuple{T}, Tuple{MRIBase.AcquisitionData, Vector{Int64}}, Tuple{MRIBase.AcquisitionData, Vector{Int64}, Union{Nothing, Array{Complex{T}, 4}}}, Tuple{MRIBase.AcquisitionData, Vector{Int64}, Union{Nothing, Array{Complex{T}, 4}}, Union{Nothing, Matrix{Float64}}}} where T. Check Documenter's build log for details.

Missing docstring.

Missing docstring for MRINavigator.additionalNavInput :: Union{Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Matrix{Float64}}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Vector{Float64}}}}. Check Documenter's build log for details.

–>

diff --git a/docs/build/GettingStarted/index.html b/docs/build/GettingStarted/index.html new file mode 100644 index 0000000..7fccae6 --- /dev/null +++ b/docs/build/GettingStarted/index.html @@ -0,0 +1,2 @@ + +Getting Started · MRINavigator.jl
diff --git a/docs/build/Pipelines/index.html b/docs/build/Pipelines/index.html new file mode 100644 index 0000000..6b3f406 --- /dev/null +++ b/docs/build/Pipelines/index.html @@ -0,0 +1,2 @@ + +Pipelines · MRINavigator.jl
diff --git a/docs/build/assets/documenter.js b/docs/build/assets/documenter.js new file mode 100644 index 0000000..6adfbbb --- /dev/null +++ b/docs/build/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/docs/build/assets/search.js b/docs/build/assets/search.js new file mode 100644 index 0000000..c133f74 --- /dev/null +++ b/docs/build/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/docs/build/assets/themes/documenter-dark.css b/docs/build/assets/themes/documenter-dark.css new file mode 100644 index 0000000..c94a294 --- /dev/null +++ b/docs/build/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/docs/build/assets/themes/documenter-light.css b/docs/build/assets/themes/documenter-light.css new file mode 100644 index 0000000..9b9a14b --- /dev/null +++ b/docs/build/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/docs/build/assets/themeswap.js b/docs/build/assets/themeswap.js new file mode 100644 index 0000000..c58e993 --- /dev/null +++ b/docs/build/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/docs/build/assets/warner.js b/docs/build/assets/warner.js new file mode 100644 index 0000000..5531c88 --- /dev/null +++ b/docs/build/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/docs/build/index.html b/docs/build/index.html new file mode 100644 index 0000000..38e9700 --- /dev/null +++ b/docs/build/index.html @@ -0,0 +1,2 @@ + +Home · MRINavigator.jl diff --git a/docs/build/search/index.html b/docs/build/search/index.html new file mode 100644 index 0000000..2072633 --- /dev/null +++ b/docs/build/search/index.html @@ -0,0 +1,2 @@ + +Search · MRINavigator.jl

    Loading search...

      diff --git a/docs/build/search_index.js b/docs/build/search_index.js new file mode 100644 index 0000000..63e9a09 --- /dev/null +++ b/docs/build/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"GettingStarted/#Eplain-here-how-to-get-started","page":"Getting Started","title":"Eplain here how to get started","text":"","category":"section"},{"location":"Pipelines/#Explain-here-the-pipleines","page":"Pipelines","title":"Explain here the pipleines","text":"","category":"section"},{"location":"#MRINavigator","page":"Home","title":"MRINavigator","text":"","category":"section"},{"location":"#Table-of-contents","page":"Home","title":"Table of contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\n \"index.md\",\n \"Pipelines.md\",\n \"GettingStarted.md\",\n \"API.md\"\n]\nDepth = 2","category":"page"},{"location":"#Introduction","page":"Home","title":"Introduction","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MRINavigator provides ...","category":"page"},{"location":"API/#API","page":"API","title":"API","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.","category":"page"},{"location":"API/#Run-compact-pipeline","page":"API","title":"Run compact pipeline","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"MRINavigator.defaultNavParams :: Tuple{}\nMRINavigator.runNavPipeline :: Dict{Symbol, Any}\nMRINavigator.saveNoise :: Tuple{String, String}\nMRINavigator.loadRawData :: Tuple{Dict{Symbol, Any}}\nMRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData}","category":"page"},{"location":"API/","page":"API","title":"API","text":"","category":"page"}] +} diff --git a/docs/make.jl b/docs/make.jl new file mode 100644 index 0000000..d70455d --- /dev/null +++ b/docs/make.jl @@ -0,0 +1,18 @@ +using Documenter, MRINavigator + +makedocs(modules=[MRINavigator], + sitename = "MRINavigator.jl", + authors = "Laura Beghini", + pages = [ + "Home" => "index.md", + "Pipelines" => "Pipelines.md", + "Getting Started" => "GettingStarted.md", + "API" => "API.md" + ], + ) + +deploydocs(; + repo = "github.com/NordicMRspine/MRINavigator", + push_preview = true, + deploy_config = Documenter.GitHubActions(), + ) \ No newline at end of file diff --git a/docs/src/API.md b/docs/src/API.md new file mode 100644 index 0000000..5ecbe91 --- /dev/null +++ b/docs/src/API.md @@ -0,0 +1,63 @@ +# API + +This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown. + +# Run compact pipeline +```@docs +MRINavigator.defaultNavParams :: Tuple{} +MRINavigator.runNavPipeline :: Dict{Symbol, Any} +MRINavigator.saveNoise :: Tuple{String, String} +MRINavigator.loadRawData :: Tuple{Dict{Symbol, Any}} +MRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData} +``` + + \ No newline at end of file diff --git a/docs/src/GettingStarted.md b/docs/src/GettingStarted.md new file mode 100644 index 0000000..7312bf3 --- /dev/null +++ b/docs/src/GettingStarted.md @@ -0,0 +1 @@ +# Eplain here how to get started \ No newline at end of file diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md new file mode 100644 index 0000000..2c51f94 --- /dev/null +++ b/docs/src/Pipelines.md @@ -0,0 +1 @@ +# Explain here the pipleines \ No newline at end of file diff --git a/docs/src/index.md b/docs/src/index.md new file mode 100644 index 0000000..ed79791 --- /dev/null +++ b/docs/src/index.md @@ -0,0 +1,17 @@ +# MRINavigator + +## Table of contents + +```@contents +Pages = [ + "index.md", + "Pipelines.md", + "GettingStarted.md", + "API.md" +] +Depth = 2 +``` + + +## Introduction +MRINavigator provides ... \ No newline at end of file diff --git a/src/Navigator.jl b/src/Navigator.jl index 8296d27..1d9c865 100644 --- a/src/Navigator.jl +++ b/src/Navigator.jl @@ -17,7 +17,6 @@ Please choose the pipeline using the corr_type filed in the params dictionary. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ - function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::Dict{Symbol, Any}, addData::additionalNavInput) where{T} #navigator[k-space samples, coils, k-space lines, slices] diff --git a/src/Reconstruction.jl b/src/Reconstruction.jl index a082c16..7d77a3f 100644 --- a/src/Reconstruction.jl +++ b/src/Reconstruction.jl @@ -12,8 +12,6 @@ Call MRIReco.jl reconstruction function and return reconstructed image. Only sin MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ - - function Reconstruct(acqd::AcquisitionData, sensit::Array{Complex{T},4}, noisemat::Union{Array{Complex{T}},Nothing} = nothing) where {T} diff --git a/src/main.jl b/src/main.jl index 0714718..3b9322c 100644 --- a/src/main.jl +++ b/src/main.jl @@ -8,7 +8,6 @@ Run the navigator pipeline. Return reconstructed image and navigaotr correction # Arguments * `params::Dict{Symbol, Any}` - MRINavigator parameter structure, check defaultNavParams() for info """ - function runNavPipeline(params::Dict{Symbol, Any}) findCenterline(params) From cb1c26dd0e12c37974ec023ed3dae49b71f61e06 Mon Sep 17 00:00:00 2001 From: Alexander Jaffray Date: Mon, 21 Aug 2023 09:20:27 -0700 Subject: [PATCH 24/92] Create dataTests.jl --- test/dataTests.jl | 1 + 1 file changed, 1 insertion(+) create mode 100644 test/dataTests.jl diff --git a/test/dataTests.jl b/test/dataTests.jl new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/test/dataTests.jl @@ -0,0 +1 @@ + From 2c3c9b8569ff69fbc4c9344c46bef049961be9e3 Mon Sep 17 00:00:00 2001 From: Alexander Jaffray Date: Mon, 21 Aug 2023 09:20:43 -0700 Subject: [PATCH 25/92] Update dataTests.jl --- test/dataTests.jl | 122 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/test/dataTests.jl b/test/dataTests.jl index 8b13789..2ee0d75 100644 --- a/test/dataTests.jl +++ b/test/dataTests.jl @@ -1 +1,123 @@ +function test_AdjustData_raw(datadir::String) + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + flags = ExtractFlags(rawData) + + # test OrderSlices! + rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 + rawData = @set rawData.profiles[1].head.idx.slice = 2 + position = rawData.profiles[1].head.idx.slice + OrderSlices!(rawData) + position_ordered = rawData.profiles[1].head.idx.slice + + @test position_ordered < position + + # the noise acquision has flag 19 + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 + noisemat_rawData = rawData.profiles[1].data + noisemat = ExtractNoiseData!(rawData) + flags_nonoise = ExtractFlags(rawData) + + @test any(flags_nonoise[:,19] .== false) + @test noisemat == noisemat_rawData + + # test reverse bipolar. The revese flag is number 22 + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 + reversed_profile = rawData.profiles[1].data + ReverseBipolar!(rawData) + flags_Bireverse = ExtractFlags(rawData) + + @test any(flags_Bireverse[:,22] .== false) + @test reversed_profile == reverse!(rawData.profiles[1].data) + + # check number of profiles + numflags = size(flags,1) + numProfiles = size(rawData.profiles, 1) + RemoveRef!(rawData) + slices = rawData.params["enc_lim_slice"].maximum + 1 + echoes = size(rawData.params["TE"],1) + 1 + + @test size(rawData.profiles, 1) == numProfiles - (slices * echoes) + @test numProfiles == numflags - 1 + +end + +function test_AdjustData_acq(datadir::String) + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + numProfiles = size(rawData.profiles, 1) + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + CopyTE!(rawData, acqData) + (nav, nav_time) = ExtractNavigator(rawData) + nav_rawData = zeros(ComplexF32, size(rawData.profiles[1].data)[1], size(rawData.profiles[1].data)[2], + rawData.params["reconSize"][2], rawData.params["enc_lim_slice"].maximum +1) + for ii = 4:2:numProfiles + nav_rawData[:,:,div(ii-2,2),1] = rawData.profiles[ii].data + end + + @test acqData.traj[1].TE == convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) + # The first 2 profiles are reference data + @test nav[:,:,:,:] == nav_rawData + @test nav_time[1,1] == convert(typeof(nav_time[1,1]), rawData.profiles[4].head.acquisition_time_stamp) + +end + + +function test_CoilSensMap(datadir::String, tmpResdir::String) + + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(map, estimateProfileCenter=true) + data = FileIO.load(joinpath(datadir, "data.jld2"), "data") + acqData = AcquisitionData(data, estimateProfileCenter=true) + sensit = CompSensit(acqMap) + #binarize sensit + thresh = 0.5 * mean(abs.(sensit)) + cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) + sensit_binar = zeros(Int64, size(sensit)) + sensit_binar[cartes_index_binar] .= 1 + sensit_binar = circshift(sensit_binar, (0,-1,0,0)) + #resize sensit + sensit_resized = ResizeSensit!(sensit, acqMap, acqData) + #compare sensit with basic version + img = directreco(acqData) + sensit_basic = estimateCoilSensitivities(img) + sensit_basic = sensit_basic[:,:,1,:,:,1] + + err = norm(vec(sensit_resized)-vec(sensit_basic))/norm(vec(sensit_basic)) + # test whole algorithm + @test err < 3 + # test ResizeSensit! + @test size(sensit_resized) == size(sensit_basic) + # test removeBehindBack! + err = norm(vec(reverse(sensit_binar[:,33:end,1,:], dims = 2))-vec(sensit_binar[:,1:32,1,:]))/norm(vec(sensit_binar[:,1:32,1,:])) + @test err < 0.15 + + # Save sensitivity maps in a temporary folder + FileIO.save(joinpath(tmpResdir, "sensit.jld2"), "sensit", sensit) + +end + +function test_niftisave(datadir::String, tmpResdir::String) + + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acq = AcquisitionData(map, estimateProfileCenter=true) + sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + img = Reconstruct(acq, sensit) + niftiSaveImg(img, acq, tmpResdir * "/gre2D_Ref.nii") + + @test isfile(tmpResdir * "/gre2D_Ref.nii") + +end + + +function testdata(datadir::String, tmpResdir::String) + @testset "DataTests" begin + test_AdjustData_raw(datadir) + test_AdjustData_acq(datadir) + test_CoilSensMap(datadir, tmpResdir) + test_niftisave(datadir, tmpResdir) + end +end + +testdata(datadir, tmpResdir) From c53947c55c5f9d8bf55492947395e86950311c41 Mon Sep 17 00:00:00 2001 From: Laura Beghini <54085129+Laura2305@users.noreply.github.com> Date: Tue, 22 Aug 2023 13:09:46 +0200 Subject: [PATCH 26/92] Delete DataTests.jl --- test/DataTests.jl | 123 ---------------------------------------------- 1 file changed, 123 deletions(-) delete mode 100644 test/DataTests.jl diff --git a/test/DataTests.jl b/test/DataTests.jl deleted file mode 100644 index 005a45c..0000000 --- a/test/DataTests.jl +++ /dev/null @@ -1,123 +0,0 @@ - -function test_AdjustData_raw(datadir::String) - - rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") - flags = ExtractFlags(rawData) - - # test OrderSlices! - rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 - rawData = @set rawData.profiles[1].head.idx.slice = 2 - position = rawData.profiles[1].head.idx.slice - OrderSlices!(rawData) - position_ordered = rawData.profiles[1].head.idx.slice - - @test position_ordered < position - - # the noise acquision has flag 19 - rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 - noisemat_rawData = rawData.profiles[1].data - noisemat = ExtractNoiseData!(rawData) - flags_nonoise = ExtractFlags(rawData) - - @test any(flags_nonoise[:,19] .== false) - @test noisemat == noisemat_rawData - - # test reverse bipolar. The revese flag is number 22 - rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 - reversed_profile = rawData.profiles[1].data - ReverseBipolar!(rawData) - flags_Bireverse = ExtractFlags(rawData) - - @test any(flags_Bireverse[:,22] .== false) - @test reversed_profile == reverse!(rawData.profiles[1].data) - - # check number of profiles - numflags = size(flags,1) - numProfiles = size(rawData.profiles, 1) - RemoveRef!(rawData) - slices = rawData.params["enc_lim_slice"].maximum + 1 - echoes = size(rawData.params["TE"],1) + 1 - - @test size(rawData.profiles, 1) == numProfiles - (slices * echoes) - @test numProfiles == numflags - 1 - -end - -function test_AdjustData_acq(datadir::String) - - rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") - numProfiles = size(rawData.profiles, 1) - acqData = AcquisitionData(rawData, estimateProfileCenter=true) - CopyTE!(rawData, acqData) - (nav, nav_time) = ExtractNavigator(rawData) - nav_rawData = zeros(ComplexF32, size(rawData.profiles[1].data)[1], size(rawData.profiles[1].data)[2], - rawData.params["reconSize"][2], rawData.params["enc_lim_slice"].maximum +1) - for ii = 4:2:numProfiles - nav_rawData[:,:,div(ii-2,2),1] = rawData.profiles[ii].data - end - - @test acqData.traj[1].TE == convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) - # The first 2 profiles are reference data - @test nav[:,:,:,:] == nav_rawData - @test nav_time[1,1] == convert(typeof(nav_time[1,1]), rawData.profiles[4].head.acquisition_time_stamp) - -end - - -function test_CoilSensMap(datadir::String, tmpResdir::String) - - map = FileIO.load(joinpath(datadir, "map.jld2"), "map") - acqMap = AcquisitionData(map, estimateProfileCenter=true) - data = FileIO.load(joinpath(datadir, "data.jld2"), "data") - acqData = AcquisitionData(data, estimateProfileCenter=true) - sensit = CompSensit(acqMap) - #binarize sensit - thresh = 0.5 * mean(abs.(sensit)) - cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) - sensit_binar = zeros(Int64, size(sensit)) - sensit_binar[cartes_index_binar] .= 1 - sensit_binar = circshift(sensit_binar, (0,-1,0,0)) - #resize sensit - sensit_resized = ResizeSensit!(sensit, acqMap, acqData) - #compare sensit with basic version - img = directreco(acqData) - sensit_basic = estimateCoilSensitivities(img) - sensit_basic = sensit_basic[:,:,1,:,:,1] - - err = norm(vec(sensit_resized)-vec(sensit_basic))/norm(vec(sensit_basic)) - # test whole algorithm - @test err < 3 - # test ResizeSensit! - @test size(sensit_resized) == size(sensit_basic) - # test removeBehindBack! - err = norm(vec(reverse(sensit_binar[:,33:end,1,:], dims = 2))-vec(sensit_binar[:,1:32,1,:]))/norm(vec(sensit_binar[:,1:32,1,:])) - @test err < 0.15 - - # Save sensitivity maps in a temporary folder - FileIO.save(joinpath(tmpResdir, "sensit.jld2"), "sensit", sensit) - -end - -function test_niftisave(datadir::String, tmpResdir::String) - - map = FileIO.load(joinpath(datadir, "map.jld2"), "map") - acq = AcquisitionData(map, estimateProfileCenter=true) - sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") - img = Reconstruct(acq, sensit) - niftiSaveImg(img, acq, tmpResdir * "/gre2D_Ref.nii") - - @test isfile(tmpResdir * "/gre2D_Ref.nii") - -end - - -function testdata(datadir::String, tmpResdir::String) - @testset "DataTests" begin - test_AdjustData_raw(datadir) - test_AdjustData_acq(datadir) - test_CoilSensMap(datadir, tmpResdir) - test_niftisave(datadir, tmpResdir) - end -end - -testdata(datadir, tmpResdir) \ No newline at end of file From 8a0ed77d2718360cdaeb49dbaca86582f546a63d Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 13:14:18 +0200 Subject: [PATCH 27/92] fix test --- test/dataTests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/dataTests.jl b/test/dataTests.jl index 2ee0d75..005a45c 100644 --- a/test/dataTests.jl +++ b/test/dataTests.jl @@ -120,4 +120,4 @@ function testdata(datadir::String, tmpResdir::String) end end -testdata(datadir, tmpResdir) +testdata(datadir, tmpResdir) \ No newline at end of file From a5ab2ac6ad1ddc31634117aec35acd10ca1acbd3 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 13:17:39 +0200 Subject: [PATCH 28/92] fix tests --- test/dataTests.jl | 123 ---------------------------------------------- 1 file changed, 123 deletions(-) delete mode 100644 test/dataTests.jl diff --git a/test/dataTests.jl b/test/dataTests.jl deleted file mode 100644 index 005a45c..0000000 --- a/test/dataTests.jl +++ /dev/null @@ -1,123 +0,0 @@ - -function test_AdjustData_raw(datadir::String) - - rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") - flags = ExtractFlags(rawData) - - # test OrderSlices! - rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 - rawData = @set rawData.profiles[1].head.idx.slice = 2 - position = rawData.profiles[1].head.idx.slice - OrderSlices!(rawData) - position_ordered = rawData.profiles[1].head.idx.slice - - @test position_ordered < position - - # the noise acquision has flag 19 - rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 - noisemat_rawData = rawData.profiles[1].data - noisemat = ExtractNoiseData!(rawData) - flags_nonoise = ExtractFlags(rawData) - - @test any(flags_nonoise[:,19] .== false) - @test noisemat == noisemat_rawData - - # test reverse bipolar. The revese flag is number 22 - rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 - reversed_profile = rawData.profiles[1].data - ReverseBipolar!(rawData) - flags_Bireverse = ExtractFlags(rawData) - - @test any(flags_Bireverse[:,22] .== false) - @test reversed_profile == reverse!(rawData.profiles[1].data) - - # check number of profiles - numflags = size(flags,1) - numProfiles = size(rawData.profiles, 1) - RemoveRef!(rawData) - slices = rawData.params["enc_lim_slice"].maximum + 1 - echoes = size(rawData.params["TE"],1) + 1 - - @test size(rawData.profiles, 1) == numProfiles - (slices * echoes) - @test numProfiles == numflags - 1 - -end - -function test_AdjustData_acq(datadir::String) - - rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") - numProfiles = size(rawData.profiles, 1) - acqData = AcquisitionData(rawData, estimateProfileCenter=true) - CopyTE!(rawData, acqData) - (nav, nav_time) = ExtractNavigator(rawData) - nav_rawData = zeros(ComplexF32, size(rawData.profiles[1].data)[1], size(rawData.profiles[1].data)[2], - rawData.params["reconSize"][2], rawData.params["enc_lim_slice"].maximum +1) - for ii = 4:2:numProfiles - nav_rawData[:,:,div(ii-2,2),1] = rawData.profiles[ii].data - end - - @test acqData.traj[1].TE == convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) - # The first 2 profiles are reference data - @test nav[:,:,:,:] == nav_rawData - @test nav_time[1,1] == convert(typeof(nav_time[1,1]), rawData.profiles[4].head.acquisition_time_stamp) - -end - - -function test_CoilSensMap(datadir::String, tmpResdir::String) - - map = FileIO.load(joinpath(datadir, "map.jld2"), "map") - acqMap = AcquisitionData(map, estimateProfileCenter=true) - data = FileIO.load(joinpath(datadir, "data.jld2"), "data") - acqData = AcquisitionData(data, estimateProfileCenter=true) - sensit = CompSensit(acqMap) - #binarize sensit - thresh = 0.5 * mean(abs.(sensit)) - cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) - sensit_binar = zeros(Int64, size(sensit)) - sensit_binar[cartes_index_binar] .= 1 - sensit_binar = circshift(sensit_binar, (0,-1,0,0)) - #resize sensit - sensit_resized = ResizeSensit!(sensit, acqMap, acqData) - #compare sensit with basic version - img = directreco(acqData) - sensit_basic = estimateCoilSensitivities(img) - sensit_basic = sensit_basic[:,:,1,:,:,1] - - err = norm(vec(sensit_resized)-vec(sensit_basic))/norm(vec(sensit_basic)) - # test whole algorithm - @test err < 3 - # test ResizeSensit! - @test size(sensit_resized) == size(sensit_basic) - # test removeBehindBack! - err = norm(vec(reverse(sensit_binar[:,33:end,1,:], dims = 2))-vec(sensit_binar[:,1:32,1,:]))/norm(vec(sensit_binar[:,1:32,1,:])) - @test err < 0.15 - - # Save sensitivity maps in a temporary folder - FileIO.save(joinpath(tmpResdir, "sensit.jld2"), "sensit", sensit) - -end - -function test_niftisave(datadir::String, tmpResdir::String) - - map = FileIO.load(joinpath(datadir, "map.jld2"), "map") - acq = AcquisitionData(map, estimateProfileCenter=true) - sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") - img = Reconstruct(acq, sensit) - niftiSaveImg(img, acq, tmpResdir * "/gre2D_Ref.nii") - - @test isfile(tmpResdir * "/gre2D_Ref.nii") - -end - - -function testdata(datadir::String, tmpResdir::String) - @testset "DataTests" begin - test_AdjustData_raw(datadir) - test_AdjustData_acq(datadir) - test_CoilSensMap(datadir, tmpResdir) - test_niftisave(datadir, tmpResdir) - end -end - -testdata(datadir, tmpResdir) \ No newline at end of file From ae9a6ceb4203b35010428e8f682461e854aac5f5 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 13:21:09 +0200 Subject: [PATCH 29/92] fix tests --- test/dataTests.jl | 122 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 test/dataTests.jl diff --git a/test/dataTests.jl b/test/dataTests.jl new file mode 100644 index 0000000..927a18e --- /dev/null +++ b/test/dataTests.jl @@ -0,0 +1,122 @@ +function test_AdjustData_raw(datadir::String) + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + flags = ExtractFlags(rawData) + + # test OrderSlices! + rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 + rawData = @set rawData.profiles[1].head.idx.slice = 2 + position = rawData.profiles[1].head.idx.slice + OrderSlices!(rawData) + position_ordered = rawData.profiles[1].head.idx.slice + + @test position_ordered < position + + # the noise acquision has flag 19 + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 + noisemat_rawData = rawData.profiles[1].data + noisemat = ExtractNoiseData!(rawData) + flags_nonoise = ExtractFlags(rawData) + + @test any(flags_nonoise[:,19] .== false) + @test noisemat == noisemat_rawData + + # test reverse bipolar. The revese flag is number 22 + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 + reversed_profile = rawData.profiles[1].data + ReverseBipolar!(rawData) + flags_Bireverse = ExtractFlags(rawData) + + @test any(flags_Bireverse[:,22] .== false) + @test reversed_profile == reverse!(rawData.profiles[1].data) + + # check number of profiles + numflags = size(flags,1) + numProfiles = size(rawData.profiles, 1) + RemoveRef!(rawData) + slices = rawData.params["enc_lim_slice"].maximum + 1 + echoes = size(rawData.params["TE"],1) + 1 + + @test size(rawData.profiles, 1) == numProfiles - (slices * echoes) + @test numProfiles == numflags - 1 + +end + +function test_AdjustData_acq(datadir::String) + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + numProfiles = size(rawData.profiles, 1) + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + CopyTE!(rawData, acqData) + (nav, nav_time) = ExtractNavigator(rawData) + nav_rawData = zeros(ComplexF32, size(rawData.profiles[1].data)[1], size(rawData.profiles[1].data)[2], + rawData.params["reconSize"][2], rawData.params["enc_lim_slice"].maximum +1) + for ii = 4:2:numProfiles + nav_rawData[:,:,div(ii-2,2),1] = rawData.profiles[ii].data + end + + @test acqData.traj[1].TE == convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) + # The first 2 profiles are reference data + @test nav[:,:,:,:] == nav_rawData + @test nav_time[1,1] == convert(typeof(nav_time[1,1]), rawData.profiles[4].head.acquisition_time_stamp) + +end + + +function test_CoilSensMap(datadir::String, tmpResdir::String) + + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(map, estimateProfileCenter=true) + data = FileIO.load(joinpath(datadir, "data.jld2"), "data") + acqData = AcquisitionData(data, estimateProfileCenter=true) + sensit = CompSensit(acqMap) + #binarize sensit + thresh = 0.5 * mean(abs.(sensit)) + cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) + sensit_binar = zeros(Int64, size(sensit)) + sensit_binar[cartes_index_binar] .= 1 + sensit_binar = circshift(sensit_binar, (0,-1,0,0)) + #resize sensit + sensit_resized = ResizeSensit!(sensit, acqMap, acqData) + #compare sensit with basic version + img = directreco(acqData) + sensit_basic = estimateCoilSensitivities(img) + sensit_basic = sensit_basic[:,:,1,:,:,1] + + err = norm(vec(sensit_resized)-vec(sensit_basic))/norm(vec(sensit_basic)) + # test whole algorithm + @test err < 3 + # test ResizeSensit! + @test size(sensit_resized) == size(sensit_basic) + # test removeBehindBack! + err = norm(vec(reverse(sensit_binar[:,33:end,1,:], dims = 2))-vec(sensit_binar[:,1:32,1,:]))/norm(vec(sensit_binar[:,1:32,1,:])) + @test err < 0.15 + + # Save sensitivity maps in a temporary folder + FileIO.save(joinpath(tmpResdir, "sensit.jld2"), "sensit", sensit) + +end + +function test_niftisave(datadir::String, tmpResdir::String) + + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acq = AcquisitionData(map, estimateProfileCenter=true) + sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + img = Reconstruct(acq, sensit) + niftiSaveImg(img, acq, tmpResdir * "/gre2D_Ref.nii") + + @test isfile(tmpResdir * "/gre2D_Ref.nii") + +end + + +function testdata(datadir::String, tmpResdir::String) + @testset "DataTests" begin + test_AdjustData_raw(datadir) + test_AdjustData_acq(datadir) + test_CoilSensMap(datadir, tmpResdir) + test_niftisave(datadir, tmpResdir) + end +end + +testdata(datadir, tmpResdir) \ No newline at end of file From 804ecbaa2c2803bc0ed53037d9af6ac46049a8ee Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 13:49:57 +0200 Subject: [PATCH 30/92] fix bug test --- test/runtests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index c76d4f9..b93ad9e 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -11,7 +11,7 @@ using ImageUtils using Scratch using LazyArtifacts -const datadir = joinpath(artifact"TestDataNavigator", "data") +const datadir = joinpath(artifact"TestDataNavigator", "Data") @info "The test data is located at $datadir." const tmpResdir = @get_scratch!("tmp") From 789b85718f627b8945aff28085a672d2170f2059 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 15:34:29 +0200 Subject: [PATCH 31/92] fix test CI --- Project.toml | 1 + test/runtests.jl | 1 + 2 files changed, 2 insertions(+) diff --git a/Project.toml b/Project.toml index f5ed6b2..3703aa7 100644 --- a/Project.toml +++ b/Project.toml @@ -13,6 +13,7 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" +JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" MAT = "23992714-dd62-5051-b70f-ba57cb901cac" MRICoilSensitivities = "c57eb701-aafc-44a2-a53c-128049758959" diff --git a/test/runtests.jl b/test/runtests.jl index b93ad9e..d906d82 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -7,6 +7,7 @@ using Coverage using Setfield using Statistics using ImageUtils +using JLD2 using Scratch using LazyArtifacts From ba8457d94f6eb07b09724e6a183e530d4a87302e Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 15:44:54 +0200 Subject: [PATCH 32/92] fix test CI --- Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/Project.toml b/Project.toml index 3703aa7..f5ed6b2 100644 --- a/Project.toml +++ b/Project.toml @@ -13,7 +13,6 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" -JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" MAT = "23992714-dd62-5051-b70f-ba57cb901cac" MRICoilSensitivities = "c57eb701-aafc-44a2-a53c-128049758959" From 7acb7ccb57dddcfcff2a1f93b00102f0342906f4 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 15:45:10 +0200 Subject: [PATCH 33/92] fix test CI --- test/runtests.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index d906d82..b93ad9e 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -7,7 +7,6 @@ using Coverage using Setfield using Statistics using ImageUtils -using JLD2 using Scratch using LazyArtifacts From 49be7991e7b8668d5d4f5006725e4d4fe97cff16 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:27:31 +0200 Subject: [PATCH 34/92] test CI tools coverage --- Project.toml | 1 + README.md | 4 ++-- test/Artifacts.toml | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Project.toml b/Project.toml index dbc9a41..5985cac 100644 --- a/Project.toml +++ b/Project.toml @@ -4,6 +4,7 @@ authors = ["Laura Beghini"] version = "0.1.0" [deps] +Coverage = "a2441757-f6aa-5fb2-8edb-039e3f45d037" DSP = "717857b8-e6f2-59f4-9121-6e50c889abd2" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" diff --git a/README.md b/README.md index 9e79511..10596f7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MRINavigator -[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. diff --git a/test/Artifacts.toml b/test/Artifacts.toml index 0492276..3b138b9 100644 --- a/test/Artifacts.toml +++ b/test/Artifacts.toml @@ -2,6 +2,6 @@ git-tree-sha1 = "208c7712788dc5e36c33a94974dbc847aade46f2" lazy = true - [[TestDataNavigator.download]] - sha256 = "d83423df8642b8d445c69ecca8a012265cb7a0d0ca25bd153a3044d953a0597f" - url = "https://github.com/NordicMRspine/TestData/raw/main/TestData.tar.gz" +[[TestDataNavigator.download]] +sha256 = "d83423df8642b8d445c69ecca8a012265cb7a0d0ca25bd153a3044d953a0597f" +url = "https://github.com/NordicMRspine/TestData/raw/main/TestData.tar.gz" From 14f11ea8adabae97bb0426fed362061e3e3e514b Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:30:07 +0200 Subject: [PATCH 35/92] test CI tools coverage --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 10596f7..55c452a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MRINavigator -[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +[![Build Status](https://github.com/NordicMRspine/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![codecov](https://codecov.io/gh/NordicMRspine/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From ea601224317f793d411e82d47bd084c9abde0e06 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:37:21 +0200 Subject: [PATCH 36/92] test CI tools coverage --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 55c452a..f36978e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,14 @@ # MRINavigator -[![Build Status](https://github.com/NordicMRspine/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![codecov](https://codecov.io/gh/NordicMRspine/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +![Lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg) +[![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) +[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=main)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=main) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From bc69e98097db887ed1c4fd9fe2d996e78f2057f0 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:38:24 +0200 Subject: [PATCH 37/92] test CI tools coverage --- README.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/README.md b/README.md index f36978e..9b20b7e 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,6 @@ # MRINavigator - -![Lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg) [![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) -[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=main)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=main) +[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=setup)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=setup) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 899db733bd28dbcd804ea1e936f9677a411eaf29 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 17:22:35 +0200 Subject: [PATCH 38/92] test adjustdata --- test/DataTests.jl | 64 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/test/DataTests.jl b/test/DataTests.jl index 828bcaa..7acb637 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -1,20 +1,62 @@ -function test_AdjustData(datadir::String) +function test_AdjustData_raw(datadir::String) - data = FileIO.load(joinpath(datadir, "data.jld2"), "data") - flags = ExtractFlags(data) - noisemat = ExtractNoiseData!(data, flags) - ReverseBipolar!(data, flags) - flags_Bireverse = ExtractFlags(data) - numProfiles = size(data.profiles, 1) - RemoveRef!(data, 1, 1) + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + flags = ExtractFlags(rawData) + + # test order slices + number = length(rawData.profiles) + rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 + rawData = @set rawData.profiles[1].head.idx.slice = 2 + position = rawData.profiles[1].head.idx.slice + OrderSlices!(rawData) + position_ordered = rawData.profiles[1].head.idx.slice + + @test position_ordered < position + + # the noise acquision has flag 19 + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 + noisemat_rawData = rawData.profiles[1].data + noisemat = ExtractNoiseData!(rawData) - @test any(flags_Bireverse[:,22] .== false) @test any(flags_Bireverse[:,19] .== false) - @test size(data.profiles, 1) == numProfiles - 2 + @test noisemat == noisemat_rawData + + # test reverse bipolar + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 + reversed_profile = rawData.profiles[1].data + ReverseBipolar!(rawData) + flags_Bireverse = ExtractFlags(rawData) + + @test any(flags_Bireverse[:,22] .== false) + @test reversed_profile == reverse!(rawData.profiles[1].data) + + # check number of profiles + numflags = size(flags,1) + numProfiles = size(rawData.profiles, 1) + RemoveRef!(rawData) + slices = rawData.params["enc_lim_slice"].maximum + 1 + echoes = size(rawData.params["TE"],1) + 1 + + @test size(rawData.profiles, 1) == numProfiles - (slices * echoes) + @test numProfiles == numflags - 1 + +end + +function test_AdjustData_acq(datadir::String) + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + CopyTE!(rawData, acqData) + (nav, nav_time) = ExtractNavigator(rawData) + selectEcho!(acqData, 0) + selectSlice!(acqData, 0, nav, nav_time) + + @test acqData.traj[1].TE === convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) end + function test_SpineCenterline(datadir::String, tmpResdir::String) map = FileIO.load(joinpath(datadir, "map.jld2"), "map") OrderSlices!(map) @@ -47,7 +89,7 @@ end function testdata(datadir::String, tmpResdir::String) @testset "DataTests" begin - test_AdjustData() + test_AdjustData_raw() test_SpineCenterline() test_CoilSensMap() end From 95e1ba1b417169ab8b7439e2a650411dc4bf72af Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 8 Aug 2023 17:46:49 +0200 Subject: [PATCH 39/92] test progress --- Project.toml | 1 + test/DataTests.jl | 69 +++++++++++++++++++++++++++++++---------------- test/navTests.jl | 36 +++++++++++++++++++++++++ test/runtests.jl | 5 +++- 4 files changed, 87 insertions(+), 24 deletions(-) create mode 100644 test/navTests.jl diff --git a/Project.toml b/Project.toml index 5985cac..d4bcf55 100644 --- a/Project.toml +++ b/Project.toml @@ -17,6 +17,7 @@ MRIReco = "bdf86e05-2d2b-5731-a332-f3fe1f9e047f" NIfTI = "a3a9e032-41b5-5fc4-967a-a6b7a19844d3" PolygonOps = "647866c9-e3ac-4575-94e7-e3d426903924" REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee" Scratch = "6c6a2e73-6563-6170-7368-637461726353" Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" diff --git a/test/DataTests.jl b/test/DataTests.jl index 7acb637..7b994d1 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -4,8 +4,7 @@ function test_AdjustData_raw(datadir::String) rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") flags = ExtractFlags(rawData) - # test order slices - number = length(rawData.profiles) + # test OrderSlices! rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 rawData = @set rawData.profiles[1].head.idx.slice = 2 position = rawData.profiles[1].head.idx.slice @@ -22,7 +21,7 @@ function test_AdjustData_raw(datadir::String) @test any(flags_Bireverse[:,19] .== false) @test noisemat == noisemat_rawData - # test reverse bipolar + # test reverse bipolar. The revese flag is number 22 rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 reversed_profile = rawData.profiles[1].data ReverseBipolar!(rawData) @@ -43,46 +42,70 @@ function test_AdjustData_raw(datadir::String) end -function test_AdjustData_acq(datadir::String) +function test_AdjustData_acq(datadir::String, tmpResdir::String) + numProfiles = size(rawData.profiles, 1) rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") acqData = AcquisitionData(rawData, estimateProfileCenter=true) CopyTE!(rawData, acqData) (nav, nav_time) = ExtractNavigator(rawData) - selectEcho!(acqData, 0) - selectSlice!(acqData, 0, nav, nav_time) + nav_rawData = zeros(ComplexF32, size(rawData.profiles[1].data)[1], size(rawData.profiles[1].data)[2], + rawData.params["reconSize"][2], rawData.params["enc_lim_slice"].maximum +1) + for ii = 4:2:numProfiles + nav_rawData[:,:,div(ii-2,2),1] = rawData.profiles[ii].data + end - @test acqData.traj[1].TE === convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) + @test acqData.traj[1].TE == convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) + # The first 2 profiles are reference data + @test nav[:,:,:,:] == nav_rawData + @test nav_time[1,1] == convert(typeof(nav_time[1,1]), rawData.profiles[4].head.acquisition_time_stamp) end -function test_SpineCenterline(datadir::String, tmpResdir::String) - map = FileIO.load(joinpath(datadir, "map.jld2"), "map") - OrderSlices!(map) - acq = AcquisitionData(map, estimateProfileCenter=true) - sensit = CompSensit(acq) - img = Reconstruct(acq, sensit) - niftiSaveMap(img, acq, tmpResdir * "/gre2D_Ref.nii") - - @test isfile(tmpResdir * "/gre2D_Ref.nii") - -end - function test_CoilSensMap(datadir::String, tmpResdir::String) + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") acqMap = AcquisitionData(map, estimateProfileCenter=true) data = FileIO.load(joinpath(datadir, "data.jld2"), "data") acqData = AcquisitionData(data, estimateProfileCenter=true) sensit = CompSensit(acqMap) - sensit = ResizeSensit!(sensit, acqMap, acqData) + #binarize sensit + thresh = 0.5* mean(abs.(sensit)) + cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) + sensit_binar = zeros(Int64, size(sensit)) + sensit_binar[cartes_index_binar] .= 1 + sensit_binar = circshift(sensit_binar, (0,-1,0,0)) + #resize sensit + sensit_resized = ResizeSensit!(sensit, acqMap, acqData) + #compare sensit with basic version img = directreco(acqData) sensit_basic = estimateCoilSensitivities(img) sensit_basic = sensit_basic[:,:,1,:,:,1] - - err = norm(vec(sensit)-vec(sensit_basic))/norm(vec(sensit_basic)) + err = norm(vec(sensit_resized)-vec(sensit_basic))/norm(vec(sensit_basic)) + # test whole algorithm @test err < 3 + # test ResizeSensit! + @test size(sensit_resized) == size(sensit_basic) + # test removeBehindBack! + err = norm(vec(reverse(sensit_binar[:,33:end,1,:], dims = 2))-vec(sensit_binar[:,1:32,1,:]))/norm(vec(sensit_binar[:,1:32,1,:])) + @test err < 0.15 + + # Save sensitivity maps in a temporary folder + FileIO.save(joinpath(tmpResdir, "sensit.jld2"), "sensit", sensit) + +end + +function test_niftsave(datadir::String, tmpResdir::String) + + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acq = AcquisitionData(map, estimateProfileCenter=true) + sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + img = Reconstruct(acq, sensit) + niftiSaveImg(img, acq, tmpResdir * "/gre2D_Ref.nii") + + @test isfile(tmpResdir * "/gre2D_Ref.nii") end @@ -90,7 +113,7 @@ end function testdata(datadir::String, tmpResdir::String) @testset "DataTests" begin test_AdjustData_raw() - test_SpineCenterline() test_CoilSensMap() + test_niftisave() end end \ No newline at end of file diff --git a/test/navTests.jl b/test/navTests.jl new file mode 100644 index 0000000..9c5d215 --- /dev/null +++ b/test/navTests.jl @@ -0,0 +1,36 @@ + +function test_knav(datadir::String, tmpResdir::String) + + # Load data + rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(map, estimateProfileCenter=true) + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + deleteat!(rawData.profiles, 1:2) # remove reference data + acqData = AcquisitionData(data, estimateProfileCenter=true) + noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") + sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + sensit = ResizeSensit!(sensit, acqMap, acqData) + + # Simulate nav data + + # Simulate centerline + + # Simulate trac + + # Navigator correction + + # Reconstruct the data + + img = Reconstruct(acqData, sensit, noisemat) + + @test + +end + + +function test(datadir::String, tmpResdir::String) + @testset "NavigatorTests" begin + test_knav() + test_navunwrap() + end +end \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 0450f09..130cc8f 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,6 +1,7 @@ using MRINavigator using FileIO using Test +using Coverage using Scratch using LazyArtifacts @@ -11,5 +12,7 @@ const datadir = joinpath(artifact"TestDataNavigator", "data") const tmpResdir = @get_scratch!("tmp") @info "If you want to check the output of the tests, please head to $tmpResdir." +include("dataTests.jl") +include("navTests.jl") -include("DataTests.jl") \ No newline at end of file +coverage = process_folder() \ No newline at end of file From 4bc3ec4e23c3cc9660de5c6ff6d2445ec885ab94 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:27:31 +0200 Subject: [PATCH 40/92] test CI tools coverage --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9b20b7e..10596f7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # MRINavigator -[![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) -[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=setup)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=setup) + +[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From b9ec54ff0f853a5487660c5675247abd39a13620 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:30:07 +0200 Subject: [PATCH 41/92] test CI tools coverage --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 10596f7..55c452a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MRINavigator -[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +[![Build Status](https://github.com/NordicMRspine/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![codecov](https://codecov.io/gh/NordicMRspine/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From f34229af1ae24e693656eaa811c51ccd495efe02 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:37:21 +0200 Subject: [PATCH 42/92] test CI tools coverage --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 55c452a..f36978e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,14 @@ # MRINavigator -[![Build Status](https://github.com/NordicMRspine/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=setup)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![codecov](https://codecov.io/gh/NordicMRspine/MRINavigator.jl/branch/main/graph/badge.svg?branch=setup)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +![Lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg) +[![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) +[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=main)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=main) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 9ceb042057be4339bea59f0ff14b1eabaf88b1ce Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 14:38:24 +0200 Subject: [PATCH 43/92] test CI tools coverage --- README.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/README.md b/README.md index f36978e..9b20b7e 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,6 @@ # MRINavigator - -![Lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg) [![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) -[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=main)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=main) +[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=setup)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=setup) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 15c33826a6fff4a55a48a83c9a6f2f264ea9745b Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 7 Aug 2023 17:22:35 +0200 Subject: [PATCH 44/92] test adjustdata --- test/DataTests.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/test/DataTests.jl b/test/DataTests.jl index 7b994d1..9f97f98 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -113,6 +113,7 @@ end function testdata(datadir::String, tmpResdir::String) @testset "DataTests" begin test_AdjustData_raw() + test_SpineCenterline() test_CoilSensMap() test_niftisave() end From dd81a647f84f8538b6c13a60f52ac38a894de30c Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 8 Aug 2023 17:46:49 +0200 Subject: [PATCH 45/92] test progress --- test/DataTests.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/test/DataTests.jl b/test/DataTests.jl index 9f97f98..7b994d1 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -113,7 +113,6 @@ end function testdata(datadir::String, tmpResdir::String) @testset "DataTests" begin test_AdjustData_raw() - test_SpineCenterline() test_CoilSensMap() test_niftisave() end From 8f4acbf8ee2c06494f9232f8e1f7b1e2d1645064 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Fri, 11 Aug 2023 16:41:00 +0200 Subject: [PATCH 46/92] test progress --- src/NavParameters.jl | 2 +- src/Navigator.jl | 14 ++--- test/DataTests.jl | 15 +++-- test/navTests.jl | 135 +++++++++++++++++++++++++++++++++++++++---- test/runtests.jl | 5 +- test/testFunction.jl | 12 ++++ test/unwrapTests.jl | 0 7 files changed, 155 insertions(+), 28 deletions(-) create mode 100644 test/testFunction.jl create mode 100644 test/unwrapTests.jl diff --git a/src/NavParameters.jl b/src/NavParameters.jl index 5455e41..465690c 100644 --- a/src/NavParameters.jl +++ b/src/NavParameters.jl @@ -24,7 +24,7 @@ Define default parameters for data loading, navigator correction and image recon * `path_noise::String` - path to the file where the noise acquisition will be saved. The file extension must be .jld2 * `path_results::String` - path to the results folder -# Additional not required parameters are +# Additional optional parameters are * `path_niftiMap::String` - path to the file where the reconstructed reference data will be saved in nifti format. The file extension must be .nii * `path_centerline::String` - path to the folder where the Spinal Cord Toolbox (SCT) centerline results will be saved * `path_physio::String` - path to the physiological trace recording in .mat format. The variable should be a two columns vector. diff --git a/src/Navigator.jl b/src/Navigator.jl index f57fd89..980c6eb 100644 --- a/src/Navigator.jl +++ b/src/Navigator.jl @@ -1,4 +1,4 @@ -export NavCorr! +export NavCorr!, comp_centerline, wrap_corr!, TE_corr!, apply_corr! """ navOutput = NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::Dict{Symbol, Any}, addData::additionalNavInput) where {T} @@ -62,13 +62,13 @@ function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::D if params[:corr_type] == "FFT_unwrap" (wrapped_points, correlation) = find_wrapped(nav, addData.nav_time, addData.trace, addData.numslices, addData.TR) - nav = wrap_corr(nav, wrapped_points, correlation, addData.numslices) + nav = wrap_corr!(nav, wrapped_points, correlation, addData.numslices) end nav_return = deepcopy(nav) # Correct for different TEs - nav = TE_corr(nav, acqData, addData.dt_nav, addData.TE_nav, addData.numsamples, addData.numechoes) + nav = TE_corr!(nav, acqData, addData.dt_nav, addData.TE_nav, addData.numsamples, addData.numechoes) nav = exp.(im*nav) # Apply the correction to the data @@ -139,7 +139,7 @@ function comp_centerline(addData::additionalNavInput) end """ - nav = TE_corr(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T} + nav = TE_corr!(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T} Compute the phase value for the navigator correction basing on the exact acquisition time of each data sample in the line and for each echo. Return a four dimensional navigator array. @@ -154,7 +154,7 @@ Return a four dimensional navigator array. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ -function TE_corr(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T} +function TE_corr!(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T} # Set up navigator phase timing nav = nav ./ TE_nav @@ -230,7 +230,7 @@ function remove_ref_ph!(nav::Array{Complex{T}, 4}, lines::Int64, index::Int64) w end """ - wrap_corr(nav::Array{Float64, 4}, wrapped_points::Array{Int8, 2}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64) + wrap_corr!(nav::Array{Float64, 4}, wrapped_points::Array{Int8, 2}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64) Unwrap the wrapped points identified with the find_wrapped funtion. These functions can be used only if physiological recording is available. @@ -241,7 +241,7 @@ Unwrap the wrapped points identified with the find_wrapped funtion. These functi * `slices::Int64` - number of slices """ -function wrap_corr(nav::Array{Float64, 4}, wrapped_points::Array{Int8, 2}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64) +function wrap_corr!(nav::Array{Float64, 4}, wrapped_points::Array{Int8, 2}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64) invertNavSign!(nav, correlation, slices) wrapped_points_local = reshape(wrapped_points, (1, 1, size(wrapped_points)...)) diff --git a/test/DataTests.jl b/test/DataTests.jl index 7b994d1..99404f8 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -17,8 +17,9 @@ function test_AdjustData_raw(datadir::String) rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 noisemat_rawData = rawData.profiles[1].data noisemat = ExtractNoiseData!(rawData) + flags_nonoise = ExtractFlags(rawData) - @test any(flags_Bireverse[:,19] .== false) + @test any(flags_nonoise[:,19] .== false) @test noisemat == noisemat_rawData # test reverse bipolar. The revese flag is number 22 @@ -42,8 +43,9 @@ function test_AdjustData_raw(datadir::String) end -function test_AdjustData_acq(datadir::String, tmpResdir::String) +function test_AdjustData_acq(datadir::String) + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") numProfiles = size(rawData.profiles, 1) rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") acqData = AcquisitionData(rawData, estimateProfileCenter=true) @@ -97,7 +99,7 @@ function test_CoilSensMap(datadir::String, tmpResdir::String) end -function test_niftsave(datadir::String, tmpResdir::String) +function test_niftisave(datadir::String, tmpResdir::String) map = FileIO.load(joinpath(datadir, "map.jld2"), "map") acq = AcquisitionData(map, estimateProfileCenter=true) @@ -112,8 +114,9 @@ end function testdata(datadir::String, tmpResdir::String) @testset "DataTests" begin - test_AdjustData_raw() - test_CoilSensMap() - test_niftisave() + test_AdjustData_raw(datadir) + test_AdjustData_acq(datadir) + test_CoilSensMap(datadir, tmpResdir) + test_niftisave(datadir, tmpResdir) end end \ No newline at end of file diff --git a/test/navTests.jl b/test/navTests.jl index 9c5d215..b0033ff 100644 --- a/test/navTests.jl +++ b/test/navTests.jl @@ -1,36 +1,147 @@ +function test_centerline_position(datadir::String) -function test_knav(datadir::String, tmpResdir::String) + rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(rawMap, estimateProfileCenter=true) + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + deleteat!(rawData.profiles, 1:2) # remove reference data + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") + centerline = [32.0] + addData = additionalNavInput(noise, rawData, acqData, acqMap, nothing, nothing, centerline) + centerline = comp_centerline(addData) + + @test centerline == [128] +end + +function test_wrap_corr() + + slices = 1 + nav = ones(Float64, 1,1,128,1) + nav[1,1,:,1] = sin.(Array(1:80:10240)) + wrapped_points = zeros(Int8, 128, 1) + wrapped_points[10:13,1] .= 1 + # test with positive correlation + correlation = [0.5] + nav_unwrapped = deepcopy(nav) + nav_unwrapped = wrap_corr!(nav_unwrapped, wrapped_points, correlation, slices) + + @test any(nav_unwrapped[1,1,10:13,1] .== nav[1,1,10:13,1] .+ 2pi) + + # test with negaticve correlation + correlation = [-0.5] + nav_unwrapped = deepcopy(nav) + nav_unwrapped = wrap_corr!(nav_unwrapped, wrapped_points, correlation, slices) + + @test any(nav_unwrapped[1,1,10:13,1] .== nav[1,1,10:13,1] .- 2pi) + +end + +function test_apply_corr(datadir::String, tmpResdir::String) # Load data - rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") - acqMap = AcquisitionData(map, estimateProfileCenter=true) rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") deleteat!(rawData.profiles, 1:2) # remove reference data - acqData = AcquisitionData(data, estimateProfileCenter=true) + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + CopyTE!(rawData, acqData) + acqData_nocorr = deepcopy(acqData) noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") sensit = ResizeSensit!(sensit, acqMap, acqData) # Simulate nav data + nav = ones(Float64, 1,1,128,1) + nav[1,1,:,1] = 3 .* sin.(Array(1:1:128)) + + nav = TE_corr!(nav, acqData, 1e-5, acqData.traj[1].TE .* 1e-3, 256, 1) + nav = exp.(im .* nav) + apply_corr!(nav, acqData, 1,128,256,1) - # Simulate centerline + # Reconstruct the data + img_corr = Reconstruct(acqData, sensit, noise) + img = Reconstruct(acqData_nocorr, sensit, noise) - # Simulate trac + # Reverse the correction + nav = ones(Float64, 1,1,128,1) + nav[1,1,:,1] = - 3 .* sin.(Array(1:1:128)) + nav = TE_corr!(nav, acqData, 1e-5, acqData.traj[1].TE .* 1e-3, 256, 1) + nav = exp.(im .* nav) + apply_corr!(nav, acqData, 1,128,256,1) + img_corrcorr = Reconstruct(acqData, sensit, noise) - # Navigator correction + uniformity = measUniformity(img.data, sensit) + uniformity_corr = measUniformity(img_corr.data, sensit) + uniformity_corrcorr = measUniformity(img_corrcorr.data, sensit) - # Reconstruct the data + @test uniformity - uniformity_corrcorr < 1e-6 + @test uniformity - uniformity_corr > 1.3 + + err = norm(vec(img_corrcorr.data)-vec(img.data))/norm(vec(img.data)) + @test err < 1e-6 + + err = norm(vec(img_corr.data)-vec(img.data))/norm(vec(img.data)) + @test err > 1 + +end + +function test_FFTnav_unwrap(datadir::String, tmpResdir::String) + + # Load data + rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(rawMap, estimateProfileCenter=true) + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + deleteat!(rawData.profiles, 1:2) # remove reference data + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + acqData.traj[1].TE = rawData.profiles[2].head.user_int[8] .* 1e-3 + (nav, nav_time) = ExtractNavigator(rawData) + nav_time = nav_time[:,1:1] .* 2.5 + acqData_nocorr = deepcopy(acqData) + noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") + sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + sensit = ResizeSensit!(sensit, acqMap, acqData) + centerline = [32.0] + + # Simulate nav data + nav = ones(Complex{Float32}, 1,1,128,1) + nav[1,1,:,1] = exp.(im * 2 * sin.(Array(0.5:0.5:64))) + nav = repeat(nav, 256, 32, 1, 1) + + # Simulate resp recording + trace_data = sin.(Array(-4:0.1:68)) + trace_time = range(findmin(nav_time)[1] - 7 * 500, findmax(nav_time)[1] + 10 * 500, length(trace_data)) + trace = hcat(trace_time, trace_data) - img = Reconstruct(acqData, sensit, noisemat) + # FFT correction + addData = additionalNavInput(noise, rawData, acqData, acqMap, nav_time, trace, centerline) + params = defaultNavParams() + params[:corr_type] = "FFT_unwrap" + params[:use_SCT] = true + output = NavCorr!(nav, acqData, params, addData) + + # Reconstruct the data + img_corr = Reconstruct(acqData, sensit, noise) + img = Reconstruct(acqData_nocorr, sensit, noise) - @test + uniformity = measUniformity(img.data, sensit) + uniformity_corr = measUniformity(img_corr.data, sensit) + @test uniformity - uniformity_corr > 1.5 + + err = norm(vec(img_corr.data)-vec(img.data))/norm(vec(img.data)) + @test err > 1 + + @test norm(vec(output.navigator[1,1,:,1])-vec(angle.(nav[1,1,:,1])))/norm(vec(angle.(nav[1,1,:,1]))) < 0.06 + + @test output.centerline == [128] + end + function test(datadir::String, tmpResdir::String) @testset "NavigatorTests" begin - test_knav() - test_navunwrap() + test_centerline_position(datadir::String) + test_wrap_corr() + test_apply_corr(datadir, tmpResdir) + test_FFTnav_unwrap() end end \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 130cc8f..ed9cbed 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -2,6 +2,7 @@ using MRINavigator using FileIO using Test using Coverage +using Setfield using Scratch using LazyArtifacts @@ -12,7 +13,7 @@ const datadir = joinpath(artifact"TestDataNavigator", "data") const tmpResdir = @get_scratch!("tmp") @info "If you want to check the output of the tests, please head to $tmpResdir." +include("testFunction.jl") include("dataTests.jl") include("navTests.jl") - -coverage = process_folder() \ No newline at end of file +include("unwrapTests.jl") \ No newline at end of file diff --git a/test/testFunction.jl b/test/testFunction.jl new file mode 100644 index 0000000..ab3ed75 --- /dev/null +++ b/test/testFunction.jl @@ -0,0 +1,12 @@ + +function measUniformity(img::Matrix{T}, sensit::Array{T,4}) where {T} + + maxval = findmax(abs.(img))[1] + img = img ./ maxval + thresh = 0.5* mean(abs.(sensit[:,:,1,1])) + mask_index = findall(x -> x > thresh, abs.(sensit[:,:,1,1])) + uniformity = 1 / std(abs.(img[mask_index])) + + return uniformity + +end \ No newline at end of file diff --git a/test/unwrapTests.jl b/test/unwrapTests.jl new file mode 100644 index 0000000..e69de29 From 6a34f8936f11f1e83754c3a0c4f25e2f582f09c5 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Fri, 11 Aug 2023 16:47:24 +0200 Subject: [PATCH 47/92] weird commit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9b20b7e..1603d5e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # MRINavigator -[![Build status](https://github.com/NordicMRspine/MRInavigator.jl/workflows/CI/badge.svg)](https://github.com/NordicMRspine/MRInavigator.jl/actions) -[![codecov.io](http://codecov.io/github/NordicMRspine/MRInavigator.jl/coverage.svg?branch=setup)](http://codecov.io/github/NordicMRspine/MRInavigator.jl.jl?branch=setup) +[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/Laura2305/MRINavigator.jl) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 4f902c672d18413499251d0ae0ea0981e5ebb896 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Sat, 12 Aug 2023 22:58:57 +0200 Subject: [PATCH 48/92] modified unwrap for 1 slice data --- src/Unwrap.jl | 5 ++++- test/navTests.jl | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Unwrap.jl b/src/Unwrap.jl index 7513ee6..3358fcd 100644 --- a/src/Unwrap.jl +++ b/src/Unwrap.jl @@ -26,9 +26,12 @@ function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace # Invert navigator sign if the correlation is negative invertNavSign!(nav_norm, correlation, slices) - # Find navigator slices with higher correlationt to the trace + # Find navigator slices with higher correlation to the trace max_corr = findmax(abs.(correlation))[1] std_corr = std(abs.(correlation)) + if isnan(std_corr) + std_corr = 1 + end corr_relevant = findall(>(max_corr - 1.5*std_corr), abs.(correlation)) size_corr_relevant = size(corr_relevant,1) diff --git a/test/navTests.jl b/test/navTests.jl index b0033ff..ab546a8 100644 --- a/test/navTests.jl +++ b/test/navTests.jl @@ -117,6 +117,9 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) params[:use_SCT] = true output = NavCorr!(nav, acqData, params, addData) + + + # Reconstruct the data img_corr = Reconstruct(acqData, sensit, noise) img = Reconstruct(acqData_nocorr, sensit, noise) @@ -136,12 +139,11 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) end - function test(datadir::String, tmpResdir::String) @testset "NavigatorTests" begin test_centerline_position(datadir::String) test_wrap_corr() test_apply_corr(datadir, tmpResdir) - test_FFTnav_unwrap() + test_FFTnav_unwrap(datadir, tmpResdir) end end \ No newline at end of file From e9ce741a2a924d5ff8e4999d72bd2130a908af7b Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Sat, 12 Aug 2023 23:31:44 +0200 Subject: [PATCH 49/92] finished navTests --- test/navTests.jl | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/test/navTests.jl b/test/navTests.jl index ab546a8..9fa6271 100644 --- a/test/navTests.jl +++ b/test/navTests.jl @@ -102,7 +102,7 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) # Simulate nav data nav = ones(Complex{Float32}, 1,1,128,1) - nav[1,1,:,1] = exp.(im * 2 * sin.(Array(0.5:0.5:64))) + nav[1,1,:,1] = exp.(im * 3.25 * sin.(Array(0.5:0.5:64)) .* sin.(Array(0:0.0235:3))) nav = repeat(nav, 256, 32, 1, 1) # Simulate resp recording @@ -117,9 +117,6 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) params[:use_SCT] = true output = NavCorr!(nav, acqData, params, addData) - - - # Reconstruct the data img_corr = Reconstruct(acqData, sensit, noise) img = Reconstruct(acqData_nocorr, sensit, noise) @@ -132,9 +129,13 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) err = norm(vec(img_corr.data)-vec(img.data))/norm(vec(img.data)) @test err > 1 - @test norm(vec(output.navigator[1,1,:,1])-vec(angle.(nav[1,1,:,1])))/norm(vec(angle.(nav[1,1,:,1]))) < 0.06 + @test 0.3 < norm(vec(output.navigator[1,1,:,1])-vec(angle.(nav[1,1,:,1])))/norm(vec(angle.(nav[1,1,:,1]))) < 0.5 @test output.centerline == [128] + + @test 0.7 < output.correlation[1] < 0.9 + + @test length(findall(x -> x==1, output.wrapped_points)) >= 1 end From 4274ef6f91438b76e83ff1c7e5d9ddd95322477b Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 14 Aug 2023 10:38:33 +0200 Subject: [PATCH 50/92] bug fix unwrap --- src/Unwrap.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Unwrap.jl b/src/Unwrap.jl index 3358fcd..5fb27fe 100644 --- a/src/Unwrap.jl +++ b/src/Unwrap.jl @@ -289,8 +289,7 @@ function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, delay = alignsignals(trace_data[time_relevant], nav_align[time_relevant])[2] trace_time = time - if delay < TR/2 - print(delay) + if -TR/2 < delay < TR/2 trace_time = circshift(time, delay) end From 67d8fafc9768d6d45e96da3c5cdcdf94ca160a4d Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 14 Aug 2023 18:00:56 +0200 Subject: [PATCH 51/92] ultimate unit tests --- Project.toml | 3 ++- src/NavData.jl | 4 ++-- src/Unwrap.jl | 17 ++++++++++------- test/DataTests.jl | 7 ++++--- test/navTests.jl | 30 ++++++++++++++++-------------- test/runtests.jl | 4 ++++ test/unwrapTests.jl | 38 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 76 insertions(+), 27 deletions(-) diff --git a/Project.toml b/Project.toml index d4bcf55..1708977 100644 --- a/Project.toml +++ b/Project.toml @@ -8,6 +8,7 @@ Coverage = "a2441757-f6aa-5fb2-8edb-039e3f45d037" DSP = "717857b8-e6f2-59f4-9121-6e50c889abd2" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" MRIBase = "f7771a9a-6e57-4e71-863b-6e4b6a2f17df" @@ -16,8 +17,8 @@ MRIFiles = "5a6f062f-bf45-497d-b654-ad17aae2a530" MRIReco = "bdf86e05-2d2b-5731-a332-f3fe1f9e047f" NIfTI = "a3a9e032-41b5-5fc4-967a-a6b7a19844d3" PolygonOps = "647866c9-e3ac-4575-94e7-e3d426903924" -REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee" +REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" Scratch = "6c6a2e73-6563-6170-7368-637461726353" Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" diff --git a/src/NavData.jl b/src/NavData.jl index 3cd7292..ab6e523 100644 --- a/src/NavData.jl +++ b/src/NavData.jl @@ -6,7 +6,7 @@ mutable struct additionalNavInput numechoes::Int64 numsamples::Int64 numlines::Int64 - TR::Int64 + TR::Float64 TE_nav::Float64 dt_nav::Float64 freq_enc_FoV::Union{Array{Int64}, Nothing} @@ -58,7 +58,7 @@ function additionalNavInput( numechoes = numContrasts(acqData) numsamples = acqData.encodingSize[1] numlines = convert(Int64, size(acqData.kdata[1],1)/numsamples) - TR = rawData.params["TR"] + TR = rawData.params["TR"] *1e-3 ii=1 while rawData.profiles[ii].head.user_int[8] < rawData.profiles[ii+1].head.user_int[8] diff --git a/src/Unwrap.jl b/src/Unwrap.jl index 5fb27fe..6b9f46f 100644 --- a/src/Unwrap.jl +++ b/src/Unwrap.jl @@ -1,5 +1,7 @@ +export find_wrapped + """ - find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Int64) + find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Float64) Identify the position of the wrapped points in the navigator phase estimates. The respiratory belt recording is necessary. Return the position of the wrapped points and the correlation between each navigator slice and the trace data. @@ -9,9 +11,9 @@ Return the position of the wrapped points and the correlation between each navig * `nav_time::Array{Float64, 2}` - navigator data time stamps in ms from the beginning of the day, for each slice * `trace::Array{Float64, 2}` - physiological trace recording. Two columns vector. The first column contains the time stamps in ms from the beginning of the day * `slices::Int64` - number of slices -* `TR::Int64` - acqusition repetition time (TR) +* `TR::Float64` - acqusition repetition time (TR) in seconds """ -function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Int64) +function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Float64) time = trace[:,1] trace_data = trace[:,2] ./ findmax(trace[:,2])[1] .* pi/2 @@ -270,7 +272,7 @@ end """ - trace_time = align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Int64) + trace_time = align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Float64) Align the signal in the first imput (time stamps in the second imput) to the signal in the third imput (time stamps in the fourth input). acquisition TR in the last input. Use the finddelay function from DSP.jl, find the peak of the signals cross-correlation. @@ -281,15 +283,16 @@ Return the new time vector for the signal in the third input. * `nav_time_align::Array{Float64, 1}` - time stamps for the navigator phase estimates in ms from the beginning of the day * `trace_data::Array{Float64, 1}` - respiratory belt recording in ms from the beginning of the day * `time::Array{Float64, 1}` - time stamps for the respiratory belt recording in se -* `TR::Int64` - acquisition repetition time +* `TR::Float64` - acquisition repetition time in seconds """ -function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Int64) +function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Float64) time_relevant = findall(x -> (x>(findmin(abs.(nav_time_align))[1]) && x< (findmax(abs.(nav_time_align))[1])), time) delay = alignsignals(trace_data[time_relevant], nav_align[time_relevant])[2] trace_time = time + sampling_freq = size(time,1)/(time[end]-time[1])*1000 - if -TR/2 < delay < TR/2 + if -TR/2 < delay / sampling_freq < TR/2 trace_time = circshift(time, delay) end diff --git a/test/DataTests.jl b/test/DataTests.jl index 99404f8..005a45c 100644 --- a/test/DataTests.jl +++ b/test/DataTests.jl @@ -47,7 +47,6 @@ function test_AdjustData_acq(datadir::String) rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") numProfiles = size(rawData.profiles, 1) - rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") acqData = AcquisitionData(rawData, estimateProfileCenter=true) CopyTE!(rawData, acqData) (nav, nav_time) = ExtractNavigator(rawData) @@ -73,7 +72,7 @@ function test_CoilSensMap(datadir::String, tmpResdir::String) acqData = AcquisitionData(data, estimateProfileCenter=true) sensit = CompSensit(acqMap) #binarize sensit - thresh = 0.5* mean(abs.(sensit)) + thresh = 0.5 * mean(abs.(sensit)) cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) sensit_binar = zeros(Int64, size(sensit)) sensit_binar[cartes_index_binar] .= 1 @@ -119,4 +118,6 @@ function testdata(datadir::String, tmpResdir::String) test_CoilSensMap(datadir, tmpResdir) test_niftisave(datadir, tmpResdir) end -end \ No newline at end of file +end + +testdata(datadir, tmpResdir) \ No newline at end of file diff --git a/test/navTests.jl b/test/navTests.jl index 9fa6271..46598be 100644 --- a/test/navTests.jl +++ b/test/navTests.jl @@ -36,16 +36,18 @@ function test_wrap_corr() end -function test_apply_corr(datadir::String, tmpResdir::String) +function test_apply_corr(datadir::String) # Load data rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") deleteat!(rawData.profiles, 1:2) # remove reference data acqData = AcquisitionData(rawData, estimateProfileCenter=true) CopyTE!(rawData, acqData) + rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(rawMap, estimateProfileCenter=true) acqData_nocorr = deepcopy(acqData) noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") - sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + sensit = CompSensit(acqMap) sensit = ResizeSensit!(sensit, acqMap, acqData) # Simulate nav data @@ -83,7 +85,7 @@ function test_apply_corr(datadir::String, tmpResdir::String) end -function test_FFTnav_unwrap(datadir::String, tmpResdir::String) +function test_FFTnav_unwrap(datadir::String) # Load data rawMap = FileIO.load(joinpath(datadir, "map.jld2"), "map") @@ -96,7 +98,7 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) nav_time = nav_time[:,1:1] .* 2.5 acqData_nocorr = deepcopy(acqData) noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") - sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + sensit = sensit = CompSensit(acqMap) sensit = ResizeSensit!(sensit, acqMap, acqData) centerline = [32.0] @@ -107,7 +109,7 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) # Simulate resp recording trace_data = sin.(Array(-4:0.1:68)) - trace_time = range(findmin(nav_time)[1] - 7 * 500, findmax(nav_time)[1] + 10 * 500, length(trace_data)) + trace_time = range(findmin(nav_time)[1] - 8 * 500, findmax(nav_time)[1] + 9 * 500, length(trace_data)) trace = hcat(trace_time, trace_data) # FFT correction @@ -127,24 +129,24 @@ function test_FFTnav_unwrap(datadir::String, tmpResdir::String) @test uniformity - uniformity_corr > 1.5 err = norm(vec(img_corr.data)-vec(img.data))/norm(vec(img.data)) - @test err > 1 - - @test 0.3 < norm(vec(output.navigator[1,1,:,1])-vec(angle.(nav[1,1,:,1])))/norm(vec(angle.(nav[1,1,:,1]))) < 0.5 + @test err > 0.7 @test output.centerline == [128] - @test 0.7 < output.correlation[1] < 0.9 + @test 0.6 < output.correlation[1] < 0.8 @test length(findall(x -> x==1, output.wrapped_points)) >= 1 end -function test(datadir::String, tmpResdir::String) +function testnav(datadir::String) @testset "NavigatorTests" begin - test_centerline_position(datadir::String) + test_centerline_position(datadir) test_wrap_corr() - test_apply_corr(datadir, tmpResdir) - test_FFTnav_unwrap(datadir, tmpResdir) + test_apply_corr(datadir) + test_FFTnav_unwrap(datadir) end -end \ No newline at end of file +end + +testnav(datadir) \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index ed9cbed..c76d4f9 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,8 +1,12 @@ using MRINavigator +using MRIReco +using MRICoilSensitivities using FileIO using Test using Coverage using Setfield +using Statistics +using ImageUtils using Scratch using LazyArtifacts diff --git a/test/unwrapTests.jl b/test/unwrapTests.jl index e69de29..e739c1e 100644 --- a/test/unwrapTests.jl +++ b/test/unwrapTests.jl @@ -0,0 +1,38 @@ +function test_find_wrapped() + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + deleteat!(rawData.profiles, 1:2) + (nav, nav_time) = ExtractNavigator(rawData) + nav_time = nav_time[:,1:1] .* 2.5 + + # Simulate nav data + nav_unwrapped = ones(Float64, 1,1,128,1) + nav_unwrapped[1,1,:,1] = 3 * sin.(Array(0.5:0.5:64)) .+0.2 + nav = angle.(exp.(im * nav_unwrapped)) + wrapped_groundTruth = findall(x -> x > 0.1, abs.(nav .- nav_unwrapped)[1,1,:,:]) + + # Simulate resp recording + trace_data = sin.(Array(-5:0.1:68)) + trace_time = range(findmin(nav_time)[1] - 9 * 500, findmax(nav_time)[1] + 8 * 500, length(trace_data)) + trace = hcat(trace_time, trace_data) + slices = 1 + TR = convert(Int64, rawData.params["TR"]) .* 1e-3 + + (wrapped_points, correlation) = find_wrapped(nav, nav_time, trace, slices, TR) + wrapped_computed = findall(x-> x==1, wrapped_points) + + nav = wrap_corr!(nav, wrapped_points, correlation, 1) + + @test 0.5 < correlation[1] < 0.6 + @test wrapped_computed == wrapped_groundTruth + +end + + +function testunwrap() + @testset "UnwrapTests" begin + test_find_wrapped() + end +end + +testunwrap() \ No newline at end of file From 92135bba9db7d6c7cb1311c2ec19184f763a8653 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 15 Aug 2023 14:09:50 +0200 Subject: [PATCH 52/92] fix and improve find_wrapped function --- src/NavData.jl | 13 ++++++------- src/NavParameters.jl | 4 ++-- src/Navigator.jl | 2 +- src/Unwrap.jl | 45 ++++++++++++++++++++++---------------------- test/unwrapTests.jl | 3 +-- 5 files changed, 33 insertions(+), 34 deletions(-) diff --git a/src/NavData.jl b/src/NavData.jl index ab6e523..39de468 100644 --- a/src/NavData.jl +++ b/src/NavData.jl @@ -6,7 +6,6 @@ mutable struct additionalNavInput numechoes::Int64 numsamples::Int64 numlines::Int64 - TR::Float64 TE_nav::Float64 dt_nav::Float64 freq_enc_FoV::Union{Array{Int64}, Nothing} @@ -37,10 +36,11 @@ Construct the additional data structure that is needed as imput to navCorr! * `acqData::AcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl # Optional arguments with default value = nothing -* `acqMap::Union{AcquisitionData, Nothing} = nothing` - acquisition data structure obtained converting reference data with MRIReco.jl -* `nav_time::Union{Array{Complex{Float32}, 2}, Nothing}` - time stamps for the navigator data obtained with ExtractNavigator (in ms from the beginning of the day) -* `trace::Union{Matrix{Float64}, Nothing}` - respiratory trace time stamps and values in matrix with two colunms (1:time [ms], 2:trace) -* `centerline::Union{Vector{Float64}, Nothing}` - coordinates of the spinal cord ceterline obtained with callSCT +* `acqMap::Union{AcquisitionData, Nothing} = nothing` - acquisition data structure obtained converting reference data with MRIReco.jl +* `nav_time::Union{Array{Complex{Float32}, 2}, Nothing}` - time stamps for the navigator data obtained with ExtractNavigator (in ms from the beginning of the day) +* `trace::Union{Matrix{Float64}, Nothing}` - respiratory trace time stamps and values in matrix with two colunms (1:time [ms], 2:trace). + Include time points before and after the image acquisition (at least 2 s). +* `centerline::Union{Vector{Float64}, Nothing}` - coordinates of the spinal cord ceterline obtained with callSCT MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ @@ -58,7 +58,6 @@ function additionalNavInput( numechoes = numContrasts(acqData) numsamples = acqData.encodingSize[1] numlines = convert(Int64, size(acqData.kdata[1],1)/numsamples) - TR = rawData.params["TR"] *1e-3 ii=1 while rawData.profiles[ii].head.user_int[8] < rawData.profiles[ii+1].head.user_int[8] @@ -73,7 +72,7 @@ function additionalNavInput( (freq_enc_FoV, freq_enc_samples, phase_enc_FoV, phase_enc_samples) = Find_scaling_sensit(acqMap, acqData) end - return additionalNavInput(numslices, numechoes, numsamples, numlines, TR, TE_nav, dt_nav, + return additionalNavInput(numslices, numechoes, numsamples, numlines, TE_nav, dt_nav, freq_enc_FoV, freq_enc_samples, phase_enc_samples, nav_time, noisemat, trace, centerline) end diff --git a/src/NavParameters.jl b/src/NavParameters.jl index 465690c..5820041 100644 --- a/src/NavParameters.jl +++ b/src/NavParameters.jl @@ -27,8 +27,8 @@ Define default parameters for data loading, navigator correction and image recon # Additional optional parameters are * `path_niftiMap::String` - path to the file where the reconstructed reference data will be saved in nifti format. The file extension must be .nii * `path_centerline::String` - path to the folder where the Spinal Cord Toolbox (SCT) centerline results will be saved -* `path_physio::String` - path to the physiological trace recording in .mat format. The variable should be a two columns vector. - The first column should contain the time in seconds from the beginning of the day +* `path_physio::String` - path to the physiological trace recording in .mat format. The variable should be a two columns vector (1:time [ms], 2:trace). + The time should be expressed in seconds from the beginning of the day and contains time points befroe and after the image acquisiton (at least 2 s). ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 SCT reference: https://spinalcordtoolbox.com diff --git a/src/Navigator.jl b/src/Navigator.jl index 980c6eb..6888295 100644 --- a/src/Navigator.jl +++ b/src/Navigator.jl @@ -61,7 +61,7 @@ function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::D wrapped_points = nothing if params[:corr_type] == "FFT_unwrap" - (wrapped_points, correlation) = find_wrapped(nav, addData.nav_time, addData.trace, addData.numslices, addData.TR) + (wrapped_points, correlation) = find_wrapped(nav, addData.nav_time, addData.trace, addData.numslices) nav = wrap_corr!(nav, wrapped_points, correlation, addData.numslices) end diff --git a/src/Unwrap.jl b/src/Unwrap.jl index 6b9f46f..a643bf7 100644 --- a/src/Unwrap.jl +++ b/src/Unwrap.jl @@ -1,25 +1,26 @@ export find_wrapped """ - find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Float64) + find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64) Identify the position of the wrapped points in the navigator phase estimates. The respiratory belt recording is necessary. Return the position of the wrapped points and the correlation between each navigator slice and the trace data. # Arguments -* `nav::Array{Float64, 4}` - navigator phase estimates +* `nav::Array{Float64, 4}` - navigator phase estimates * `nav_time::Array{Float64, 2}` - navigator data time stamps in ms from the beginning of the day, for each slice -* `trace::Array{Float64, 2}` - physiological trace recording. Two columns vector. The first column contains the time stamps in ms from the beginning of the day -* `slices::Int64` - number of slices -* `TR::Float64` - acqusition repetition time (TR) in seconds +* `trace::Array{Float64, 2}` - physiological trace recording. Two columns vector (1:time [ms], 2:trace). The first column contains the time stamps in ms from the beginning of the day. + Include time points before and after the image acquisition (at least 2 s). +* `slices::Int64` - number of slices """ -function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64, TR::Float64) +function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64) time = trace[:,1] trace_data = trace[:,2] ./ findmax(trace[:,2])[1] .* pi/2 - trace_data = smooth_trace(time, trace_data) + trace_data = smooth_lowpass(time, trace_data) + trace_data = smooth_highpass(time, trace_data)[:,1] nav_norm = deepcopy(nav[1,1,:,:]) - nav_norm = smooth_nav(nav_time, nav_norm, slices) + nav_norm = smooth_highpass(nav_time, nav_norm, slices) # Interpolate the trace values to the navigator time points for each slice trace_data_int = interpolate(trace_data, time, nav_time, slices) @@ -43,15 +44,16 @@ function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace order = sortperm(nav_time_align) nav_align = nav_align[order] nav_time_align = nav_time_align[order] - nav_align = smooth_trace(nav_time_align, nav_align) # smooth the signal after combining multiple slices + nav_align = smooth_lowpass(nav_time_align, nav_align) # smooth the signal after combining multiple slices nav_align = interpolate(nav_align, nav_time_align, time) - trace_time = align(nav_align, nav_time_align, trace_data, time, TR) + trace_time = align(nav_align, nav_time_align, trace_data, time) # Invert navigator sign if the correlation is negative invertNavSign!(nav_norm, correlation, slices) # Interpolate the trace values to the navigator time points for each slice - time_relevant = findall(x -> (x>(findmin(abs.(nav_time_align))[1]) && x< (findmax(abs.(nav_time_align))[1])), trace_time) + sampling_time = (time[end]-time[1]) / size(time,1) + time_relevant = findall(x -> (x>(findmin(abs.(nav_time))[1] - 5 * sampling_time) && x< (findmax(abs.(nav_time))[1]) + 5 * sampling_time), trace_time) trace_data_int = interpolate(trace_data[time_relevant], trace_time[time_relevant], nav_time, slices) # Compute correlation after alignemnt @@ -108,7 +110,7 @@ function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace end """ - trace_data = smooth_trace(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) + trace_data = smooth_lowpass(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) Smooth the physiological trace recording using a butterworth low-pass filter (cut-off frequency 0.7Hz, 3 poles) @@ -116,7 +118,7 @@ Smooth the physiological trace recording using a butterworth low-pass filter (cu * `time::Array{Float64, 1}` - time in ms from the beginning of the day for the belt recording * `trace_data::Array{Float64, 1}` - belt recording """ -function smooth_trace(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) +function smooth_lowpass(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) sampling_freq = size(time,1)/(time[end]-time[1])*1000 filter = digitalfilter(Lowpass(0.7, fs = sampling_freq), Butterworth(3)) @@ -126,16 +128,16 @@ function smooth_trace(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) end """ - nav_norm = smooth_nav(nav_time::Array{Float64, 2}, nav_norm::Array{Float64, 2}, slices:: Int64) + nav_norm = smooth_highpass(nav_time::Array{Float64, 2}, nav_norm::Array{Float64, 2}, slices:: Int64) Remove the low frequencies components from the navigatior phase estimate using a butterworth high-pass filter (cut-off frequency 0.5Hz, 3 poles) # Arguments -* `nav_time::Array{Float64, 2}` - navigator data time stamps in ms from the beginning of the day, for each slice -* `nav_norm::Array{Float64, 1}` - navigator phase estimates +* `nav_time::Array{Float64}` - navigator data time stamps in ms from the beginning of the day, for each slice +* `nav_norm::Array{Float64}` - navigator phase estimates * `slices::Int64` - number of slices """ -function smooth_nav(nav_time::Array{Float64, 2}, nav_norm::Array{Float64, 2}, slices::Int64) +function smooth_highpass(nav_time::Array{Float64}, nav_norm::Array{Float64}, slices = 1) sampling_freq = size(nav_time, 1) * size(nav_time,2) / (findmax(abs.(nav_time))[1] - findmin(abs.(nav_time))[1]) *1000 filter = digitalfilter(Highpass(0.15, fs = sampling_freq), Butterworth(5)) @@ -272,9 +274,9 @@ end """ - trace_time = align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Float64) + trace_time = align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}) -Align the signal in the first imput (time stamps in the second imput) to the signal in the third imput (time stamps in the fourth input). acquisition TR in the last input. +Align the signal in the first imput (time stamps in the second imput) to the signal in the third imput (time stamps in the fourth input). Use the finddelay function from DSP.jl, find the peak of the signals cross-correlation. Return the new time vector for the signal in the third input. @@ -283,16 +285,15 @@ Return the new time vector for the signal in the third input. * `nav_time_align::Array{Float64, 1}` - time stamps for the navigator phase estimates in ms from the beginning of the day * `trace_data::Array{Float64, 1}` - respiratory belt recording in ms from the beginning of the day * `time::Array{Float64, 1}` - time stamps for the respiratory belt recording in se -* `TR::Float64` - acquisition repetition time in seconds """ -function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}, TR::Float64) +function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}) time_relevant = findall(x -> (x>(findmin(abs.(nav_time_align))[1]) && x< (findmax(abs.(nav_time_align))[1])), time) delay = alignsignals(trace_data[time_relevant], nav_align[time_relevant])[2] trace_time = time sampling_freq = size(time,1)/(time[end]-time[1])*1000 - if -TR/2 < delay / sampling_freq < TR/2 + if -1 < delay / sampling_freq < 1 trace_time = circshift(time, delay) end diff --git a/test/unwrapTests.jl b/test/unwrapTests.jl index e739c1e..61a7f86 100644 --- a/test/unwrapTests.jl +++ b/test/unwrapTests.jl @@ -16,9 +16,8 @@ function test_find_wrapped() trace_time = range(findmin(nav_time)[1] - 9 * 500, findmax(nav_time)[1] + 8 * 500, length(trace_data)) trace = hcat(trace_time, trace_data) slices = 1 - TR = convert(Int64, rawData.params["TR"]) .* 1e-3 - (wrapped_points, correlation) = find_wrapped(nav, nav_time, trace, slices, TR) + (wrapped_points, correlation) = find_wrapped(nav, nav_time, trace, slices) wrapped_computed = findall(x-> x==1, wrapped_points) nav = wrap_corr!(nav, wrapped_points, correlation, 1) From a12c1da2e668312a04f5a550f1f797cb86d6ee9f Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 15 Aug 2023 14:34:23 +0200 Subject: [PATCH 53/92] added dependencies --- Project.toml | 6 ++++-- src/MRINavigator.jl | 5 +++++ src/main.jl | 35 +++++------------------------------ 3 files changed, 14 insertions(+), 32 deletions(-) diff --git a/Project.toml b/Project.toml index 1708977..ad83246 100644 --- a/Project.toml +++ b/Project.toml @@ -4,14 +4,16 @@ authors = ["Laura Beghini"] version = "0.1.0" [deps] +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" Coverage = "a2441757-f6aa-5fb2-8edb-039e3f45d037" DSP = "717857b8-e6f2-59f4-9121-6e50c889abd2" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" -JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -MRIBase = "f7771a9a-6e57-4e71-863b-6e4b6a2f17df" +LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" +MAT = "23992714-dd62-5051-b70f-ba57cb901cac" MRICoilSensitivities = "c57eb701-aafc-44a2-a53c-128049758959" MRIFiles = "5a6f062f-bf45-497d-b654-ad17aae2a530" MRIReco = "bdf86e05-2d2b-5731-a332-f3fe1f9e047f" diff --git a/src/MRINavigator.jl b/src/MRINavigator.jl index 90ac921..583e2a7 100644 --- a/src/MRINavigator.jl +++ b/src/MRINavigator.jl @@ -11,6 +11,11 @@ using NIfTI using REPL.TerminalMenus using DataInterpolations using DSP +using FileIO +using MAT +using CSV +using DataFrames + include("AdjustData.jl") include("CoilSensMap.jl") diff --git a/src/main.jl b/src/main.jl index 24dbcad..660d62f 100644 --- a/src/main.jl +++ b/src/main.jl @@ -1,39 +1,14 @@ -#= -function loadData(params::Dict{Symbol, Any}) - rawData = RawAcquisitionData(ISMRMRDFile(params[:path_imgData]), - slice = params[:slices], - contrast = params[:echoes], - repetition = params[:rep]) - if params[:rep] != 0 - for ii = 1:length(rawData.profiles) - rawData = @set rawData.profiles[ii].head.idx.repetition = 0 - end - end - OrderSlices!(rawData) - if params[:rep] == 0 - noisemat = ExtractNoiseData!(rawData) - FileIO.save(params[:path_noise],"noisemat",noisemat) - else - noisemat = FileIO.load(params[:path_noise], "noisemat") - end - ReverseBipolar!(rawData) - RemoveRef!(rawData, params[:slices], params[:echoes]) - (nav, nav_time) = ExtractNavigator(rawData, params[:slices]) - nav_time = nav_time .* 2.5 # seconds from beginning of the day - rawMap = RawAcquisitionData(ISMRMRDFile(params[:path_mapData]), - slice = params[:slices], - contrtast = params[:echoes], - repetition = params[:rep]) - -end -COPY THE USAGE EXAMPLE HERE AND DIVIDE IT IN FUNCTIONS -=# \ No newline at end of file + + + function nav_pipeline() + + end \ No newline at end of file From d04053f3eb6739ff2ce26acaaabc81b95a84018f Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 15 Aug 2023 18:12:48 +0200 Subject: [PATCH 54/92] main function update, find_centerline_pos name change, comp_SCT, use_SCT name change --- src/AdjustData.jl | 7 +- src/CoilSensMap.jl | 28 ++++++- src/NavParameters.jl | 10 +-- src/Navigator.jl | 10 +-- src/SpineCenterline.jl | 30 +++++++- src/main.jl | 161 ++++++++++++++++++++++++++++++++++++++++- test/navTests.jl | 4 +- 7 files changed, 229 insertions(+), 21 deletions(-) diff --git a/src/AdjustData.jl b/src/AdjustData.jl index 3dd7f80..6f7f829 100644 --- a/src/AdjustData.jl +++ b/src/AdjustData.jl @@ -131,10 +131,12 @@ end """ RemoveRef!(rawData::RawAcquisitionData, slices::Union{Vector{Int64}, Nothing}, echoes::Union{Vector{Int64}, Nothing}) -Remove reference data that are not useful for the navigator-based crrection from acquisitions with phase stabilization on Siemens scanners. +Remove reference data that are not useful for the navigator-based correction from acquisitions with phase stabilization on Siemens scanners. +Make sure that this is needed on your data checking the time stamps with mapVBVD in Matlab. Not solid to recalls. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 +mapVBVD reference: https://github.com/CIC-methods/FID-A/blob/master/inputOutput/mapVBVD/README.md # Arguments * `rawData::RawAcquisitionData` - raw data structure obtained loading raw data with MRIReco.jl @@ -201,6 +203,7 @@ end Extract the navigator profiles from the MRIReco.jl raw data structure. These are registered with the same indices (contract, slice, encoding step) as the image data for the first echo time. Return a navigator array and a navigator time array. The navigator array has four dimensions in order: k-space samples, coils, k-space lines, slices. +Effective only if the navigator profile was acquired after the first image profile. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 @@ -209,6 +212,8 @@ MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ function ExtractNavigator(rawData::RawAcquisitionData) + @info "The navigaotr extraction is effective only if the navigator profile was acquired after the first image profile." + total_num = length(rawData.profiles) numberslices = rawData.params["enc_lim_slice"].maximum +1 contrasts = zeros(Int64, total_num) diff --git a/src/CoilSensMap.jl b/src/CoilSensMap.jl index f66da8a..b837948 100644 --- a/src/CoilSensMap.jl +++ b/src/CoilSensMap.jl @@ -1,7 +1,7 @@ -export CompSensit, ResizeSensit!, CompRoughMask +export CompSensit, ResizeSensit!, CompRoughMask, CompResizeSaveSensit """ - sensit = CompSensit(acq::AcquisitionData, thresh = 0.135) + sensit = CompSensit(acq::AcquisitionData, thresh = 0.13) Compute the coils sensitivity maps with masking tuned for spinal cord imaging. Use MRICoilSensitivities.jl from MRIReco.jl alternatively. @@ -12,7 +12,7 @@ MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 * `acqData::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl * `tresh::Float64` - masking treshold: increase for reduced mask size, decrease for extended mask size """ -function CompSensit(acq::AcquisitionData, thresh = 0.135) +function CompSensit(acq::AcquisitionData, thresh = 0.13) sensit = espirit(acq,(6,6),30,eigThresh_1=0.02, eigThresh_2=0) slices = numSlices(acq) @@ -217,4 +217,26 @@ function Find_scaling_sensit(acqMap::AcquisitionData{T}, acqData::AcquisitionDat return freq_enc_FoV, freq_enc_samples, phase_enc_FoV, phase_enc_samples +end + +""" + CompResizeSaveSensit(acqMap::AcquisitionData, acqData::AcquisitionData, path_sensit::String) + +Compute, resize to the image data dimension and save the coils sensitivity maps with masking tuned for spinal cord imaging. +Use MRICoilSensitivities.jl from MRIReco.jl alternatively. + +MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 + +# Arguments +* `acqMap::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl +* `acqData::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl +* `tresh::Float64` - masking treshold: increase for reduced mask size, decrease for extended mask size +""" +function CompResizeSaveSensit(acqMap::AcquisitionData, acqData::AcquisitionData, path_sensit::String, thresh = 0.13) + + sensit = CompSensit(acqMap, thresh) + sensit = ResizeSensit!(sensit, acqMap, acqData) + #Save coil sensitivity + FileIO.save(path_sensit,"sensit",sensit) + end \ No newline at end of file diff --git a/src/NavParameters.jl b/src/NavParameters.jl index 5820041..02fbfc9 100644 --- a/src/NavParameters.jl +++ b/src/NavParameters.jl @@ -9,11 +9,10 @@ Define default parameters for data loading, navigator correction and image recon * `slices::Union{Nothing, Vector}` - number of the slices to be loaded, nothing means all slices * `echoes::Union{Nothing, Vector}` - number of the echoes to be loaded, nothing means all echoes * `rep::Int` - repetition to be loaded, the first repetition is 0. It is mandatory to select one -* `reconstruct_map::Bool` - reconstruct the reference scan and save it in nifti format. To be unsed for spinal cord centerline computation * `comp_sensit::Bool` - compute the sensitivity maps using the reference scan -* `comp_SCT::Bool` - use the Spinal Cord Toolbox (SCT) to find the centerlne position +* `comp_centerline::Bool` - use the Spinal Cord Toolbox (SCT) to find the centerlne position * `trust_SCT::Bool` - trust SCT or display the resutls and wait for user feedback with the julia REPL -* `use_SCT::Bool` - use the spinal cord centerline information in the navigator-based correction +* `use_centerline::Bool` - use the spinal cord centerline information in the navigator-based correction * `corr_type::String` - correction type. Options: "none", "knav", "FFT", "FFT_unwrap" * `FFT_interval::String` - interval in mm to be considered for the FFT based approach @@ -40,11 +39,10 @@ function defaultNavParams() params[:slices] = nothing params[:echoes] = nothing params[:rep] = 0 - params[:reconstruct_map] = false params[:comp_sensit] = true - params[:comp_SCT] = false + params[:comp_centerline] = true params[:trust_SCT] = false - params[:use_SCT] = false + params[:use_centerline] = true params[:corr_type] = "FFT" params[:FFT_interval] = 35 # [millimiters] diff --git a/src/Navigator.jl b/src/Navigator.jl index 6888295..8296d27 100644 --- a/src/Navigator.jl +++ b/src/Navigator.jl @@ -1,4 +1,4 @@ -export NavCorr!, comp_centerline, wrap_corr!, TE_corr!, apply_corr! +export NavCorr!, comp_centerline_pos, wrap_corr!, TE_corr!, apply_corr! """ navOutput = NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::Dict{Symbol, Any}, addData::additionalNavInput) where {T} @@ -28,8 +28,8 @@ function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::D #noisemat = fftshift(fft(ifftshift(noisemat, [1]), [1]), [1]) nav_center = div(addData.numsamples, 2) - if params[:use_SCT] == true - centerline = comp_centerline(addData) + if params[:use_centerline] == true + centerline = comp_centerline_pos(addData) for ii = 1:addData.numslices nav[:,:,:,ii] = circshift(nav[:,:,:,ii], nav_center-centerline[ii]) end @@ -111,14 +111,14 @@ function comp_weights(navabs::Array{T, 4}, noisestd::Matrix{T}, lines::Int64, sl end """ - centerline = comp_centerline(addData::additionalNavInput) + centerline = comp_centerline_pos(addData::additionalNavInput) Convert and return centerline position from the reference data cordinate to the acquisition data coordinates (number of voxels). # Arguments * `addData::additionalNavInput` - mandatory additional data structure obtained with the constructor: additionalNavInput """ -function comp_centerline(addData::additionalNavInput) +function comp_centerline_pos(addData::additionalNavInput) # Compute resolution and disc freq_enc_ref_res = addData.freq_enc_FoV[1] / addData.freq_enc_samples[1] diff --git a/src/SpineCenterline.jl b/src/SpineCenterline.jl index 6b094c1..dc9c7e9 100644 --- a/src/SpineCenterline.jl +++ b/src/SpineCenterline.jl @@ -1,4 +1,4 @@ -export ReconstructSaveMap, ReconstructMap, niftiSaveImg, callSCT +export ReconstructSaveMap, ReconstructMap, niftiSaveImg, callSCT, findCenterline """ @@ -126,4 +126,30 @@ function callSCT(params::Dict{Symbol, Any}) end end -end \ No newline at end of file +end + + +""" + findCenterline(params::Dict{Symbol, Any}) + +Reconstruct the reference data, call spinal cord toolbox and find spinal cord centerline. +If trust_SCT = false in the parameters dictionary the user interaction is required in the Julia REPL. + +# Arguments +* `params::Dict{Symbol, Any}` - paramerters dictionary + +SCT reference: https://spinalcordtoolbox.com +""" +function findCenterline(params::Dict{Symbol, Any}) + + @info "Reco and Save" + # reconstruct and save in nifti the refence data + ReconstructSaveMap(params[:path_niftiMap], params[:path_refData]) + + @info "Find SC Centerline" + # find the spinal cord centerline on the reconstructed reference data + if params[:comp_centerline] == true + callSCT(params) + end + +end diff --git a/src/main.jl b/src/main.jl index 660d62f..de1b3d2 100644 --- a/src/main.jl +++ b/src/main.jl @@ -1,14 +1,171 @@ +export runNavPipeline, saveNoise, loadRawData, convertRawToAcq +""" + runNavPipeline(params::Dict{Symbol, Any}) +Run the navigator pipeline. Return reconstructed image and navigaotr correction output (check NavCorr!). +# Arguments +* `params::Dict{Symbol, Any}` - MRINavigator parameter structure, check defaultNavParams() for info +""" +function runNavPipeline(params::Dict{Symbol, Any}) + + findCenterline(params) + saveNoise(params[:path_imgData], params[:path_noise]::String) + rawData = loadRawData(params) + @info "load noise" + # load noise nacquisition + noisemat = FileIO.load(params[:path_noise], "noisemat") + @info "Extract navigator data. The time stamps are accurate only for Siemens data." + @info "The navigaotr extraction is effective only if the navigator profile was acquired after the first image profile." + (nav, nav_time) = ExtractNavigator(rawData) + nav_time = nav_time .* 2.5 # seconds from beginning of the day (Siemens data only) + acqData = convertRawToAcq(rawData) + # slice and echo selection on acquisition data + selectEcho!(acqData, params[:echoes]) + selectSlice!(acqData, params[:slices], nav, nav_time) + @info "read ref data" + # read reference data + rawMap = RawAcquisitionData(ISMRMRDFile(params[:path_refData])) + OrderSlices!(rawMap) + acqMap = AcquisitionData(rawMap, estimateProfileCenter=true) + @info "sensemaps" + ## compute or load the coil sensitivity map + if params[:comp_sensit] + CompResizeSaveSensit(acqMap, acqData, params[:path_sensit]) + end - function nav_pipeline() + #Load coil sensitivity + sensit = FileIO.load(params[:path_sensit], "sensit") + sensit = reshape(sensit[:,:,params[:slices],:],(size(sensit,1), size(sensit,2), + size(params[:slices],1), size(sensit,4))) - end \ No newline at end of file + # Load centerline (ON LINUX: file is centerline.csv, ON WINDOWS AND MAC: is centerline.nii.csv) + centerline = nothing + if params[:use_centerline] == true + try + run(`cat /etc/os-release`, wait = true) + catch e + if isa(e, ProcessFailedException) + centerline = CSV.read(params[:path_centerline] * "centerline.nii.csv", DataFrame, header=false) + else + centerline = CSV.read(params[:path_centerline] * "centerline.csv", DataFrame, header=false) + end + end + centerline = centerline.Column1 + centerline = centerline[params[:slices]] + end + + #Load trace + trace = nothing + if params[:corr_type] == "FFT_unwrap" + trace = read(matopen(params[:path_physio] * string(params[:rep]+1) * ".mat"), "data") + end + + @info "nav corr" + # Navigator correction + if params[:corr_type] != "none" + addData = additionalNavInput(noisemat, rawData, acqData, acqMap, nav_time, trace, centerline) + output = NavCorr!(nav, acqData, params, addData) + end + + @info "recon" + ## Reconstruct the data + img = Reconstruct(acqData, sensit, noisemat) + + return output, img + +end + + +""" + saveNoise(path_imgData::String, path_noise::String) + +Extract the noise acquisition form the image data and save it. +Call ExtractNoiseData!, check this function for more info. + +# Arguments +* `path_imgData::String` - path to the ISMRMRD file containing the image data +* `path_noise::String` - path where the noise file will be saved + +ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 +""" +function saveNoise(path_imgData::String, path_noise::String) + + @info "Load first rep, save noise acquisition" + # load the first repetition, slice and echo and save the noise acquisition for optimal results + # the noise acquisition is saved in the first repetition only + rawData = RawAcquisitionData(ISMRMRDFile(path_imgData), + slice = 0, contrast = 0, repetition = 0) + noisemat = ExtractNoiseData!(rawData) + FileIO.save(path_noise,"noisemat",noisemat) + +end + + +""" + loadRawData(params::Dict{Symbol, Any}) + +Load the raw data file saved in ISMRMRD format in julia using MRIReco.jl +Call ExtractNoiseData!, OrderSlices!, ReverseBipolar!, RemoveRef!. +Check the specific functions for info. + +MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 +ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 + +# Arguments +* `params::Dict{Symbol, Any}` - MRINavigator parameter structure, check defaultNavParams() for info +""" +function loadRawData(params::Dict{Symbol, Any}) + + @info "Load Raw data" + # load raw data + rawData = RawAcquisitionData(ISMRMRDFile(params[:path_imgData]), + repetition = params[:rep]) + + if params[:rep] != 0 + for ii = 1:length(rawData.profiles) + rawData = @set rawData.profiles[ii].head.idx.repetition = 0 + end + else + ExtractNoiseData!(rawData) # remove the noise acquisition only necessary for the first rep + end + OrderSlices!(rawData) + ReverseBipolar!(rawData) + RemoveRef!(rawData) + + return rawData + +end + + +""" + convertRawToAcq(rawData::::RawAcquisitionData) + +Convert raw data to acquisition data using MRIReco.jl, then apply small adjustments. +Return acquisition data structure. + +MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 + +# Arguments +* `rawData::RawAcquisitionData` - raw data structure obtained loading raw data with MRIReco.jl +""" +function convertRawToAcq(rawData::RawAcquisitionData) + + @info "convert data and adjust" + # convert to acquisitionData (note: the estimateProfileCenter flag is set to true) + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + CopyTE!(rawData, acqData) + AdjustSubsampleIndices!(acqData) + acqData = convertUndersampledData(acqData) + + return acqDats + +end \ No newline at end of file diff --git a/test/navTests.jl b/test/navTests.jl index 46598be..1440e33 100644 --- a/test/navTests.jl +++ b/test/navTests.jl @@ -8,7 +8,7 @@ function test_centerline_position(datadir::String) noise = FileIO.load(joinpath(datadir, "noise.jld2"), "noise") centerline = [32.0] addData = additionalNavInput(noise, rawData, acqData, acqMap, nothing, nothing, centerline) - centerline = comp_centerline(addData) + centerline = comp_centerline_pos(addData) @test centerline == [128] end @@ -116,7 +116,7 @@ function test_FFTnav_unwrap(datadir::String) addData = additionalNavInput(noise, rawData, acqData, acqMap, nav_time, trace, centerline) params = defaultNavParams() params[:corr_type] = "FFT_unwrap" - params[:use_SCT] = true + params[:use_centerline] = true output = NavCorr!(nav, acqData, params, addData) # Reconstruct the data From 6ae98b943f0c1604b62ae5d165aabcfd716f49f2 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 15 Aug 2023 21:47:16 +0200 Subject: [PATCH 55/92] typo --- src/main.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.jl b/src/main.jl index de1b3d2..0714718 100644 --- a/src/main.jl +++ b/src/main.jl @@ -166,6 +166,6 @@ function convertRawToAcq(rawData::RawAcquisitionData) AdjustSubsampleIndices!(acqData) acqData = convertUndersampledData(acqData) - return acqDats + return acqData end \ No newline at end of file From 3a5d4decc43c8cdfca0051440026fc88b94ab801 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 21 Aug 2023 15:32:13 +0200 Subject: [PATCH 56/92] documentation --- Project.toml | 1 + docs/build/API/index.html | 2 + docs/build/GettingStarted/index.html | 2 + docs/build/Pipelines/index.html | 2 + docs/build/assets/documenter.js | 331 ++++++++++++++++++ docs/build/assets/search.js | 267 ++++++++++++++ docs/build/assets/themes/documenter-dark.css | 7 + docs/build/assets/themes/documenter-light.css | 9 + docs/build/assets/themeswap.js | 66 ++++ docs/build/assets/warner.js | 49 +++ docs/build/index.html | 2 + docs/build/search/index.html | 2 + docs/build/search_index.js | 3 + docs/make.jl | 18 + docs/src/API.md | 63 ++++ docs/src/GettingStarted.md | 1 + docs/src/Pipelines.md | 1 + docs/src/index.md | 17 + src/Navigator.jl | 1 - src/Reconstruction.jl | 2 - src/main.jl | 1 - 21 files changed, 843 insertions(+), 4 deletions(-) create mode 100644 docs/build/API/index.html create mode 100644 docs/build/GettingStarted/index.html create mode 100644 docs/build/Pipelines/index.html create mode 100644 docs/build/assets/documenter.js create mode 100644 docs/build/assets/search.js create mode 100644 docs/build/assets/themes/documenter-dark.css create mode 100644 docs/build/assets/themes/documenter-light.css create mode 100644 docs/build/assets/themeswap.js create mode 100644 docs/build/assets/warner.js create mode 100644 docs/build/index.html create mode 100644 docs/build/search/index.html create mode 100644 docs/build/search_index.js create mode 100644 docs/make.jl create mode 100644 docs/src/API.md create mode 100644 docs/src/GettingStarted.md create mode 100644 docs/src/Pipelines.md create mode 100644 docs/src/index.md diff --git a/Project.toml b/Project.toml index ad83246..e2f558f 100644 --- a/Project.toml +++ b/Project.toml @@ -9,6 +9,7 @@ Coverage = "a2441757-f6aa-5fb2-8edb-039e3f45d037" DSP = "717857b8-e6f2-59f4-9121-6e50c889abd2" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" +Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" diff --git a/docs/build/API/index.html b/docs/build/API/index.html new file mode 100644 index 0000000..e74cab3 --- /dev/null +++ b/docs/build/API/index.html @@ -0,0 +1,2 @@ + +API · MRINavigator.jl

      API

      This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.

      Run compact pipeline

      Missing docstring.

      Missing docstring for MRINavigator.defaultNavParams :: Tuple{}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.runNavPipeline :: Dict{Symbol, Any}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.saveNoise :: Tuple{String, String}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.loadRawData :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

      <!–

      Coil sensitivity maps

      Missing docstring.

      Missing docstring for MRINavigator.CompSensit :: Union{Tuple{MRIBase.AcquisitionData}, Tuple{MRIBase.AcquisitionData, Any}}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.CompRoughMask :: Tuple{MRIBase.AcquisitionData, Int64, Any}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.ResizeSensit! :: Union{Tuple{T}, Tuple{Array{Complex{T}, 4}, MRIBase.AcquisitionData, MRIBase.AcquisitionData}} where T. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.CompResizeSaveSensit :: Union{Tuple{MRIBase.AcquisitionData, MRIBase.AcquisitionData, String}, Tuple{MRIBase.AcquisitionData, MRIBase.AcquisitionData, String, Any}}. Check Documenter's build log for details.

      Find centerline

      Missing docstring.

      Missing docstring for MRINavigator.findCenterline :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.ReconstructMap :: Tuple{String}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.ReconstructSaveMap :: Tuple{String, String}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.callSCT :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.comp_centerline_pos :: Tuple{additionalNavInput}. Check Documenter's build log for details.

      Utils

      Missing docstring.

      Missing docstring for MRINavigator.Reconstruct :: AcquisitionData, Array{Complex{T},4}, Union{Array{Complex{T}},Nothing} where {T}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.directreco :: Tuple{MRIBase.AcquisitionData}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.niftiSaveImg :: Union{Tuple{T}, Tuple{AbstractArray{T}, MRIBase.AcquisitionData, String}} where T. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.NavCorr! :: Array{Complex{T}, 4}, AcquisitionData, Dict{Symbol, Any}, additionalNavInput where{T}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.wrap_corr! :: Tuple{Array{Float64, 4}, Matrix{Int8}, VecOrMat{Float64}, Int64}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.find_wrapped :: Tuple{Array{Float64, 4}, Matrix{Float64}, Matrix{Float64}, Int64}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.TE_corr! :: Union{Tuple{T}, Tuple{Array{T, 4}, MRIBase.AcquisitionData, Float64, Float64, Int64, Int64}} where T. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.apply_corr! :: Union{Tuple{T}, Tuple{Array{T, 4}, MRIBase.AcquisitionData, Int64, Int64, Int64, Int64}} where T. Check Documenter's build log for details.

      Adjust data

      Missing docstring.

      Missing docstring for MRINavigator.OrderSlices! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.ExtractFlags :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.ExtractNoiseData! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.ReverseBipolar! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.RemoveRef! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.CopyTE! :: Tuple{MRIBase.RawAcquisitionData, MRIBase.AcquisitionData}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.AdjustSubsampleIndices! :: Tuple{MRIBase.AcquisitionData}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.ExtractNavigator :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.selectEcho! :: Tuple{MRIBase.AcquisitionData, Vector{Int64}}. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.selectSlice! :: Union{Tuple{T}, Tuple{MRIBase.AcquisitionData, Vector{Int64}}, Tuple{MRIBase.AcquisitionData, Vector{Int64}, Union{Nothing, Array{Complex{T}, 4}}}, Tuple{MRIBase.AcquisitionData, Vector{Int64}, Union{Nothing, Array{Complex{T}, 4}}, Union{Nothing, Matrix{Float64}}}} where T. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for MRINavigator.additionalNavInput :: Union{Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Matrix{Float64}}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Vector{Float64}}}}. Check Documenter's build log for details.

      –>

      diff --git a/docs/build/GettingStarted/index.html b/docs/build/GettingStarted/index.html new file mode 100644 index 0000000..7fccae6 --- /dev/null +++ b/docs/build/GettingStarted/index.html @@ -0,0 +1,2 @@ + +Getting Started · MRINavigator.jl
      diff --git a/docs/build/Pipelines/index.html b/docs/build/Pipelines/index.html new file mode 100644 index 0000000..6b3f406 --- /dev/null +++ b/docs/build/Pipelines/index.html @@ -0,0 +1,2 @@ + +Pipelines · MRINavigator.jl
      diff --git a/docs/build/assets/documenter.js b/docs/build/assets/documenter.js new file mode 100644 index 0000000..6adfbbb --- /dev/null +++ b/docs/build/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/docs/build/assets/search.js b/docs/build/assets/search.js new file mode 100644 index 0000000..c133f74 --- /dev/null +++ b/docs/build/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
    • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/docs/build/assets/themes/documenter-dark.css b/docs/build/assets/themes/documenter-dark.css new file mode 100644 index 0000000..c94a294 --- /dev/null +++ b/docs/build/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/docs/build/assets/themes/documenter-light.css b/docs/build/assets/themes/documenter-light.css new file mode 100644 index 0000000..9b9a14b --- /dev/null +++ b/docs/build/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/docs/build/assets/themeswap.js b/docs/build/assets/themeswap.js new file mode 100644 index 0000000..c58e993 --- /dev/null +++ b/docs/build/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/docs/build/assets/warner.js b/docs/build/assets/warner.js new file mode 100644 index 0000000..5531c88 --- /dev/null +++ b/docs/build/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
      Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/docs/build/index.html b/docs/build/index.html new file mode 100644 index 0000000..38e9700 --- /dev/null +++ b/docs/build/index.html @@ -0,0 +1,2 @@ + +Home · MRINavigator.jl diff --git a/docs/build/search/index.html b/docs/build/search/index.html new file mode 100644 index 0000000..2072633 --- /dev/null +++ b/docs/build/search/index.html @@ -0,0 +1,2 @@ + +Search · MRINavigator.jl

      Loading search...

        diff --git a/docs/build/search_index.js b/docs/build/search_index.js new file mode 100644 index 0000000..63e9a09 --- /dev/null +++ b/docs/build/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"GettingStarted/#Eplain-here-how-to-get-started","page":"Getting Started","title":"Eplain here how to get started","text":"","category":"section"},{"location":"Pipelines/#Explain-here-the-pipleines","page":"Pipelines","title":"Explain here the pipleines","text":"","category":"section"},{"location":"#MRINavigator","page":"Home","title":"MRINavigator","text":"","category":"section"},{"location":"#Table-of-contents","page":"Home","title":"Table of contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\n \"index.md\",\n \"Pipelines.md\",\n \"GettingStarted.md\",\n \"API.md\"\n]\nDepth = 2","category":"page"},{"location":"#Introduction","page":"Home","title":"Introduction","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MRINavigator provides ...","category":"page"},{"location":"API/#API","page":"API","title":"API","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.","category":"page"},{"location":"API/#Run-compact-pipeline","page":"API","title":"Run compact pipeline","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"MRINavigator.defaultNavParams :: Tuple{}\nMRINavigator.runNavPipeline :: Dict{Symbol, Any}\nMRINavigator.saveNoise :: Tuple{String, String}\nMRINavigator.loadRawData :: Tuple{Dict{Symbol, Any}}\nMRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData}","category":"page"},{"location":"API/","page":"API","title":"API","text":"","category":"page"}] +} diff --git a/docs/make.jl b/docs/make.jl new file mode 100644 index 0000000..d70455d --- /dev/null +++ b/docs/make.jl @@ -0,0 +1,18 @@ +using Documenter, MRINavigator + +makedocs(modules=[MRINavigator], + sitename = "MRINavigator.jl", + authors = "Laura Beghini", + pages = [ + "Home" => "index.md", + "Pipelines" => "Pipelines.md", + "Getting Started" => "GettingStarted.md", + "API" => "API.md" + ], + ) + +deploydocs(; + repo = "github.com/NordicMRspine/MRINavigator", + push_preview = true, + deploy_config = Documenter.GitHubActions(), + ) \ No newline at end of file diff --git a/docs/src/API.md b/docs/src/API.md new file mode 100644 index 0000000..5ecbe91 --- /dev/null +++ b/docs/src/API.md @@ -0,0 +1,63 @@ +# API + +This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown. + +# Run compact pipeline +```@docs +MRINavigator.defaultNavParams :: Tuple{} +MRINavigator.runNavPipeline :: Dict{Symbol, Any} +MRINavigator.saveNoise :: Tuple{String, String} +MRINavigator.loadRawData :: Tuple{Dict{Symbol, Any}} +MRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData} +``` + + \ No newline at end of file diff --git a/docs/src/GettingStarted.md b/docs/src/GettingStarted.md new file mode 100644 index 0000000..7312bf3 --- /dev/null +++ b/docs/src/GettingStarted.md @@ -0,0 +1 @@ +# Eplain here how to get started \ No newline at end of file diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md new file mode 100644 index 0000000..2c51f94 --- /dev/null +++ b/docs/src/Pipelines.md @@ -0,0 +1 @@ +# Explain here the pipleines \ No newline at end of file diff --git a/docs/src/index.md b/docs/src/index.md new file mode 100644 index 0000000..ed79791 --- /dev/null +++ b/docs/src/index.md @@ -0,0 +1,17 @@ +# MRINavigator + +## Table of contents + +```@contents +Pages = [ + "index.md", + "Pipelines.md", + "GettingStarted.md", + "API.md" +] +Depth = 2 +``` + + +## Introduction +MRINavigator provides ... \ No newline at end of file diff --git a/src/Navigator.jl b/src/Navigator.jl index 8296d27..1d9c865 100644 --- a/src/Navigator.jl +++ b/src/Navigator.jl @@ -17,7 +17,6 @@ Please choose the pipeline using the corr_type filed in the params dictionary. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ - function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::Dict{Symbol, Any}, addData::additionalNavInput) where{T} #navigator[k-space samples, coils, k-space lines, slices] diff --git a/src/Reconstruction.jl b/src/Reconstruction.jl index a082c16..7d77a3f 100644 --- a/src/Reconstruction.jl +++ b/src/Reconstruction.jl @@ -12,8 +12,6 @@ Call MRIReco.jl reconstruction function and return reconstructed image. Only sin MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ - - function Reconstruct(acqd::AcquisitionData, sensit::Array{Complex{T},4}, noisemat::Union{Array{Complex{T}},Nothing} = nothing) where {T} diff --git a/src/main.jl b/src/main.jl index 0714718..3b9322c 100644 --- a/src/main.jl +++ b/src/main.jl @@ -8,7 +8,6 @@ Run the navigator pipeline. Return reconstructed image and navigaotr correction # Arguments * `params::Dict{Symbol, Any}` - MRINavigator parameter structure, check defaultNavParams() for info """ - function runNavPipeline(params::Dict{Symbol, Any}) findCenterline(params) From d9ca65348284802478ae17b5921fd140f36d3c35 Mon Sep 17 00:00:00 2001 From: Alexander Jaffray Date: Mon, 21 Aug 2023 09:20:27 -0700 Subject: [PATCH 57/92] Create dataTests.jl --- test/dataTests.jl | 1 + 1 file changed, 1 insertion(+) create mode 100644 test/dataTests.jl diff --git a/test/dataTests.jl b/test/dataTests.jl new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/test/dataTests.jl @@ -0,0 +1 @@ + From 7ffcaeb083cc79bcc93bef3c2ba4fb83e86cf430 Mon Sep 17 00:00:00 2001 From: Alexander Jaffray Date: Mon, 21 Aug 2023 09:20:43 -0700 Subject: [PATCH 58/92] Update dataTests.jl --- test/dataTests.jl | 122 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/test/dataTests.jl b/test/dataTests.jl index 8b13789..2ee0d75 100644 --- a/test/dataTests.jl +++ b/test/dataTests.jl @@ -1 +1,123 @@ +function test_AdjustData_raw(datadir::String) + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + flags = ExtractFlags(rawData) + + # test OrderSlices! + rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 + rawData = @set rawData.profiles[1].head.idx.slice = 2 + position = rawData.profiles[1].head.idx.slice + OrderSlices!(rawData) + position_ordered = rawData.profiles[1].head.idx.slice + + @test position_ordered < position + + # the noise acquision has flag 19 + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 + noisemat_rawData = rawData.profiles[1].data + noisemat = ExtractNoiseData!(rawData) + flags_nonoise = ExtractFlags(rawData) + + @test any(flags_nonoise[:,19] .== false) + @test noisemat == noisemat_rawData + + # test reverse bipolar. The revese flag is number 22 + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 + reversed_profile = rawData.profiles[1].data + ReverseBipolar!(rawData) + flags_Bireverse = ExtractFlags(rawData) + + @test any(flags_Bireverse[:,22] .== false) + @test reversed_profile == reverse!(rawData.profiles[1].data) + + # check number of profiles + numflags = size(flags,1) + numProfiles = size(rawData.profiles, 1) + RemoveRef!(rawData) + slices = rawData.params["enc_lim_slice"].maximum + 1 + echoes = size(rawData.params["TE"],1) + 1 + + @test size(rawData.profiles, 1) == numProfiles - (slices * echoes) + @test numProfiles == numflags - 1 + +end + +function test_AdjustData_acq(datadir::String) + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + numProfiles = size(rawData.profiles, 1) + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + CopyTE!(rawData, acqData) + (nav, nav_time) = ExtractNavigator(rawData) + nav_rawData = zeros(ComplexF32, size(rawData.profiles[1].data)[1], size(rawData.profiles[1].data)[2], + rawData.params["reconSize"][2], rawData.params["enc_lim_slice"].maximum +1) + for ii = 4:2:numProfiles + nav_rawData[:,:,div(ii-2,2),1] = rawData.profiles[ii].data + end + + @test acqData.traj[1].TE == convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) + # The first 2 profiles are reference data + @test nav[:,:,:,:] == nav_rawData + @test nav_time[1,1] == convert(typeof(nav_time[1,1]), rawData.profiles[4].head.acquisition_time_stamp) + +end + + +function test_CoilSensMap(datadir::String, tmpResdir::String) + + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(map, estimateProfileCenter=true) + data = FileIO.load(joinpath(datadir, "data.jld2"), "data") + acqData = AcquisitionData(data, estimateProfileCenter=true) + sensit = CompSensit(acqMap) + #binarize sensit + thresh = 0.5 * mean(abs.(sensit)) + cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) + sensit_binar = zeros(Int64, size(sensit)) + sensit_binar[cartes_index_binar] .= 1 + sensit_binar = circshift(sensit_binar, (0,-1,0,0)) + #resize sensit + sensit_resized = ResizeSensit!(sensit, acqMap, acqData) + #compare sensit with basic version + img = directreco(acqData) + sensit_basic = estimateCoilSensitivities(img) + sensit_basic = sensit_basic[:,:,1,:,:,1] + + err = norm(vec(sensit_resized)-vec(sensit_basic))/norm(vec(sensit_basic)) + # test whole algorithm + @test err < 3 + # test ResizeSensit! + @test size(sensit_resized) == size(sensit_basic) + # test removeBehindBack! + err = norm(vec(reverse(sensit_binar[:,33:end,1,:], dims = 2))-vec(sensit_binar[:,1:32,1,:]))/norm(vec(sensit_binar[:,1:32,1,:])) + @test err < 0.15 + + # Save sensitivity maps in a temporary folder + FileIO.save(joinpath(tmpResdir, "sensit.jld2"), "sensit", sensit) + +end + +function test_niftisave(datadir::String, tmpResdir::String) + + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acq = AcquisitionData(map, estimateProfileCenter=true) + sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + img = Reconstruct(acq, sensit) + niftiSaveImg(img, acq, tmpResdir * "/gre2D_Ref.nii") + + @test isfile(tmpResdir * "/gre2D_Ref.nii") + +end + + +function testdata(datadir::String, tmpResdir::String) + @testset "DataTests" begin + test_AdjustData_raw(datadir) + test_AdjustData_acq(datadir) + test_CoilSensMap(datadir, tmpResdir) + test_niftisave(datadir, tmpResdir) + end +end + +testdata(datadir, tmpResdir) From 11b89955f04076823929a1f56b8daa022c2dbd44 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 13:14:18 +0200 Subject: [PATCH 59/92] fix test --- test/dataTests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/dataTests.jl b/test/dataTests.jl index 2ee0d75..005a45c 100644 --- a/test/dataTests.jl +++ b/test/dataTests.jl @@ -120,4 +120,4 @@ function testdata(datadir::String, tmpResdir::String) end end -testdata(datadir, tmpResdir) +testdata(datadir, tmpResdir) \ No newline at end of file From fa56f60ea92c059ca84ee83c7f0270e095b1f92c Mon Sep 17 00:00:00 2001 From: Laura Beghini <54085129+Laura2305@users.noreply.github.com> Date: Tue, 22 Aug 2023 13:09:46 +0200 Subject: [PATCH 60/92] Delete DataTests.jl --- test/DataTests.jl | 123 ---------------------------------------------- 1 file changed, 123 deletions(-) delete mode 100644 test/DataTests.jl diff --git a/test/DataTests.jl b/test/DataTests.jl deleted file mode 100644 index 005a45c..0000000 --- a/test/DataTests.jl +++ /dev/null @@ -1,123 +0,0 @@ - -function test_AdjustData_raw(datadir::String) - - rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") - flags = ExtractFlags(rawData) - - # test OrderSlices! - rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 - rawData = @set rawData.profiles[1].head.idx.slice = 2 - position = rawData.profiles[1].head.idx.slice - OrderSlices!(rawData) - position_ordered = rawData.profiles[1].head.idx.slice - - @test position_ordered < position - - # the noise acquision has flag 19 - rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 - noisemat_rawData = rawData.profiles[1].data - noisemat = ExtractNoiseData!(rawData) - flags_nonoise = ExtractFlags(rawData) - - @test any(flags_nonoise[:,19] .== false) - @test noisemat == noisemat_rawData - - # test reverse bipolar. The revese flag is number 22 - rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 - reversed_profile = rawData.profiles[1].data - ReverseBipolar!(rawData) - flags_Bireverse = ExtractFlags(rawData) - - @test any(flags_Bireverse[:,22] .== false) - @test reversed_profile == reverse!(rawData.profiles[1].data) - - # check number of profiles - numflags = size(flags,1) - numProfiles = size(rawData.profiles, 1) - RemoveRef!(rawData) - slices = rawData.params["enc_lim_slice"].maximum + 1 - echoes = size(rawData.params["TE"],1) + 1 - - @test size(rawData.profiles, 1) == numProfiles - (slices * echoes) - @test numProfiles == numflags - 1 - -end - -function test_AdjustData_acq(datadir::String) - - rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") - numProfiles = size(rawData.profiles, 1) - acqData = AcquisitionData(rawData, estimateProfileCenter=true) - CopyTE!(rawData, acqData) - (nav, nav_time) = ExtractNavigator(rawData) - nav_rawData = zeros(ComplexF32, size(rawData.profiles[1].data)[1], size(rawData.profiles[1].data)[2], - rawData.params["reconSize"][2], rawData.params["enc_lim_slice"].maximum +1) - for ii = 4:2:numProfiles - nav_rawData[:,:,div(ii-2,2),1] = rawData.profiles[ii].data - end - - @test acqData.traj[1].TE == convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) - # The first 2 profiles are reference data - @test nav[:,:,:,:] == nav_rawData - @test nav_time[1,1] == convert(typeof(nav_time[1,1]), rawData.profiles[4].head.acquisition_time_stamp) - -end - - -function test_CoilSensMap(datadir::String, tmpResdir::String) - - map = FileIO.load(joinpath(datadir, "map.jld2"), "map") - acqMap = AcquisitionData(map, estimateProfileCenter=true) - data = FileIO.load(joinpath(datadir, "data.jld2"), "data") - acqData = AcquisitionData(data, estimateProfileCenter=true) - sensit = CompSensit(acqMap) - #binarize sensit - thresh = 0.5 * mean(abs.(sensit)) - cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) - sensit_binar = zeros(Int64, size(sensit)) - sensit_binar[cartes_index_binar] .= 1 - sensit_binar = circshift(sensit_binar, (0,-1,0,0)) - #resize sensit - sensit_resized = ResizeSensit!(sensit, acqMap, acqData) - #compare sensit with basic version - img = directreco(acqData) - sensit_basic = estimateCoilSensitivities(img) - sensit_basic = sensit_basic[:,:,1,:,:,1] - - err = norm(vec(sensit_resized)-vec(sensit_basic))/norm(vec(sensit_basic)) - # test whole algorithm - @test err < 3 - # test ResizeSensit! - @test size(sensit_resized) == size(sensit_basic) - # test removeBehindBack! - err = norm(vec(reverse(sensit_binar[:,33:end,1,:], dims = 2))-vec(sensit_binar[:,1:32,1,:]))/norm(vec(sensit_binar[:,1:32,1,:])) - @test err < 0.15 - - # Save sensitivity maps in a temporary folder - FileIO.save(joinpath(tmpResdir, "sensit.jld2"), "sensit", sensit) - -end - -function test_niftisave(datadir::String, tmpResdir::String) - - map = FileIO.load(joinpath(datadir, "map.jld2"), "map") - acq = AcquisitionData(map, estimateProfileCenter=true) - sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") - img = Reconstruct(acq, sensit) - niftiSaveImg(img, acq, tmpResdir * "/gre2D_Ref.nii") - - @test isfile(tmpResdir * "/gre2D_Ref.nii") - -end - - -function testdata(datadir::String, tmpResdir::String) - @testset "DataTests" begin - test_AdjustData_raw(datadir) - test_AdjustData_acq(datadir) - test_CoilSensMap(datadir, tmpResdir) - test_niftisave(datadir, tmpResdir) - end -end - -testdata(datadir, tmpResdir) \ No newline at end of file From 3682b4a6cdeb4afce25448a5823668fed9545ab3 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 13:17:39 +0200 Subject: [PATCH 61/92] fix tests --- test/dataTests.jl | 123 ---------------------------------------------- 1 file changed, 123 deletions(-) delete mode 100644 test/dataTests.jl diff --git a/test/dataTests.jl b/test/dataTests.jl deleted file mode 100644 index 005a45c..0000000 --- a/test/dataTests.jl +++ /dev/null @@ -1,123 +0,0 @@ - -function test_AdjustData_raw(datadir::String) - - rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") - flags = ExtractFlags(rawData) - - # test OrderSlices! - rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 - rawData = @set rawData.profiles[1].head.idx.slice = 2 - position = rawData.profiles[1].head.idx.slice - OrderSlices!(rawData) - position_ordered = rawData.profiles[1].head.idx.slice - - @test position_ordered < position - - # the noise acquision has flag 19 - rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 - noisemat_rawData = rawData.profiles[1].data - noisemat = ExtractNoiseData!(rawData) - flags_nonoise = ExtractFlags(rawData) - - @test any(flags_nonoise[:,19] .== false) - @test noisemat == noisemat_rawData - - # test reverse bipolar. The revese flag is number 22 - rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 - reversed_profile = rawData.profiles[1].data - ReverseBipolar!(rawData) - flags_Bireverse = ExtractFlags(rawData) - - @test any(flags_Bireverse[:,22] .== false) - @test reversed_profile == reverse!(rawData.profiles[1].data) - - # check number of profiles - numflags = size(flags,1) - numProfiles = size(rawData.profiles, 1) - RemoveRef!(rawData) - slices = rawData.params["enc_lim_slice"].maximum + 1 - echoes = size(rawData.params["TE"],1) + 1 - - @test size(rawData.profiles, 1) == numProfiles - (slices * echoes) - @test numProfiles == numflags - 1 - -end - -function test_AdjustData_acq(datadir::String) - - rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") - numProfiles = size(rawData.profiles, 1) - acqData = AcquisitionData(rawData, estimateProfileCenter=true) - CopyTE!(rawData, acqData) - (nav, nav_time) = ExtractNavigator(rawData) - nav_rawData = zeros(ComplexF32, size(rawData.profiles[1].data)[1], size(rawData.profiles[1].data)[2], - rawData.params["reconSize"][2], rawData.params["enc_lim_slice"].maximum +1) - for ii = 4:2:numProfiles - nav_rawData[:,:,div(ii-2,2),1] = rawData.profiles[ii].data - end - - @test acqData.traj[1].TE == convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) - # The first 2 profiles are reference data - @test nav[:,:,:,:] == nav_rawData - @test nav_time[1,1] == convert(typeof(nav_time[1,1]), rawData.profiles[4].head.acquisition_time_stamp) - -end - - -function test_CoilSensMap(datadir::String, tmpResdir::String) - - map = FileIO.load(joinpath(datadir, "map.jld2"), "map") - acqMap = AcquisitionData(map, estimateProfileCenter=true) - data = FileIO.load(joinpath(datadir, "data.jld2"), "data") - acqData = AcquisitionData(data, estimateProfileCenter=true) - sensit = CompSensit(acqMap) - #binarize sensit - thresh = 0.5 * mean(abs.(sensit)) - cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) - sensit_binar = zeros(Int64, size(sensit)) - sensit_binar[cartes_index_binar] .= 1 - sensit_binar = circshift(sensit_binar, (0,-1,0,0)) - #resize sensit - sensit_resized = ResizeSensit!(sensit, acqMap, acqData) - #compare sensit with basic version - img = directreco(acqData) - sensit_basic = estimateCoilSensitivities(img) - sensit_basic = sensit_basic[:,:,1,:,:,1] - - err = norm(vec(sensit_resized)-vec(sensit_basic))/norm(vec(sensit_basic)) - # test whole algorithm - @test err < 3 - # test ResizeSensit! - @test size(sensit_resized) == size(sensit_basic) - # test removeBehindBack! - err = norm(vec(reverse(sensit_binar[:,33:end,1,:], dims = 2))-vec(sensit_binar[:,1:32,1,:]))/norm(vec(sensit_binar[:,1:32,1,:])) - @test err < 0.15 - - # Save sensitivity maps in a temporary folder - FileIO.save(joinpath(tmpResdir, "sensit.jld2"), "sensit", sensit) - -end - -function test_niftisave(datadir::String, tmpResdir::String) - - map = FileIO.load(joinpath(datadir, "map.jld2"), "map") - acq = AcquisitionData(map, estimateProfileCenter=true) - sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") - img = Reconstruct(acq, sensit) - niftiSaveImg(img, acq, tmpResdir * "/gre2D_Ref.nii") - - @test isfile(tmpResdir * "/gre2D_Ref.nii") - -end - - -function testdata(datadir::String, tmpResdir::String) - @testset "DataTests" begin - test_AdjustData_raw(datadir) - test_AdjustData_acq(datadir) - test_CoilSensMap(datadir, tmpResdir) - test_niftisave(datadir, tmpResdir) - end -end - -testdata(datadir, tmpResdir) \ No newline at end of file From 766ec9c0c9b5608750073f9461247c6490a7d01a Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 13:21:09 +0200 Subject: [PATCH 62/92] fix tests --- test/dataTests.jl | 122 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 test/dataTests.jl diff --git a/test/dataTests.jl b/test/dataTests.jl new file mode 100644 index 0000000..927a18e --- /dev/null +++ b/test/dataTests.jl @@ -0,0 +1,122 @@ +function test_AdjustData_raw(datadir::String) + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + flags = ExtractFlags(rawData) + + # test OrderSlices! + rawData = @set rawData.profiles[1].head.position[3] = rawData.profiles[1].head.position[3] + 1 + rawData = @set rawData.profiles[1].head.idx.slice = 2 + position = rawData.profiles[1].head.idx.slice + OrderSlices!(rawData) + position_ordered = rawData.profiles[1].head.idx.slice + + @test position_ordered < position + + # the noise acquision has flag 19 + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^18 + noisemat_rawData = rawData.profiles[1].data + noisemat = ExtractNoiseData!(rawData) + flags_nonoise = ExtractFlags(rawData) + + @test any(flags_nonoise[:,19] .== false) + @test noisemat == noisemat_rawData + + # test reverse bipolar. The revese flag is number 22 + rawData.profiles[1].head.flags = rawData.profiles[1].head.flags + 2^21 + reversed_profile = rawData.profiles[1].data + ReverseBipolar!(rawData) + flags_Bireverse = ExtractFlags(rawData) + + @test any(flags_Bireverse[:,22] .== false) + @test reversed_profile == reverse!(rawData.profiles[1].data) + + # check number of profiles + numflags = size(flags,1) + numProfiles = size(rawData.profiles, 1) + RemoveRef!(rawData) + slices = rawData.params["enc_lim_slice"].maximum + 1 + echoes = size(rawData.params["TE"],1) + 1 + + @test size(rawData.profiles, 1) == numProfiles - (slices * echoes) + @test numProfiles == numflags - 1 + +end + +function test_AdjustData_acq(datadir::String) + + rawData = FileIO.load(joinpath(datadir, "data.jld2"), "data") + numProfiles = size(rawData.profiles, 1) + acqData = AcquisitionData(rawData, estimateProfileCenter=true) + CopyTE!(rawData, acqData) + (nav, nav_time) = ExtractNavigator(rawData) + nav_rawData = zeros(ComplexF32, size(rawData.profiles[1].data)[1], size(rawData.profiles[1].data)[2], + rawData.params["reconSize"][2], rawData.params["enc_lim_slice"].maximum +1) + for ii = 4:2:numProfiles + nav_rawData[:,:,div(ii-2,2),1] = rawData.profiles[ii].data + end + + @test acqData.traj[1].TE == convert(typeof(acqData.traj[1].TE), rawData.params["TE"][1]) + # The first 2 profiles are reference data + @test nav[:,:,:,:] == nav_rawData + @test nav_time[1,1] == convert(typeof(nav_time[1,1]), rawData.profiles[4].head.acquisition_time_stamp) + +end + + +function test_CoilSensMap(datadir::String, tmpResdir::String) + + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acqMap = AcquisitionData(map, estimateProfileCenter=true) + data = FileIO.load(joinpath(datadir, "data.jld2"), "data") + acqData = AcquisitionData(data, estimateProfileCenter=true) + sensit = CompSensit(acqMap) + #binarize sensit + thresh = 0.5 * mean(abs.(sensit)) + cartes_index_binar = findall(x -> x > thresh, abs.(sensit)) + sensit_binar = zeros(Int64, size(sensit)) + sensit_binar[cartes_index_binar] .= 1 + sensit_binar = circshift(sensit_binar, (0,-1,0,0)) + #resize sensit + sensit_resized = ResizeSensit!(sensit, acqMap, acqData) + #compare sensit with basic version + img = directreco(acqData) + sensit_basic = estimateCoilSensitivities(img) + sensit_basic = sensit_basic[:,:,1,:,:,1] + + err = norm(vec(sensit_resized)-vec(sensit_basic))/norm(vec(sensit_basic)) + # test whole algorithm + @test err < 3 + # test ResizeSensit! + @test size(sensit_resized) == size(sensit_basic) + # test removeBehindBack! + err = norm(vec(reverse(sensit_binar[:,33:end,1,:], dims = 2))-vec(sensit_binar[:,1:32,1,:]))/norm(vec(sensit_binar[:,1:32,1,:])) + @test err < 0.15 + + # Save sensitivity maps in a temporary folder + FileIO.save(joinpath(tmpResdir, "sensit.jld2"), "sensit", sensit) + +end + +function test_niftisave(datadir::String, tmpResdir::String) + + map = FileIO.load(joinpath(datadir, "map.jld2"), "map") + acq = AcquisitionData(map, estimateProfileCenter=true) + sensit = FileIO.load(joinpath(tmpResdir, "sensit.jld2"), "sensit") + img = Reconstruct(acq, sensit) + niftiSaveImg(img, acq, tmpResdir * "/gre2D_Ref.nii") + + @test isfile(tmpResdir * "/gre2D_Ref.nii") + +end + + +function testdata(datadir::String, tmpResdir::String) + @testset "DataTests" begin + test_AdjustData_raw(datadir) + test_AdjustData_acq(datadir) + test_CoilSensMap(datadir, tmpResdir) + test_niftisave(datadir, tmpResdir) + end +end + +testdata(datadir, tmpResdir) \ No newline at end of file From e59a0425e42b1413d336d2472f30134f2ba6aaec Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 13:49:57 +0200 Subject: [PATCH 63/92] fix bug test --- test/runtests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index c76d4f9..b93ad9e 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -11,7 +11,7 @@ using ImageUtils using Scratch using LazyArtifacts -const datadir = joinpath(artifact"TestDataNavigator", "data") +const datadir = joinpath(artifact"TestDataNavigator", "Data") @info "The test data is located at $datadir." const tmpResdir = @get_scratch!("tmp") From 5898f886f4c10cd72466a905285077747f6ec652 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 15:34:29 +0200 Subject: [PATCH 64/92] fix test CI --- Project.toml | 1 + test/runtests.jl | 1 + 2 files changed, 2 insertions(+) diff --git a/Project.toml b/Project.toml index e2f558f..953d501 100644 --- a/Project.toml +++ b/Project.toml @@ -13,6 +13,7 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" +JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" MAT = "23992714-dd62-5051-b70f-ba57cb901cac" MRICoilSensitivities = "c57eb701-aafc-44a2-a53c-128049758959" diff --git a/test/runtests.jl b/test/runtests.jl index b93ad9e..d906d82 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -7,6 +7,7 @@ using Coverage using Setfield using Statistics using ImageUtils +using JLD2 using Scratch using LazyArtifacts From 5a781f9cc879122f1015646853479cd73d5534f6 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 15:44:54 +0200 Subject: [PATCH 65/92] fix test CI --- Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/Project.toml b/Project.toml index 953d501..e2f558f 100644 --- a/Project.toml +++ b/Project.toml @@ -13,7 +13,6 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" -JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" MAT = "23992714-dd62-5051-b70f-ba57cb901cac" MRICoilSensitivities = "c57eb701-aafc-44a2-a53c-128049758959" From d9a2bf9b52495a815d202ea40e48dbb5825f343d Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 22 Aug 2023 15:45:10 +0200 Subject: [PATCH 66/92] fix test CI --- test/runtests.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index d906d82..b93ad9e 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -7,7 +7,6 @@ using Coverage using Setfield using Statistics using ImageUtils -using JLD2 using Scratch using LazyArtifacts From c5d416300893e925a11665df671c85bf90c933f4 Mon Sep 17 00:00:00 2001 From: Laura Beghini <54085129+Laura2305@users.noreply.github.com> Date: Wed, 23 Aug 2023 16:36:16 +0200 Subject: [PATCH 67/92] Update CI.yml --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 10c80ca..3389b01 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -18,7 +18,7 @@ jobs: fail-fast: false matrix: version: - - '1.6' + - '1.7' - '1.8' - 'nightly' os: From c6bc7a5c13e39c07b47bdb80b3a6ae6668f9fc4e Mon Sep 17 00:00:00 2001 From: Laura Beghini <54085129+Laura2305@users.noreply.github.com> Date: Thu, 24 Aug 2023 11:36:33 +0200 Subject: [PATCH 68/92] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1603d5e..aab214f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # MRINavigator -[![Build Status](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/Laura2305/MRINavigator.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![Coverage](https://codecov.io/gh/Laura2305/MRINavigator.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/Laura2305/MRINavigator.jl) +[![Build Status](https://github.com/NordicMRspine/MRINavigator/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/NordicMRspine/MRINavigator/actions/workflows/CI.yml?query=branch%3Amain) +[![codecov.io](https://codecov.io/github/NordicMRspine/MRINavigator/branch/main/graph/badge.svg)](https://codecov.io/githubNordicMRspine//MRINavigator/branch/main) MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. @@ -16,4 +16,4 @@ soon to be published ## Community Standards -This project is part of the Julia community and follows the [Julia community standards](https://julialang.org/community/standards/). \ No newline at end of file +This project is part of the Julia community and follows the [Julia community standards](https://julialang.org/community/standards/). From 4f796d8bdc19963597d00ae5be3cf3f759167f7a Mon Sep 17 00:00:00 2001 From: Laura Beghini <54085129+Laura2305@users.noreply.github.com> Date: Thu, 24 Aug 2023 11:40:32 +0200 Subject: [PATCH 69/92] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index aab214f..c3bbd7d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # MRINavigator [![Build Status](https://github.com/NordicMRspine/MRINavigator/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/NordicMRspine/MRINavigator/actions/workflows/CI.yml?query=branch%3Amain) -[![codecov.io](https://codecov.io/github/NordicMRspine/MRINavigator/branch/main/graph/badge.svg)](https://codecov.io/githubNordicMRspine//MRINavigator/branch/main) +[![codecov.io](https://codecov.io/github/NordicMRspine/MRINavigator/coverage.svg?branch=main)](https://codecov.io/githubNordicMRspine//MRINavigator?branch=main) +[![](https://img.shields.io/badge/docs-latest-blue.svg)](https://NordicMRspine.github.io/MRINavigator/latest) + MRINavigator.jl provides multiple navigator-based correction pipelines for magnetic resonance data. These aim at demodulating time dependent field variations. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. MRIReco.jl can be used to reconstruct the images. From 58e84d22edb705e64f414efff0e68cab8587fa5e Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Thu, 24 Aug 2023 12:58:03 +0200 Subject: [PATCH 70/92] add MRIBase dependency --- Project.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index e2f558f..305b30c 100644 --- a/Project.toml +++ b/Project.toml @@ -15,6 +15,7 @@ ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" MAT = "23992714-dd62-5051-b70f-ba57cb901cac" +MRIBase = "f7771a9a-6e57-4e71-863b-6e4b6a2f17df" MRICoilSensitivities = "c57eb701-aafc-44a2-a53c-128049758959" MRIFiles = "5a6f062f-bf45-497d-b654-ad17aae2a530" MRIReco = "bdf86e05-2d2b-5731-a332-f3fe1f9e047f" @@ -27,8 +28,8 @@ Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" [compat] -PolygonOps = "0.1" DSP = "0.7" +PolygonOps = "0.1" julia = "1.3" [extras] From 092c0574f3a934506fe2c099659843673c658f97 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Thu, 24 Aug 2023 13:04:07 +0200 Subject: [PATCH 71/92] add JLD2 dependency --- Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Project.toml b/Project.toml index 305b30c..4976e9f 100644 --- a/Project.toml +++ b/Project.toml @@ -13,6 +13,7 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" +JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" MAT = "23992714-dd62-5051-b70f-ba57cb901cac" MRIBase = "f7771a9a-6e57-4e71-863b-6e4b6a2f17df" From a79991f6982765565e65ffd94ac084d286ae2a1b Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Thu, 24 Aug 2023 13:16:23 +0200 Subject: [PATCH 72/92] fix dependencies --- Project.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Project.toml b/Project.toml index 0807ab7..057f499 100644 --- a/Project.toml +++ b/Project.toml @@ -13,10 +13,8 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" ImageUtils = "8ad4436d-4835-5a14-8bce-3ae014d2950b" Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0" -JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" LazyArtifacts = "4af54fe1-eca0-43a8-85a7-787d91b784e3" MAT = "23992714-dd62-5051-b70f-ba57cb901cac" -MRIBase = "f7771a9a-6e57-4e71-863b-6e4b6a2f17df" MRICoilSensitivities = "c57eb701-aafc-44a2-a53c-128049758959" MRIFiles = "5a6f062f-bf45-497d-b654-ad17aae2a530" MRIReco = "bdf86e05-2d2b-5731-a332-f3fe1f9e047f" @@ -33,8 +31,6 @@ DSP = "0.7" DataInterpolations = "4" FileIO = "1" Images = "0.26" -JLD2 = "0.4" -MRIBase = "0.3" MRICoilSensitivities = "0.1" MRIFiles = "0.1" MRIReco = "0.7" From 269aa14be5f64763539615c45336e4838d540f8d Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Thu, 24 Aug 2023 13:20:49 +0200 Subject: [PATCH 73/92] fix dependencies --- Project.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Project.toml b/Project.toml index 057f499..257964f 100644 --- a/Project.toml +++ b/Project.toml @@ -30,11 +30,9 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" DSP = "0.7" DataInterpolations = "4" FileIO = "1" -Images = "0.26" MRICoilSensitivities = "0.1" MRIFiles = "0.1" MRIReco = "0.7" -NIfTI = "0.6" PolygonOps = "0.1" Scratch = "1" Setfield = "1" From db83efee0c71f18af23242b8d8d1330f5c6facd7 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Fri, 25 Aug 2023 00:40:43 +0200 Subject: [PATCH 74/92] fix typo --- src/AdjustData.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AdjustData.jl b/src/AdjustData.jl index 6f7f829..8186a49 100644 --- a/src/AdjustData.jl +++ b/src/AdjustData.jl @@ -212,7 +212,7 @@ MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ function ExtractNavigator(rawData::RawAcquisitionData) - @info "The navigaotr extraction is effective only if the navigator profile was acquired after the first image profile." + @info "The navigator extraction is effective only if the navigator profile was acquired after the first image profile." total_num = length(rawData.profiles) numberslices = rawData.params["enc_lim_slice"].maximum +1 From d01fb5c7f62a6164f6daf8708b5d120f17599653 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 28 Aug 2023 11:53:22 +0200 Subject: [PATCH 75/92] documentation --- docs/build/API/index.html | 2 +- docs/build/GettingStarted/index.html | 2 +- docs/build/Pipelines/index.html | 2 +- docs/build/index.html | 2 +- docs/build/search/index.html | 2 +- docs/build/search_index.js | 2 +- docs/src/API.md | 8 ++++---- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/build/API/index.html b/docs/build/API/index.html index e74cab3..afdc5b8 100644 --- a/docs/build/API/index.html +++ b/docs/build/API/index.html @@ -1,2 +1,2 @@ -API · MRINavigator.jl

        API

        This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.

        Run compact pipeline

        Missing docstring.

        Missing docstring for MRINavigator.defaultNavParams :: Tuple{}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.runNavPipeline :: Dict{Symbol, Any}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.saveNoise :: Tuple{String, String}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.loadRawData :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        <!–

        Coil sensitivity maps

        Missing docstring.

        Missing docstring for MRINavigator.CompSensit :: Union{Tuple{MRIBase.AcquisitionData}, Tuple{MRIBase.AcquisitionData, Any}}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.CompRoughMask :: Tuple{MRIBase.AcquisitionData, Int64, Any}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ResizeSensit! :: Union{Tuple{T}, Tuple{Array{Complex{T}, 4}, MRIBase.AcquisitionData, MRIBase.AcquisitionData}} where T. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.CompResizeSaveSensit :: Union{Tuple{MRIBase.AcquisitionData, MRIBase.AcquisitionData, String}, Tuple{MRIBase.AcquisitionData, MRIBase.AcquisitionData, String, Any}}. Check Documenter's build log for details.

        Find centerline

        Missing docstring.

        Missing docstring for MRINavigator.findCenterline :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ReconstructMap :: Tuple{String}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ReconstructSaveMap :: Tuple{String, String}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.callSCT :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.comp_centerline_pos :: Tuple{additionalNavInput}. Check Documenter's build log for details.

        Utils

        Missing docstring.

        Missing docstring for MRINavigator.Reconstruct :: AcquisitionData, Array{Complex{T},4}, Union{Array{Complex{T}},Nothing} where {T}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.directreco :: Tuple{MRIBase.AcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.niftiSaveImg :: Union{Tuple{T}, Tuple{AbstractArray{T}, MRIBase.AcquisitionData, String}} where T. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.NavCorr! :: Array{Complex{T}, 4}, AcquisitionData, Dict{Symbol, Any}, additionalNavInput where{T}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.wrap_corr! :: Tuple{Array{Float64, 4}, Matrix{Int8}, VecOrMat{Float64}, Int64}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.find_wrapped :: Tuple{Array{Float64, 4}, Matrix{Float64}, Matrix{Float64}, Int64}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.TE_corr! :: Union{Tuple{T}, Tuple{Array{T, 4}, MRIBase.AcquisitionData, Float64, Float64, Int64, Int64}} where T. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.apply_corr! :: Union{Tuple{T}, Tuple{Array{T, 4}, MRIBase.AcquisitionData, Int64, Int64, Int64, Int64}} where T. Check Documenter's build log for details.

        Adjust data

        Missing docstring.

        Missing docstring for MRINavigator.OrderSlices! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ExtractFlags :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ExtractNoiseData! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ReverseBipolar! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.RemoveRef! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.CopyTE! :: Tuple{MRIBase.RawAcquisitionData, MRIBase.AcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.AdjustSubsampleIndices! :: Tuple{MRIBase.AcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ExtractNavigator :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.selectEcho! :: Tuple{MRIBase.AcquisitionData, Vector{Int64}}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.selectSlice! :: Union{Tuple{T}, Tuple{MRIBase.AcquisitionData, Vector{Int64}}, Tuple{MRIBase.AcquisitionData, Vector{Int64}, Union{Nothing, Array{Complex{T}, 4}}}, Tuple{MRIBase.AcquisitionData, Vector{Int64}, Union{Nothing, Array{Complex{T}, 4}}, Union{Nothing, Matrix{Float64}}}} where T. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.additionalNavInput :: Union{Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Matrix{Float64}}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Vector{Float64}}}}. Check Documenter's build log for details.

        –>

        +API · MRINavigator.jl

        API

        This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.

        Run compact pipeline

        Missing docstring.

        Missing docstring for MRINavigator.defaultNavParams :: Tuple{}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.runNavPipeline :: Dict{Symbol, Any}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.saveNoise :: Tuple{String, String}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.loadRawData :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        <!–

        Coil sensitivity maps

        MRINavigator.CompSensit — Function
        sensit = CompSensit(acq::AcquisitionData, thresh = 0.13)

        Compute the coils sensitivity maps with masking tuned for spinal cord imaging. Use MRICoilSensitivities.jl from MRIReco.jl alternatively.

        MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

        Arguments

        • acqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
        • tresh::Float64 - masking treshold: increase for reduced mask size, decrease for extended mask size
        source
        MRINavigator.CompRoughMask — Function
        mask = CompRoughMask(acq::AcquisitionData, slices::Int64, thresh)

        Return a rough mask for multiple slices that may not be homogeneous.

        Arguments

        • acqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
        • slices::Int64 - number of slices in acquisition data
        • tresh::Float64 - masking treshold: increase for reduced mask size, decrease for extended mask size

        MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

        source
        MRINavigator.ResizeSensit! — Function
        sensit = ResizeSensit!(sensit::Array{Complex{T},4}, acqMap::AcquisitionData, acqData::AcquisitionData)

        Resize and resample the coil sensitivity map to match the acquisition data field of view and resolution. This step is needed for the image reconstruction to run. Image data and reference data must have the same slice center.

        Arguments

        • sensit::Array{Complex{T},4} - output of CompSensit(acq::AcquisitionData, thresh)
        • acqMap::RawAcquisitionData - acquisition data structure obtained converting raw reference data with MRIReco.jl
        • acqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl

        MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

        source
        MRINavigator.CompResizeSaveSensit — Function
        CompResizeSaveSensit(acqMap::AcquisitionData, acqData::AcquisitionData, path_sensit::String)

        Compute, resize to the image data dimension and save the coils sensitivity maps with masking tuned for spinal cord imaging. Use MRICoilSensitivities.jl from MRIReco.jl alternatively.

        MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

        Arguments

        • acqMap::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
        • acqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
        • tresh::Float64 - masking treshold: increase for reduced mask size, decrease for extended mask size
        source

        Find centerline

        Missing docstring.

        Missing docstring for MRINavigator.findCenterline :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ReconstructMap :: Tuple{String}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ReconstructSaveMap :: Tuple{String, String}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.callSCT :: Tuple{Dict{Symbol, Any}}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.comp_centerline_pos :: Tuple{additionalNavInput}. Check Documenter's build log for details.

        Utils

        Missing docstring.

        Missing docstring for MRINavigator.Reconstruct :: AcquisitionData, Array{Complex{T},4}, Union{Array{Complex{T}},Nothing} where {T}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.directreco :: Tuple{MRIBase.AcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.niftiSaveImg :: Union{Tuple{T}, Tuple{AbstractArray{T}, MRIBase.AcquisitionData, String}} where T. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.NavCorr! :: Array{Complex{T}, 4}, AcquisitionData, Dict{Symbol, Any}, additionalNavInput where{T}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.wrap_corr! :: Tuple{Array{Float64, 4}, Matrix{Int8}, VecOrMat{Float64}, Int64}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.find_wrapped :: Tuple{Array{Float64, 4}, Matrix{Float64}, Matrix{Float64}, Int64}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.TE_corr! :: Union{Tuple{T}, Tuple{Array{T, 4}, MRIBase.AcquisitionData, Float64, Float64, Int64, Int64}} where T. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.apply_corr! :: Union{Tuple{T}, Tuple{Array{T, 4}, MRIBase.AcquisitionData, Int64, Int64, Int64, Int64}} where T. Check Documenter's build log for details.

        Adjust data

        Missing docstring.

        Missing docstring for MRINavigator.OrderSlices! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ExtractFlags :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ExtractNoiseData! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ReverseBipolar! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.RemoveRef! :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.CopyTE! :: Tuple{MRIBase.RawAcquisitionData, MRIBase.AcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.AdjustSubsampleIndices! :: Tuple{MRIBase.AcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.ExtractNavigator :: Tuple{MRIBase.RawAcquisitionData}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.selectEcho! :: Tuple{MRIBase.AcquisitionData, Vector{Int64}}. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.selectSlice! :: Union{Tuple{T}, Tuple{MRIBase.AcquisitionData, Vector{Int64}}, Tuple{MRIBase.AcquisitionData, Vector{Int64}, Union{Nothing, Array{Complex{T}, 4}}}, Tuple{MRIBase.AcquisitionData, Vector{Int64}, Union{Nothing, Array{Complex{T}, 4}}, Union{Nothing, Matrix{Float64}}}} where T. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for MRINavigator.additionalNavInput :: Union{Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Matrix{Float64}}}, Tuple{Matrix{ComplexF32}, MRIBase.RawAcquisitionData, MRIBase.AcquisitionData, Union{Nothing, MRIBase.AcquisitionData}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Matrix{Float64}}, Union{Nothing, Vector{Float64}}}}. Check Documenter's build log for details.

        –>

        diff --git a/docs/build/GettingStarted/index.html b/docs/build/GettingStarted/index.html index 7fccae6..af8b4d3 100644 --- a/docs/build/GettingStarted/index.html +++ b/docs/build/GettingStarted/index.html @@ -1,2 +1,2 @@ -Getting Started · MRINavigator.jl
        +Getting Started · MRINavigator.jl
        diff --git a/docs/build/Pipelines/index.html b/docs/build/Pipelines/index.html index 6b3f406..43c91ad 100644 --- a/docs/build/Pipelines/index.html +++ b/docs/build/Pipelines/index.html @@ -1,2 +1,2 @@ -Pipelines · MRINavigator.jl
        +Pipelines · MRINavigator.jl
        diff --git a/docs/build/index.html b/docs/build/index.html index 38e9700..a72fe83 100644 --- a/docs/build/index.html +++ b/docs/build/index.html @@ -1,2 +1,2 @@ -Home · MRINavigator.jl +Home · MRINavigator.jl diff --git a/docs/build/search/index.html b/docs/build/search/index.html index 2072633..fe7b42b 100644 --- a/docs/build/search/index.html +++ b/docs/build/search/index.html @@ -1,2 +1,2 @@ -Search · MRINavigator.jl

        Loading search...

          +Search · MRINavigator.jl

          Loading search...

            diff --git a/docs/build/search_index.js b/docs/build/search_index.js index 63e9a09..c49dae9 100644 --- a/docs/build/search_index.js +++ b/docs/build/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"GettingStarted/#Eplain-here-how-to-get-started","page":"Getting Started","title":"Eplain here how to get started","text":"","category":"section"},{"location":"Pipelines/#Explain-here-the-pipleines","page":"Pipelines","title":"Explain here the pipleines","text":"","category":"section"},{"location":"#MRINavigator","page":"Home","title":"MRINavigator","text":"","category":"section"},{"location":"#Table-of-contents","page":"Home","title":"Table of contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\n \"index.md\",\n \"Pipelines.md\",\n \"GettingStarted.md\",\n \"API.md\"\n]\nDepth = 2","category":"page"},{"location":"#Introduction","page":"Home","title":"Introduction","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MRINavigator provides ...","category":"page"},{"location":"API/#API","page":"API","title":"API","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.","category":"page"},{"location":"API/#Run-compact-pipeline","page":"API","title":"Run compact pipeline","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"MRINavigator.defaultNavParams :: Tuple{}\nMRINavigator.runNavPipeline :: Dict{Symbol, Any}\nMRINavigator.saveNoise :: Tuple{String, String}\nMRINavigator.loadRawData :: Tuple{Dict{Symbol, Any}}\nMRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData}","category":"page"},{"location":"API/","page":"API","title":"API","text":"","category":"page"}] +[{"location":"GettingStarted/#Eplain-here-how-to-get-started","page":"Getting Started","title":"Eplain here how to get started","text":"","category":"section"},{"location":"Pipelines/#Explain-here-the-pipleines","page":"Pipelines","title":"Explain here the pipleines","text":"","category":"section"},{"location":"#MRINavigator","page":"Home","title":"MRINavigator","text":"","category":"section"},{"location":"#Table-of-contents","page":"Home","title":"Table of contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\n \"index.md\",\n \"Pipelines.md\",\n \"GettingStarted.md\",\n \"API.md\"\n]\nDepth = 2","category":"page"},{"location":"#Introduction","page":"Home","title":"Introduction","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MRINavigator provides ...","category":"page"},{"location":"API/#API","page":"API","title":"API","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.","category":"page"},{"location":"API/#Run-compact-pipeline","page":"API","title":"Run compact pipeline","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"MRINavigator.defaultNavParams :: Tuple{}\nMRINavigator.runNavPipeline :: Dict{Symbol, Any}\nMRINavigator.saveNoise :: Tuple{String, String}\nMRINavigator.loadRawData :: Tuple{Dict{Symbol, Any}}\nMRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData}","category":"page"},{"location":"API/","page":"API","title":"API","text":"","category":"page"}] } diff --git a/docs/src/API.md b/docs/src/API.md index 5ecbe91..ddb19c1 100644 --- a/docs/src/API.md +++ b/docs/src/API.md @@ -14,10 +14,10 @@ MRINavigator.convertRawToAcq :: Tuple{MRIBase.RawAcquisitionData} \ No newline at end of file + MRINavigator.OrderSlices! + MRINavigator.ExtractFlags + MRINavigator.ExtractNoiseData! + MRINavigator.ReverseBipolar! + MRINavigator.RemoveRef! + MRINavigator.CopyTE! + MRINavigator.AdjustSubsampleIndices! + MRINavigator.ExtractNavigator + MRINavigator.selectEcho! + MRINavigator.selectSlice! + MRINavigator.additionalNavInput +``` \ No newline at end of file From c9db4f558250991d14985892d2de915b7573d8dc Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 28 Aug 2023 14:47:02 +0200 Subject: [PATCH 77/92] documentation --- .gitignore | 3 ++- docs/src/GettingStarted.md | 10 +++++++++- docs/src/Pipelines.md | 4 +++- docs/src/assets/pipeline.pdf | Bin 0 -> 61384 bytes docs/src/index.md | 35 +++++++++++++++++++++++++++++++++-- 5 files changed, 47 insertions(+), 5 deletions(-) create mode 100755 docs/src/assets/pipeline.pdf diff --git a/.gitignore b/.gitignore index ce69893..31051bb 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ *.jl.mem Manifest.toml .vscode -.DS_Store \ No newline at end of file +.DS_Store +docs/build/* \ No newline at end of file diff --git a/docs/src/GettingStarted.md b/docs/src/GettingStarted.md index 7312bf3..dfa27f0 100644 --- a/docs/src/GettingStarted.md +++ b/docs/src/GettingStarted.md @@ -1 +1,9 @@ -# Eplain here how to get started \ No newline at end of file +# Get started + +There are available [https://github.com/NordicMRspine/UserExample_MRINavigator](user examples) + +# User examples + +* Compact +* Semi-Compact +* Complete \ No newline at end of file diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index 2c51f94..870bd6c 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -1 +1,3 @@ -# Explain here the pipleines \ No newline at end of file +# Navigator-based correction pipelines + +![Phantom](./assets/phantom.pdf) \ No newline at end of file diff --git a/docs/src/assets/pipeline.pdf b/docs/src/assets/pipeline.pdf new file mode 100755 index 0000000000000000000000000000000000000000..f0c76e0c48763ab1fbe55e062dcda8d8afc2cd5d GIT binary patch literal 61384 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 UC=e?GBbFQm@CAt~K_m)+N1zNc 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 Y0bpf6n4E|RGwEMef&c@S|A&?Q4?cm8761SM literal 0 HcmV?d00001 diff --git a/docs/src/index.md b/docs/src/index.md index ed79791..e074d76 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1,4 +1,5 @@ # MRINavigator +*Magnetic Resonance Imaging Navigator-based corrections* ## Table of contents @@ -12,6 +13,36 @@ Pages = [ Depth = 2 ``` - ## Introduction -MRINavigator provides ... \ No newline at end of file +MRINavigator provides tools for applying a navigator-based correction to Magnetic Resonance Images. + +!!! note + MRINavigator.jl is newly published and any feedback is more than welcome. + +## Installation +Start `julia` and open the package manager REPL mode by entering `]`. Then enter +```julia +pkg> add MRINavigator +``` +This will install `MRINavigator` and all its dependencies. If you want to develop +`MRINavigator` itself you can checkout `MRINavigator` by calling +```julia +pkg> dev MRINavigator +``` +More information on how to develop a package can be found in the Julia documentation. + +## Updating MRINavigator +To update MRINavigator to the latest version, start `julia` from the command line, type `]` to enter the package manager REPL mode. Then enter +```julia +pkg> update MRINavigator +``` +## Navigator-based correction + +## Plotting +`MRINavigator` is not depending on a particular plotting package since there +are various plotting packages available in Julia. + +## Citing this work +If you use MRINavigator in you research please cite the following: + +To be published \ No newline at end of file From 5a4c58f15177f35986ccff8f557224515f9e7ec0 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 28 Aug 2023 14:50:48 +0200 Subject: [PATCH 78/92] documentation --- docs/build/API/index.html | 9 - docs/build/GettingStarted/index.html | 2 - docs/build/Pipelines/index.html | 2 - docs/build/assets/documenter.js | 331 ------------------ docs/build/assets/search.js | 267 -------------- docs/build/assets/themes/documenter-dark.css | 7 - docs/build/assets/themes/documenter-light.css | 9 - docs/build/assets/themeswap.js | 66 ---- docs/build/assets/warner.js | 49 --- docs/build/index.html | 2 - docs/build/search/index.html | 2 - docs/build/search_index.js | 3 - docs/src/Pipelines.md | 2 +- 13 files changed, 1 insertion(+), 750 deletions(-) delete mode 100644 docs/build/API/index.html delete mode 100644 docs/build/GettingStarted/index.html delete mode 100644 docs/build/Pipelines/index.html delete mode 100644 docs/build/assets/documenter.js delete mode 100644 docs/build/assets/search.js delete mode 100644 docs/build/assets/themes/documenter-dark.css delete mode 100644 docs/build/assets/themes/documenter-light.css delete mode 100644 docs/build/assets/themeswap.js delete mode 100644 docs/build/assets/warner.js delete mode 100644 docs/build/index.html delete mode 100644 docs/build/search/index.html delete mode 100644 docs/build/search_index.js diff --git a/docs/build/API/index.html b/docs/build/API/index.html deleted file mode 100644 index c639e63..0000000 --- a/docs/build/API/index.html +++ /dev/null @@ -1,9 +0,0 @@ - -API · MRINavigator.jl

            API

            This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.

            Run compact pipeline

            MRINavigator.defaultNavParams — Function
            params = defaultNavParams()

            Define default parameters for data loading, navigator correction and image reconstruction.

            Default parameters options are

            • slices::Union{Nothing, Vector} - number of the slices to be loaded, nothing means all slices
            • echoes::Union{Nothing, Vector} - number of the echoes to be loaded, nothing means all echoes
            • rep::Int - repetition to be loaded, the first repetition is 0. It is mandatory to select one
            • comp_sensit::Bool - compute the sensitivity maps using the reference scan
            • comp_centerline::Bool - use the Spinal Cord Toolbox (SCT) to find the centerlne position
            • trust_SCT::Bool - trust SCT or display the resutls and wait for user feedback with the julia REPL
            • use_centerline::Bool - use the spinal cord centerline information in the navigator-based correction
            • corr_type::String - correction type. Options: "none", "knav", "FFT", "FFT_unwrap"
            • FFT_interval::String - interval in mm to be considered for the FFT based approach

            Additional required parameters are

            • path_imgData::String - path to the image data file in ISMRMRD format
            • path_refData::String - path to the reference data file in ISMRMRD format
            • path_sensit::String - path to the file where the sensitivity maps will be saved. The file extension must be .mat
            • path_noise::String - path to the file where the noise acquisition will be saved. The file extension must be .jld2
            • path_results::String - path to the results folder

            Additional optional parameters are

            • path_niftiMap::String - path to the file where the reconstructed reference data will be saved in nifti format. The file extension must be .nii
            • path_centerline::String - path to the folder where the Spinal Cord Toolbox (SCT) centerline results will be saved
            • path_physio::String - path to the physiological trace recording in .mat format. The variable should be a two columns vector (1:time [ms], 2:trace). The time should be expressed in seconds from the beginning of the day and contains time points befroe and after the image acquisiton (at least 2 s).

            ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 SCT reference: https://spinalcordtoolbox.com

            source
            MRINavigator.runNavPipeline — Function
            runNavPipeline(params::Dict{Symbol, Any})

            Run the navigator pipeline. Return reconstructed image and navigaotr correction output (check NavCorr!).

            Arguments

            • params::Dict{Symbol, Any} - MRINavigator parameter structure, check defaultNavParams() for info
            source
            MRINavigator.saveNoise — Function
            saveNoise(path_imgData::String, path_noise::String)

            Extract the noise acquisition form the image data and save it. Call ExtractNoiseData!, check this function for more info.

            Arguments

            • path_imgData::String - path to the ISMRMRD file containing the image data
            • path_noise::String - path where the noise file will be saved

            ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089

            source
            MRINavigator.loadRawData — Function
            loadRawData(params::Dict{Symbol, Any})

            Load the raw data file saved in ISMRMRD format in julia using MRIReco.jl Call ExtractNoiseData!, OrderSlices!, ReverseBipolar!, RemoveRef!. Check the specific functions for info.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089

            Arguments

            • params::Dict{Symbol, Any} - MRINavigator parameter structure, check defaultNavParams() for info
            source
            MRINavigator.convertRawToAcq — Function
            convertRawToAcq(rawData::::RawAcquisitionData)

            Convert raw data to acquisition data using MRIReco.jl, then apply small adjustments. Return acquisition data structure.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            Arguments

            • rawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl
            source

            Coil sensitivity maps

            MRINavigator.CompSensit — Function
            sensit = CompSensit(acq::AcquisitionData, thresh = 0.13)

            Compute the coils sensitivity maps with masking tuned for spinal cord imaging. Use MRICoilSensitivities.jl from MRIReco.jl alternatively.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            Arguments

            • acqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            • tresh::Float64 - masking treshold: increase for reduced mask size, decrease for extended mask size
            source
            MRINavigator.CompRoughMask — Function
            mask = CompRoughMask(acq::AcquisitionData, slices::Int64, thresh)

            Return a rough mask for multiple slices that may not be homogeneous.

            Arguments

            • acqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            • slices::Int64 - number of slices in acquisition data
            • tresh::Float64 - masking treshold: increase for reduced mask size, decrease for extended mask size

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source
            MRINavigator.ResizeSensit! — Function
            sensit = ResizeSensit!(sensit::Array{Complex{T},4}, acqMap::AcquisitionData, acqData::AcquisitionData)

            Resize and resample the coil sensitivity map to match the acquisition data field of view and resolution. This step is needed for the image reconstruction to run. Image data and reference data must have the same slice center.

            Arguments

            • sensit::Array{Complex{T},4} - output of CompSensit(acq::AcquisitionData, thresh)
            • acqMap::RawAcquisitionData - acquisition data structure obtained converting raw reference data with MRIReco.jl
            • acqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source
            MRINavigator.CompResizeSaveSensit — Function
            CompResizeSaveSensit(acqMap::AcquisitionData, acqData::AcquisitionData, path_sensit::String)

            Compute, resize to the image data dimension and save the coils sensitivity maps with masking tuned for spinal cord imaging. Use MRICoilSensitivities.jl from MRIReco.jl alternatively.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            Arguments

            • acqMap::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            • acqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            • tresh::Float64 - masking treshold: increase for reduced mask size, decrease for extended mask size
            source

            Find centerline

            MRINavigator.findCenterline — Function
            findCenterline(params::Dict{Symbol, Any})

            Reconstruct the reference data, call spinal cord toolbox and find spinal cord centerline. If trust_SCT = false in the parameters dictionary the user interaction is required in the Julia REPL.

            Arguments

            • params::Dict{Symbol, Any} - paramerters dictionary

            SCT reference: https://spinalcordtoolbox.com

            source
            MRINavigator.ReconstructMap — Function

            ReconstructMap(path_ref::String)

            Reconstruct the coil sensitivity map using the MRIReco.jl function.

            Arguments

            • path_rep::String - path of reference data in ISMRMRD format

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089

            source
            MRINavigator.ReconstructSaveMap — Function
            ReconstructSaveMap(path_nifti::String, path_ref::String)

            Reconstruct the coil sensitivity map using the MRIReco.jl function and save it in nifti format without spatial informations.

            Arguments

            • path_nifti::String - path of the nifti file. The file must have .nii extension
            • path_rep::String - path of reference data in ISMRMRD format

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089

            source
            MRINavigator.callSCT — Function
            callSCT(params::Dict{Symbol, Any})

            Call spinal cord toolbox and find spinal cord centerline. If trust_SCT = false in the parameters dictionary the user interaction is required in the Julia REPL

            Arguments

            • params::Dict{Symbol, Any} - paramerters dictionary

            SCT reference: https://spinalcordtoolbox.com

            source
            MRINavigator.comp_centerline_pos — Function
            centerline = comp_centerline_pos(addData::additionalNavInput)

            Convert and return centerline position from the reference data cordinate to the acquisition data coordinates (number of voxels).

            Arguments

            • addData::additionalNavInput - mandatory additional data structure obtained with the constructor: additionalNavInput
            source

            Utils

            MRINavigator.Reconstruct — Function
            img = Reconstruct(acqd::AcquisitionData, sensit::Array{Complex{T},4}, noisemat::Union{Array{Complex{T}},Nothing} = nothing)

            Call MRIReco.jl reconstruction function and return reconstructed image. Only single repetition in input.

            Arguments

            • acqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            • sensit::Array{Complex{T},4} - coil sensitivity map matric computed with CompSensit(acq::AcquisitionData, thresh = 0.135)
            • noisemat::Union{Array{Complex{T}},Nothing} = nothing - noise data extracted from the raw datat structure with ExtractNoiseData!(rawData::RawAcquisitionData)

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source
            MRINavigator.directreco — Function
            img = directreco(acq::AcquisitionData)

            Call MRIReco.jl reocnstruction function and return reconstructed image. Reconstruct coils separately.

            Arguments

            • acqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source
            MRINavigator.niftiSaveImg — Function
            niftiSaveImg(img::AbstractArray{T}, acq::AcquisitionData, path_nifti::String)

            Save the module of the reconstruction output in nifti format, without spatial information.

            Arguments

            • img::AbstractArray{T} - reconstruction output
            • acq::AcquisitionData - reconstruction input (MRIReco.jl) needed for saving the voxel dimension
            • path_nifti::String - path of the nifti file. The file must have .nii extension

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source
            MRINavigator.NavCorr! — Function
            navOutput = NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::Dict{Symbol, Any}, addData::additionalNavInput) where {T}

            Compute the navigator-based correction and apply it to the acquisition data. Multiple pipelines are available: "knav", "FFT" and "FFTunwrap". Return navigator trace, spinal cord centerline in the reconstructed image coordinates, Correlation between nagigator and belt data for each slice and position of wrapped points for each slices. Please choose the pipeline using the corrtype filed in the params dictionary.

            Arguments

            • nav::Array{Complex{T}, 4} - navigator profiles obtained with the ExtractNavigator function
            • acqData::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            • params::Dict{Symbol, Any} - navigator correction paramerters dictionary
            • addData::additionalNavInput - mandatory additional data structure obtained with the constructor: additionalNavInput

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source
            MRINavigator.wrap_corr! — Function
            wrap_corr!(nav::Array{Float64, 4}, wrapped_points::Array{Int8, 2}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64)

            Unwrap the wrapped points identified with the find_wrapped funtion. These functions can be used only if physiological recording is available.

            Arguments

            • nav::Array{T, 4} - phase estimates obtained from the navigator data
            • wrapped_points::Array{Int8, 2} - position of the wrapped points, output of find_wrapped
            • correlation::Union{Array{Float64, 1} - correlation values between the physiological recording the navigator estimates for each slice. Output of find_wrapped
            • slices::Int64 - number of slices
            source
            MRINavigator.find_wrapped — Function
            find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64)

            Identify the position of the wrapped points in the navigator phase estimates. The respiratory belt recording is necessary. Return the position of the wrapped points and the correlation between each navigator slice and the trace data.

            Arguments

            • nav::Array{Float64, 4} - navigator phase estimates
            • nav_time::Array{Float64, 2} - navigator data time stamps in ms from the beginning of the day, for each slice
            • trace::Array{Float64, 2} - physiological trace recording. Two columns vector (1:time [ms], 2:trace). The first column contains the time stamps in ms from the beginning of the day. Include time points before and after the image acquisition (at least 2 s).
            • slices::Int64 - number of slices
            source
            MRINavigator.TE_corr! — Function
            nav = TE_corr!(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T}

            Compute the phase value for the navigator correction basing on the exact acquisition time of each data sample in the line and for each echo. Return a four dimensional navigator array.

            Arguments

            • nav::Array{T, 4} - phase estimates obtained from the navigator data
            • acqData::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            • dt_nav::Float64 - time interval between two samples in the frequency encoding direction
            • TE_nav::Float64 - echo time of the navigator readout
            • numsamples::Int64 - number of samples for each profile
            • numechoes::Int64 - number of echoes

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source
            MRINavigator.apply_corr! — Function
            apply_corr!(nav::Array{T, 4}, acqd::AcquisitionData, numechoes::Int64, numlines::Int64, numsamples::Int64, numslices::Int64) where {T}

            Apply the navigator-based correction to the acquisition data structure obtained loading the raw data with MRIReco.jl. After applying the correction the image should be reconstructed. Use the reconstruct function.

            Arguments

            • nav::Array{T, 4} - phase estimates obtained from the navigator data
            • acqd::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            • numechoes::Int64 - number of echoes
            • numlines::Int64 - number of lines (profiles) for each slice and echo
            • numsamples::Int64 - number of samples for each profile
            • numslices::Int64 - number of slices

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source

            Adjust data

            MRINavigator.OrderSlices! — Function
            OrderSlices!(rawData::RawAcquisitionData)

            Spatially order the slices in the MRIReco.jl raw data structure. The slices are ordered basing on the position coordinates saved in each profile. If these are not present the slices can not be ordered.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            Arguments

            • rawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl
            source
            MRINavigator.ExtractFlags — Function
            flags = ExtractFlags(rawData::RawAcquisitionData)

            Extract the acquisition flags from the MRIReco.jl raw data profiles. Return a 31 elements vector for each profile.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            Arguments

            • rawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl
            source
            MRINavigator.ExtractNoiseData! — Function
            noisemat = ExtractNoiseData!(rawData::RawAcquisitionData, flags::Array{Int64})

            Extract and return the noise acquisition from the MRIReco.jl raw data. The noise acquisition is usually the first profile with slice = 0, contrast = 0, repetition = 0. The noise profile should have the 19th flag element qual to 1. Check with ExtractFlags if errors occur.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            Arguments

            • rawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl
            source
            MRINavigator.ReverseBipolar! — Function
            ReverseBipolar!(rawData::RawAcquisitionData)

            Reflect the MRIReco.jl raw data profiles for bipolar acquisition.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            Arguments

            • rawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl
            source
            MRINavigator.RemoveRef! — Function
            RemoveRef!(rawData::RawAcquisitionData, slices::Union{Vector{Int64}, Nothing}, echoes::Union{Vector{Int64}, Nothing})

            Remove reference data that are not useful for the navigator-based correction from acquisitions with phase stabilization on Siemens scanners. Make sure that this is needed on your data checking the time stamps with mapVBVD in Matlab. Not solid to recalls.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 mapVBVD reference: https://github.com/CIC-methods/FID-A/blob/master/inputOutput/mapVBVD/README.md

            Arguments

            • rawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl
            source
            MRINavigator.CopyTE! — Function
            CopyTE!(rawData::RawAcquisitionData, acqData::AcquisitionData)

            Copy the TE values from the MRIReco.jl raw data structure to the acquisition data structure.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            Arguments

            • rawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl
            • acqData::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            source
            MRINavigator.AdjustSubsampleIndices! — Function
            AdjustSubsampleIndices!(acqData::AcquisitionData)

            Add subsamples indices in the MRIReco.jl acquisition data structure. Needed when conveting data not acquired in the first repetition.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            Arguments

            • acqData::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            source
            MRINavigator.ExtractNavigator — Function
            (nav, nav_time) = ExtractNavigator(rawData::RawAcquisitionData, slices::Union{Vector{Int64}, Nothing})

            Extract the navigator profiles from the MRIReco.jl raw data structure. These are registered with the same indices (contract, slice, encoding step) as the image data for the first echo time. Return a navigator array and a navigator time array. The navigator array has four dimensions in order: k-space samples, coils, k-space lines, slices. Effective only if the navigator profile was acquired after the first image profile.

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            Arguments

            • rawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl
            source
            MRINavigator.selectEcho! — Function
            SelectEcho!(acqd, idx_echo)

            Extract one or more echoes from the acquisition data structure

            Arguments

            • acqd::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            • idx_echo::Vector{Int64} - vector containing the indexes of the echoes to be selected (starting from 0)

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source
            MRINavigator.selectSlice! — Function
            SelectSlice!(acqd, nav, nav_time, idx_slice)

            Extract one or more echoes from the acquisition data structure

            Arguments

            • acqd::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl
            • idx_slice::Vector{Int64} - vector containing the indexes of the slices to be selected (starting from 0, downer slice)

            Optional arguments with default value = nothing

            • nav::Union{Array{Complex{T}, 4}, Nothin} = nothing - navigator profiles obtained with the ExtractNavigator function
            • nav_time::Union{Array{Complex{Float32}, 2}, Nothing} - time stamps for the navigator data obtained with ExtractNavigator (in ms from the beginning of the day)

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source
            MRINavigator.additionalNavInput — Type
            Data = additionalNavInput(
            -    noisemat::Array{Complex{Float32}, 2},
            -    rawData::RawAcquisitionData,
            -    acqData::AcquisitionData,
            -    acqMap::Union{AcquisitionData, Nothing} = nothing,
            -    nav_time::Union{Array{Complex{Float32}, 2}, Nothing} = nothing,
            -    trace::Union{Matrix{Float64}, Nothing} = nothing,
            -    centerline::Union{Vector{Float64}, Nothing} = nothing)

            Construct the additional data structure that is needed as imput to navCorr!

            Arguments

            • noisemat::Array{Complex{Float32}, 2} - noise data obtained with ExtractNoiseData!
            • rawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl
            • acqData::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl

            Optional arguments with default value = nothing

            • acqMap::Union{AcquisitionData, Nothing} = nothing - acquisition data structure obtained converting reference data with MRIReco.jl
            • nav_time::Union{Array{Complex{Float32}, 2}, Nothing} - time stamps for the navigator data obtained with ExtractNavigator (in ms from the beginning of the day)
            • trace::Union{Matrix{Float64}, Nothing} - respiratory trace time stamps and values in matrix with two colunms (1:time [ms], 2:trace). Include time points before and after the image acquisition (at least 2 s).
            • centerline::Union{Vector{Float64}, Nothing} - coordinates of the spinal cord ceterline obtained with callSCT

            MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792

            source
            diff --git a/docs/build/GettingStarted/index.html b/docs/build/GettingStarted/index.html deleted file mode 100644 index 63c5339..0000000 --- a/docs/build/GettingStarted/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Getting Started · MRINavigator.jl
            diff --git a/docs/build/Pipelines/index.html b/docs/build/Pipelines/index.html deleted file mode 100644 index 7ccadee..0000000 --- a/docs/build/Pipelines/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Pipelines · MRINavigator.jl
            diff --git a/docs/build/assets/documenter.js b/docs/build/assets/documenter.js deleted file mode 100644 index 6adfbbb..0000000 --- a/docs/build/assets/documenter.js +++ /dev/null @@ -1,331 +0,0 @@ -// Generated by Documenter.jl -requirejs.config({ - paths: { - 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', - 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', - 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', - 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', - 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', - 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', - 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', - 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', - 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', - }, - shim: { - "highlight-julia": { - "deps": [ - "highlight" - ] - }, - "katex-auto-render": { - "deps": [ - "katex" - ] - }, - "headroom-jquery": { - "deps": [ - "jquery", - "headroom" - ] - }, - "highlight-julia-repl": { - "deps": [ - "highlight" - ] - } -} -}); -//////////////////////////////////////////////////////////////////////////////// -require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { -$(document).ready(function() { - renderMathInElement( - document.body, - { - "delimiters": [ - { - "left": "$", - "right": "$", - "display": false - }, - { - "left": "$$", - "right": "$$", - "display": true - }, - { - "left": "\\[", - "right": "\\]", - "display": true - } - ] -} - - ); -}) - -}) -//////////////////////////////////////////////////////////////////////////////// -require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { -$(document).ready(function() { - hljs.highlightAll(); -}) - -}) -//////////////////////////////////////////////////////////////////////////////// -require([], function() { -function addCopyButtonCallbacks() { - for (const el of document.getElementsByTagName("pre")) { - const button = document.createElement("button"); - button.classList.add("copy-button", "fas", "fa-copy"); - el.appendChild(button); - - const success = function () { - button.classList.add("success", "fa-check"); - button.classList.remove("fa-copy"); - }; - - const failure = function () { - button.classList.add("error", "fa-times"); - button.classList.remove("fa-copy"); - }; - - button.addEventListener("click", function () { - copyToClipboard(el.innerText).then(success, failure); - - setTimeout(function () { - button.classList.add("fa-copy"); - button.classList.remove("success", "fa-check", "fa-times"); - }, 5000); - }); - } -} - -function copyToClipboard(text) { - // clipboard API is only available in secure contexts - if (window.navigator && window.navigator.clipboard) { - return window.navigator.clipboard.writeText(text); - } else { - return new Promise(function (resolve, reject) { - try { - const el = document.createElement("textarea"); - el.textContent = text; - el.style.position = "fixed"; - el.style.opacity = 0; - document.body.appendChild(el); - el.select(); - document.execCommand("copy"); - - resolve(); - } catch (err) { - reject(err); - } finally { - document.body.removeChild(el); - } - }); - } -} - -if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); -} else { - addCopyButtonCallbacks(); -} - -}) -//////////////////////////////////////////////////////////////////////////////// -require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { - -// Manages the top navigation bar (hides it when the user starts scrolling down on the -// mobile). -window.Headroom = Headroom; // work around buggy module loading? -$(document).ready(function() { - $('#documenter .docs-navbar').headroom({ - "tolerance": {"up": 10, "down": 10}, - }); -}) - -}) -//////////////////////////////////////////////////////////////////////////////// -require(['jquery'], function($) { - -// Modal settings dialog -$(document).ready(function() { - var settings = $('#documenter-settings'); - $('#documenter-settings-button').click(function(){ - settings.toggleClass('is-active'); - }); - // Close the dialog if X is clicked - $('#documenter-settings button.delete').click(function(){ - settings.removeClass('is-active'); - }); - // Close dialog if ESC is pressed - $(document).keyup(function(e) { - if (e.keyCode == 27) settings.removeClass('is-active'); - }); -}); - -}) -//////////////////////////////////////////////////////////////////////////////// -require(['jquery'], function($) { - -// Manages the showing and hiding of the sidebar. -$(document).ready(function() { - var sidebar = $("#documenter > .docs-sidebar"); - var sidebar_button = $("#documenter-sidebar-button") - sidebar_button.click(function(ev) { - ev.preventDefault(); - sidebar.toggleClass('visible'); - if (sidebar.hasClass('visible')) { - // Makes sure that the current menu item is visible in the sidebar. - $("#documenter .docs-menu a.is-active").focus(); - } - }); - $("#documenter > .docs-main").bind('click', function(ev) { - if ($(ev.target).is(sidebar_button)) { - return; - } - if (sidebar.hasClass('visible')) { - sidebar.removeClass('visible'); - } - }); -}) - -// Resizes the package name / sitename in the sidebar if it is too wide. -// Inspired by: https://github.com/davatron5000/FitText.js -$(document).ready(function() { - e = $("#documenter .docs-autofit"); - function resize() { - var L = parseInt(e.css('max-width'), 10); - var L0 = e.width(); - if(L0 > L) { - var h0 = parseInt(e.css('font-size'), 10); - e.css('font-size', L * h0 / L0); - // TODO: make sure it survives resizes? - } - } - // call once and then register events - resize(); - $(window).resize(resize); - $(window).on('orientationchange', resize); -}); - -// Scroll the navigation bar to the currently selected menu item -$(document).ready(function() { - var sidebar = $("#documenter .docs-menu").get(0); - var active = $("#documenter .docs-menu .is-active").get(0); - if(typeof active !== 'undefined') { - sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; - } -}) - -}) -//////////////////////////////////////////////////////////////////////////////// -require(['jquery'], function($) { - -function set_theme(theme) { - var active = null; - var disabled = []; - for (var i = 0; i < document.styleSheets.length; i++) { - var ss = document.styleSheets[i]; - var themename = ss.ownerNode.getAttribute("data-theme-name"); - if(themename === null) continue; // ignore non-theme stylesheets - // Find the active theme - if(themename === theme) active = ss; - else disabled.push(ss); - } - if(active !== null) { - active.disabled = false; - if(active.ownerNode.getAttribute("data-theme-primary") === null) { - document.getElementsByTagName('html')[0].className = "theme--" + theme; - } else { - document.getElementsByTagName('html')[0].className = ""; - } - disabled.forEach(function(ss){ - ss.disabled = true; - }); - } - - // Store the theme in localStorage - if(typeof(window.localStorage) !== "undefined") { - window.localStorage.setItem("documenter-theme", theme); - } else { - console.error("Browser does not support window.localStorage"); - } -} - -// Theme picker setup -$(document).ready(function() { - // onchange callback - $('#documenter-themepicker').change(function themepick_callback(ev){ - var themename = $('#documenter-themepicker option:selected').attr('value'); - set_theme(themename); - }); - - // Make sure that the themepicker displays the correct theme when the theme is retrieved - // from localStorage - if(typeof(window.localStorage) !== "undefined") { - var theme = window.localStorage.getItem("documenter-theme"); - if(theme !== null) { - $('#documenter-themepicker option').each(function(i,e) { - e.selected = (e.value === theme); - }) - } else { - $('#documenter-themepicker option').each(function(i,e) { - e.selected = $("html").hasClass(`theme--${e.value}`); - }) - } - } -}) - -}) -//////////////////////////////////////////////////////////////////////////////// -require(['jquery'], function($) { - -// update the version selector with info from the siteinfo.js and ../versions.js files -$(document).ready(function() { - // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the - // siteinfo.js file, we just return immediately and not display the version selector. - if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { - return; - } - - var version_selector = $("#documenter .docs-version-selector"); - var version_selector_select = $("#documenter .docs-version-selector select"); - - version_selector_select.change(function(x) { - target_href = version_selector_select.children("option:selected").get(0).value; - window.location.href = target_href; - }); - - // add the current version to the selector based on siteinfo.js, but only if the selector is empty - if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { - var option = $(""); - version_selector_select.append(option); - } - - if (typeof DOC_VERSIONS !== 'undefined') { - var existing_versions = version_selector_select.children("option"); - var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); - DOC_VERSIONS.forEach(function(each) { - var version_url = documenterBaseURL + "/../" + each; - var existing_id = $.inArray(each, existing_versions_texts); - // if not already in the version selector, add it as a new option, - // otherwise update the old option with the URL and enable it - if (existing_id == -1) { - var option = $(""); - version_selector_select.append(option); - } else { - var option = existing_versions[existing_id]; - option.value = version_url; - option.disabled = false; - } - }); - } - - // only show the version selector if the selector has been populated - if (version_selector_select.children("option").length > 0) { - version_selector.toggleClass("visible"); - } -}) - -}) diff --git a/docs/build/assets/search.js b/docs/build/assets/search.js deleted file mode 100644 index c133f74..0000000 --- a/docs/build/assets/search.js +++ /dev/null @@ -1,267 +0,0 @@ -// Generated by Documenter.jl -requirejs.config({ - paths: { - 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', - 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', - 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', - } -}); -//////////////////////////////////////////////////////////////////////////////// -require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { - -$(document).ready(function() { - // parseUri 1.2.2 - // (c) Steven Levithan - // MIT License - function parseUri (str) { - var o = parseUri.options, - m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), - uri = {}, - i = 14; - - while (i--) uri[o.key[i]] = m[i] || ""; - - uri[o.q.name] = {}; - uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { - if ($1) uri[o.q.name][$1] = $2; - }); - - return uri; - }; - parseUri.options = { - strictMode: false, - key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], - q: { - name: "queryKey", - parser: /(?:^|&)([^&=]*)=?([^&]*)/g - }, - parser: { - strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, - loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ - } - }; - - $("#search-form").submit(function(e) { - e.preventDefault() - }) - - // list below is the lunr 2.1.3 list minus the intersect with names(Base) - // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) - // ideally we'd just filter the original list but it's not available as a variable - lunr.stopWordFilter = lunr.generateStopWordFilter([ - 'a', - 'able', - 'about', - 'across', - 'after', - 'almost', - 'also', - 'am', - 'among', - 'an', - 'and', - 'are', - 'as', - 'at', - 'be', - 'because', - 'been', - 'but', - 'by', - 'can', - 'cannot', - 'could', - 'dear', - 'did', - 'does', - 'either', - 'ever', - 'every', - 'from', - 'got', - 'had', - 'has', - 'have', - 'he', - 'her', - 'hers', - 'him', - 'his', - 'how', - 'however', - 'i', - 'if', - 'into', - 'it', - 'its', - 'just', - 'least', - 'like', - 'likely', - 'may', - 'me', - 'might', - 'most', - 'must', - 'my', - 'neither', - 'no', - 'nor', - 'not', - 'of', - 'off', - 'often', - 'on', - 'or', - 'other', - 'our', - 'own', - 'rather', - 'said', - 'say', - 'says', - 'she', - 'should', - 'since', - 'so', - 'some', - 'than', - 'that', - 'the', - 'their', - 'them', - 'then', - 'there', - 'these', - 'they', - 'this', - 'tis', - 'to', - 'too', - 'twas', - 'us', - 'wants', - 'was', - 'we', - 'were', - 'what', - 'when', - 'who', - 'whom', - 'why', - 'will', - 'would', - 'yet', - 'you', - 'your' - ]) - - // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" - // would not find anything if searching for "add!", only for the entire qualification - lunr.tokenizer.separator = /[\s\-\.]+/ - - // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names - lunr.trimmer = function (token) { - return token.update(function (s) { - return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') - }) - } - - lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') - lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') - - var index = lunr(function () { - this.ref('location') - this.field('title',{boost: 100}) - this.field('text') - documenterSearchIndex['docs'].forEach(function(e) { - this.add(e) - }, this) - }) - var store = {} - - documenterSearchIndex['docs'].forEach(function(e) { - store[e.location] = {title: e.title, category: e.category, page: e.page} - }) - - $(function(){ - searchresults = $('#documenter-search-results'); - searchinfo = $('#documenter-search-info'); - searchbox = $('#documenter-search-query'); - searchform = $('.docs-search'); - sidebar = $('.docs-sidebar'); - function update_search(querystring) { - tokens = lunr.tokenizer(querystring) - results = index.query(function (q) { - tokens.forEach(function (t) { - q.term(t.toString(), { - fields: ["title"], - boost: 100, - usePipeline: true, - editDistance: 0, - wildcard: lunr.Query.wildcard.NONE - }) - q.term(t.toString(), { - fields: ["title"], - boost: 10, - usePipeline: true, - editDistance: 2, - wildcard: lunr.Query.wildcard.NONE - }) - q.term(t.toString(), { - fields: ["text"], - boost: 1, - usePipeline: true, - editDistance: 0, - wildcard: lunr.Query.wildcard.NONE - }) - }) - }) - searchinfo.text("Number of results: " + results.length) - searchresults.empty() - results.forEach(function(result) { - data = store[result.ref] - link = $(''+data.title+'') - link.attr('href', documenterBaseURL+'/'+result.ref) - if (data.category != "page"){ - cat = $('('+data.category+', '+data.page+')') - } else { - cat = $('('+data.category+')') - } - li = $('
          • ').append(link).append(" ").append(cat) - searchresults.append(li) - }) - } - - function update_search_box() { - querystring = searchbox.val() - update_search(querystring) - } - - searchbox.keyup(_.debounce(update_search_box, 250)) - searchbox.change(update_search_box) - - // Disable enter-key form submission for the searchbox on the search page - // and just re-run search rather than refresh the whole page. - searchform.keypress( - function(event){ - if (event.which == '13') { - if (sidebar.hasClass('visible')) { - sidebar.removeClass('visible'); - } - update_search_box(); - event.preventDefault(); - } - } - ); - - search_query_uri = parseUri(window.location).queryKey["q"] - if(search_query_uri !== undefined) { - search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) - searchbox.val(search_query) - } - update_search_box(); - }) -}) - -}) diff --git a/docs/build/assets/themes/documenter-dark.css b/docs/build/assets/themes/documenter-dark.css deleted file mode 100644 index c94a294..0000000 --- a/docs/build/assets/themes/documenter-dark.css +++ /dev/null @@ -1,7 +0,0 @@ -@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! - Theme: a11y-dark - Author: @ericwbailey - Maintainer: @ericwbailey - - Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css -*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/docs/build/assets/themes/documenter-light.css b/docs/build/assets/themes/documenter-light.css deleted file mode 100644 index 9b9a14b..0000000 --- a/docs/build/assets/themes/documenter-light.css +++ /dev/null @@ -1,9 +0,0 @@ -@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! - Theme: Default - Description: Original highlight.js style - Author: (c) Ivan Sagalaev - Maintainer: @highlightjs/core-team - Website: https://highlightjs.org/ - License: see project LICENSE - Touched: 2021 -*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/docs/build/assets/themeswap.js b/docs/build/assets/themeswap.js deleted file mode 100644 index c58e993..0000000 --- a/docs/build/assets/themeswap.js +++ /dev/null @@ -1,66 +0,0 @@ -// Small function to quickly swap out themes. Gets put into the tag.. -function set_theme_from_local_storage() { - // Intialize the theme to null, which means default - var theme = null; - // If the browser supports the localstorage and is not disabled then try to get the - // documenter theme - if(window.localStorage != null) { - // Get the user-picked theme from localStorage. May be `null`, which means the default - // theme. - theme = window.localStorage.getItem("documenter-theme"); - } - // Check if the browser supports user color preference - var darkPreference = false; - // Check if the users preference is for dark color scheme - if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { - darkPreference = true; - } - // Initialize a few variables for the loop: - // - // - active: will contain the index of the theme that should be active. Note that there - // is no guarantee that localStorage contains sane values. If `active` stays `null` - // we either could not find the theme or it is the default (primary) theme anyway. - // Either way, we then need to stick to the primary theme. - // - // - disabled: style sheets that should be disabled (i.e. all the theme style sheets - // that are not the currently active theme) - var active = null; var disabled = []; var darkTheme = null; - for (var i = 0; i < document.styleSheets.length; i++) { - var ss = document.styleSheets[i]; - // The tag of each style sheet is expected to have a data-theme-name attribute - // which must contain the name of the theme. The names in localStorage much match this. - var themename = ss.ownerNode.getAttribute("data-theme-name"); - // attribute not set => non-theme stylesheet => ignore - if(themename === null) continue; - // To distinguish the default (primary) theme, it needs to have the data-theme-primary - // attribute set. - var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); - // Check if the theme is primary dark theme - var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); - // If ss is for dark theme then set the value of darkTheme to the name of the theme - if(isDarkTheme) darkTheme = themename; - // If we find a matching theme (and it's not the default), we'll set active to non-null - if(themename === theme) active = i; - // Store the style sheets of inactive themes so that we could disable them - if(themename !== theme) disabled.push(ss); - } - if(active !== null) { - // If we did find an active theme, we'll (1) add the theme--$(theme) class to - document.getElementsByTagName('html')[0].className = "theme--" + theme; - // and (2) disable all the other theme stylesheets - disabled.forEach(function(ss){ - ss.disabled = true; - }); - } - else if(darkTheme !== null && darkPreference === true) { - // If we did find an active theme, we'll (1) add the theme--$(theme) class to - document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; - // and (2) disable all the other theme stylesheets - disabled.forEach(function(ss){ - if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { - ss.disabled = true; - } - }); - } -} -set_theme_from_local_storage(); diff --git a/docs/build/assets/warner.js b/docs/build/assets/warner.js deleted file mode 100644 index 5531c88..0000000 --- a/docs/build/assets/warner.js +++ /dev/null @@ -1,49 +0,0 @@ -function maybeAddWarning () { - // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE - // in siteinfo.js. - // If either of these are undefined something went horribly wrong, so we abort. - if ( - window.DOCUMENTER_NEWEST === undefined || - window.DOCUMENTER_CURRENT_VERSION === undefined || - window.DOCUMENTER_STABLE === undefined - ) { - return - }; - - // Current version is not a version number, so we can't tell if it's the newest version. Abort. - if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { - return - }; - - // Current version is newest version, so no need to add a warning. - if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { - return - }; - - // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. - if (document.body.querySelector('meta[name="robots"]') === null) { - const meta = document.createElement('meta'); - meta.name = 'robots'; - meta.content = 'noindex'; - - document.getElementsByTagName('head')[0].appendChild(meta); - }; - - const div = document.createElement('div'); - div.classList.add('outdated-warning-overlay'); - const closer = document.createElement('button'); - closer.classList.add('outdated-warning-closer', 'delete'); - closer.addEventListener('click', function () { - document.body.removeChild(div); - }); - const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; - div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
            Click here to go to the documentation for the latest stable release.'; - div.appendChild(closer); - document.body.appendChild(div); -}; - -if (document.readyState === 'loading') { - document.addEventListener('DOMContentLoaded', maybeAddWarning); -} else { - maybeAddWarning(); -}; diff --git a/docs/build/index.html b/docs/build/index.html deleted file mode 100644 index 715e05b..0000000 --- a/docs/build/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Home · MRINavigator.jl diff --git a/docs/build/search/index.html b/docs/build/search/index.html deleted file mode 100644 index 221480e..0000000 --- a/docs/build/search/index.html +++ /dev/null @@ -1,2 +0,0 @@ - -Search · MRINavigator.jl

            Loading search...

              diff --git a/docs/build/search_index.js b/docs/build/search_index.js deleted file mode 100644 index 7376848..0000000 --- a/docs/build/search_index.js +++ /dev/null @@ -1,3 +0,0 @@ -var documenterSearchIndex = {"docs": -[{"location":"GettingStarted/#Eplain-here-how-to-get-started","page":"Getting Started","title":"Eplain here how to get started","text":"","category":"section"},{"location":"Pipelines/#Explain-here-the-pipleines","page":"Pipelines","title":"Explain here the pipleines","text":"","category":"section"},{"location":"#MRINavigator","page":"Home","title":"MRINavigator","text":"","category":"section"},{"location":"#Table-of-contents","page":"Home","title":"Table of contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\n \"index.md\",\n \"Pipelines.md\",\n \"GettingStarted.md\",\n \"API.md\"\n]\nDepth = 2","category":"page"},{"location":"#Introduction","page":"Home","title":"Introduction","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MRINavigator provides ...","category":"page"},{"location":"API/#API","page":"API","title":"API","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown.","category":"page"},{"location":"API/#Run-compact-pipeline","page":"API","title":"Run compact pipeline","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"MRINavigator.defaultNavParams\nMRINavigator.runNavPipeline\nMRINavigator.saveNoise\nMRINavigator.loadRawData\nMRINavigator.convertRawToAcq","category":"page"},{"location":"API/#MRINavigator.defaultNavParams","page":"API","title":"MRINavigator.defaultNavParams","text":"params = defaultNavParams()\n\nDefine default parameters for data loading, navigator correction and image reconstruction.\n\nDefault parameters options are\n\nslices::Union{Nothing, Vector} - number of the slices to be loaded, nothing means all slices\nechoes::Union{Nothing, Vector} - number of the echoes to be loaded, nothing means all echoes\nrep::Int - repetition to be loaded, the first repetition is 0. It is mandatory to select one\ncomp_sensit::Bool - compute the sensitivity maps using the reference scan\ncomp_centerline::Bool - use the Spinal Cord Toolbox (SCT) to find the centerlne position\ntrust_SCT::Bool - trust SCT or display the resutls and wait for user feedback with the julia REPL\nuse_centerline::Bool - use the spinal cord centerline information in the navigator-based correction\ncorr_type::String - correction type. Options: \"none\", \"knav\", \"FFT\", \"FFT_unwrap\"\nFFT_interval::String - interval in mm to be considered for the FFT based approach\n\nAdditional required parameters are\n\npath_imgData::String - path to the image data file in ISMRMRD format\npath_refData::String - path to the reference data file in ISMRMRD format\npath_sensit::String - path to the file where the sensitivity maps will be saved. The file extension must be .mat\npath_noise::String - path to the file where the noise acquisition will be saved. The file extension must be .jld2\npath_results::String - path to the results folder\n\nAdditional optional parameters are\n\npath_niftiMap::String - path to the file where the reconstructed reference data will be saved in nifti format. The file extension must be .nii\npath_centerline::String - path to the folder where the Spinal Cord Toolbox (SCT) centerline results will be saved\npath_physio::String - path to the physiological trace recording in .mat format. The variable should be a two columns vector (1:time [ms], 2:trace). The time should be expressed in seconds from the beginning of the day and contains time points befroe and after the image acquisiton (at least 2 s).\n\nISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 SCT reference: https://spinalcordtoolbox.com\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.runNavPipeline","page":"API","title":"MRINavigator.runNavPipeline","text":"runNavPipeline(params::Dict{Symbol, Any})\n\nRun the navigator pipeline. Return reconstructed image and navigaotr correction output (check NavCorr!).\n\nArguments\n\nparams::Dict{Symbol, Any} - MRINavigator parameter structure, check defaultNavParams() for info\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.saveNoise","page":"API","title":"MRINavigator.saveNoise","text":"saveNoise(path_imgData::String, path_noise::String)\n\nExtract the noise acquisition form the image data and save it. Call ExtractNoiseData!, check this function for more info.\n\nArguments\n\npath_imgData::String - path to the ISMRMRD file containing the image data\npath_noise::String - path where the noise file will be saved\n\nISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.loadRawData","page":"API","title":"MRINavigator.loadRawData","text":"loadRawData(params::Dict{Symbol, Any})\n\nLoad the raw data file saved in ISMRMRD format in julia using MRIReco.jl Call ExtractNoiseData!, OrderSlices!, ReverseBipolar!, RemoveRef!. Check the specific functions for info.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089\n\nArguments\n\nparams::Dict{Symbol, Any} - MRINavigator parameter structure, check defaultNavParams() for info\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.convertRawToAcq","page":"API","title":"MRINavigator.convertRawToAcq","text":"convertRawToAcq(rawData::::RawAcquisitionData)\n\nConvert raw data to acquisition data using MRIReco.jl, then apply small adjustments. Return acquisition data structure.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\nArguments\n\nrawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl\n\n\n\n\n\n","category":"function"},{"location":"API/#Coil-sensitivity-maps","page":"API","title":"Coil sensitivity maps","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"MRINavigator.CompSensit\nMRINavigator.CompRoughMask\nMRINavigator.ResizeSensit!\nMRINavigator.CompResizeSaveSensit","category":"page"},{"location":"API/#MRINavigator.CompSensit","page":"API","title":"MRINavigator.CompSensit","text":"sensit = CompSensit(acq::AcquisitionData, thresh = 0.13)\n\nCompute the coils sensitivity maps with masking tuned for spinal cord imaging. Use MRICoilSensitivities.jl from MRIReco.jl alternatively.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\nArguments\n\nacqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\ntresh::Float64 - masking treshold: increase for reduced mask size, decrease for extended mask size\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.CompRoughMask","page":"API","title":"MRINavigator.CompRoughMask","text":"mask = CompRoughMask(acq::AcquisitionData, slices::Int64, thresh)\n\nReturn a rough mask for multiple slices that may not be homogeneous.\n\nArguments\n\nacqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\nslices::Int64 - number of slices in acquisition data\ntresh::Float64 - masking treshold: increase for reduced mask size, decrease for extended mask size\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.ResizeSensit!","page":"API","title":"MRINavigator.ResizeSensit!","text":"sensit = ResizeSensit!(sensit::Array{Complex{T},4}, acqMap::AcquisitionData, acqData::AcquisitionData)\n\nResize and resample the coil sensitivity map to match the acquisition data field of view and resolution. This step is needed for the image reconstruction to run. Image data and reference data must have the same slice center.\n\nArguments\n\nsensit::Array{Complex{T},4} - output of CompSensit(acq::AcquisitionData, thresh)\nacqMap::RawAcquisitionData - acquisition data structure obtained converting raw reference data with MRIReco.jl\nacqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.CompResizeSaveSensit","page":"API","title":"MRINavigator.CompResizeSaveSensit","text":"CompResizeSaveSensit(acqMap::AcquisitionData, acqData::AcquisitionData, path_sensit::String)\n\nCompute, resize to the image data dimension and save the coils sensitivity maps with masking tuned for spinal cord imaging. Use MRICoilSensitivities.jl from MRIReco.jl alternatively.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\nArguments\n\nacqMap::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\nacqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\ntresh::Float64 - masking treshold: increase for reduced mask size, decrease for extended mask size\n\n\n\n\n\n","category":"function"},{"location":"API/#Find-centerline","page":"API","title":"Find centerline","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"MRINavigator.findCenterline\nMRINavigator.ReconstructMap\nMRINavigator.ReconstructSaveMap\nMRINavigator.callSCT\nMRINavigator.comp_centerline_pos","category":"page"},{"location":"API/#MRINavigator.findCenterline","page":"API","title":"MRINavigator.findCenterline","text":"findCenterline(params::Dict{Symbol, Any})\n\nReconstruct the reference data, call spinal cord toolbox and find spinal cord centerline. If trust_SCT = false in the parameters dictionary the user interaction is required in the Julia REPL.\n\nArguments\n\nparams::Dict{Symbol, Any} - paramerters dictionary\n\nSCT reference: https://spinalcordtoolbox.com\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.ReconstructMap","page":"API","title":"MRINavigator.ReconstructMap","text":"ReconstructMap(path_ref::String)\n\nReconstruct the coil sensitivity map using the MRIReco.jl function.\n\nArguments\n\npath_rep::String - path of reference data in ISMRMRD format\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.ReconstructSaveMap","page":"API","title":"MRINavigator.ReconstructSaveMap","text":"ReconstructSaveMap(path_nifti::String, path_ref::String)\n\nReconstruct the coil sensitivity map using the MRIReco.jl function and save it in nifti format without spatial informations.\n\nArguments\n\npath_nifti::String - path of the nifti file. The file must have .nii extension\npath_rep::String - path of reference data in ISMRMRD format\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.callSCT","page":"API","title":"MRINavigator.callSCT","text":"callSCT(params::Dict{Symbol, Any})\n\nCall spinal cord toolbox and find spinal cord centerline. If trust_SCT = false in the parameters dictionary the user interaction is required in the Julia REPL\n\nArguments\n\nparams::Dict{Symbol, Any} - paramerters dictionary\n\nSCT reference: https://spinalcordtoolbox.com\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.comp_centerline_pos","page":"API","title":"MRINavigator.comp_centerline_pos","text":"centerline = comp_centerline_pos(addData::additionalNavInput)\n\nConvert and return centerline position from the reference data cordinate to the acquisition data coordinates (number of voxels).\n\nArguments\n\naddData::additionalNavInput - mandatory additional data structure obtained with the constructor: additionalNavInput\n\n\n\n\n\n","category":"function"},{"location":"API/#Utils","page":"API","title":"Utils","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"MRINavigator.Reconstruct\nMRINavigator.directreco\nMRINavigator.niftiSaveImg","category":"page"},{"location":"API/#MRINavigator.Reconstruct","page":"API","title":"MRINavigator.Reconstruct","text":"img = Reconstruct(acqd::AcquisitionData, sensit::Array{Complex{T},4}, noisemat::Union{Array{Complex{T}},Nothing} = nothing)\n\nCall MRIReco.jl reconstruction function and return reconstructed image. Only single repetition in input.\n\nArguments\n\nacqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\nsensit::Array{Complex{T},4} - coil sensitivity map matric computed with CompSensit(acq::AcquisitionData, thresh = 0.135)\nnoisemat::Union{Array{Complex{T}},Nothing} = nothing - noise data extracted from the raw datat structure with ExtractNoiseData!(rawData::RawAcquisitionData)\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.directreco","page":"API","title":"MRINavigator.directreco","text":"img = directreco(acq::AcquisitionData)\n\nCall MRIReco.jl reocnstruction function and return reconstructed image. Reconstruct coils separately.\n\nArguments\n\nacqData::RawAcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.niftiSaveImg","page":"API","title":"MRINavigator.niftiSaveImg","text":"niftiSaveImg(img::AbstractArray{T}, acq::AcquisitionData, path_nifti::String)\n\nSave the module of the reconstruction output in nifti format, without spatial information.\n\nArguments\n\nimg::AbstractArray{T} - reconstruction output\nacq::AcquisitionData - reconstruction input (MRIReco.jl) needed for saving the voxel dimension\npath_nifti::String - path of the nifti file. The file must have .nii extension\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"function"},{"location":"API/#Navigator-correction","page":"API","title":"Navigator correction","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":"MRINavigator.NavCorr!\nMRINavigator.wrap_corr!\nMRINavigator.find_wrapped\nMRINavigator.TE_corr!\nMRINavigator.apply_corr!","category":"page"},{"location":"API/#MRINavigator.NavCorr!","page":"API","title":"MRINavigator.NavCorr!","text":"navOutput = NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::Dict{Symbol, Any}, addData::additionalNavInput) where {T}\n\nCompute the navigator-based correction and apply it to the acquisition data. Multiple pipelines are available: \"knav\", \"FFT\" and \"FFTunwrap\". Return navigator trace, spinal cord centerline in the reconstructed image coordinates, Correlation between nagigator and belt data for each slice and position of wrapped points for each slices. Please choose the pipeline using the corrtype filed in the params dictionary.\n\nArguments\n\nnav::Array{Complex{T}, 4} - navigator profiles obtained with the ExtractNavigator function\nacqData::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\nparams::Dict{Symbol, Any} - navigator correction paramerters dictionary\naddData::additionalNavInput - mandatory additional data structure obtained with the constructor: additionalNavInput\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.wrap_corr!","page":"API","title":"MRINavigator.wrap_corr!","text":"wrap_corr!(nav::Array{Float64, 4}, wrapped_points::Array{Int8, 2}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64)\n\nUnwrap the wrapped points identified with the find_wrapped funtion. These functions can be used only if physiological recording is available.\n\nArguments\n\nnav::Array{T, 4} - phase estimates obtained from the navigator data\nwrapped_points::Array{Int8, 2} - position of the wrapped points, output of find_wrapped\ncorrelation::Union{Array{Float64, 1} - correlation values between the physiological recording the navigator estimates for each slice. Output of find_wrapped\nslices::Int64 - number of slices\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.find_wrapped","page":"API","title":"MRINavigator.find_wrapped","text":"find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace::Array{Float64, 2}, slices::Int64)\n\nIdentify the position of the wrapped points in the navigator phase estimates. The respiratory belt recording is necessary. Return the position of the wrapped points and the correlation between each navigator slice and the trace data.\n\nArguments\n\nnav::Array{Float64, 4} - navigator phase estimates\nnav_time::Array{Float64, 2} - navigator data time stamps in ms from the beginning of the day, for each slice\ntrace::Array{Float64, 2} - physiological trace recording. Two columns vector (1:time [ms], 2:trace). The first column contains the time stamps in ms from the beginning of the day. Include time points before and after the image acquisition (at least 2 s).\nslices::Int64 - number of slices\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.TE_corr!","page":"API","title":"MRINavigator.TE_corr!","text":"nav = TE_corr!(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T}\n\nCompute the phase value for the navigator correction basing on the exact acquisition time of each data sample in the line and for each echo. Return a four dimensional navigator array.\n\nArguments\n\nnav::Array{T, 4} - phase estimates obtained from the navigator data\nacqData::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\ndt_nav::Float64 - time interval between two samples in the frequency encoding direction\nTE_nav::Float64 - echo time of the navigator readout\nnumsamples::Int64 - number of samples for each profile\nnumechoes::Int64 - number of echoes\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.apply_corr!","page":"API","title":"MRINavigator.apply_corr!","text":"apply_corr!(nav::Array{T, 4}, acqd::AcquisitionData, numechoes::Int64, numlines::Int64, numsamples::Int64, numslices::Int64) where {T}\n\nApply the navigator-based correction to the acquisition data structure obtained loading the raw data with MRIReco.jl. After applying the correction the image should be reconstructed. Use the reconstruct function.\n\nArguments\n\nnav::Array{T, 4} - phase estimates obtained from the navigator data\nacqd::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\nnumechoes::Int64 - number of echoes\nnumlines::Int64 - number of lines (profiles) for each slice and echo\nnumsamples::Int64 - number of samples for each profile\nnumslices::Int64 - number of slices\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"function"},{"location":"API/#Adjust-data","page":"API","title":"Adjust data","text":"","category":"section"},{"location":"API/","page":"API","title":"API","text":" MRINavigator.OrderSlices!\n MRINavigator.ExtractFlags\n MRINavigator.ExtractNoiseData!\n MRINavigator.ReverseBipolar!\n MRINavigator.RemoveRef!\n MRINavigator.CopyTE!\n MRINavigator.AdjustSubsampleIndices!\n MRINavigator.ExtractNavigator\n MRINavigator.selectEcho!\n MRINavigator.selectSlice!\n MRINavigator.additionalNavInput","category":"page"},{"location":"API/#MRINavigator.OrderSlices!","page":"API","title":"MRINavigator.OrderSlices!","text":"OrderSlices!(rawData::RawAcquisitionData)\n\nSpatially order the slices in the MRIReco.jl raw data structure. The slices are ordered basing on the position coordinates saved in each profile. If these are not present the slices can not be ordered.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\nArguments\n\nrawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.ExtractFlags","page":"API","title":"MRINavigator.ExtractFlags","text":"flags = ExtractFlags(rawData::RawAcquisitionData)\n\nExtract the acquisition flags from the MRIReco.jl raw data profiles. Return a 31 elements vector for each profile.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\nArguments\n\nrawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.ExtractNoiseData!","page":"API","title":"MRINavigator.ExtractNoiseData!","text":"noisemat = ExtractNoiseData!(rawData::RawAcquisitionData, flags::Array{Int64})\n\nExtract and return the noise acquisition from the MRIReco.jl raw data. The noise acquisition is usually the first profile with slice = 0, contrast = 0, repetition = 0. The noise profile should have the 19th flag element qual to 1. Check with ExtractFlags if errors occur.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\nArguments\n\nrawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.ReverseBipolar!","page":"API","title":"MRINavigator.ReverseBipolar!","text":"ReverseBipolar!(rawData::RawAcquisitionData)\n\nReflect the MRIReco.jl raw data profiles for bipolar acquisition.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\nArguments\n\nrawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.RemoveRef!","page":"API","title":"MRINavigator.RemoveRef!","text":"RemoveRef!(rawData::RawAcquisitionData, slices::Union{Vector{Int64}, Nothing}, echoes::Union{Vector{Int64}, Nothing})\n\nRemove reference data that are not useful for the navigator-based correction from acquisitions with phase stabilization on Siemens scanners. Make sure that this is needed on your data checking the time stamps with mapVBVD in Matlab. Not solid to recalls.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 mapVBVD reference: https://github.com/CIC-methods/FID-A/blob/master/inputOutput/mapVBVD/README.md\n\nArguments\n\nrawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.CopyTE!","page":"API","title":"MRINavigator.CopyTE!","text":"CopyTE!(rawData::RawAcquisitionData, acqData::AcquisitionData)\n\nCopy the TE values from the MRIReco.jl raw data structure to the acquisition data structure.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\nArguments\n\nrawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl\nacqData::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.AdjustSubsampleIndices!","page":"API","title":"MRINavigator.AdjustSubsampleIndices!","text":"AdjustSubsampleIndices!(acqData::AcquisitionData)\n\nAdd subsamples indices in the MRIReco.jl acquisition data structure. Needed when conveting data not acquired in the first repetition.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\nArguments\n\nacqData::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.ExtractNavigator","page":"API","title":"MRINavigator.ExtractNavigator","text":"(nav, nav_time) = ExtractNavigator(rawData::RawAcquisitionData, slices::Union{Vector{Int64}, Nothing})\n\nExtract the navigator profiles from the MRIReco.jl raw data structure. These are registered with the same indices (contract, slice, encoding step) as the image data for the first echo time. Return a navigator array and a navigator time array. The navigator array has four dimensions in order: k-space samples, coils, k-space lines, slices. Effective only if the navigator profile was acquired after the first image profile.\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\nArguments\n\nrawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.selectEcho!","page":"API","title":"MRINavigator.selectEcho!","text":"SelectEcho!(acqd, idx_echo)\n\nExtract one or more echoes from the acquisition data structure\n\nArguments\n\nacqd::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\nidx_echo::Vector{Int64} - vector containing the indexes of the echoes to be selected (starting from 0)\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.selectSlice!","page":"API","title":"MRINavigator.selectSlice!","text":"SelectSlice!(acqd, nav, nav_time, idx_slice)\n\nExtract one or more echoes from the acquisition data structure\n\nArguments\n\nacqd::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\nidx_slice::Vector{Int64} - vector containing the indexes of the slices to be selected (starting from 0, downer slice)\n\nOptional arguments with default value = nothing\n\nnav::Union{Array{Complex{T}, 4}, Nothin} = nothing - navigator profiles obtained with the ExtractNavigator function\nnav_time::Union{Array{Complex{Float32}, 2}, Nothing} - time stamps for the navigator data obtained with ExtractNavigator (in ms from the beginning of the day)\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"function"},{"location":"API/#MRINavigator.additionalNavInput","page":"API","title":"MRINavigator.additionalNavInput","text":"Data = additionalNavInput(\n noisemat::Array{Complex{Float32}, 2},\n rawData::RawAcquisitionData,\n acqData::AcquisitionData,\n acqMap::Union{AcquisitionData, Nothing} = nothing,\n nav_time::Union{Array{Complex{Float32}, 2}, Nothing} = nothing,\n trace::Union{Matrix{Float64}, Nothing} = nothing,\n centerline::Union{Vector{Float64}, Nothing} = nothing)\n\nConstruct the additional data structure that is needed as imput to navCorr!\n\nArguments\n\nnoisemat::Array{Complex{Float32}, 2} - noise data obtained with ExtractNoiseData!\nrawData::RawAcquisitionData - raw data structure obtained loading raw data with MRIReco.jl\nacqData::AcquisitionData - acquisition data structure obtained converting raw data with MRIReco.jl\n\nOptional arguments with default value = nothing\n\nacqMap::Union{AcquisitionData, Nothing} = nothing - acquisition data structure obtained converting reference data with MRIReco.jl\nnav_time::Union{Array{Complex{Float32}, 2}, Nothing} - time stamps for the navigator data obtained with ExtractNavigator (in ms from the beginning of the day)\ntrace::Union{Matrix{Float64}, Nothing} - respiratory trace time stamps and values in matrix with two colunms (1:time [ms], 2:trace). Include time points before and after the image acquisition (at least 2 s).\ncenterline::Union{Vector{Float64}, Nothing} - coordinates of the spinal cord ceterline obtained with callSCT\n\nMRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792\n\n\n\n\n\n","category":"type"}] -} diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index 870bd6c..4613067 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -1,3 +1,3 @@ # Navigator-based correction pipelines -![Phantom](./assets/phantom.pdf) \ No newline at end of file +![Phantom](./assets/pipeline.pdf) \ No newline at end of file From 8af01ee09a5a80cac448cd93b33c3ec234d58ada Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 28 Aug 2023 14:53:13 +0200 Subject: [PATCH 79/92] documentation --- docs/src/assets/pipeline.pdf | Bin 61384 -> 0 bytes docs/src/assets/pipeline.png | Bin 0 -> 154768 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100755 docs/src/assets/pipeline.pdf create mode 100644 docs/src/assets/pipeline.png diff --git a/docs/src/assets/pipeline.pdf b/docs/src/assets/pipeline.pdf deleted file mode 100755 index f0c76e0c48763ab1fbe55e062dcda8d8afc2cd5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61384 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 UC=e?GBbFQm@CAt~K_m)+N1zNc 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 Y0bpf6n4E|RGwEMef&c@S|A&?Q4?cm8761SM diff --git a/docs/src/assets/pipeline.png b/docs/src/assets/pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..693cc6480e8f0b837f9e42bb9c6681b6243bf0a1 GIT binary patch literal 154768 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

              _s=OG#;RD{+ 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Î?=IIs0YsfDzU}{*D}Q1O~Khn4q_lBW4I14dqvCF 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

              9d%)EUMJq@vk3$Grq`I3h~=MmgTG4D~e# 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 T;jx5&00000NkvXXu0mjfz^Mud literal 0 HcmV?d00001 From 2d374d198416453b00212470a554b977e7a00154 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 28 Aug 2023 14:53:39 +0200 Subject: [PATCH 80/92] documentation --- docs/src/Pipelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index 4613067..15c4df0 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -1,3 +1,3 @@ # Navigator-based correction pipelines -![Phantom](./assets/pipeline.pdf) \ No newline at end of file +![Phantom](./assets/pipeline.png) \ No newline at end of file From e9a8513cb7aaa2acb1cb93e3f5079e02d22f7a1b Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 28 Aug 2023 14:56:05 +0200 Subject: [PATCH 81/92] documentation --- docs/src/GettingStarted.md | 2 +- docs/src/Pipelines.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/src/GettingStarted.md b/docs/src/GettingStarted.md index dfa27f0..4d4b068 100644 --- a/docs/src/GettingStarted.md +++ b/docs/src/GettingStarted.md @@ -1,6 +1,6 @@ # Get started -There are available [https://github.com/NordicMRspine/UserExample_MRINavigator](user examples) +There are available [user examples](https://github.com/NordicMRspine/UserExample_MRINavigator) # User examples diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index 15c4df0..af0333e 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -1,3 +1,4 @@ # Navigator-based correction pipelines + ![Phantom](./assets/pipeline.png) \ No newline at end of file From b8088f9f22c76c8375c3e249ed80ea3dadf2a097 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 28 Aug 2023 17:11:59 +0200 Subject: [PATCH 82/92] documentation --- README.md | 5 +---- docs/src/API.md | 2 +- docs/src/GettingStarted.md | 7 +++++++ docs/src/Pipelines.md | 3 +-- docs/src/index.md | 18 ++++++++++++++++-- 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c3bbd7d..32966d3 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,7 @@ More details can be found in the Online Documentation (soon to be published). MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 ## How to give credit - -soon to be published - +[Optimised navigator correction of physiological field fluctuations in multi-echo GRE of the lumbar spinal cord at 3T](https://submissions.mirasmart.com/ISMRM2023/Itinerary/PresentationDetail.aspx?evdid=1673). L Beghini, G David, M D Liechti, S Büeler, S J Vannesjo. 2023. Proceedings of the International Society for Magnetic Resonance in Medicine (ISMRM). ## Community Standards - This project is part of the Julia community and follows the [Julia community standards](https://julialang.org/community/standards/). diff --git a/docs/src/API.md b/docs/src/API.md index 38a5caf..b927133 100644 --- a/docs/src/API.md +++ b/docs/src/API.md @@ -1,6 +1,6 @@ # API -This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown. +This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with `?` and then writing the function for which the documentation should be shown. # Run compact pipeline ```@docs diff --git a/docs/src/GettingStarted.md b/docs/src/GettingStarted.md index 4d4b068..83802b5 100644 --- a/docs/src/GettingStarted.md +++ b/docs/src/GettingStarted.md @@ -2,6 +2,13 @@ There are available [user examples](https://github.com/NordicMRspine/UserExample_MRINavigator) +# Get the data ready +* navigator readout at the end of the TR +* respiratory trace recordings + +## The parameters dictionary + + # User examples * Compact diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index af0333e..6b8e867 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -1,4 +1,3 @@ # Navigator-based correction pipelines - -![Phantom](./assets/pipeline.png) \ No newline at end of file +![Pipelines](./assets/pipeline.png) \ No newline at end of file diff --git a/docs/src/index.md b/docs/src/index.md index e074d76..60233c8 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -14,7 +14,7 @@ Depth = 2 ``` ## Introduction -MRINavigator provides tools for applying a navigator-based correction to Magnetic Resonance Images. +MRINavigator provides multiple navigator-based correction pipelines for Magnetic Resonance (MR) images. These aim at demodulating time-dependent field variations present in multi echo-gradient echo acquisitions. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. [MRIReco.jl](https://github.com/MagneticResonanceImaging/MRIReco.jl) can be used to reconstruct the images. !!! note MRINavigator.jl is newly published and any feedback is more than welcome. @@ -31,12 +31,26 @@ pkg> dev MRINavigator ``` More information on how to develop a package can be found in the Julia documentation. +### requirements +To use some package functionalities external softwares are necessary. These include +* [Spinal Cord Toolbox (SCT)](https://spinalcordtoolbox.com) +* [FSLeyes](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSLeyes) +Using these should improve the correction outcome of the pipelines including a fourier transform (FFT) step. This is only relevant for spinal cord acquisitions. +For additinal information read the [Getting Started](@ref) and [Pipelines](@ref) sections. + +## Testing MRINavigator +To make sure that the package is correctly installed and works, start `julia` from the command line, type `]` to enter the package manager REPL mode. Then enter +```julia +pkg> test MRINavigator +``` + ## Updating MRINavigator To update MRINavigator to the latest version, start `julia` from the command line, type `]` to enter the package manager REPL mode. Then enter ```julia pkg> update MRINavigator ``` ## Navigator-based correction +Multi-echo gradient-echo (GRE) sequence are commonly acquired both in research labs and clinical practice. However, one of their main limitations is the sensitivity to field instabilities both in space and time. Indeed, for the signal spatial encoding to be effective a background homogeneous field in time and space is required. Time-varying background fields can lead to phase modulation between k-space lines, and therefore TE-dependent ghosting artefacts. [Navigator](https://www.sciencedirect.com/science/article/pii/S1053811910003356?via%3Dihub) readouts in the k-space center can be used to measure the intensity of the filed fluctuations allowing to demodulate the acquired signal before the image reconstruction. The standard navigaotr-based correction was developed for brain imaging and it is not robus when applied in other areas e.g. the spinal cord. When failing the correction can even exhacerbate the artifacts. This package provides optimised post-processing pipelines to correct for dynamic field instabilities in GRE sequences. For additinal information read the [Pipelines](@ref) section. ## Plotting `MRINavigator` is not depending on a particular plotting package since there @@ -45,4 +59,4 @@ are various plotting packages available in Julia. ## Citing this work If you use MRINavigator in you research please cite the following: -To be published \ No newline at end of file +[Optimised navigator correction of physiological field fluctuations in multi-echo GRE of the lumbar spinal cord at 3T](https://submissions.mirasmart.com/ISMRM2023/Itinerary/PresentationDetail.aspx?evdid=1673). L Beghini, G David, M D Liechti, S Büeler, S J Vannesjo. 2023. Proceedings of the International Society for Magnetic Resonance in Medicine (ISMRM). \ No newline at end of file From 79546c09cb5e1591fd737741e931d613ac4e8a0e Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Mon, 28 Aug 2023 17:47:10 +0200 Subject: [PATCH 83/92] documentation --- docs/src/Pipelines.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index 6b8e867..5b76c37 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -1,3 +1,11 @@ # Navigator-based correction pipelines +Standard navigator processing that have been developed for brian imaging are not sufficiently robust in the spinal cord because: +* The signal to noise ratio (SNR) is lower +* There is higher in-plane variability in the field distribution +* There is larger variation in signal contribution from different receiver coils + +To face these challenges ... + + ![Pipelines](./assets/pipeline.png) \ No newline at end of file From f67dfd9520885ff47020853461c984db22c4b99e Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 29 Aug 2023 14:49:38 +0200 Subject: [PATCH 84/92] documentation --- docs/make.jl | 2 +- docs/src/Pipelines.md | 29 +++++++++++++++++++++++++---- docs/src/index.md | 6 +++--- src/NavParameters.jl | 1 - src/Navigator.jl | 12 ++++++++---- 5 files changed, 37 insertions(+), 13 deletions(-) diff --git a/docs/make.jl b/docs/make.jl index d70455d..39ae8c3 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -5,8 +5,8 @@ makedocs(modules=[MRINavigator], authors = "Laura Beghini", pages = [ "Home" => "index.md", - "Pipelines" => "Pipelines.md", "Getting Started" => "GettingStarted.md", + "Pipelines" => "Pipelines.md", "API" => "API.md" ], ) diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index 5b76c37..f722748 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -1,11 +1,32 @@ # Navigator-based correction pipelines -Standard navigator processing that have been developed for brian imaging are not sufficiently robust in the spinal cord because: -* The signal to noise ratio (SNR) is lower +Standard navigator processing that have been developed for brain imaging are not sufficiently robust in the spinal cord because: * There is higher in-plane variability in the field distribution +* The signal to noise ratio (SNR) is lower * There is larger variation in signal contribution from different receiver coils -To face these challenges ... +To face these challenges we introduced: +* __SNR weighted averaging__ of the navigator profile +* __mean phase removal__ to recenter the phase distribution and reduce wrapping +* __A fast Fourier transform (FFT) and spatial region selection step__. This consists of applying a one dimensional Fourier transform to each navigator profile and considering for the phase estimate only the data points in certain spatial interval centered on the spinal cord. +* __Phase unwrapping__ function for the navigator estimates using the respiratory trace recording. +These features are combined in multiple pipelines as shown in the figure. + +![Pipelines](./assets/pipeline.png) + +The available pipelines are: +* __k_nav__ is the k-space navigator processing commonly used for brain imaging, optimized with SNR weighted averaging and mean phase removal. +* __FFT_nav__ that compared to k-nav includes an additional FFT snd spatial region selection step. +* __unwrap__ includes the phase unwrapping algorithm and makes use of the respiratory belt recordings. + +MRINavigator is designed to be flexible and multiple analysis parameters are tunable. It is possible to select the correction pipeline and paramenter using the params dictionary. +For more informations check the [Get started](@ref) or [API](@ref) pages. Alternatively start `julia` from the command line, type `?` to enter the help REPL mode. Then enter +```julia +help?> defaultNavParams +``` -![Pipelines](./assets/pipeline.png) \ No newline at end of file +Here are listed the main features and parametes the user can slect and modify: +* The Spinal cord toolbpx ([SCT](https://spinalcordtoolbox.com)) can be used to locate the spinal cord centerline position (`params[:comp_centerline] = true`). To do this the reference data, which are fully sampled, are reconstructed combining the coils, and saved in (NIfTI)[https://brainder.org/2012/09/23/the-nifti-file-format/] format (`params[:reconstruct_map] = true`). The user can also manually locate the centerline if the automatic algorithm fails, selecting `params[:trust_SCT] = false`. Alternatively the center of the image will be used (`params[:use_centerline] = false`). +* The interval width for the region selection after the FFT step can be selected (`params[:FFT_interval] = type number in millimeters`). +* The unwrap function can be applied added both to the __FFT__ and the __k nav__ pipelines. To do this type `params[:corr_type] = "FFT_unwrap"` or `params[:corr_type] = "knav_unwrap"`. \ No newline at end of file diff --git a/docs/src/index.md b/docs/src/index.md index 60233c8..c08f1f4 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -6,8 +6,8 @@ ```@contents Pages = [ "index.md", - "Pipelines.md", "GettingStarted.md", + "Pipelines.md", "API.md" ] Depth = 2 @@ -36,7 +36,7 @@ To use some package functionalities external softwares are necessary. These incl * [Spinal Cord Toolbox (SCT)](https://spinalcordtoolbox.com) * [FSLeyes](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSLeyes) Using these should improve the correction outcome of the pipelines including a fourier transform (FFT) step. This is only relevant for spinal cord acquisitions. -For additinal information read the [Getting Started](@ref) and [Pipelines](@ref) sections. +For additinal information read the [Get started](@ref) and [Navigator-based correction pipelines](@ref) sections. ## Testing MRINavigator To make sure that the package is correctly installed and works, start `julia` from the command line, type `]` to enter the package manager REPL mode. Then enter @@ -50,7 +50,7 @@ To update MRINavigator to the latest version, start `julia` from the command lin pkg> update MRINavigator ``` ## Navigator-based correction -Multi-echo gradient-echo (GRE) sequence are commonly acquired both in research labs and clinical practice. However, one of their main limitations is the sensitivity to field instabilities both in space and time. Indeed, for the signal spatial encoding to be effective a background homogeneous field in time and space is required. Time-varying background fields can lead to phase modulation between k-space lines, and therefore TE-dependent ghosting artefacts. [Navigator](https://www.sciencedirect.com/science/article/pii/S1053811910003356?via%3Dihub) readouts in the k-space center can be used to measure the intensity of the filed fluctuations allowing to demodulate the acquired signal before the image reconstruction. The standard navigaotr-based correction was developed for brain imaging and it is not robus when applied in other areas e.g. the spinal cord. When failing the correction can even exhacerbate the artifacts. This package provides optimised post-processing pipelines to correct for dynamic field instabilities in GRE sequences. For additinal information read the [Pipelines](@ref) section. +Multi-echo gradient-echo (GRE) sequence are commonly acquired both in research labs and clinical practice. However, one of their main limitations is the sensitivity to field instabilities both in space and time. Indeed, for the signal spatial encoding to be effective a background homogeneous field in time and space is required. Time-varying background fields can lead to phase modulation between k-space lines, and therefore TE-dependent ghosting artefacts. [Navigator](https://www.sciencedirect.com/science/article/pii/S1053811910003356?via%3Dihub) readouts in the k-space center can be used to measure the intensity of the filed fluctuations allowing to demodulate the acquired signal before the image reconstruction. The standard navigaotr-based correction was developed for brain imaging and it is not robus when applied in other areas e.g. the spinal cord. When failing the correction can even exhacerbate the artifacts. This package provides optimised post-processing pipelines to correct for dynamic field instabilities in GRE sequences. For additinal information read the [Navigator-based correction pipelines](@ref) section. ## Plotting `MRINavigator` is not depending on a particular plotting package since there diff --git a/src/NavParameters.jl b/src/NavParameters.jl index 02fbfc9..c5ce4c5 100644 --- a/src/NavParameters.jl +++ b/src/NavParameters.jl @@ -31,7 +31,6 @@ Define default parameters for data loading, navigator correction and image recon ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 SCT reference: https://spinalcordtoolbox.com - """ function defaultNavParams() diff --git a/src/Navigator.jl b/src/Navigator.jl index 1d9c865..1a85332 100644 --- a/src/Navigator.jl +++ b/src/Navigator.jl @@ -22,7 +22,8 @@ function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::D #navigator[k-space samples, coils, k-space lines, slices] # compute the navigator fourier transform in the readout direction, only for FFT case centerline = nothing - if params[:corr_type] != "knav" + corr_type = split(params[:corr_type], "_") + if corr_type[1] != "knav" nav = ifftshift(ifft(fftshift(nav, [1]), [1]), [1]) #noisemat = fftshift(fft(ifftshift(noisemat, [1]), [1]), [1]) @@ -59,9 +60,12 @@ function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::D correlation = nothing wrapped_points = nothing - if params[:corr_type] == "FFT_unwrap" - (wrapped_points, correlation) = find_wrapped(nav, addData.nav_time, addData.trace, addData.numslices) - nav = wrap_corr!(nav, wrapped_points, correlation, addData.numslices) + corr_type = split(params[:corr_type], "_") + if size(corr_type, 1) == 2 + if corr_type[2] == "unwrap" + (wrapped_points, correlation) = find_wrapped(nav, addData.nav_time, addData.trace, addData.numslices) + nav = wrap_corr!(nav, wrapped_points, correlation, addData.numslices) + end end nav_return = deepcopy(nav) From b228de93b26fe576e175ad078caecc3204f6d86c Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 29 Aug 2023 14:53:37 +0200 Subject: [PATCH 85/92] documentation --- docs/src/Pipelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index f722748..b74abce 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -27,6 +27,6 @@ help?> defaultNavParams ``` Here are listed the main features and parametes the user can slect and modify: -* The Spinal cord toolbpx ([SCT](https://spinalcordtoolbox.com)) can be used to locate the spinal cord centerline position (`params[:comp_centerline] = true`). To do this the reference data, which are fully sampled, are reconstructed combining the coils, and saved in (NIfTI)[https://brainder.org/2012/09/23/the-nifti-file-format/] format (`params[:reconstruct_map] = true`). The user can also manually locate the centerline if the automatic algorithm fails, selecting `params[:trust_SCT] = false`. Alternatively the center of the image will be used (`params[:use_centerline] = false`). +* The Spinal cord toolbpx ([SCT](https://spinalcordtoolbox.com)) can be used to locate the spinal cord centerline position (`params[:comp_centerline] = true`). To do this the reference data, which are fully sampled, are reconstructed combining the coils, and saved in [NIfTI](https://brainder.org/2012/09/23/the-nifti-file-format/) format (`params[:reconstruct_map] = true`). The user can also manually locate the centerline if the automatic algorithm fails, selecting `params[:trust_SCT] = false`. Alternatively the center of the image will be used (`params[:use_centerline] = false`). * The interval width for the region selection after the FFT step can be selected (`params[:FFT_interval] = type number in millimeters`). * The unwrap function can be applied added both to the __FFT__ and the __k nav__ pipelines. To do this type `params[:corr_type] = "FFT_unwrap"` or `params[:corr_type] = "knav_unwrap"`. \ No newline at end of file From 786502d4437003b96038d3b22bcdcb0c2db8bf56 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 29 Aug 2023 15:00:30 +0200 Subject: [PATCH 86/92] documentation --- docs/src/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/index.md b/docs/src/index.md index c08f1f4..167ded3 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -17,7 +17,7 @@ Depth = 2 MRINavigator provides multiple navigator-based correction pipelines for Magnetic Resonance (MR) images. These aim at demodulating time-dependent field variations present in multi echo-gradient echo acquisitions. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. [MRIReco.jl](https://github.com/MagneticResonanceImaging/MRIReco.jl) can be used to reconstruct the images. !!! note - MRINavigator.jl is newly published and any feedback is more than welcome. + MRINavigator.jl is newly published and any feedback is more than welcome. Please report any bugs or features under issues in the GitHub folder. ## Installation Start `julia` and open the package manager REPL mode by entering `]`. Then enter @@ -31,7 +31,7 @@ pkg> dev MRINavigator ``` More information on how to develop a package can be found in the Julia documentation. -### requirements +### Requirements To use some package functionalities external softwares are necessary. These include * [Spinal Cord Toolbox (SCT)](https://spinalcordtoolbox.com) * [FSLeyes](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSLeyes) From 19b2efa8d68ddccb1f3ae4e45a672e62a01e58fa Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Tue, 29 Aug 2023 23:40:08 +0200 Subject: [PATCH 87/92] documentation --- docs/src/GettingStarted.md | 20 +++++++++++++------- docs/src/index.md | 7 ++++++- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/docs/src/GettingStarted.md b/docs/src/GettingStarted.md index 83802b5..0c75573 100644 --- a/docs/src/GettingStarted.md +++ b/docs/src/GettingStarted.md @@ -1,16 +1,22 @@ # Get started -There are available [user examples](https://github.com/NordicMRspine/UserExample_MRINavigator) +There are available [user examples](https://github.com/NordicMRspine/UserExample_MRINavigator) to get started. The user needs to dispone of their own data to run the pipelines as currently there are not example data available. -# Get the data ready -* navigator readout at the end of the TR -* respiratory trace recordings +## Data acquisition +The user should have the raw data of a gradient echo acquisition. The pipelines can be run on both multi-echo and single-echo data. Other than the main acquisition, which is usually undersampled, also a lower resolution, fully sampled scan is necessary to compute the [coils sennsitivity maps](https://doi.org/10.1002/mrm.1241) and reconstruct the images. This low resolution scan is also called reference scan and should include only one echo. The main gradient echo acquisition must include a navigator readout trough the center of k-space at __the end__ of every TR. During the acqusition it is advisable to connect a repiratory belt and record the signal. This can be used to unwrap the navigator phase estimates if phase wrapping is present. + +## Data reshaping +All the data should be exported from the scanner in raw format. Then they should be converted to [ISMRMRD](https://ismrmrd.readthedocs.io/en/latest/index.html) format. Siemens TWIX data can be converted to ISMRMRD using [siemens_to_ismrmrd](https://github.com/ismrmrd/siemens_to_ismrmrd). After the conversion the data can be loaded in the julia framework. The repiratory belt recording must be synchronised with bla bla -## The parameters dictionary +## The parameters dictionary +Before calling the package function the correction pipeline should be chosen and the parameters should be set. For more informations regarding the correction pipelines and -# User examples +## User examples * Compact * Semi-Compact -* Complete \ No newline at end of file +* Complete + +## Disclaimer +MRINavigator and the functions to ajdust the data after loading the were developed using Siemens data [bla bla] \ No newline at end of file diff --git a/docs/src/index.md b/docs/src/index.md index 167ded3..96f78a5 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -17,7 +17,7 @@ Depth = 2 MRINavigator provides multiple navigator-based correction pipelines for Magnetic Resonance (MR) images. These aim at demodulating time-dependent field variations present in multi echo-gradient echo acquisitions. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. [MRIReco.jl](https://github.com/MagneticResonanceImaging/MRIReco.jl) can be used to reconstruct the images. !!! note - MRINavigator.jl is newly published and any feedback is more than welcome. Please report any bugs or features under issues in the GitHub folder. + MRINavigator.jl is newly published and any feedback is welcome. Please report any bugs or features under issues in the GitHub folder. ## Installation Start `julia` and open the package manager REPL mode by entering `]`. Then enter @@ -56,6 +56,11 @@ Multi-echo gradient-echo (GRE) sequence are commonly acquired both in research l `MRINavigator` is not depending on a particular plotting package since there are various plotting packages available in Julia. +## Acknowledgements +This package uses the reconstruction functions and data structures available in [MRIReco.jl](https://github.com/MagneticResonanceImaging/MRIReco.jl). + +T. Knopp and M. Grosser (2021). [MRIReco.jl: An MRI Reconstruction Framework written in Julia]( https://doi.org/10.1002/mrm.28792). Magnetic Resonance in Medicine. 2021. + ## Citing this work If you use MRINavigator in you research please cite the following: From aa52f98e40877477152c0eb15ead2acb07e5be57 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Wed, 30 Aug 2023 11:16:48 +0200 Subject: [PATCH 88/92] documentation --- docs/src/GettingStarted.md | 2 +- docs/src/assets/pipeline.png | Bin 154768 -> 136179 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/GettingStarted.md b/docs/src/GettingStarted.md index 0c75573..ee438f0 100644 --- a/docs/src/GettingStarted.md +++ b/docs/src/GettingStarted.md @@ -3,7 +3,7 @@ There are available [user examples](https://github.com/NordicMRspine/UserExample_MRINavigator) to get started. The user needs to dispone of their own data to run the pipelines as currently there are not example data available. ## Data acquisition -The user should have the raw data of a gradient echo acquisition. The pipelines can be run on both multi-echo and single-echo data. Other than the main acquisition, which is usually undersampled, also a lower resolution, fully sampled scan is necessary to compute the [coils sennsitivity maps](https://doi.org/10.1002/mrm.1241) and reconstruct the images. This low resolution scan is also called reference scan and should include only one echo. The main gradient echo acquisition must include a navigator readout trough the center of k-space at __the end__ of every TR. During the acqusition it is advisable to connect a repiratory belt and record the signal. This can be used to unwrap the navigator phase estimates if phase wrapping is present. +The user should have the raw data of a gradient echo acquisition. The pipelines can be run on both multi-echo and single-echo data. Other than the main acquisition, which is usually undersampled, also a lower resolution, fully sampled scan is necessary to compute the [coils sennsitivity maps](https://doi.org/10.1002/mrm.1241) and reconstruct the images. This low resolution scan is also called reference scan and should include only one echo. The main gradient echo acquisition must include a navigator readout trough the center of k-space at __the end__ of every TR. During the acqusition it is advisable to collect the signal from a respiratory belt. This can be used to unwrap the navigator phase estimates if phase wrapping is present. ## Data reshaping All the data should be exported from the scanner in raw format. Then they should be converted to [ISMRMRD](https://ismrmrd.readthedocs.io/en/latest/index.html) format. Siemens TWIX data can be converted to ISMRMRD using [siemens_to_ismrmrd](https://github.com/ismrmrd/siemens_to_ismrmrd). After the conversion the data can be loaded in the julia framework. The repiratory belt recording must be synchronised with bla bla diff --git a/docs/src/assets/pipeline.png b/docs/src/assets/pipeline.png index 693cc6480e8f0b837f9e42bb9c6681b6243bf0a1..81d8d1a11c83f8d777c7cf563fcdcd29c359001c 100644 GIT binary patch literal 136179 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

              _s=OG#;RD{+ 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Î?=IIs0YsfDzU}{*D}Q1O~Khn4q_lBW4I14dqvCF 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

              9d%)EUMJq@vk3$Grq`I3h~=MmgTG4D~e# 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 T;jx5&00000NkvXXu0mjfz^Mud From e231e96177d0a36ca6411985fb6a39d94b1aed70 Mon Sep 17 00:00:00 2001 From: Laura Beghini Date: Wed, 30 Aug 2023 15:29:50 +0200 Subject: [PATCH 89/92] documentation --- docs/src/GettingStarted.md | 48 ++++++++++++++++++++++++++++++-------- docs/src/Pipelines.md | 16 ++++++------- docs/src/index.md | 13 +++++------ src/NavParameters.jl | 2 +- 4 files changed, 53 insertions(+), 26 deletions(-) diff --git a/docs/src/GettingStarted.md b/docs/src/GettingStarted.md index ee438f0..7f75108 100644 --- a/docs/src/GettingStarted.md +++ b/docs/src/GettingStarted.md @@ -1,22 +1,50 @@ # Get started -There are available [user examples](https://github.com/NordicMRspine/UserExample_MRINavigator) to get started. The user needs to dispone of their own data to run the pipelines as currently there are not example data available. +There are available [user examples](https://github.com/NordicMRspine/UserExample_MRINavigator) to get started. The user needs to provide their own data to run the pipelines, as there are currently no example data available. ## Data acquisition -The user should have the raw data of a gradient echo acquisition. The pipelines can be run on both multi-echo and single-echo data. Other than the main acquisition, which is usually undersampled, also a lower resolution, fully sampled scan is necessary to compute the [coils sennsitivity maps](https://doi.org/10.1002/mrm.1241) and reconstruct the images. This low resolution scan is also called reference scan and should include only one echo. The main gradient echo acquisition must include a navigator readout trough the center of k-space at __the end__ of every TR. During the acqusition it is advisable to collect the signal from a respiratory belt. This can be used to unwrap the navigator phase estimates if phase wrapping is present. +The user should have the raw data of a gradient echo acquisition. The pipelines can be run on both multi-echo and single-echo data. Other than the main acquisition, which is usually undersampled, a lower resolution, fully sampled scan is also necessary to compute the [coils sensitivity maps](https://doi.org/10.1002/mrm.1241) and reconstruct the images. This low-resolution scan is also called a reference scan and should include only one echo. The main gradient echo acquisition must include a navigator readout through the center of k-space at __the end__ of every TR. During the acquisition, it is advisable to collect the signal from a respiratory belt. This can be used to unwrap the navigator's phase estimates if phase wrapping is present. ## Data reshaping -All the data should be exported from the scanner in raw format. Then they should be converted to [ISMRMRD](https://ismrmrd.readthedocs.io/en/latest/index.html) format. Siemens TWIX data can be converted to ISMRMRD using [siemens_to_ismrmrd](https://github.com/ismrmrd/siemens_to_ismrmrd). After the conversion the data can be loaded in the julia framework. The repiratory belt recording must be synchronised with bla bla - +All the data should be exported from the scanner in raw format. Then they should be converted to [ISMRMRD](https://ismrmrd.readthedocs.io/en/latest/index.html) format. Siemens TWIX data can be converted to ISMRMRD using [siemens_to_ismrmrd](https://github.com/ismrmrd/siemens_to_ismrmrd). After the conversion, the data can be loaded into the Julia framework. +The repiratory belt recording must be synchronised with the time stamps in the image acquisition. Then they must be saved in a two-column vector (1:time [ms], 2:trace) in .mat format. Each repetition should be in a different file. The time should be expressed in seconds from the beginning of the day and contain time points before and after the image acquisition (at least 4 s). ## The parameters dictionary -Before calling the package function the correction pipeline should be chosen and the parameters should be set. For more informations regarding the correction pipelines and - +Before calling the package function the correction pipeline should be chosen and the parameters should be set. Also the data paths and results paths need to be defined. For more details regarding the correction pipelines and parameters read the [Navigator-based correction pipelines](@ref) page. +All the information necessary to apply the corrections is defined in a [dictionary](https://docs.julialang.org/en/v1/base/collections/#Dictionaries). This includes all the file paths and analysis parameters. The user can also add items to the dictionary if needed. +Here is an example of a `params` dictionary: + +```julia +params = Dict{Symbol,Any}() +params[:subject] = "sub_01" +params[:slices] = [1,2] # type nothing for all slices +params[:echoes] = [3,4] # type nothing for all echoes +params[:rep] = 0 +params[:comp_sensit] = true +params[:comp_centerline] = true +params[:trust_SCT] = false +params[:use_centerline] = true +params[:corr_type] = "FFT_unwrap" +params[:FFT_interval] = 35 # millimeters +params[:root_path] = "/Users/me/my_data/" + +params[:lable] = params[:corr_type] * "_rep_" * string(params[:rep]) +params[:path_imgData] = params[:root_path] * params[:subject] * "/h5/gre2D.h5" +params[:path_refData] = params[:root_path] * params[:subject] * "/h5/gre2D_Ref.h5" +params[:path_niftiMap] = params[:root_path] * params[:subject] * "/Nifti/gre2D_Ref.nii" +params[:path_centerline] = params[:root_path] * params[:subject] * "/Nifti/" +params[:path_physio] = params[:root_path] * params[:subject] * "/Physiological_trace/belt_reco_rep" +params[:path_sensit] = params[:root_path] * params[:subject] * "/Results/senseMap_GRE.jld2" +params[:path_noise] = params[:root_path] * params[:subject] * "/Results/noisemat.jld2" +params[:path_results] = params[:root_path] * params[:subject] * "/Results/" +params[:file_name] = "gre2D" +``` ## User examples -* Compact -* Semi-Compact -* Complete +Three user examples are available in the folder [user examples](https://github.com/NordicMRspine/UserExample_MRINavigator): +* __Compact__: runs all the selected pipeline automatically but it is not customizable and harder to debug. +* __Semi-Compact__: allows for some level of customization and it is easier to debug. +* __Complete__: requires more knowledge of the data structures but it is flexible and adaptable. ## Disclaimer -MRINavigator and the functions to ajdust the data after loading the were developed using Siemens data [bla bla] \ No newline at end of file +Siemens data only were used to develop MRINavigator. All the functions to adjust the data before running the pipeline (e.g., the function to extract the navigator profiles or to remove the reference profiles) have been tested on Siemens data only. There is no guarantee that all of these functions are needed and will work on other vendors data. Other vendors users should convert the raw data in [ISMRMRD](https://ismrmrd.readthedocs.io/en/latest/index.html) format and when loading these into the Julia framework they should make sure that all the needed information is present. Please start from the [complete user example](https://github.com/NordicMRspine/UserExample_MRINavigator) if doing this. The functions to compute and apply the corrections should then work correctly. \ No newline at end of file diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index b74abce..7375fb0 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -1,14 +1,14 @@ # Navigator-based correction pipelines -Standard navigator processing that have been developed for brain imaging are not sufficiently robust in the spinal cord because: +Standard navigator processing that has been developed for brain imaging is not sufficiently robust in the spinal cord because: * There is higher in-plane variability in the field distribution -* The signal to noise ratio (SNR) is lower -* There is larger variation in signal contribution from different receiver coils +* The signal-to-noise ratio (SNR) is lower +* There are larger variations in signal contribution from different receiver coils To face these challenges we introduced: * __SNR weighted averaging__ of the navigator profile * __mean phase removal__ to recenter the phase distribution and reduce wrapping -* __A fast Fourier transform (FFT) and spatial region selection step__. This consists of applying a one dimensional Fourier transform to each navigator profile and considering for the phase estimate only the data points in certain spatial interval centered on the spinal cord. +* __A fast Fourier transform (FFT) and spatial region selection step__. This consists of applying a one-dimensional Fourier transform to each navigator profile and considering for the phase estimate only the data points in a certain spatial interval centered on the spinal cord. * __Phase unwrapping__ function for the navigator estimates using the respiratory trace recording. These features are combined in multiple pipelines as shown in the figure. @@ -19,14 +19,14 @@ The available pipelines are: * __FFT_nav__ that compared to k-nav includes an additional FFT snd spatial region selection step. * __unwrap__ includes the phase unwrapping algorithm and makes use of the respiratory belt recordings. -MRINavigator is designed to be flexible and multiple analysis parameters are tunable. It is possible to select the correction pipeline and paramenter using the params dictionary. -For more informations check the [Get started](@ref) or [API](@ref) pages. Alternatively start `julia` from the command line, type `?` to enter the help REPL mode. Then enter +MRINavigator is designed to be flexible and multiple analysis parameters are tunable. It is possible to select the correction pipeline and parameters using the params dictionary. +For more information check the [Get started](@ref) or [API](@ref) pages. Alternatively start `julia` from the command line, and type `?` to enter the help REPL mode. Then enter ```julia help?> defaultNavParams ``` -Here are listed the main features and parametes the user can slect and modify: -* The Spinal cord toolbpx ([SCT](https://spinalcordtoolbox.com)) can be used to locate the spinal cord centerline position (`params[:comp_centerline] = true`). To do this the reference data, which are fully sampled, are reconstructed combining the coils, and saved in [NIfTI](https://brainder.org/2012/09/23/the-nifti-file-format/) format (`params[:reconstruct_map] = true`). The user can also manually locate the centerline if the automatic algorithm fails, selecting `params[:trust_SCT] = false`. Alternatively the center of the image will be used (`params[:use_centerline] = false`). +Here are listed the main features and parameters the user can select and modify: +* The Spinal cord toolbox ([SCT](https://spinalcordtoolbox.com)) can be used to locate the spinal cord centerline position (`params[:comp_centerline] = true`). To do this the reference data, which are fully sampled, are reconstructed combining the coils, and saved in [NIfTI](https://brainder.org/2012/09/23/the-nifti-file-format/) format (`params[:reconstruct_map] = true`). The user can also manually locate the centerline if the automatic algorithm fails, selecting `params[:trust_SCT] = false`. Alternatively, the center of the image will be used (`params[:use_centerline] = false`). * The interval width for the region selection after the FFT step can be selected (`params[:FFT_interval] = type number in millimeters`). * The unwrap function can be applied added both to the __FFT__ and the __k nav__ pipelines. To do this type `params[:corr_type] = "FFT_unwrap"` or `params[:corr_type] = "knav_unwrap"`. \ No newline at end of file diff --git a/docs/src/index.md b/docs/src/index.md index 96f78a5..56d459d 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -14,10 +14,10 @@ Depth = 2 ``` ## Introduction -MRINavigator provides multiple navigator-based correction pipelines for Magnetic Resonance (MR) images. These aim at demodulating time-dependent field variations present in multi echo-gradient echo acquisitions. The package was developed with a focus on spinal cord imaging, however it can be used for multiple imaging applications. The corrections are to be applied on the raw data before the image reconstruction. [MRIReco.jl](https://github.com/MagneticResonanceImaging/MRIReco.jl) can be used to reconstruct the images. +MRINavigator provides multiple navigator-based correction pipelines for Magnetic Resonance (MR) images. These aim at demodulating time-dependent field variations present in multi echo-gradient echo acquisitions. The package was developed with a focus on spinal cord imaging, but it can be used for multiple imaging applications. The corrections are to be applied to the raw data before the image reconstruction. [MRIReco.jl](https://github.com/MagneticResonanceImaging/MRIReco.jl) can be used to reconstruct the images. !!! note - MRINavigator.jl is newly published and any feedback is welcome. Please report any bugs or features under issues in the GitHub folder. + MRINavigator.jl is newly published, and any feedback is welcome. Please report any bugs or features under issues in the GitHub folder. ## Installation Start `julia` and open the package manager REPL mode by entering `]`. Then enter @@ -35,8 +35,8 @@ More information on how to develop a package can be found in the Julia documenta To use some package functionalities external softwares are necessary. These include * [Spinal Cord Toolbox (SCT)](https://spinalcordtoolbox.com) * [FSLeyes](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSLeyes) -Using these should improve the correction outcome of the pipelines including a fourier transform (FFT) step. This is only relevant for spinal cord acquisitions. -For additinal information read the [Get started](@ref) and [Navigator-based correction pipelines](@ref) sections. +Using these should improve the correction outcome of the pipelines including a Fourier transform (FFT) step. This is only relevant for spinal cord acquisitions. +For additional information read the [Get started](@ref) and [Navigator-based correction pipelines](@ref) sections. ## Testing MRINavigator To make sure that the package is correctly installed and works, start `julia` from the command line, type `]` to enter the package manager REPL mode. Then enter @@ -50,11 +50,10 @@ To update MRINavigator to the latest version, start `julia` from the command lin pkg> update MRINavigator ``` ## Navigator-based correction -Multi-echo gradient-echo (GRE) sequence are commonly acquired both in research labs and clinical practice. However, one of their main limitations is the sensitivity to field instabilities both in space and time. Indeed, for the signal spatial encoding to be effective a background homogeneous field in time and space is required. Time-varying background fields can lead to phase modulation between k-space lines, and therefore TE-dependent ghosting artefacts. [Navigator](https://www.sciencedirect.com/science/article/pii/S1053811910003356?via%3Dihub) readouts in the k-space center can be used to measure the intensity of the filed fluctuations allowing to demodulate the acquired signal before the image reconstruction. The standard navigaotr-based correction was developed for brain imaging and it is not robus when applied in other areas e.g. the spinal cord. When failing the correction can even exhacerbate the artifacts. This package provides optimised post-processing pipelines to correct for dynamic field instabilities in GRE sequences. For additinal information read the [Navigator-based correction pipelines](@ref) section. +Multi-echo gradient-echo (GRE) sequences are commonly acquired both in research labs and clinical practice. However, one of their main limitations is the sensitivity to field instabilities both in space and time. Indeed, for the signal spatial encoding to be effective a background homogeneous field in time and space is required. Time-varying background fields can lead to phase modulation between k-space lines, and therefore TE-dependent ghosting artefacts. [Navigator](https://www.sciencedirect.com/science/article/pii/S1053811910003356?via%3Dihub) readouts in the k-space center can be used to measure the intensity of the filed fluctuations allowing to demodulate the acquired signal before the image reconstruction. The standard navigator-based correction was developed for brain imaging and it is not robust when applied in other areas e.g. the spinal cord. When failing the correction can even exhacerbate the artifacts. This package provides optimised post-processing pipelines to correct for dynamic field instabilities in GRE sequences. For additional information read the [Navigator-based correction pipelines](@ref) section. ## Plotting -`MRINavigator` is not depending on a particular plotting package since there -are various plotting packages available in Julia. +`MRINavigator` is not depending on a particular plotting package since there are various plotting packages available in Julia. ## Acknowledgements This package uses the reconstruction functions and data structures available in [MRIReco.jl](https://github.com/MagneticResonanceImaging/MRIReco.jl). diff --git a/src/NavParameters.jl b/src/NavParameters.jl index c5ce4c5..5a7f185 100644 --- a/src/NavParameters.jl +++ b/src/NavParameters.jl @@ -27,7 +27,7 @@ Define default parameters for data loading, navigator correction and image recon * `path_niftiMap::String` - path to the file where the reconstructed reference data will be saved in nifti format. The file extension must be .nii * `path_centerline::String` - path to the folder where the Spinal Cord Toolbox (SCT) centerline results will be saved * `path_physio::String` - path to the physiological trace recording in .mat format. The variable should be a two columns vector (1:time [ms], 2:trace). - The time should be expressed in seconds from the beginning of the day and contains time points befroe and after the image acquisiton (at least 2 s). + The time should be expressed in seconds from the beginning of the day and contain time points before and after the image acquisiton (at least 4 s). ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 SCT reference: https://spinalcordtoolbox.com From c64fc4e2dc1d54a4251bfcbb6f799524173e1db0 Mon Sep 17 00:00:00 2001 From: Alexander Jaffray Date: Wed, 30 Aug 2023 10:32:15 -0700 Subject: [PATCH 90/92] Fix typos --- docs/src/API.md | 3 ++- docs/src/GettingStarted.md | 2 +- docs/src/Pipelines.md | 2 +- src/AdjustData.jl | 10 +++++----- src/CoilSensMap.jl | 18 +++++++++--------- src/NavData.jl | 2 +- src/NavParameters.jl | 2 +- src/Navigator.jl | 8 ++++---- src/Reconstruction.jl | 6 +++--- src/SpineCenterline.jl | 2 +- src/Unwrap.jl | 30 +++++++++++++++--------------- src/main.jl | 6 +++--- 12 files changed, 46 insertions(+), 45 deletions(-) diff --git a/docs/src/API.md b/docs/src/API.md index 5ecbe91..70558a4 100644 --- a/docs/src/API.md +++ b/docs/src/API.md @@ -1,6 +1,7 @@ # API -This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown. +This page contains documentation of the public API of MRINavigator. In the Julia REPL one can access this documentation by entering the help mode with ? and then writing the function for which the documentation should be shown. +For example: `? findCenterline` # Run compact pipeline ```@docs diff --git a/docs/src/GettingStarted.md b/docs/src/GettingStarted.md index 7312bf3..52ab2b0 100644 --- a/docs/src/GettingStarted.md +++ b/docs/src/GettingStarted.md @@ -1 +1 @@ -# Eplain here how to get started \ No newline at end of file +# Explain here how to get started \ No newline at end of file diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index 2c51f94..4bf9332 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -1 +1 @@ -# Explain here the pipleines \ No newline at end of file +# Explain here the pipelines \ No newline at end of file diff --git a/src/AdjustData.jl b/src/AdjustData.jl index 6f7f829..8b43d1d 100644 --- a/src/AdjustData.jl +++ b/src/AdjustData.jl @@ -36,7 +36,7 @@ end flags = ExtractFlags(rawData::RawAcquisitionData) Extract the acquisition flags from the MRIReco.jl raw data profiles. -Return a 31 elements vector for each profile. +Return a 31-element vector for each profile. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 @@ -62,7 +62,7 @@ end Extract and return the noise acquisition from the MRIReco.jl raw data. The noise acquisition is usually the first profile with slice = 0, contrast = 0, repetition = 0. -The noise profile should have the 19th flag element qual to 1. Check with ExtractFlags if errors occur. +The noise profile should have the 19th flag element equal to 1. Check this with ExtractFlags if errors occur. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 @@ -133,7 +133,7 @@ end Remove reference data that are not useful for the navigator-based correction from acquisitions with phase stabilization on Siemens scanners. Make sure that this is needed on your data checking the time stamps with mapVBVD in Matlab. -Not solid to recalls. +Not robust to repeated calls, modifies rawData. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 mapVBVD reference: https://github.com/CIC-methods/FID-A/blob/master/inputOutput/mapVBVD/README.md @@ -177,7 +177,7 @@ end AdjustSubsampleIndices!(acqData::AcquisitionData) Add subsamples indices in the MRIReco.jl acquisition data structure. -Needed when conveting data not acquired in the first repetition. +Needed when converting data not acquired in the first repetition. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 @@ -202,7 +202,7 @@ end Extract the navigator profiles from the MRIReco.jl raw data structure. These are registered with the same indices (contract, slice, encoding step) as the image data for the first echo time. -Return a navigator array and a navigator time array. The navigator array has four dimensions in order: k-space samples, coils, k-space lines, slices. +Return a navigator array and a navigator time array. The navigator array has four dimensions in the following order: k-space samples, coils, k-space lines, slices. Effective only if the navigator profile was acquired after the first image profile. MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 diff --git a/src/CoilSensMap.jl b/src/CoilSensMap.jl index b837948..9d7cee4 100644 --- a/src/CoilSensMap.jl +++ b/src/CoilSensMap.jl @@ -10,7 +10,7 @@ MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 # Arguments * `acqData::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl -* `tresh::Float64` - masking treshold: increase for reduced mask size, decrease for extended mask size +* `tresh::Float64` - masking threshold: increase for reduced mask size, decrease for extended mask size """ function CompSensit(acq::AcquisitionData, thresh = 0.13) @@ -45,7 +45,7 @@ Return a rough mask for multiple slices that may not be homogeneous. # Arguments * `acqData::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl * `slices::Int64` - number of slices in acquisition data -* `tresh::Float64` - masking treshold: increase for reduced mask size, decrease for extended mask size +* `tresh::Float64` - masking threshold: increase for reduced mask size, decrease for extended mask size MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ @@ -68,14 +68,14 @@ end """ findConnectedComponent!(mask_slice::Array{T,2}) -Return the biggest connected component for a mask slice. +Return the largest connected component for a mask slice. # Arguments * `mask_slice::Array{T,2}` - mask for one slice with the same resolution as the reference data """ function findConnectedComponent!(mask_slice::Array{T,2}) where {T} - # Find and keep only the biggest connected componet in the image + # Find and keep only the largest connected component in the image components = label_components(mask_slice) measured_area = component_lengths(components) measured_area = measured_area[2:end] #remove background component @@ -88,8 +88,8 @@ end """ removeBehindBack!(mask_slice::Array{T,2}) -Removes the voxels behind the subject's back, asuming that this is in the left half side of the image. -To do this: compute the points density in the phase encoding direction, compute the density derivative and find the maximum in the left half of the image. +Removes the voxels behind the subject's back, assuming that this is in the left half side of the image. +To do this: compute the points density in the phase encoding direction, compute the density derivative and find the maximum in the left half of the image. Add a 3 voxels safety margin. # Arguments @@ -128,8 +128,8 @@ Make the mask uniform for a single slice using a convex hull function. function homogeneousMask!(mask_slice::Array{T,2}) where{T} cartes_index_slice = CartesianIndices(mask_slice) - Bimask_slice = convert(BitMatrix, mask_slice) - hull = convexhull(Bimask_slice) + Bitmask_slice = convert(BitMatrix, mask_slice) + hull = convexhull(Bitmask_slice) push!(hull, hull[1]) @@ -159,7 +159,7 @@ function ResizeSensit!(sensit::Array{Complex{T},4}, acqMap::AcquisitionData, acq sizeSensit = size(sensit) if freq_enc_samples[1] != sizeSensit[1] && freq_enc_samples[2] != sizeSensit[2] - @warn "The coils sensitivity maps have already been resized, the function cannot be executed." + @warn "The coil sensitivity maps have already been resized, the function cannot be executed." elseif freq_enc_FoV[1] < freq_enc_FoV[2] || phase_enc_FoV[1] < phase_enc_FoV[2] @error "The reference data field of view is smaller than the image data field of view." diff --git a/src/NavData.jl b/src/NavData.jl index 39de468..d554487 100644 --- a/src/NavData.jl +++ b/src/NavData.jl @@ -28,7 +28,7 @@ end trace::Union{Matrix{Float64}, Nothing} = nothing, centerline::Union{Vector{Float64}, Nothing} = nothing) -Construct the additional data structure that is needed as imput to navCorr! +Construct the additional data structure that is needed as input to navCorr! # Arguments * `noisemat::Array{Complex{Float32}, 2}` - noise data obtained with ExtractNoiseData! diff --git a/src/NavParameters.jl b/src/NavParameters.jl index 02fbfc9..bdb6226 100644 --- a/src/NavParameters.jl +++ b/src/NavParameters.jl @@ -26,7 +26,7 @@ Define default parameters for data loading, navigator correction and image recon # Additional optional parameters are * `path_niftiMap::String` - path to the file where the reconstructed reference data will be saved in nifti format. The file extension must be .nii * `path_centerline::String` - path to the folder where the Spinal Cord Toolbox (SCT) centerline results will be saved -* `path_physio::String` - path to the physiological trace recording in .mat format. The variable should be a two columns vector (1:time [ms], 2:trace). +* `path_physio::String` - path to the physiological trace recording in .mat format. The variable should be a two columns vector (1:time [ms], 2:trace). The time should be expressed in seconds from the beginning of the day and contains time points befroe and after the image acquisiton (at least 2 s). ISMRMRD reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.26089 diff --git a/src/Navigator.jl b/src/Navigator.jl index 1d9c865..2a33cf0 100644 --- a/src/Navigator.jl +++ b/src/Navigator.jl @@ -5,7 +5,7 @@ export NavCorr!, comp_centerline_pos, wrap_corr!, TE_corr!, apply_corr! Compute the navigator-based correction and apply it to the acquisition data. Multiple pipelines are available: "knav", "FFT" and "FFT_unwrap". Return navigator trace, spinal cord centerline in the reconstructed image coordinates, -Correlation between nagigator and belt data for each slice and position of wrapped points for each slices. +Correlation between navigator and belt data for each slice and position of wrapped points for each slices. Please choose the pipeline using the corr_type filed in the params dictionary. # Arguments @@ -19,12 +19,12 @@ MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ function NavCorr!(nav::Array{Complex{T}, 4}, acqData::AcquisitionData, params::Dict{Symbol, Any}, addData::additionalNavInput) where{T} - #navigator[k-space samples, coils, k-space lines, slices] + # navigator[k-space samples, coils, k-space lines, slices] # compute the navigator fourier transform in the readout direction, only for FFT case centerline = nothing if params[:corr_type] != "knav" nav = ifftshift(ifft(fftshift(nav, [1]), [1]), [1]) - #noisemat = fftshift(fft(ifftshift(noisemat, [1]), [1]), [1]) + # noisemat = fftshift(fft(ifftshift(noisemat, [1]), [1]), [1]) nav_center = div(addData.numsamples, 2) if params[:use_centerline] == true @@ -141,7 +141,7 @@ end nav = TE_corr!(nav::Array{T, 4}, acqd::AcquisitionData, dt_nav::Float64, TE_nav::Float64, numsamples::Int64, numechoes::Int64) where {T} Compute the phase value for the navigator correction basing on the exact acquisition time of each data sample in the line and for each echo. -Return a four dimensional navigator array. +Return a four-dimensional navigator array. # Arguments * `nav::Array{T, 4}` - phase estimates obtained from the navigator data diff --git a/src/Reconstruction.jl b/src/Reconstruction.jl index 7d77a3f..63676ce 100644 --- a/src/Reconstruction.jl +++ b/src/Reconstruction.jl @@ -7,8 +7,8 @@ Call MRIReco.jl reconstruction function and return reconstructed image. Only sin # Arguments * `acqData::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl -* `sensit::Array{Complex{T},4}` - coil sensitivity map matric computed with CompSensit(acq::AcquisitionData, thresh = 0.135) -* `noisemat::Union{Array{Complex{T}},Nothing} = nothing` - noise data extracted from the raw datat structure with ExtractNoiseData!(rawData::RawAcquisitionData) +* `sensit::Array{Complex{T},4}` - coil sensitivity map matrix computed with CompSensit(acq::AcquisitionData, thresh = 0.135) +* `noisemat::Union{Array{Complex{T}},Nothing} = nothing` - noise data extracted from the raw data structure with ExtractNoiseData!(rawData::RawAcquisitionData) MRIReco reference: https://onlinelibrary.wiley.com/doi/epdf/10.1002/mrm.28792 """ @@ -41,7 +41,7 @@ end """ img = directreco(acq::AcquisitionData) -Call MRIReco.jl reocnstruction function and return reconstructed image. Reconstruct coils separately. +Call MRIReco.jl recpnstruction function and return reconstructed image. Reconstruct coils separately. # Arguments * `acqData::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl diff --git a/src/SpineCenterline.jl b/src/SpineCenterline.jl index dc9c7e9..ad23c8b 100644 --- a/src/SpineCenterline.jl +++ b/src/SpineCenterline.jl @@ -4,7 +4,7 @@ export ReconstructSaveMap, ReconstructMap, niftiSaveImg, callSCT, findCenterline """ ReconstructSaveMap(path_nifti::String, path_ref::String) -Reconstruct the coil sensitivity map using the MRIReco.jl function and save it in nifti format without spatial informations. +Reconstruct the coil sensitivity map using the MRIReco.jl function and save it in nifti format without spatial information. # Arguments * `path_nifti::String` - path of the nifti file. The file must have .nii extension diff --git a/src/Unwrap.jl b/src/Unwrap.jl index a643bf7..19a7ac6 100644 --- a/src/Unwrap.jl +++ b/src/Unwrap.jl @@ -8,8 +8,8 @@ Return the position of the wrapped points and the correlation between each navig # Arguments * `nav::Array{Float64, 4}` - navigator phase estimates -* `nav_time::Array{Float64, 2}` - navigator data time stamps in ms from the beginning of the day, for each slice -* `trace::Array{Float64, 2}` - physiological trace recording. Two columns vector (1:time [ms], 2:trace). The first column contains the time stamps in ms from the beginning of the day. +* `nav_time::Array{Float64, 2}` - navigator data timestamps in ms from the beginning of the day, for each slice +* `trace::Array{Float64, 2}` - physiological trace recording. Two columns vector (1:time [ms], 2:trace). The first column contains the timestamps in ms from the beginning of the day. Include time points before and after the image acquisition (at least 2 s). * `slices::Int64` - number of slices """ @@ -81,7 +81,7 @@ function find_wrapped(nav::Array{Float64, 4}, nav_time::Array{Float64, 2}, trace end end - if mean(correlation) < 0.2 # consider the trace inaccurate + if mean(correlation) < 0.2 # check for inaccurate trace (arbitrary threshold, adjust if necessary) possible_wrap_slices .== false end @@ -112,7 +112,7 @@ end """ trace_data = smooth_lowpass(time::Array{Float64, 1}, trace_data::Array{Float64, 1}) -Smooth the physiological trace recording using a butterworth low-pass filter (cut-off frequency 0.7Hz, 3 poles) +Smooth the physiological trace recording using a Butterworth low-pass filter (cut-off frequency 0.7Hz, 3 poles) # Arguments * `time::Array{Float64, 1}` - time in ms from the beginning of the day for the belt recording @@ -130,10 +130,10 @@ end """ nav_norm = smooth_highpass(nav_time::Array{Float64, 2}, nav_norm::Array{Float64, 2}, slices:: Int64) -Remove the low frequencies components from the navigatior phase estimate using a butterworth high-pass filter (cut-off frequency 0.5Hz, 3 poles) +Remove the low frequencies components from the navigator phase estimate using a Butterworth high-pass filter (cut-off frequency 0.5Hz, 3 poles) # Arguments -* `nav_time::Array{Float64}` - navigator data time stamps in ms from the beginning of the day, for each slice +* `nav_time::Array{Float64}` - navigator data timestamps in ms from the beginning of the day, for each slice * `nav_norm::Array{Float64}` - navigator phase estimates * `slices::Int64` - number of slices """ @@ -161,7 +161,7 @@ end nav_time::Union{Matrix{Float64}, Vector{Float64}}, time::Union{Matrix{Float64}, Vector{Float64}}, slices = 0) -Interpolate the first input vector with time stamps specified in the second input to the time points specified in the third input. +Interpolate the first input vector with timestamps specified in the second input to the time points specified in the third input. Return the interpolartion result. # Arguments @@ -213,7 +213,7 @@ Return correlation = 0.1 if data is Nan. * `nav_int::Array{Float64, 2}` - navigator phase estimes * `trace_data::Array{Float64, 2}` - physiological trace recording from the respiratory belt * `slices::Int64` - number of slices -* `allData::Bool` - use all the time points if true. Use only the lower time points in the belt trace if false, hopefully escluding wrapped points in the navigator +* `allData::Bool` - use all the time points if true. Use only the lower time points in the belt trace if false, hopefully excluding wrapped points in the navigator """ function signalCorrelation(nav_int::Array{Float64, 2}, trace_data::Array{Float64, 2}, slices::Int64, allData = true) @@ -245,7 +245,7 @@ end """ invertNavSign!(nav::Union{Array{Float64, 2}, Array{Float64, 4}}, correlation::Union{Array{Float64, 1}, Matrix{Float64}}, slices::Int64) -Invert the navigator phase estimates sign if the correlation between the respiratory trace and the navigator esimates is negative. +Invert the navigator phase estimate sign if the correlation between the respiratory trace and the navigator estimate is negative. # Arguments * `nav::Array{Float64, 2}` - navigator phase estimes @@ -276,15 +276,15 @@ end """ trace_time = align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}) -Align the signal in the first imput (time stamps in the second imput) to the signal in the third imput (time stamps in the fourth input). +Align the signal in the first imput (timestamps in the second imput) to the signal in the third imput (timestamps in the fourth input). Use the finddelay function from DSP.jl, find the peak of the signals cross-correlation. Return the new time vector for the signal in the third input. # Arguments * `nav_align::Array{Float64, 2}` - navigator phase estimes reshaped in one vector -* `nav_time_align::Array{Float64, 1}` - time stamps for the navigator phase estimates in ms from the beginning of the day +* `nav_time_align::Array{Float64, 1}` - timestamps for the navigator phase estimates in ms from the beginning of the day * `trace_data::Array{Float64, 1}` - respiratory belt recording in ms from the beginning of the day -* `time::Array{Float64, 1}` - time stamps for the respiratory belt recording in se +* `time::Array{Float64, 1}` - timestamps for the respiratory belt recording in se """ function align(nav_align::Array{Float64, 1}, nav_time_align::Array{Float64, 1}, trace_data::Array{Float64, 1}, time::Array{Float64, 1}) @@ -305,9 +305,9 @@ end """ correlation = find_field_changes(correlation::Union{Array{Float64, 1}, Matrix{Float64}}) -Inhale air can lead to both positive and negative field variations depensing by the vertebral level. +Inhaled air can lead to both positive and negative field variations depending on the vertebral level. There are two regions where the field variations change sign, at the lungs extremities. -It is reasonable to assume that MRI using a commercial spinal coil can not allow to record both these regions in the same acquisition. +It is reasonable to assume that MRI using a commercial spinal coil cannot allow to record both these regions in the same acquisition. Therefore, only one field change in the correlation sign across slices should be allowed. This function works only if the number of slices is bigger than 5. @@ -427,7 +427,7 @@ Find wrapped points comparing the breathing related oscillations measured with t Return a binary array, with the same size as nav_norm and 1 if the point is idenfied as wrapped. # Arguments -* `nav_norm::Array{Float64, 2}` - navigator phase estimes +* `nav_norm::Array{Float64, 2}` - navigator phase estimates * `trace_data_int::Array{Float64, 2}` - trace data smoothed, and interpolated to the navigator time points for each slice * `slices::Int64` - number of slices """ diff --git a/src/main.jl b/src/main.jl index 3b9322c..11922b5 100644 --- a/src/main.jl +++ b/src/main.jl @@ -3,7 +3,7 @@ export runNavPipeline, saveNoise, loadRawData, convertRawToAcq """ runNavPipeline(params::Dict{Symbol, Any}) -Run the navigator pipeline. Return reconstructed image and navigaotr correction output (check NavCorr!). +Run the navigator pipeline. Return reconstructed image and navigator correction output (check NavCorr!). # Arguments * `params::Dict{Symbol, Any}` - MRINavigator parameter structure, check defaultNavParams() for info @@ -19,7 +19,7 @@ function runNavPipeline(params::Dict{Symbol, Any}) noisemat = FileIO.load(params[:path_noise], "noisemat") @info "Extract navigator data. The time stamps are accurate only for Siemens data." - @info "The navigaotr extraction is effective only if the navigator profile was acquired after the first image profile." + @info "The navigator extraction is effective only if the navigator profile was acquired after the first image profile." (nav, nav_time) = ExtractNavigator(rawData) nav_time = nav_time .* 2.5 # seconds from beginning of the day (Siemens data only) @@ -134,7 +134,7 @@ function loadRawData(params::Dict{Symbol, Any}) rawData = @set rawData.profiles[ii].head.idx.repetition = 0 end else - ExtractNoiseData!(rawData) # remove the noise acquisition only necessary for the first rep + ExtractNoiseData!(rawData) # removing the noise acquisition is only necessary for the first rep end OrderSlices!(rawData) ReverseBipolar!(rawData) From 2a8ee1c011e407f2d794420d9a7cd21eb21727be Mon Sep 17 00:00:00 2001 From: Alexander Jaffray Date: Wed, 30 Aug 2023 10:35:27 -0700 Subject: [PATCH 91/92] missed a typo, fixed --- src/Reconstruction.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Reconstruction.jl b/src/Reconstruction.jl index 63676ce..b10209b 100644 --- a/src/Reconstruction.jl +++ b/src/Reconstruction.jl @@ -41,7 +41,7 @@ end """ img = directreco(acq::AcquisitionData) -Call MRIReco.jl recpnstruction function and return reconstructed image. Reconstruct coils separately. +Call MRIReco.jl reconstruction function and return reconstructed image. Reconstruct coils separately. # Arguments * `acqData::RawAcquisitionData` - acquisition data structure obtained converting raw data with MRIReco.jl From 6b36f3158ae7eb6f876e9358fb93bb140282f2b2 Mon Sep 17 00:00:00 2001 From: Alexander Jaffray Date: Thu, 31 Aug 2023 09:35:07 -0700 Subject: [PATCH 92/92] updated wording and fix typos --- docs/src/GettingStarted.md | 16 ++++++++-------- docs/src/Pipelines.md | 22 +++++++++++----------- docs/src/index.md | 25 +++++++++++++------------ 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/docs/src/GettingStarted.md b/docs/src/GettingStarted.md index 7f75108..f857140 100644 --- a/docs/src/GettingStarted.md +++ b/docs/src/GettingStarted.md @@ -3,14 +3,14 @@ There are available [user examples](https://github.com/NordicMRspine/UserExample_MRINavigator) to get started. The user needs to provide their own data to run the pipelines, as there are currently no example data available. ## Data acquisition -The user should have the raw data of a gradient echo acquisition. The pipelines can be run on both multi-echo and single-echo data. Other than the main acquisition, which is usually undersampled, a lower resolution, fully sampled scan is also necessary to compute the [coils sensitivity maps](https://doi.org/10.1002/mrm.1241) and reconstruct the images. This low-resolution scan is also called a reference scan and should include only one echo. The main gradient echo acquisition must include a navigator readout through the center of k-space at __the end__ of every TR. During the acquisition, it is advisable to collect the signal from a respiratory belt. This can be used to unwrap the navigator's phase estimates if phase wrapping is present. +The user should have the raw data of a gradient echo acquisition in an MRD format. The pipelines can be run on both multi-echo and single-echo data. Other than the main acquisition, which is usually undersampled, a lower resolution, fully sampled scan is also necessary to compute the [coils sensitivity maps](https://doi.org/10.1002/mrm.1241) and reconstruct the images. This low-resolution scan is also called a reference scan and should include only one echo. The main gradient echo acquisition must include a navigator readout through the center of k-space at __the end__ of each TR. During the acquisition, it is advisable to collect the signal from a respiratory belt as a reference. This can be used to unwrap the navigator's phase estimates if phase wrapping is present. ## Data reshaping -All the data should be exported from the scanner in raw format. Then they should be converted to [ISMRMRD](https://ismrmrd.readthedocs.io/en/latest/index.html) format. Siemens TWIX data can be converted to ISMRMRD using [siemens_to_ismrmrd](https://github.com/ismrmrd/siemens_to_ismrmrd). After the conversion, the data can be loaded into the Julia framework. -The repiratory belt recording must be synchronised with the time stamps in the image acquisition. Then they must be saved in a two-column vector (1:time [ms], 2:trace) in .mat format. Each repetition should be in a different file. The time should be expressed in seconds from the beginning of the day and contain time points before and after the image acquisition (at least 4 s). +All the data should be exported from the scanner in raw format. Then they should be converted to [ISMRMRD](https://ismrmrd.readthedocs.io/en/latest/index.html) format. Siemens TWIX data can be converted to ISMRMRD using [siemens_to_ismrmrd](https://github.com/ismrmrd/siemens_to_ismrmrd). After the conversion, the data can be loaded into the Julia framework. Conversion of data from other vendors has not been explicitly tested by the authors. +The repiratory belt recording must be synchronised with the time stamps in the image acquisition (i.e resampled). Then they must be saved in a two-column vector (1:time [ms], 2:trace) in .mat format. Each repetition should be in a different file. The time should be expressed in seconds from the beginning of the day and contain time points before and after the image acquisition (at least 4 s). ## The parameters dictionary -Before calling the package function the correction pipeline should be chosen and the parameters should be set. Also the data paths and results paths need to be defined. For more details regarding the correction pipelines and parameters read the [Navigator-based correction pipelines](@ref) page. +Before calling the package functions, the relevant correction pipeline should be chosen and the parameters dictionary should be filled. Also the data paths and results paths need to be defined. For more details regarding the correction pipelines and parameters read the [Navigator-based correction pipelines](@ref) page. All the information necessary to apply the corrections is defined in a [dictionary](https://docs.julialang.org/en/v1/base/collections/#Dictionaries). This includes all the file paths and analysis parameters. The user can also add items to the dictionary if needed. Here is an example of a `params` dictionary: @@ -25,10 +25,10 @@ params[:comp_centerline] = true params[:trust_SCT] = false params[:use_centerline] = true params[:corr_type] = "FFT_unwrap" -params[:FFT_interval] = 35 # millimeters +params[:FFT_interval] = 35 # millimetres params[:root_path] = "/Users/me/my_data/" -params[:lable] = params[:corr_type] * "_rep_" * string(params[:rep]) +params[:label] = params[:corr_type] * "_rep_" * string(params[:rep]) params[:path_imgData] = params[:root_path] * params[:subject] * "/h5/gre2D.h5" params[:path_refData] = params[:root_path] * params[:subject] * "/h5/gre2D_Ref.h5" params[:path_niftiMap] = params[:root_path] * params[:subject] * "/Nifti/gre2D_Ref.nii" @@ -42,8 +42,8 @@ params[:file_name] = "gre2D" ## User examples Three user examples are available in the folder [user examples](https://github.com/NordicMRspine/UserExample_MRINavigator): -* __Compact__: runs all the selected pipeline automatically but it is not customizable and harder to debug. -* __Semi-Compact__: allows for some level of customization and it is easier to debug. +* __Compact__: runs all the selected pipeline automatically but it is not customizable and not amenable to debugging. +* __Semi-Compact__: allows for some level of customization and it is easy to debug. * __Complete__: requires more knowledge of the data structures but it is flexible and adaptable. ## Disclaimer diff --git a/docs/src/Pipelines.md b/docs/src/Pipelines.md index 8e82cb2..2c7cb89 100644 --- a/docs/src/Pipelines.md +++ b/docs/src/Pipelines.md @@ -1,11 +1,11 @@ # Navigator-based correction pipelines -Standard navigator processing that has been developed for brain imaging is not sufficiently robust in the spinal cord because: -* There is higher in-plane variability in the field distribution -* The signal-to-noise ratio (SNR) is lower -* There are larger variations in signal contribution from different receiver coils +Standard navigator processing that has been developed for brain imaging is not sufficiently robust in the spinal cord due to the following: +* Higher in-plane variability in the field distribution +* Signal-to-noise ratio (SNR) is lower +* Larger variations in signal contribution from different receiver coils compared to most anatomical regions -To face these challenges we introduced: +To face these challenges, we developed: * __SNR weighted averaging__ of the navigator profile * __mean phase removal__ to recenter the phase distribution and reduce wrapping * __A fast Fourier transform (FFT) and spatial region selection step__. This consists of applying a one-dimensional Fourier transform to each navigator profile and considering for the phase estimate only the data points in a certain spatial interval centered on the spinal cord. @@ -16,17 +16,17 @@ These features are combined in multiple pipelines as shown in the figure. The available pipelines are: * __k_nav__ is the k-space navigator processing commonly used for brain imaging, optimized with SNR weighted averaging and mean phase removal. -* __FFT_nav__ that compared to k-nav includes an additional FFT snd spatial region selection step. +* __FFT_nav__ that includes an additional FFT and spatial region selection step compared to k_nav. * __unwrap__ includes the phase unwrapping algorithm and makes use of the respiratory belt recordings. -MRINavigator is designed to be flexible and multiple analysis parameters are tunable. It is possible to select the correction pipeline and parameters using the params dictionary. +MRINavigator is designed to be flexible and multiple analysis parameters are tuneable. It is possible to select the correction pipeline and parameters using the params dictionary. For more information check the [Get started](@ref) or [API](@ref) pages. Alternatively start `julia` from the command line, and type `?` to enter the help REPL mode. Then enter -```julia +``` help?> defaultNavParams ``` -Here are listed the main features and parameters the user can select and modify: +Listed below are the main features and parameters the user can select and modify: * The Spinal cord toolbox ([SCT](https://spinalcordtoolbox.com)) can be used to locate the spinal cord centerline position (`params[:comp_centerline] = true`). To do this the reference data, which are fully sampled, are reconstructed combining the coils, and saved in [NIfTI](https://brainder.org/2012/09/23/the-nifti-file-format/) format (`params[:reconstruct_map] = true`). The user can also manually locate the centerline if the automatic algorithm fails, selecting `params[:trust_SCT] = false`. Alternatively, the center of the image will be used (`params[:use_centerline] = false`). -* The interval width for the region selection after the FFT step can be selected (`params[:FFT_interval] = type number in millimeters`). -* The unwrap function can be applied added both to the __FFT__ and the __k nav__ pipelines. To do this type `params[:corr_type] = "FFT_unwrap"` or `params[:corr_type] = "knav_unwrap"`. +* The interval width for the region selection after the FFT step can be adjusted (`params[:FFT_interval] = type number in millimeters`). +* The unwrap function can be applied both to the __FFT__ and the __k nav__ pipelines. To do this type `params[:corr_type] = "FFT_unwrap"` or `params[:corr_type] = "knav_unwrap"`. \ No newline at end of file diff --git a/docs/src/index.md b/docs/src/index.md index 56d459d..d1f3e43 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -17,47 +17,48 @@ Depth = 2 MRINavigator provides multiple navigator-based correction pipelines for Magnetic Resonance (MR) images. These aim at demodulating time-dependent field variations present in multi echo-gradient echo acquisitions. The package was developed with a focus on spinal cord imaging, but it can be used for multiple imaging applications. The corrections are to be applied to the raw data before the image reconstruction. [MRIReco.jl](https://github.com/MagneticResonanceImaging/MRIReco.jl) can be used to reconstruct the images. !!! note - MRINavigator.jl is newly published, and any feedback is welcome. Please report any bugs or features under issues in the GitHub folder. + MRINavigator.jl is newly published, and any feedback is welcome. Please report any bugs or feature requests as an Issue in Github. ## Installation Start `julia` and open the package manager REPL mode by entering `]`. Then enter -```julia +``` pkg> add MRINavigator ``` This will install `MRINavigator` and all its dependencies. If you want to develop -`MRINavigator` itself you can checkout `MRINavigator` by calling -```julia +`MRINavigator` itself you can checkout `MRINavigator` locally as usual by calling +``` pkg> dev MRINavigator ``` More information on how to develop a package can be found in the Julia documentation. ### Requirements -To use some package functionalities external softwares are necessary. These include +To use some package functionalities, external softwares are necessary. +These include: * [Spinal Cord Toolbox (SCT)](https://spinalcordtoolbox.com) * [FSLeyes](https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FSLeyes) -Using these should improve the correction outcome of the pipelines including a Fourier transform (FFT) step. This is only relevant for spinal cord acquisitions. +Using these toolboxes should improve the correction outcome of the pipelines including a Fourier transform (FFT) step. Use of SCT and FSLEyes is only relevant for spinal cord acquisitions. For additional information read the [Get started](@ref) and [Navigator-based correction pipelines](@ref) sections. ## Testing MRINavigator -To make sure that the package is correctly installed and works, start `julia` from the command line, type `]` to enter the package manager REPL mode. Then enter -```julia +To make sure that the package is correctly installed, start `julia` from the command line, type `]` to enter the package manager REPL mode. Then enter +``` pkg> test MRINavigator ``` ## Updating MRINavigator To update MRINavigator to the latest version, start `julia` from the command line, type `]` to enter the package manager REPL mode. Then enter -```julia +``` pkg> update MRINavigator ``` + ## Navigator-based correction -Multi-echo gradient-echo (GRE) sequences are commonly acquired both in research labs and clinical practice. However, one of their main limitations is the sensitivity to field instabilities both in space and time. Indeed, for the signal spatial encoding to be effective a background homogeneous field in time and space is required. Time-varying background fields can lead to phase modulation between k-space lines, and therefore TE-dependent ghosting artefacts. [Navigator](https://www.sciencedirect.com/science/article/pii/S1053811910003356?via%3Dihub) readouts in the k-space center can be used to measure the intensity of the filed fluctuations allowing to demodulate the acquired signal before the image reconstruction. The standard navigator-based correction was developed for brain imaging and it is not robust when applied in other areas e.g. the spinal cord. When failing the correction can even exhacerbate the artifacts. This package provides optimised post-processing pipelines to correct for dynamic field instabilities in GRE sequences. For additional information read the [Navigator-based correction pipelines](@ref) section. +Multi-echo gradient-echo (GRE) sequences are commonly acquired both in research and clinical practice. However, one of their main limitations is the sensitivity to field instabilities both in space and time. Indeed, for the signal spatial encoding to be effective, a background homogeneous field in time and space is required. Time-varying background fields can lead to phase modulation between k-space lines, and therefore TE-dependent ghosting artefacts. [Navigator](https://www.sciencedirect.com/science/article/pii/S1053811910003356?via%3Dihub) readouts in the k-space center can be used to measure the intensity of the field fluctuations,enabling correct demodulation of the acquired signal before image reconstruction. The standard navigator-based correction was developed for brain imaging and it is not robust when applied in other areas e.g. the spinal cord. When failing, the correction can even exacerbate the problem. This package provides optimized post-processing pipelines to correct for dynamic field instabilities in GRE sequences. For additional information read the [Navigator-based correction pipelines](@ref) section. ## Plotting -`MRINavigator` is not depending on a particular plotting package since there are various plotting packages available in Julia. +`MRINavigator` does not depend upon a particular plotting package since there are various plotting packages available in Julia. Feel free to use your package of choice. ## Acknowledgements This package uses the reconstruction functions and data structures available in [MRIReco.jl](https://github.com/MagneticResonanceImaging/MRIReco.jl). - T. Knopp and M. Grosser (2021). [MRIReco.jl: An MRI Reconstruction Framework written in Julia]( https://doi.org/10.1002/mrm.28792). Magnetic Resonance in Medicine. 2021. ## Citing this work

              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 z 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 T$A&82L4RZ=l_V;}4E_HHJ~IP{ literal 154768 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