From 3249c5d9ac3000a1a7b7daeaf05441e275e80d84 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" <documenter@juliadocs.github.io> Date: Fri, 23 Feb 2024 14:17:57 +0000 Subject: [PATCH] build based on 3dafa25 --- stable | 2 +- v0.16 | 2 +- v0.16.5/.documenter-siteinfo.json | 1 + v0.16.5/api/index.html | 172 ++++ v0.16.5/assets/documenter.js | 889 ++++++++++++++++++++ v0.16.5/assets/logo.svg | 202 +++++ v0.16.5/assets/themes/documenter-dark.css | 7 + v0.16.5/assets/themes/documenter-light.css | 9 + v0.16.5/assets/themeswap.js | 84 ++ v0.16.5/assets/warner.js | 52 ++ v0.16.5/examples/cherenkov.pdf | Bin 0 -> 28588 bytes v0.16.5/examples/cherenkov.svg | 200 +++++ v0.16.5/examples/cherenkov.tex | 82 ++ v0.16.5/examples/cherenkov_times/index.html | 43 + v0.16.5/examples/controlhost/index.html | 34 + v0.16.5/examples/foo.h5 | Bin 0 -> 20472 bytes v0.16.5/examples/hdf5/index.html | 65 ++ v0.16.5/examples/offline_data/index.html | 47 ++ v0.16.5/examples/simulation.h5 | Bin 0 -> 96 bytes v0.16.5/index.html | 11 + v0.16.5/manual/calibration/index.html | 2 + v0.16.5/manual/detector/index.html | 185 ++++ v0.16.5/manual/hdf5/index.html | 2 + v0.16.5/manual/rootfiles/index.html | 184 ++++ v0.16.5/manual/tools/index.html | 8 + v0.16.5/search_index.js | 3 + v0.16.5/siteinfo.js | 1 + versions.js | 2 +- 28 files changed, 2286 insertions(+), 3 deletions(-) create mode 100644 v0.16.5/.documenter-siteinfo.json create mode 100644 v0.16.5/api/index.html create mode 100644 v0.16.5/assets/documenter.js create mode 100644 v0.16.5/assets/logo.svg create mode 100644 v0.16.5/assets/themes/documenter-dark.css create mode 100644 v0.16.5/assets/themes/documenter-light.css create mode 100644 v0.16.5/assets/themeswap.js create mode 100644 v0.16.5/assets/warner.js create mode 100644 v0.16.5/examples/cherenkov.pdf create mode 100644 v0.16.5/examples/cherenkov.svg create mode 100644 v0.16.5/examples/cherenkov.tex create mode 100644 v0.16.5/examples/cherenkov_times/index.html create mode 100644 v0.16.5/examples/controlhost/index.html create mode 100644 v0.16.5/examples/foo.h5 create mode 100644 v0.16.5/examples/hdf5/index.html create mode 100644 v0.16.5/examples/offline_data/index.html create mode 100644 v0.16.5/examples/simulation.h5 create mode 100644 v0.16.5/index.html create mode 100644 v0.16.5/manual/calibration/index.html create mode 100644 v0.16.5/manual/detector/index.html create mode 100644 v0.16.5/manual/hdf5/index.html create mode 100644 v0.16.5/manual/rootfiles/index.html create mode 100644 v0.16.5/manual/tools/index.html create mode 100644 v0.16.5/search_index.js create mode 100644 v0.16.5/siteinfo.js diff --git a/stable b/stable index 0e9f8f83..b346bd2f 120000 --- a/stable +++ b/stable @@ -1 +1 @@ -v0.16.4 \ No newline at end of file +v0.16.5 \ No newline at end of file diff --git a/v0.16 b/v0.16 index 0e9f8f83..b346bd2f 120000 --- a/v0.16 +++ b/v0.16 @@ -1 +1 @@ -v0.16.4 \ No newline at end of file +v0.16.5 \ No newline at end of file diff --git a/v0.16.5/.documenter-siteinfo.json b/v0.16.5/.documenter-siteinfo.json new file mode 100644 index 00000000..251ebf8c --- /dev/null +++ b/v0.16.5/.documenter-siteinfo.json @@ -0,0 +1 @@ +{"documenter":{"julia_version":"1.9.1","generation_timestamp":"2024-02-23T14:17:53","documenter_version":"1.2.1"}} \ No newline at end of file diff --git a/v0.16.5/api/index.html b/v0.16.5/api/index.html new file mode 100644 index 00000000..b30f5ecc --- /dev/null +++ b/v0.16.5/api/index.html @@ -0,0 +1,172 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>API · KM3io.jl</title><meta name="title" content="API · KM3io.jl"/><meta property="og:title" content="API · KM3io.jl"/><meta property="twitter:title" content="API · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../search_index.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img src="../assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../manual/rootfiles/">ROOT Files</a></li><li><a class="tocitem" href="../manual/detector/">Detector and its Components</a></li><li><a class="tocitem" href="../manual/calibration/">Calibration</a></li><li><a class="tocitem" href="../manual/tools/">Tools</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../examples/offline_data/">Offline data</a></li><li><a class="tocitem" href="../examples/cherenkov_times/">Cherenkov times</a></li><li><a class="tocitem" href="../examples/controlhost/">Accessing Live Data</a></li><li><a class="tocitem" href="../examples/hdf5/">HDF5</a></li></ul></li><li class="is-active"><a class="tocitem" href>API</a><ul class="internal"><li><a class="tocitem" href="#Basic-Data-Structures"><span>Basic Data Structures</span></a></li><li><a class="tocitem" href="#Offline-Format"><span>Offline Format</span></a></li><li><a class="tocitem" href="#Online-Format"><span>Online Format</span></a></li><li><a class="tocitem" href="#HDF5"><span>HDF5</span></a></li><li><a class="tocitem" href="#Hardware"><span>Hardware</span></a></li><li><a class="tocitem" href="#Optical-Data"><span>Optical Data</span></a></li><li><a class="tocitem" href="#Acoustics"><span>Acoustics</span></a></li><li><a class="tocitem" href="#Calibration"><span>Calibration</span></a></li><li><a class="tocitem" href="#Physics"><span>Physics</span></a></li><li><a class="tocitem" href="#Trigger"><span>Trigger</span></a></li><li><a class="tocitem" href="#ControlHost"><span>ControlHost</span></a></li><li><a class="tocitem" href="#Tools"><span>Tools</span></a></li></ul></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>API</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>API</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/api.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="API"><a class="docs-heading-anchor" href="#API">API</a><a id="API-1"></a><a class="docs-heading-anchor-permalink" href="#API" title="Permalink"></a></h1><ul><li><a href="#KM3io.AcousticSignal"><code>KM3io.AcousticSignal</code></a></li><li><a href="#KM3io.AcousticsTriggerParameter"><code>KM3io.AcousticsTriggerParameter</code></a></li><li><a href="#KM3io.CHClient"><code>KM3io.CHClient</code></a></li><li><a href="#KM3io.CalibratedHit"><code>KM3io.CalibratedHit</code></a></li><li><a href="#KM3io.CalibratedMCHit"><code>KM3io.CalibratedMCHit</code></a></li><li><a href="#KM3io.CalibratedSnapshotHit"><code>KM3io.CalibratedSnapshotHit</code></a></li><li><a href="#KM3io.CalibratedTriggeredHit"><code>KM3io.CalibratedTriggeredHit</code></a></li><li><a href="#KM3io.CherenkovPhoton"><code>KM3io.CherenkovPhoton</code></a></li><li><a href="#KM3io.DAQEvent"><code>KM3io.DAQEvent</code></a></li><li><a href="#KM3io.Detector"><code>KM3io.Detector</code></a></li><li><a href="#KM3io.DetectorModule"><code>KM3io.DetectorModule</code></a></li><li><a href="#KM3io.Direction"><code>KM3io.Direction</code></a></li><li><a href="#KM3io.EventHeader"><code>KM3io.EventHeader</code></a></li><li><a href="#KM3io.Evt"><code>KM3io.Evt</code></a></li><li><a href="#KM3io.H5CompoundDataset"><code>KM3io.H5CompoundDataset</code></a></li><li><a href="#KM3io.H5File"><code>KM3io.H5File</code></a></li><li><a href="#KM3io.Hydrophone"><code>KM3io.Hydrophone</code></a></li><li><a href="#KM3io.K40Rates"><code>KM3io.K40Rates</code></a></li><li><a href="#KM3io.Location"><code>KM3io.Location</code></a></li><li><a href="#KM3io.MCTrk"><code>KM3io.MCTrk</code></a></li><li><a href="#KM3io.PMT"><code>KM3io.PMT</code></a></li><li><a href="#KM3io.Position"><code>KM3io.Position</code></a></li><li><a href="#KM3io.RecStageRange"><code>KM3io.RecStageRange</code></a></li><li><a href="#KM3io.SnapshotHit"><code>KM3io.SnapshotHit</code></a></li><li><a href="#KM3io.StringMechanics"><code>KM3io.StringMechanics</code></a></li><li><a href="#KM3io.StringMechanicsParameters"><code>KM3io.StringMechanicsParameters</code></a></li><li><a href="#KM3io.SummaryFrame"><code>KM3io.SummaryFrame</code></a></li><li><a href="#KM3io.Summaryslice"><code>KM3io.Summaryslice</code></a></li><li><a href="#KM3io.SummarysliceHeader"><code>KM3io.SummarysliceHeader</code></a></li><li><a href="#KM3io.TriggeredHit"><code>KM3io.TriggeredHit</code></a></li><li><a href="#KM3io.Tripod"><code>KM3io.Tripod</code></a></li><li><a href="#KM3io.Trk"><code>KM3io.Trk</code></a></li><li><a href="#KM3io.UTCExtended"><code>KM3io.UTCExtended</code></a></li><li><a href="#KM3io.UTCTime"><code>KM3io.UTCTime</code></a></li><li><a href="#KM3io.Waveform"><code>KM3io.Waveform</code></a></li><li><a href="#KM3io.XCalibratedHit"><code>KM3io.XCalibratedHit</code></a></li><li><a href="#Base.angle"><code>Base.angle</code></a></li><li><a href="#Base.flush"><code>Base.flush</code></a></li><li><a href="#Base.read-Tuple{AbstractString, Type{Tripod}}"><code>Base.read</code></a></li><li><a href="#Base.read-Tuple{AbstractString, Type{Waveform}}"><code>Base.read</code></a></li><li><a href="#Base.read-Tuple{AbstractString, Type{StringMechanics}}"><code>Base.read</code></a></li><li><a href="#Base.read-Tuple{AbstractString, Type{AcousticsTriggerParameter}}"><code>Base.read</code></a></li><li><a href="#Base.read-Tuple{AbstractString, Type{Hydrophone}}"><code>Base.read</code></a></li><li><a href="#Base.write-Tuple{AbstractString, Detector}"><code>Base.write</code></a></li><li><a href="#Base.write-Tuple{AbstractString, Vector{Tripod}}"><code>Base.write</code></a></li><li><a href="#Base.write-Tuple{IO, Detector}"><code>Base.write</code></a></li><li><a href="#HDF5.create_dataset"><code>HDF5.create_dataset</code></a></li><li><a href="#KM3io.addmeta"><code>KM3io.addmeta</code></a></li><li><a href="#KM3io.azimuth"><code>KM3io.azimuth</code></a></li><li><a href="#KM3io.bestaashower"><code>KM3io.bestaashower</code></a></li><li><a href="#KM3io.bestjppmuon"><code>KM3io.bestjppmuon</code></a></li><li><a href="#KM3io.bestjppshower"><code>KM3io.bestjppshower</code></a></li><li><a href="#KM3io.besttrack"><code>KM3io.besttrack</code></a></li><li><a href="#KM3io.calibrate"><code>KM3io.calibrate</code></a></li><li><a href="#KM3io.calibratetime"><code>KM3io.calibratetime</code></a></li><li><a href="#KM3io.categorize"><code>KM3io.categorize</code></a></li><li><a href="#KM3io.center"><code>KM3io.center</code></a></li><li><a href="#KM3io.cherenkov"><code>KM3io.cherenkov</code></a></li><li><a href="#KM3io.combine"><code>KM3io.combine</code></a></li><li><a href="#KM3io.count_active_channels"><code>KM3io.count_active_channels</code></a></li><li><a href="#KM3io.count_fifostatus"><code>KM3io.count_fifostatus</code></a></li><li><a href="#KM3io.count_hrvstatus"><code>KM3io.count_hrvstatus</code></a></li><li><a href="#KM3io.distance"><code>KM3io.distance</code></a></li><li><a href="#KM3io.fifostatus"><code>KM3io.fifostatus</code></a></li><li><a href="#KM3io.floordist"><code>KM3io.floordist</code></a></li><li><a href="#KM3io.getmodule"><code>KM3io.getmodule</code></a></li><li><a href="#KM3io.getpmt"><code>KM3io.getpmt</code></a></li><li><a href="#KM3io.hashistory"><code>KM3io.hashistory</code></a></li><li><a href="#KM3io.haslocation"><code>KM3io.haslocation</code></a></li><li><a href="#KM3io.hasudptrailer"><code>KM3io.hasudptrailer</code></a></li><li><a href="#KM3io.hrvstatus"><code>KM3io.hrvstatus</code></a></li><li><a href="#KM3io.hydrophoneenabled"><code>KM3io.hydrophoneenabled</code></a></li><li><a href="#KM3io.is3dmuon"><code>KM3io.is3dmuon</code></a></li><li><a href="#KM3io.is3dshower"><code>KM3io.is3dshower</code></a></li><li><a href="#KM3io.isbasemodule"><code>KM3io.isbasemodule</code></a></li><li><a href="#KM3io.ismxshower"><code>KM3io.ismxshower</code></a></li><li><a href="#KM3io.isnb"><code>KM3io.isnb</code></a></li><li><a href="#KM3io.isopticalmodule"><code>KM3io.isopticalmodule</code></a></li><li><a href="#KM3io.maximal_udp_sequence_number"><code>KM3io.maximal_udp_sequence_number</code></a></li><li><a href="#KM3io.modules"><code>KM3io.modules</code></a></li><li><a href="#KM3io.most_frequent"><code>KM3io.most_frequent</code></a></li><li><a href="#KM3io.nthbitset"><code>KM3io.nthbitset</code></a></li><li><a href="#KM3io.number_of_udp_packets_received"><code>KM3io.number_of_udp_packets_received</code></a></li><li><a href="#KM3io.phi"><code>KM3io.phi</code></a></li><li><a href="#KM3io.piezoenabled"><code>KM3io.piezoenabled</code></a></li><li><a href="#KM3io.pmtrate"><code>KM3io.pmtrate</code></a></li><li><a href="#KM3io.pmtrates"><code>KM3io.pmtrates</code></a></li><li><a href="#KM3io.slew"><code>KM3io.slew</code></a></li><li><a href="#KM3io.status"><code>KM3io.status</code></a></li><li><a href="#KM3io.tdcstatus"><code>KM3io.tdcstatus</code></a></li><li><a href="#KM3io.theta"><code>KM3io.theta</code></a></li><li><a href="#KM3io.triggered"><code>KM3io.triggered</code></a></li><li><a href="#KM3io.wrstatus"><code>KM3io.wrstatus</code></a></li><li><a href="#KM3io.zenith"><code>KM3io.zenith</code></a></li></ul><h2 id="Basic-Data-Structures"><a class="docs-heading-anchor" href="#Basic-Data-Structures">Basic Data Structures</a><a id="Basic-Data-Structures-1"></a><a class="docs-heading-anchor-permalink" href="#Basic-Data-Structures" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.Position" href="#KM3io.Position"><code>KM3io.Position</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Position{T} <: StaticArraysCore.FieldVector{3, T}</code></pre><p>A vector to represent a position in 3D.</p><p><strong>Fields</strong></p><ul><li><p><code>x::Any</code></p></li><li><p><code>y::Any</code></p></li><li><p><code>z::Any</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL7">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.Direction" href="#KM3io.Direction"><code>KM3io.Direction</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Direction{T<:AbstractFloat} <: StaticArraysCore.FieldVector{3, T<:AbstractFloat}</code></pre><p>A vector to represent a direction in 3D.</p><p><strong>Fields</strong></p><ul><li><p><code>x::AbstractFloat</code></p></li><li><p><code>y::AbstractFloat</code></p></li><li><p><code>z::AbstractFloat</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL16">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.Location" href="#KM3io.Location"><code>KM3io.Location</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Location</code></pre><p>A module's location in the detector where string represents the detection unit identifier and floor counts from 0 from the bottom to top. Base modules are sitting on floor 0 and optical modules on floor 1 and higher.</p><p><strong>Fields</strong></p><ul><li><p><code>string::Int32</code></p></li><li><p><code>floor::Int8</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL27">source</a></section></article><h2 id="Offline-Format"><a class="docs-heading-anchor" href="#Offline-Format">Offline Format</a><a id="Offline-Format-1"></a><a class="docs-heading-anchor-permalink" href="#Offline-Format" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.Evt" href="#KM3io.Evt"><code>KM3io.Evt</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Evt</code></pre><p>An offline event.</p><p><strong>Fields</strong></p><ul><li><p><code>id::Int64</code></p></li><li><p><code>det_id::Int64</code></p></li><li><p><code>mc_id::Int64</code></p></li><li><p><code>run_id::Int64</code></p></li><li><p><code>mc_run_id::Int64</code></p></li><li><p><code>frame_index::Int64</code></p></li><li><p><code>trigger_mask::UInt64</code></p></li><li><p><code>trigger_counter::UInt64</code></p></li><li><p><code>overlays::UInt64</code></p></li><li><p><code>t::UTCTime</code></p></li><li><p><code>hits::Vector{CalibratedHit}</code></p></li><li><p><code>trks::Vector{Trk}</code></p></li><li><p><code>w::Vector{Float64}</code></p></li><li><p><code>w2list::Vector{Float64}</code></p></li><li><p><code>w3list::Vector{Float64}</code></p></li><li><p><code>mc_event_time::UTCTime</code></p></li><li><p><code>mc_t::Float64</code></p></li><li><p><code>mc_hits::Vector{CalibratedMCHit}</code></p></li><li><p><code>mc_trks::Vector{MCTrk}</code></p></li><li><p><code>index::Int64</code></p></li><li><p><code>flags::Int64</code></p></li><li><p><code>usr::Dict{String, Float64}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/root/offline.jl#LL72">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.CalibratedHit" href="#KM3io.CalibratedHit"><code>KM3io.CalibratedHit</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct CalibratedHit <: AbstractCalibratedHit</code></pre><p>A calibrated hit of the offline dataformat. Caveat: the <code>position</code>, <code>direction</code> and <code>t</code> fields might still be <code>0</code> due to the design philosophy of the offline format (one class for all).</p><p><strong>Fields</strong></p><ul><li><p><code>dom_id::Int32</code></p></li><li><p><code>channel_id::UInt32</code></p></li><li><p><code>tdc::UInt32</code></p></li><li><p><code>tot::UInt32</code></p></li><li><p><code>trigger_mask::UInt64</code></p></li><li><p><code>t::Float64</code></p></li><li><p><code>pos::Position{Float64}</code></p></li><li><p><code>dir::Direction{Float64}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/root/offline.jl#LL1">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.CalibratedMCHit" href="#KM3io.CalibratedMCHit"><code>KM3io.CalibratedMCHit</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct CalibratedMCHit</code></pre><p>A calibrated MC hit of the offline dataformat. Caveat: the <code>position</code> and <code>direction</code> fields might still be <code>0</code> due to the design philosophy of the offline format (one class for all).</p><p><strong>Fields</strong></p><ul><li><p><code>pmt_id::Int32</code></p></li><li><p><code>t::Float64</code></p></li><li><p><code>a::Float64</code></p></li><li><p><code>type::Int32</code></p></li><li><p><code>origin::Int32</code></p></li><li><p><code>pos::Position{Float64}</code></p></li><li><p><code>dir::Direction{Float64}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/root/offline.jl#LL21">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.XCalibratedHit" href="#KM3io.XCalibratedHit"><code>KM3io.XCalibratedHit</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct XCalibratedHit <: AbstractCalibratedHit</code></pre><p>A fully dressed hit with all calibration information which can be obtained. This structure is similar to the Hit structure in aanet and should be used wisely. Most of the time it's much more performant to use dedicated (simplified) structures.</p><p><strong>Fields</strong></p><ul><li><p><code>dom_id::UInt32</code></p></li><li><p><code>channel_id::UInt32</code></p></li><li><p><code>t::Float64</code></p></li><li><p><code>tot::UInt8</code></p></li><li><p><code>trigger_mask::UInt64</code></p></li><li><p><code>pos::Position{Float64}</code></p></li><li><p><code>dir::Direction{Float64}</code></p></li><li><p><code>t0::Float64</code></p></li><li><p><code>string::UInt8</code></p></li><li><p><code>floor::UInt8</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL100">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.Trk" href="#KM3io.Trk"><code>KM3io.Trk</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Trk</code></pre><p>Represents a reconstructed "track", which can be e.g. a muon track but also a shower.</p><p><strong>Fields</strong></p><ul><li><p><code>id::Int64</code></p></li><li><p><code>pos::Position{Float64}</code></p></li><li><p><code>dir::Direction{Float64}</code></p></li><li><p><code>t::Float64</code></p></li><li><p><code>E::Float64</code></p></li><li><p><code>len::Float64</code></p></li><li><p><code>lik::Float64</code></p></li><li><p><code>rec_type::Int32</code></p></li><li><p><code>rec_stages::Vector{Int32}</code></p></li><li><p><code>fitinf::Vector{Float64}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/root/offline.jl#LL40">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.MCTrk" href="#KM3io.MCTrk"><code>KM3io.MCTrk</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct MCTrk</code></pre><p>A simulated (Monte Carlo, hence "MC") track (or shower).</p><p><strong>Fields</strong></p><ul><li><p><code>id::Int64</code></p></li><li><p><code>pos::Position{Float64}</code></p></li><li><p><code>dir::Direction{Float64}</code></p></li><li><p><code>t::Float64</code></p></li><li><p><code>E::Float64</code></p></li><li><p><code>len::Float64</code></p></li><li><p><code>type::Int32</code></p></li><li><p><code>status::Int32</code></p></li><li><p><code>mother_id::Int32</code></p></li><li><p><code>counter::Int32</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/root/offline.jl#LL56">source</a></section></article><h2 id="Online-Format"><a class="docs-heading-anchor" href="#Online-Format">Online Format</a><a id="Online-Format-1"></a><a class="docs-heading-anchor-permalink" href="#Online-Format" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.DAQEvent" href="#KM3io.DAQEvent"><code>KM3io.DAQEvent</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct DAQEvent</code></pre><p>A (triggered) event holding snapshot hits and triggered hits. The triggered hits are a subset of the snapshot hits.</p><p><strong>Fields</strong></p><ul><li><p><code>header::EventHeader</code></p></li><li><p><code>snapshot_hits::Vector{SnapshotHit}</code></p></li><li><p><code>triggered_hits::Vector{TriggeredHit}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL197">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.EventHeader" href="#KM3io.EventHeader"><code>KM3io.EventHeader</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct EventHeader</code></pre><p>The header of an event.</p><p><strong>Fields</strong></p><ul><li><p><code>detector_id::Int32</code></p></li><li><p><code>run::Int32</code></p></li><li><p><code>frame_index::Int32</code></p></li><li><p><code>t::UTCExtended</code></p></li><li><p><code>trigger_counter::UInt64</code></p></li><li><p><code>trigger_mask::UInt64</code></p></li><li><p><code>overlays::UInt32</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL182">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.SnapshotHit" href="#KM3io.SnapshotHit"><code>KM3io.SnapshotHit</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct SnapshotHit <: KM3io.AbstractDAQHit</code></pre><p>A snapshot hit.</p><p><strong>Fields</strong></p><ul><li><p><code>dom_id::UInt32</code></p></li><li><p><code>channel_id::UInt8</code></p></li><li><p><code>t::Int32</code></p></li><li><p><code>tot::UInt8</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL49">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.TriggeredHit" href="#KM3io.TriggeredHit"><code>KM3io.TriggeredHit</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct TriggeredHit <: KM3io.AbstractDAQHit</code></pre><p>A hit which was triggered.</p><p><strong>Fields</strong></p><ul><li><p><code>dom_id::Int32</code></p></li><li><p><code>channel_id::UInt8</code></p></li><li><p><code>t::Int32</code></p></li><li><p><code>tot::UInt8</code></p></li><li><p><code>trigger_mask::UInt64</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL73">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.CalibratedSnapshotHit" href="#KM3io.CalibratedSnapshotHit"><code>KM3io.CalibratedSnapshotHit</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct CalibratedSnapshotHit <: AbstractCalibratedHit</code></pre><p>A calibrated snapshot hit.</p><p><strong>Fields</strong></p><ul><li><p><code>dom_id::UInt32</code></p></li><li><p><code>channel_id::UInt8</code></p></li><li><p><code>t::Float64</code></p></li><li><p><code>tot::UInt8</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL61">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.CalibratedTriggeredHit" href="#KM3io.CalibratedTriggeredHit"><code>KM3io.CalibratedTriggeredHit</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct CalibratedTriggeredHit <: AbstractCalibratedHit</code></pre><p>A calibrated triggered hit.</p><p><strong>Fields</strong></p><ul><li><p><code>dom_id::UInt32</code></p></li><li><p><code>channel_id::UInt8</code></p></li><li><p><code>t::Float64</code></p></li><li><p><code>tot::UInt8</code></p></li><li><p><code>trigger_mask::UInt64</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL86">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.UTCTime" href="#KM3io.UTCTime"><code>KM3io.UTCTime</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct UTCTime</code></pre><p>A basic time structure with seconds and nanoseconds. The seconds are counting from the start of the epoch, just like the UNIX time.</p><p><strong>Fields</strong></p><ul><li><p><code>s::UInt64</code></p></li><li><p><code>ns::UInt64</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL121">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.UTCExtended" href="#KM3io.UTCExtended"><code>KM3io.UTCExtended</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct UTCExtended</code></pre><p>An extended time structure which contains the White Rabbit time synchronisation status. <code>wr_status == 0</code> means that the synchronisation is OK.</p><p><strong>Fields</strong></p><ul><li><p><code>s::UInt32</code></p></li><li><p><code>ns::UInt32</code></p></li><li><p><code>wr_status::Int64</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL133">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.Summaryslice" href="#KM3io.Summaryslice"><code>KM3io.Summaryslice</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Summaryslice</code></pre><p>A summaryslice is a condensed timeslice with the header information of the corresponding timeslice and a summary frame for each optical module. The hit information of the original timeslice is reduced so that for each PMT a single byte is used to encode the hit rate.</p><p><strong>Fields</strong></p><ul><li><p><code>header::SummarysliceHeader</code></p></li><li><p><code>frames::Vector{SummaryFrame}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/root/online.jl#LL104">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.SummarysliceHeader" href="#KM3io.SummarysliceHeader"><code>KM3io.SummarysliceHeader</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct SummarysliceHeader</code></pre><p>The header of a summaryslice.</p><p><strong>Fields</strong></p><ul><li><p><code>detector_id::Int32</code></p></li><li><p><code>run::Int32</code></p></li><li><p><code>frame_index::Int32</code></p></li><li><p><code>t::UTCExtended</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL170">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.SummaryFrame" href="#KM3io.SummaryFrame"><code>KM3io.SummaryFrame</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct SummaryFrame</code></pre><p>A <code>SummaryFrame</code> contains reduced timeslice data from an optical module.</p><p>The PMT <code>rates</code> are encoded as single bytes and can be converted to real hit rates using the <code>rates(s::SummaryFrame)</code> function.</p><p><strong>Fields</strong></p><ul><li><p><code>dom_id::Int32</code></p></li><li><p><code>daq::UInt32</code></p></li><li><p><code>status::UInt32</code></p></li><li><p><code>fifo::UInt32</code></p></li><li><p><code>status3::UInt32</code></p></li><li><p><code>status4::UInt32</code></p></li><li><p><code>rates::StaticArraysCore.SVector{31, UInt8}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/types.jl#LL152">source</a></section></article><h2 id="HDF5"><a class="docs-heading-anchor" href="#HDF5">HDF5</a><a id="HDF5-1"></a><a class="docs-heading-anchor-permalink" href="#HDF5" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.H5File" href="#KM3io.H5File"><code>KM3io.H5File</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct H5File</code></pre><p>A wrapper for an HDF5 file used in KM3NeT.</p><p><strong>Fields</strong></p><ul><li><p><code>_h5f::HDF5.File</code></p></li><li><p><code>_datasets::Dict{String, H5CompoundDataset}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hdf5/hdf5.jl#LL35">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.H5CompoundDataset" href="#KM3io.H5CompoundDataset"><code>KM3io.H5CompoundDataset</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct H5CompoundDataset{T}</code></pre><p>A flat HDF5 compound dataset which is essentially a vector of structs. It has a cache which is filled when elements are pushed to it. The cache is automatically written to the target HDF5 path when full.</p><p><strong>Fields</strong></p><ul><li><p><code>dset::HDF5.Dataset</code></p></li><li><p><code>cache::KM3io.H5CompoundDatasetCache</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hdf5/hdf5.jl#LL6">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.addmeta" href="#KM3io.addmeta"><code>KM3io.addmeta</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">addmeta( + dset::Union{HDF5.Dataset, HDF5.Datatype, HDF5.File, HDF5.Group}, + object +) +</code></pre><p>Attaches key-value-pair meta entries to an HDF5 instance for each field of the given object.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hdf5/hdf5.jl#LL94">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="HDF5.create_dataset" href="#HDF5.create_dataset"><code>HDF5.create_dataset</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">create_dataset( + f::H5File, + path::AbstractString, + ::Type{T}; + cache_size +) -> H5CompoundDataset +</code></pre><p>Creates a one-dimensional compound dataset <a href="#KM3io.H5CompoundDataset"><code>H5CompoundDataset</code></a> of a given type which can be extended one-by-one. The cache is used to accumulate data and reduce the number of dataset extensions. Each time the cache is full, the HDF5 dataset will be extended, the buffer written and cleared.</p><p>To force the writing, use <a href="#Base.flush"><code>flush</code></a></p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hdf5/hdf5.jl#LL72">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Base.flush" href="#Base.flush"><code>Base.flush</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">flush(d::H5CompoundDataset) -> Vector +</code></pre><p>Forces the cache to be written to the HDF5 file.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hdf5/hdf5.jl#LL21">source</a></section></article><h2 id="Hardware"><a class="docs-heading-anchor" href="#Hardware">Hardware</a><a id="Hardware-1"></a><a class="docs-heading-anchor-permalink" href="#Hardware" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.PMT" href="#KM3io.PMT"><code>KM3io.PMT</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct PMT</code></pre><p>The photomultiplier tube of an optical module. The <code>id</code> stands for the DAQ channel ID.</p><p>A non-zero status means the PMT is "not OK". Individual bits can be read out to identify the problem (see definitions/pmt_status.jl for the bit positions and check them using the <code>nthbitset()</code> function).</p><p><strong>Fields</strong></p><ul><li><p><code>id::Int32</code></p></li><li><p><code>pos::Position{Float64}</code></p></li><li><p><code>dir::Direction{Float64}</code></p></li><li><p><code>tâ‚€::Float64</code></p></li><li><p><code>status::Union{Missing, Int32}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL1">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.DetectorModule" href="#KM3io.DetectorModule"><code>KM3io.DetectorModule</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct DetectorModule</code></pre><p>Either a base module or an optical module. A non-zero status means the module is "not OK". Individual bits can be read out to identify the problem (see definitions/module_status.jl for the bit positions and check them using the <code>nthbitset()</code> function).</p><p><strong>Fields</strong></p><ul><li><p><code>id::Int32</code></p></li><li><p><code>pos::Position{Float64}</code></p></li><li><p><code>location::Location</code></p></li><li><p><code>n_pmts::Int8</code></p></li><li><p><code>pmts::Vector{PMT}</code></p></li><li><p><code>q::Union{Missing, Quaternion{Float64}}</code></p></li><li><p><code>status::Int32</code></p></li><li><p><code>tâ‚€::Float64</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL41">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.Detector" href="#KM3io.Detector"><code>KM3io.Detector</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Detector</code></pre><p>A KM3NeT detector.</p><p><strong>Fields</strong></p><ul><li><p><code>version::Int8</code></p></li><li><p><code>id::Int32</code></p></li><li><p><code>validity::Union{Missing, KM3io.DateRange}</code></p></li><li><p><code>pos::Union{Missing, UTMPosition{Float64}}</code></p></li><li><p><code>utm_ref_grid::Union{Missing, String}</code></p></li><li><p><code>n_modules::Int32</code></p></li><li><p><code>modules::Dict{Int32, DetectorModule}</code></p></li><li><p><code>locations::Dict{Tuple{Int64, Int64}, DetectorModule}</code></p></li><li><p><code>strings::Vector{Int64}</code></p></li><li><p><code>comments::Vector{String}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL270">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.modules" href="#KM3io.modules"><code>KM3io.modules</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">modules(d::Detector) -> Vector{DetectorModule} +</code></pre><p>Return a vector of all modules of a given detector.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL286">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.getmodule" href="#KM3io.getmodule"><code>KM3io.getmodule</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">getmodule(d::Detector, module_id::Integer) -> DetectorModule +</code></pre><p>Return the detector module for a given module ID.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL303">source</a></section><section><div><pre><code class="language-julia hljs">getmodule( + d::Detector, + string::Integer, + floor::Integer +) -> DetectorModule +</code></pre><p>Return the detector module for a given string and floor.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL307">source</a></section><section><div><pre><code class="language-julia hljs">getmodule( + d::Detector, + loc::Tuple{T<:Integer, T<:Integer} +) -> DetectorModule +</code></pre><p>Return the detector module for a given string and floor (as <code>Tuple</code>).</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL311">source</a></section><section><div><pre><code class="language-julia hljs">getmodule(d::Detector, loc::Location) -> DetectorModule +</code></pre><p>Return the detector module for a given location.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL315">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.getpmt" href="#KM3io.getpmt"><code>KM3io.getpmt</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">getpmt(d::DetectorModule, channel_id::Integer) -> Any +</code></pre><p>Get the PMT for a given DAQ channel ID (TDC)</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL93">source</a></section><section><div><pre><code class="language-julia hljs">getpmt(d::Detector, hit) -> Any +</code></pre><p>Return the <code>PMT</code> for a given hit.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL319">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.haslocation" href="#KM3io.haslocation"><code>KM3io.haslocation</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">haslocation(d::Detector, loc::Location) -> Bool +</code></pre><p>Returns true if there is a module at the given location.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL342">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.isbasemodule" href="#KM3io.isbasemodule"><code>KM3io.isbasemodule</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">isbasemodule(d::DetectorModule) -> Bool +</code></pre><p>Returns true if the module is a basemodule.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL84">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.isopticalmodule" href="#KM3io.isopticalmodule"><code>KM3io.isopticalmodule</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">isopticalmodule(d::DetectorModule) -> Bool +</code></pre><p>Returns true if the module is an optical module.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL88">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Base.write-Tuple{AbstractString, Detector}" href="#Base.write-Tuple{AbstractString, Detector}"><code>Base.write</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">write(filename::AbstractString, d::Detector; version) +</code></pre><p>Writes the detector definition to a file, according to the DETX format specification. The <code>version</code> parameter can be a version number or <code>:same</code>, which is the default value and writes the same version as the provided detector has.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL579">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Base.write-Tuple{IO, Detector}" href="#Base.write-Tuple{IO, Detector}"><code>Base.write</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">write(io::IO, d::Detector; version) +</code></pre><pre><code class="nohighlight hljs">function write(io::IO, d::Detector; version=:same)</code></pre><p>Writes the detector to a DETX formatted file. The target version can be specified via the <code>version</code> keyword. Note that if converting to higher versions, missing parameters will be filled with reasonable default values. In case of downgrading, information will be lost.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL595">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.Hydrophone" href="#KM3io.Hydrophone"><code>KM3io.Hydrophone</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Hydrophone</code></pre><p>A hydrophone, typically installed in the base module of a KM3NeT detector's string.</p><p><strong>Fields</strong></p><ul><li><p><code>location::Location</code></p></li><li><p><code>pos::Position{Float64}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL144">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Base.read-Tuple{AbstractString, Type{Hydrophone}}" href="#Base.read-Tuple{AbstractString, Type{Hydrophone}}"><code>Base.read</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">read( + filename::AbstractString, + T::Type{Hydrophone} +) -> Vector{Hydrophone} +</code></pre><pre><code class="nohighlight hljs">function read(filename::AbstractString, T::Type{Hydrophone})</code></pre><p>Reads a vector of <code>Hydrophone</code>s from an ASCII file.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL153">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.Tripod" href="#KM3io.Tripod"><code>KM3io.Tripod</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Tripod</code></pre><p>A tripod installed on the seabed which sends acoustic signals to modules.</p><p><strong>Fields</strong></p><ul><li><p><code>id::Int8</code></p></li><li><p><code>pos::Position{Float64}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL171">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Base.read-Tuple{AbstractString, Type{Tripod}}" href="#Base.read-Tuple{AbstractString, Type{Tripod}}"><code>Base.read</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">read( + filename::AbstractString, + T::Type{Tripod} +) -> Vector{Tripod} +</code></pre><pre><code class="nohighlight hljs">function read(filename:AbstractString, T::Type{Tripod})</code></pre><p>Reads a vector of <code>Tripod</code>s from an ASCII file.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL178">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Base.write-Tuple{AbstractString, Vector{Tripod}}" href="#Base.write-Tuple{AbstractString, Vector{Tripod}}"><code>Base.write</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">write(filename::AbstractString, tripods::Vector{Tripod}) +</code></pre><pre><code class="nohighlight hljs">function write(filename::AbstractString, tripods::Dict{Int8, Tripod})</code></pre><p>Writes the position of tripods out into an ASCII file.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL196">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.piezoenabled" href="#KM3io.piezoenabled"><code>KM3io.piezoenabled</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">piezoenabled(m::DetectorModule) -> Bool +</code></pre><pre><code class="nohighlight hljs">function piezoenabled(m::DetectorModule)</code></pre><p>Return <code>true</code> if the piezo is enabled, <code>false</code> otherwise.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/acoustics.jl#LL47">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.hydrophoneenabled" href="#KM3io.hydrophoneenabled"><code>KM3io.hydrophoneenabled</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">hydrophoneenabled(m::DetectorModule) -> Bool +</code></pre><pre><code class="nohighlight hljs">function hydrophonenabled(m::DetectorModule)</code></pre><p>Return <code>true</code> if the hydrophone is enabled, <code>false</code> otherwise.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/acoustics.jl#LL54">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.center" href="#KM3io.center"><code>KM3io.center</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">center(m::DetectorModule) -> Position{Float64} +</code></pre><p>Calculate the centre of a module by fitting the crossing point of the PMT axes.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL98">source</a></section><section><div><pre><code class="language-julia hljs">center(d::Detector) -> Position{Float64} +</code></pre><p>Calculate the center of the detector based on the location of the optical modules.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL349">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.StringMechanics" href="#KM3io.StringMechanics"><code>KM3io.StringMechanics</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct StringMechanics</code></pre><p>A container structure which holds the mechanical model parameters for multiple strings, including a default value for strings which have specific parameters.</p><p><strong>Fields</strong></p><ul><li><p><code>default::StringMechanicsParameters</code></p></li><li><p><code>stringparams::Dict{Int64, StringMechanicsParameters}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL689">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.StringMechanicsParameters" href="#KM3io.StringMechanicsParameters"><code>KM3io.StringMechanicsParameters</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct StringMechanicsParameters</code></pre><p>Data structure for parameters of the mechanical model of strings. This data structure is used to calculate the effective height conform to the mechanical model of the string.</p><p><strong>Fields</strong></p><ul><li><p><code>a::Float64</code></p></li><li><p><code>b::Float64</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL677">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Base.read-Tuple{AbstractString, Type{StringMechanics}}" href="#Base.read-Tuple{AbstractString, Type{StringMechanics}}"><code>Base.read</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">read( + filename::AbstractString, + T::Type{StringMechanics} +) -> StringMechanics +</code></pre><p>Reads the mechanical models from a text file.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL702">source</a></section></article><h2 id="Optical-Data"><a class="docs-heading-anchor" href="#Optical-Data">Optical Data</a><a id="Optical-Data-1"></a><a class="docs-heading-anchor-permalink" href="#Optical-Data" title="Permalink"></a></h2><h2 id="Acoustics"><a class="docs-heading-anchor" href="#Acoustics">Acoustics</a><a id="Acoustics-1"></a><a class="docs-heading-anchor-permalink" href="#Acoustics" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.Waveform" href="#KM3io.Waveform"><code>KM3io.Waveform</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct Waveform</code></pre><p>Waveform translates Emitter ID to Tripod ID.</p><p><strong>Fields</strong></p><ul><li><code>ids::Dict{Int8, Int8}</code></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL215">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Base.read-Tuple{AbstractString, Type{Waveform}}" href="#Base.read-Tuple{AbstractString, Type{Waveform}}"><code>Base.read</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">read( + filename::AbstractString, + T::Type{Waveform} +) -> Waveform +</code></pre><pre><code class="nohighlight hljs">function read(filename::AbstractString, T::Type{Waveform})</code></pre><p>Reads the waveform ASCII file.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL221">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.AcousticSignal" href="#KM3io.AcousticSignal"><code>KM3io.AcousticSignal</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct AcousticSignal</code></pre><p>AcousticSignal is a custom type with four fields to store all the information inside the raw acoustic binary files.</p><ul><li>dom_id::Int32 ID of the module</li><li>utc_seconds:: UInt32 storing the first 4 Bytes and is a UNIX time stamp</li><li>ns_cycles:: UInt32 storing the second 4 Bytes</li><li>samples:: UInt32 storing the third 4 Bytes, corresponding to the number of data points accuired during the measring window</li><li>pcm:: Vector of Float32 of length frame_length, storing all other 4 Byte blocks. Each entry is a data point of the acoustic signal.</li></ul><p><strong>Fields</strong></p><ul><li><p><code>dom_id::Int32</code></p></li><li><p><code>utc_seconds::UInt32</code></p></li><li><p><code>ns_cycles::UInt32</code></p></li><li><p><code>samples::UInt32</code></p></li><li><p><code>pcm::Vector{Float32}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/acoustics.jl#LL8">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.AcousticsTriggerParameter" href="#KM3io.AcousticsTriggerParameter"><code>KM3io.AcousticsTriggerParameter</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct AcousticsTriggerParameter</code></pre><p>Certain parameters which define an acoustic event.</p><p><strong>Fields</strong></p><ul><li><p><code>q::Float64</code></p></li><li><p><code>tmax::Float64</code></p></li><li><p><code>nmin::Int32</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL242">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Base.read-Tuple{AbstractString, Type{AcousticsTriggerParameter}}" href="#Base.read-Tuple{AbstractString, Type{AcousticsTriggerParameter}}"><code>Base.read</code></a> — <span class="docstring-category">Method</span></header><section><div><pre><code class="language-julia hljs">read( + filename::AbstractString, + T::Type{AcousticsTriggerParameter} +) -> AcousticsTriggerParameter +</code></pre><pre><code class="nohighlight hljs">function read(filename::AbstractString, T::Type{AcousticsTriggerParameter})</code></pre><p>Reads the 'acoustics<em>trigger</em>parameters.txt' file.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/hardware.jl#LL250">source</a></section></article><h2 id="Calibration"><a class="docs-heading-anchor" href="#Calibration">Calibration</a><a id="Calibration-1"></a><a class="docs-heading-anchor-permalink" href="#Calibration" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.calibrate" href="#KM3io.calibrate"><code>KM3io.calibrate</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">calibrate(det::Detector, hits) -> Vector{XCalibratedHit} +</code></pre><p>Apply full geometry and time calibration to given hits. This way of calibration should be used wisely since it creates a very bloaded <a href="#KM3io.XCalibratedHit"><code>XCalibratedHit</code></a> object, which might not be necessary. Often, we only need time the calibration to be applied.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/calibration.jl#LL1">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.calibratetime" href="#KM3io.calibratetime"><code>KM3io.calibratetime</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">calibratetime( + det::Detector, + hits::Array{T<:SnapshotHit, 1} +) -> Vector{CalibratedSnapshotHit} +</code></pre><p>Calibrate the time of a given array of snapshot hits.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/calibration.jl#LL35">source</a></section><section><div><pre><code class="language-julia hljs">calibratetime( + det::Detector, + hits::Array{T<:TriggeredHit, 1} +) -> Vector{CalibratedTriggeredHit} +</code></pre><p>Calibrate the time of a given array of triggered hits.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/calibration.jl#LL48">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.combine" href="#KM3io.combine"><code>KM3io.combine</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">combine( + snapshot_hits::Vector{SnapshotHit}, + triggered_hits::Vector{TriggeredHit} +) -> Vector{TriggeredHit} +</code></pre><p>Combine snapshot and triggered hits to a single hits-vector.</p><p>This should be used to transfer the trigger information to the snapshot hits from a DAQEvent. The triggered hits are a subset of the snapshot hits.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/calibration.jl#LL61">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.floordist" href="#KM3io.floordist"><code>KM3io.floordist</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">floordist(det::Detector) -> Float64 +</code></pre><p>Calculates the average floor distance between neighboured modules.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/calibration.jl#LL88">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.slew" href="#KM3io.slew"><code>KM3io.slew</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">slew(tot::Integer) -> Any +</code></pre><p>Return the time slewing for a ToT.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/calibration.jl#LL102">source</a></section></article><h2 id="Physics"><a class="docs-heading-anchor" href="#Physics">Physics</a><a id="Physics-1"></a><a class="docs-heading-anchor-permalink" href="#Physics" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.azimuth" href="#KM3io.azimuth"><code>KM3io.azimuth</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">azimuth(d::Direction) -> Any +</code></pre><p>Calculates the azimuth from a given <a href="#KM3io.Direction"><code>Direction</code></a> according to KM3NeT conventions.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/physics.jl#LL54">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.zenith" href="#KM3io.zenith"><code>KM3io.zenith</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">zenith(d::Direction) -> Any +</code></pre><p>Calculates the zenith from a given <a href="#KM3io.Direction"><code>Direction</code></a> according to KM3NeT conventions.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/physics.jl#LL61">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.phi" href="#KM3io.phi"><code>KM3io.phi</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">phi(d::Direction) -> Any +</code></pre><p>Calculate the phi angle for a given direction</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/physics.jl#LL77">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.theta" href="#KM3io.theta"><code>KM3io.theta</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">theta(d::Direction) -> Any +</code></pre><p>Calculate the theta angle for a given direction</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/physics.jl#LL68">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.cherenkov" href="#KM3io.cherenkov"><code>KM3io.cherenkov</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">cherenkov( + track, + hits::Array{T<:AbstractCalibratedHit, 1} +) -> Any +</code></pre><p>Calculates the parameters of cherenkov photons emitted from a track and hitting the PMTs represented as (calibrated) hits. The returned cherenkov photons hold information about the closest distance to track, the time residual, arrival time, impact angle, photon travel distance, track travel distance and photon travel direction. See <a href="#KM3io.CherenkovPhoton"><code>CherenkovPhoton</code></a> for more information.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/physics.jl#LL18">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.CherenkovPhoton" href="#KM3io.CherenkovPhoton"><code>KM3io.CherenkovPhoton</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct CherenkovPhoton</code></pre><p>A Cherenkov photon with parameters calculated from its inducing track. See <a href="#KM3io.cherenkov"><code>cherenkov()</code></a> for more information.</p><p><strong>Fields</strong></p><ul><li><p><code>d_closest::Float64</code></p></li><li><p><code>d_photon::Float64</code></p></li><li><p><code>d_track::Float64</code></p></li><li><p><code>t::Float64</code></p></li><li><p><code>Δt::Float64</code></p></li><li><p><code>impact_angle::Float64</code></p></li><li><p><code>dir::Direction{Float64}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/physics.jl#LL1">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.K40Rates" href="#KM3io.K40Rates"><code>KM3io.K40Rates</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct K40Rates</code></pre><p>K40 rates with L0 and higher level rates (with increasing multiplicities).</p><p><strong>Fields</strong></p><ul><li><p><code>L0::Float64</code></p></li><li><p><code>L1::Vector{Float64}</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/physics.jl#LL83">source</a></section></article><h2 id="Trigger"><a class="docs-heading-anchor" href="#Trigger">Trigger</a><a id="Trigger-1"></a><a class="docs-heading-anchor-permalink" href="#Trigger" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.triggered" href="#KM3io.triggered"><code>KM3io.triggered</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">triggered(e) -> Vector +</code></pre><p>Return <code>true</code> if the passed object (hit, event, ...) was triggered by any trigger algorithm.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/trigger.jl#LL1">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.is3dmuon" href="#KM3io.is3dmuon"><code>KM3io.is3dmuon</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">is3dmuon(e::DAQEvent) -> Bool +</code></pre><pre><code class="language-julia hljs">is3dmuon(e)</code></pre><p>defined at <a href="https://github.com//tree/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555//src/tools/trigger.jl#L12"><code>/builds/common/KM3io.jl/src/tools/trigger.jl:12</code></a>.</p><p>Return <code>true</code> the 3D Muon trigger bit is set.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/trigger.jl#LL7-L11">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.is3dshower" href="#KM3io.is3dshower"><code>KM3io.is3dshower</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">is3dshower(e::DAQEvent) -> Bool +</code></pre><pre><code class="language-julia hljs">is3dshower(e)</code></pre><p>defined at <a href="https://github.com//tree/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555//src/tools/trigger.jl#L20"><code>/builds/common/KM3io.jl/src/tools/trigger.jl:20</code></a>.</p><p>Return <code>true</code> if the 3D Shower trigger bit is set.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/trigger.jl#LL15-L19">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.ismxshower" href="#KM3io.ismxshower"><code>KM3io.ismxshower</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">ismxshower(x) -> Bool +</code></pre><pre><code class="language-julia hljs">ismxshower(x)</code></pre><p>defined at <a href="https://github.com//tree/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555//src/tools/trigger.jl#L28"><code>/builds/common/KM3io.jl/src/tools/trigger.jl:28</code></a>.</p><pre><code class="language-julia hljs">ismxshower(e)</code></pre><p>defined at <a href="https://github.com//tree/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555//src/tools/trigger.jl#L29"><code>/builds/common/KM3io.jl/src/tools/trigger.jl:29</code></a>.</p><p>Return <code>true</code> if the MX Shower trigger bit is set.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/trigger.jl#LL23-L27">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.isnb" href="#KM3io.isnb"><code>KM3io.isnb</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">isnb(x) -> Bool +</code></pre><pre><code class="language-julia hljs">isnb(x)</code></pre><p>defined at <a href="https://github.com//tree/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555//src/tools/trigger.jl#L36"><code>/builds/common/KM3io.jl/src/tools/trigger.jl:36</code></a>.</p><pre><code class="language-julia hljs">isnb(e)</code></pre><p>defined at <a href="https://github.com//tree/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555//src/tools/trigger.jl#L37"><code>/builds/common/KM3io.jl/src/tools/trigger.jl:37</code></a>.</p><p>Return <code>true</code> if the NanoBeacon trigger bit is set.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/trigger.jl#LL31-L35">source</a></section></article><h2 id="ControlHost"><a class="docs-heading-anchor" href="#ControlHost">ControlHost</a><a id="ControlHost-1"></a><a class="docs-heading-anchor-permalink" href="#ControlHost" title="Permalink"></a></h2><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.CHClient" href="#KM3io.CHClient"><code>KM3io.CHClient</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct CHClient{T}</code></pre><p>A ControlHost client which can communicate with a Ligier dispatcher to receive messages for all the subscribed tags.</p><p>To connect to a Ligier which is receiving triggered DAQ events e.g. in the KM3NeT monitoring system or in a test setup consisting of a <a href="https://common.pages.km3net.de/jpp/#JLigier">JLigier</a> dispatcher and a <a href="https://common.pages.km3net.de/jpp/#JRegurgitate">JRegurgitate</a> instance which is redispatching DAQ events (<code>JDAQEvent</code>) from a ROOT file in online format to the <code>JLigier</code>, a <code>CHClient</code> can be created to subscribe the event messages with</p><pre><code class="language-julia-repl hljs">julia> using KM3io + +julia> c = CHClient{DAQEvent}(ip"127.0.0.1", 5553) + +julia> for event in c + @show event + end +e = KM3io.DAQEvent with 127 snapshot and 6 triggered hits +e = KM3io.DAQEvent with 147 snapshot and 6 triggered hits +e = KM3io.DAQEvent with 154 snapshot and 8 triggered hits +e = KM3io.DAQEvent with 152 snapshot and 6 triggered hits +... +... +...</code></pre><p><strong>Fields</strong></p><ul><li><p><code>ip::Sockets.IPv4</code></p></li><li><p><code>port::UInt16</code></p></li><li><p><code>tags::Vector{CHTag}</code></p></li><li><p><code>socket::Sockets.TCPSocket</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/controlhost.jl#LL57">source</a></section></article><h2 id="Tools"><a class="docs-heading-anchor" href="#Tools">Tools</a><a id="Tools-1"></a><a class="docs-heading-anchor-permalink" href="#Tools" title="Permalink"></a></h2><h3 id="General-tools"><a class="docs-heading-anchor" href="#General-tools">General tools</a><a id="General-tools-1"></a><a class="docs-heading-anchor-permalink" href="#General-tools" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.categorize" href="#KM3io.categorize"><code>KM3io.categorize</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">categorize(field::Symbol, elements::Vector) -> Dict +</code></pre><p>Categorise the struct elements of a vector by a given field into a dictionary of <code>T.field => Vector{T}</code>.</p><p><strong>Examples</strong></p><pre><code class="nohighlight hljs">julia> using KM3io + +julia> struct PMT # just an ad-hoc PMT struct for demonstration purposes + dom_id + time + end + +julia> pmts = [PMT(2, 10.4), PMT(4, 23.5), PMT(2, 42.0)]; + +julia> categorize(:dom_id, pmts) +Dict{Any, Vector{PMT}} with 2 entries: + 4 => [PMT(4, 23.5)] + 2 => [PMT(2, 10.4), PMT(2, 42.0)]</code></pre></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/general.jl#LL56">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.nthbitset" href="#KM3io.nthbitset"><code>KM3io.nthbitset</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">nthbitset(n, a) -> Any +</code></pre><p>Return <code>true</code> if the n-th bit of <code>a</code> is set, <code>false</code> otherwise.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/general.jl#LL1">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.most_frequent" href="#KM3io.most_frequent"><code>KM3io.most_frequent</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">most_frequent(iterable) -> Any +</code></pre><p>Return the most frequent value of a given iterable.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/general.jl#LL7">source</a></section><section><div><pre><code class="language-julia hljs">most_frequent(f::Function, iterable; rettype) -> Int64 +</code></pre><p>Return the most frequent value of a given iterable based on the return value of a function <code>f</code> which returns (hashable) values of <code>rettype</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/general.jl#LL30">source</a></section></article><h3 id="DAQ"><a class="docs-heading-anchor" href="#DAQ">DAQ</a><a id="DAQ-1"></a><a class="docs-heading-anchor-permalink" href="#DAQ" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.pmtrate" href="#KM3io.pmtrate"><code>KM3io.pmtrate</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">pmtrate(r::UInt8) -> Float64 +</code></pre><p>Calculate the PMT hit rate from the raw byte stored in a summary frame.</p><p>The rate of each PMT is encoded in a single byte to reduce the size of the summary frame, therefore only 256 values are possible which are mapped to an exponential function. The values are precalculated by the <code>_getrate()</code> function for the best performance.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL6">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.pmtrates" href="#KM3io.pmtrates"><code>KM3io.pmtrates</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">pmtrates( + s::SummaryFrame +) -> StaticArraysCore.SVector{31, Float64} +</code></pre><p>Return the actual rates (in Hz) for each PMT in a summary frame.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL19">source</a></section><section><div><pre><code class="language-julia hljs">pmtrates( + s::Summaryslice +) -> Dict{Int32, StaticArraysCore.SVector{31, Float64}} +</code></pre><p>Return a dictionary of DOM IDs as keys and PMT rates [Hz] as values (<code>Vector{Float64}</code>).</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL26">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.hrvstatus" href="#KM3io.hrvstatus"><code>KM3io.hrvstatus</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">hrvstatus(f::SummaryFrame, tdc) -> Any +</code></pre><p>Return <code>true</code> if the TDC is in high rate veto.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL35">source</a></section><section><div><pre><code class="language-julia hljs">hrvstatus(f::SummaryFrame) -> Bool +</code></pre><p>Return <code>true</code> if any of the TDCs is in high rate veto.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL42">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.fifostatus" href="#KM3io.fifostatus"><code>KM3io.fifostatus</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">fifostatus(f::SummaryFrame, tdc) -> Any +</code></pre><p>Return <code>true</code> if the TDC has FIFO almost full.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL63">source</a></section><section><div><pre><code class="language-julia hljs">fifostatus(f::SummaryFrame) -> Bool +</code></pre><p>Return <code>true</code> if any of the TDCs is in high rate veto.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL70">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.tdcstatus" href="#KM3io.tdcstatus"><code>KM3io.tdcstatus</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">tdcstatus(f::SummaryFrame) -> Bool +</code></pre><p>Return <code>true</code> if TDC status is OK.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL49">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.wrstatus" href="#KM3io.wrstatus"><code>KM3io.wrstatus</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">wrstatus(f::SummaryFrame) -> Bool +</code></pre><p>Return <code>true</code> if White Rabbit status is OK.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL56">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.hasudptrailer" href="#KM3io.hasudptrailer"><code>KM3io.hasudptrailer</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">hasudptrailer(f::SummaryFrame) -> Bool +</code></pre><p>Return <code>true</code> if the UDP trailer is present.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL77">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.count_active_channels" href="#KM3io.count_active_channels"><code>KM3io.count_active_channels</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">count_active_channels(f::SummaryFrame) -> Int64 +</code></pre><p>Number of TDCs without high rate veto or FIFO almost full.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL84">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.count_fifostatus" href="#KM3io.count_fifostatus"><code>KM3io.count_fifostatus</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">count_fifostatus(f::SummaryFrame) -> Int64 +</code></pre><p>Number of TDCs with FIFO almost full.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL100">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.count_hrvstatus" href="#KM3io.count_hrvstatus"><code>KM3io.count_hrvstatus</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">count_hrvstatus(f::SummaryFrame) -> Int64 +</code></pre><p>Number of TDCs with high rate veto.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL116">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.status" href="#KM3io.status"><code>KM3io.status</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">status(f::SummaryFrame) -> Bool +</code></pre><p>Return <code>true</code> if TDC and White Rabbit status are OK.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL132">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.number_of_udp_packets_received" href="#KM3io.number_of_udp_packets_received"><code>KM3io.number_of_udp_packets_received</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">number_of_udp_packets_received(f::SummaryFrame) -> Int32 +</code></pre><p>Number of received UDP packets (excluding the trailer).</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL147">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.maximal_udp_sequence_number" href="#KM3io.maximal_udp_sequence_number"><code>KM3io.maximal_udp_sequence_number</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">maximal_udp_sequence_number(f::SummaryFrame) -> Int32 +</code></pre><p>Maximal sequence number of all received UDP packets.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/daq.jl#LL140">source</a></section></article><h3 id="Reconstruction"><a class="docs-heading-anchor" href="#Reconstruction">Reconstruction</a><a id="Reconstruction-1"></a><a class="docs-heading-anchor-permalink" href="#Reconstruction" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.besttrack" href="#KM3io.besttrack"><code>KM3io.besttrack</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">besttrack( + e::Evt, + rec_type::Integer, + rsr::RecStageRange +) -> Union{Missing, Trk} +</code></pre><p>Return the best reconstructed track for a given reconstruction type and reconstruction stage range. If no track could be found, <code>missing</code> is returned.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/reconstruction.jl#LL69">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.bestjppmuon" href="#KM3io.bestjppmuon"><code>KM3io.bestjppmuon</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">bestjppmuon(e::Evt) -> Union{Missing, Trk} +</code></pre><p>Returns the best reconstructed JMuon track of an event or <code>missing</code> if there are none.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/reconstruction.jl#LL89">source</a></section><section><div><pre><code class="language-julia hljs">bestjppmuon(trks::Vector{Trk}) -> Union{Missing, Trk} +</code></pre><p>Returns the best reconstructed JMuon track or <code>missing</code> if there are none.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/reconstruction.jl#LL93">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.bestjppshower" href="#KM3io.bestjppshower"><code>KM3io.bestjppshower</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">bestjppshower(e::Evt) -> Union{Missing, Trk} +</code></pre><p>Returns the best reconstructed JShower "track" of an event or <code>missing</code> if there are none.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/reconstruction.jl#LL97">source</a></section><section><div><pre><code class="language-julia hljs">bestjppshower(trks::Vector{Trk}) -> Union{Missing, Trk} +</code></pre><p>Returns the best reconstructed JShower "track" or <code>missing</code> if there are none.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/reconstruction.jl#LL101">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.bestaashower" href="#KM3io.bestaashower"><code>KM3io.bestaashower</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">bestaashower(e::Evt) -> Union{Missing, Trk} +</code></pre><p>Returns the best reconstructed aashower "track" of an event or <code>missing</code> if there are none.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/reconstruction.jl#LL105">source</a></section><section><div><pre><code class="language-julia hljs">bestaashower(trks::Vector{Trk}) -> Union{Missing, Trk} +</code></pre><p>Returns the best reconstructed aashower "track" or <code>missing</code> if there are none.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/reconstruction.jl#LL109">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.RecStageRange" href="#KM3io.RecStageRange"><code>KM3io.RecStageRange</code></a> — <span class="docstring-category">Type</span></header><section><div><pre><code class="language-julia hljs">struct RecStageRange{T<:Integer}</code></pre><p>This struct is used to represent a range of reconstruction stages. These are well-defined integers (see <a href="https://git.km3net.de/common/km3net-dataformat/-/blob/master/definitions/reconstruction.csv">KM3NeT Dataformat</a>) for each reconstruction algorithm and are stored in a vector named <code>rec_stages</code> of each <a href="#KM3io.Trk"><code>Trk</code></a>.</p><pre><code class="language-julia-repl hljs">julia> using KM3io + +julia> rsr = RecStageRange(KM3io.RECONSTRUCTION.JMUONBEGIN, KM3io.RECONSTRUCTION.JMUONEND) +RecStageRange{Int64}(0, 99) + +julia> KM3io.RECONSTRUCTION.JMUONSIMPLEX ∈ rsr +true + +julia> KM3io.RECONSTRUCTION.AASHOWERFITPREFIT ∈ rsr +false + +julia> 23 ∈ rsr +true + +julia> 523 ∈ rsr +false</code></pre><p><strong>Fields</strong></p><ul><li><p><code>lower::Integer</code></p></li><li><p><code>upper::Integer</code></p></li></ul></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/reconstruction.jl#LL1">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.hashistory" href="#KM3io.hashistory"><code>KM3io.hashistory</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">hashistory( + t::Trk, + rec_type::Integer, + rsr::RecStageRange +) -> Bool +</code></pre><p>Returns <code>true</code> if a track with a given <code>rec_type</code> contains all the reconstruction stages in <code>rsr::RecStageRange</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/reconstruction.jl#LL34">source</a></section><section><div><pre><code class="language-julia hljs">hashistory( + t::Trk, + rec_type::Integer, + rec_stage::Integer +) -> Bool +</code></pre><p>Returns <code>true</code> if a track with a given <code>rec_type</code> contains the <code>rec_stage</code>.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/reconstruction.jl#LL45">source</a></section></article><h3 id="Math"><a class="docs-heading-anchor" href="#Math">Math</a><a id="Math-1"></a><a class="docs-heading-anchor-permalink" href="#Math" title="Permalink"></a></h3><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="Base.angle" href="#Base.angle"><code>Base.angle</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">angle(d1::Direction, d2::Direction) -> Any +</code></pre><p>Calculate the angle between two vectors.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/math.jl#LL1">source</a></section></article><article class="docstring"><header><a class="docstring-article-toggle-button fa-solid fa-chevron-down" href="javascript:;" title="Collapse docstring"></a><a class="docstring-binding" id="KM3io.distance" href="#KM3io.distance"><code>KM3io.distance</code></a> — <span class="docstring-category">Function</span></header><section><div><pre><code class="language-julia hljs">distance(a::Position, b::Position) -> Any +</code></pre><p>Calculates the disance between two points.</p></div><a class="docs-sourcelink" target="_blank" href="https://git.km3net.de/common/KM3io.jl/blob/3dafa25e72a6bb8b436ea1ebcf0e2d61a3130555/src/tools/math.jl#LL9">source</a></section></article></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../examples/hdf5/">« HDF5</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/assets/documenter.js b/v0.16.5/assets/documenter.js new file mode 100644 index 00000000..f5311607 --- /dev/null +++ b/v0.16.5/assets/documenter.js @@ -0,0 +1,889 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/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.13.2/jquery-ui.min', + 'minisearch': 'https://cdn.jsdelivr.net/npm/minisearch@6.1.0/dist/umd/index.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.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.16.8/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/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(['jquery'], function($) { + +let timer = 0; +var isExpanded = true; + +$(document).on("click", ".docstring header", function () { + let articleToggleTitle = "Expand docstring"; + + debounce(() => { + if ($(this).siblings("section").is(":visible")) { + $(this) + .find(".docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + } else { + $(this) + .find(".docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + articleToggleTitle = "Collapse docstring"; + } + + $(this) + .find(".docstring-article-toggle-button") + .prop("title", articleToggleTitle); + $(this).siblings("section").slideToggle(); + }); +}); + +$(document).on("click", ".docs-article-toggle-button", function () { + let articleToggleTitle = "Expand docstring"; + let navArticleToggleTitle = "Expand all docstrings"; + + debounce(() => { + if (isExpanded) { + $(this).removeClass("fa-chevron-up").addClass("fa-chevron-down"); + $(".docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + + isExpanded = false; + + $(".docstring section").slideUp(); + } else { + $(this).removeClass("fa-chevron-down").addClass("fa-chevron-up"); + $(".docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + isExpanded = true; + articleToggleTitle = "Collapse docstring"; + navArticleToggleTitle = "Collapse all docstrings"; + + $(".docstring section").slideDown(); + } + + $(this).prop("title", navArticleToggleTitle); + $(".docstring-article-toggle-button").prop("title", articleToggleTitle); + }); +}); + +function debounce(callback, timeout = 300) { + if (Date.now() - timer > timeout) { + callback(); + } + + clearTimeout(timer); + + timer = Date.now(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fa-solid", "fa-copy"); + button.setAttribute("aria-label", "Copy this code block"); + button.setAttribute("title", "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-xmark"); + 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-xmark"); + }, 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', 'minisearch'], function($, minisearch) { + +// In general, most search related things will have "search" as a prefix. +// To get an in-depth about the thought process you can refer: https://hetarth02.hashnode.dev/series/gsoc + +let results = []; +let timer = undefined; + +let data = documenterSearchIndex["docs"].map((x, key) => { + x["id"] = key; // minisearch requires a unique for each object + return x; +}); + +// 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 +const stopWords = new Set([ + "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", +]); + +let index = new minisearch({ + fields: ["title", "text"], // fields to index for full-text search + storeFields: ["location", "title", "text", "category", "page"], // fields to return with search results + processTerm: (term) => { + let word = stopWords.has(term) ? null : term; + if (word) { + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + word = word + .replace(/^[^a-zA-Z0-9@!]+/, "") + .replace(/[^a-zA-Z0-9@!]+$/, ""); + } + + return word ?? null; + }, + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!", would not find anything if searching for "add!", only for the entire qualification + tokenize: (string) => string.split(/[\s\-\.]+/), + // options which will be applied during the search + searchOptions: { + boost: { title: 100 }, + fuzzy: 2, + processTerm: (term) => { + let word = stopWords.has(term) ? null : term; + if (word) { + word = word + .replace(/^[^a-zA-Z0-9@!]+/, "") + .replace(/[^a-zA-Z0-9@!]+$/, ""); + } + + return word ?? null; + }, + tokenize: (string) => string.split(/[\s\-\.]+/), + }, +}); + +index.addAll(data); + +let filters = [...new Set(data.map((x) => x.category))]; +var modal_filters = make_modal_body_filters(filters); +var filter_results = []; + +$(document).on("keyup", ".documenter-search-input", function (event) { + // Adding a debounce to prevent disruptions from super-speed typing! + debounce(() => update_search(filter_results), 300); +}); + +$(document).on("click", ".search-filter", function () { + if ($(this).hasClass("search-filter-selected")) { + $(this).removeClass("search-filter-selected"); + } else { + $(this).addClass("search-filter-selected"); + } + + // Adding a debounce to prevent disruptions from crazy clicking! + debounce(() => get_filters(), 300); +}); + +/** + * A debounce function, takes a function and an optional timeout in milliseconds + * + * @function callback + * @param {number} timeout + */ +function debounce(callback, timeout = 300) { + clearTimeout(timer); + timer = setTimeout(callback, timeout); +} + +/** + * Make/Update the search component + * + * @param {string[]} selected_filters + */ +function update_search(selected_filters = []) { + let initial_search_body = ` + <div class="has-text-centered my-5 py-5">Type something to get started!</div> + `; + + let querystring = $(".documenter-search-input").val(); + + if (querystring.trim()) { + results = index.search(querystring, { + filter: (result) => { + // Filtering results + if (selected_filters.length === 0) { + return result.score >= 1; + } else { + return ( + result.score >= 1 && selected_filters.includes(result.category) + ); + } + }, + }); + + let search_result_container = ``; + let search_divider = `<div class="search-divider w-100"></div>`; + + if (results.length) { + let links = []; + let count = 0; + let search_results = ""; + + results.forEach(function (result) { + if (result.location) { + // Checking for duplication of results for the same page + if (!links.includes(result.location)) { + search_results += make_search_result(result, querystring); + count++; + } + + links.push(result.location); + } + }); + + let result_count = `<div class="is-size-6">${count} result(s)</div>`; + + search_result_container = ` + <div class="is-flex is-flex-direction-column gap-2 is-align-items-flex-start"> + ${modal_filters} + ${search_divider} + ${result_count} + <div class="is-clipped w-100 is-flex is-flex-direction-column gap-2 is-align-items-flex-start has-text-justified mt-1"> + ${search_results} + </div> + </div> + `; + } else { + search_result_container = ` + <div class="is-flex is-flex-direction-column gap-2 is-align-items-flex-start"> + ${modal_filters} + ${search_divider} + <div class="is-size-6">0 result(s)</div> + </div> + <div class="has-text-centered my-5 py-5">No result found!</div> + `; + } + + if ($(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").removeClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(search_result_container); + } else { + filter_results = []; + modal_filters = make_modal_body_filters(filters, filter_results); + + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(initial_search_body); + } +} + +/** + * Make the modal filter html + * + * @param {string[]} filters + * @param {string[]} selected_filters + * @returns string + */ +function make_modal_body_filters(filters, selected_filters = []) { + let str = ``; + + filters.forEach((val) => { + if (selected_filters.includes(val)) { + str += `<a href="javascript:;" class="search-filter search-filter-selected"><span>${val}</span></a>`; + } else { + str += `<a href="javascript:;" class="search-filter"><span>${val}</span></a>`; + } + }); + + let filter_html = ` + <div class="is-flex gap-2 is-flex-wrap-wrap is-justify-content-flex-start is-align-items-center search-filters"> + <span class="is-size-6">Filters:</span> + ${str} + </div> + `; + + return filter_html; +} + +/** + * Make the result component given a minisearch result data object and the value of the search input as queryString. + * To view the result object structure, refer: https://lucaong.github.io/minisearch/modules/_minisearch_.html#searchresult + * + * @param {object} result + * @param {string} querystring + * @returns string + */ +function make_search_result(result, querystring) { + let search_divider = `<div class="search-divider w-100"></div>`; + let display_link = + result.location.slice(Math.max(0), Math.min(50, result.location.length)) + + (result.location.length > 30 ? "..." : ""); // To cut-off the link because it messes with the overflow of the whole div + + if (result.page !== "") { + display_link += ` (${result.page})`; + } + + let textindex = new RegExp(`\\b${querystring}\\b`, "i").exec(result.text); + let text = + textindex !== null + ? result.text.slice( + Math.max(textindex.index - 100, 0), + Math.min( + textindex.index + querystring.length + 100, + result.text.length + ) + ) + : ""; // cut-off text before and after from the match + + let display_result = text.length + ? "..." + + text.replace( + new RegExp(`\\b${querystring}\\b`, "i"), // For first occurrence + '<span class="search-result-highlight p-1">$&</span>' + ) + + "..." + : ""; // highlights the match + + let in_code = false; + if (!["page", "section"].includes(result.category.toLowerCase())) { + in_code = true; + } + + // We encode the full url to escape some special characters which can lead to broken links + let result_div = ` + <a href="${encodeURI( + documenterBaseURL + "/" + result.location + )}" class="search-result-link w-100 is-flex is-flex-direction-column gap-2 px-4 py-2"> + <div class="w-100 is-flex is-flex-wrap-wrap is-justify-content-space-between is-align-items-flex-start"> + <div class="search-result-title has-text-weight-bold ${ + in_code ? "search-result-code-title" : "" + }">${result.title}</div> + <div class="property-search-result-badge">${result.category}</div> + </div> + <p> + ${display_result} + </p> + <div + class="has-text-left" + style="font-size: smaller;" + title="${result.location}" + > + <i class="fas fa-link"></i> ${display_link} + </div> + </a> + ${search_divider} + `; + + return result_div; +} + +/** + * Get selected filters, remake the filter html and lastly update the search modal + */ +function get_filters() { + let ele = $(".search-filters .search-filter-selected").get(); + filter_results = ele.map((x) => $(x).text().toLowerCase()); + modal_filters = make_modal_body_filters(filters, filter_results); + update_search(filter_results); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +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($) { + +let search_modal_header = ` + <header class="modal-card-head gap-2 is-align-items-center is-justify-content-space-between w-100 px-3"> + <div class="field mb-0 w-100"> + <p class="control has-icons-right"> + <input class="input documenter-search-input" type="text" placeholder="Search" /> + <span class="icon is-small is-right has-text-primary-dark"> + <i class="fas fa-magnifying-glass"></i> + </span> + </p> + </div> + <div class="icon is-size-4 is-clickable close-search-modal"> + <i class="fas fa-times"></i> + </div> + </header> +`; + +let initial_search_body = ` + <div class="has-text-centered my-5 py-5">Type something to get started!</div> +`; + +let search_modal_footer = ` + <footer class="modal-card-foot"> + <span> + <kbd class="search-modal-key-hints">Ctrl</kbd> + + <kbd class="search-modal-key-hints">/</kbd> to search + </span> + <span class="ml-3"> <kbd class="search-modal-key-hints">esc</kbd> to close </span> + </footer> +`; + +$(document.body).append( + ` + <div class="modal" id="search-modal"> + <div class="modal-background"></div> + <div class="modal-card search-min-width-50 search-min-height-100 is-justify-content-center"> + ${search_modal_header} + <section class="modal-card-body is-flex is-flex-direction-column is-justify-content-center gap-4 search-modal-card-body"> + ${initial_search_body} + </section> + ${search_modal_footer} + </div> + </div> + ` +); + +document.querySelector(".docs-search-query").addEventListener("click", () => { + openModal(); +}); + +document.querySelector(".close-search-modal").addEventListener("click", () => { + closeModal(); +}); + +$(document).on("click", ".search-result-link", function () { + closeModal(); +}); + +document.addEventListener("keydown", (event) => { + if ((event.ctrlKey || event.metaKey) && event.key === "/") { + openModal(); + } else if (event.key === "Escape") { + closeModal(); + } + + return false; +}); + +// Functions to open and close a modal +function openModal() { + let searchModal = document.querySelector("#search-modal"); + + searchModal.classList.add("is-active"); + document.querySelector(".documenter-search-input").focus(); +} + +function closeModal() { + let searchModal = document.querySelector("#search-modal"); + let initial_search_body = ` + <div class="has-text-centered my-5 py-5">Type something to get started!</div> + `; + + searchModal.classList.remove("is-active"); + document.querySelector(".documenter-search-input").blur(); + + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".documenter-search-input").val(""); + $(".search-modal-card-body").html(initial_search_body); +} + +document + .querySelector("#search-modal .modal-background") + .addEventListener("click", () => { + closeModal(); + }); + +}) +//////////////////////////////////////////////////////////////////////////////// +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($) { + +// Theme picker setup +$(document).ready(function () { + // onchange callback + $("#documenter-themepicker").change(function themepick_callback(ev) { + var themename = $("#documenter-themepicker option:selected").attr("value"); + if (themename === "auto") { + // set_theme(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); + window.localStorage.removeItem("documenter-theme"); + } else { + // set_theme(themename); + window.localStorage.setItem("documenter-theme", themename); + } + // We re-use the global function from themeswap.js to actually do the swapping. + set_theme_from_local_storage(); + }); + + // 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; + }); + } + } +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +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 = $( + "<option value='#' selected='selected'>" + + DOCUMENTER_CURRENT_VERSION + + "</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 = $( + "<option value='" + version_url + "'>" + each + "</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/v0.16.5/assets/logo.svg b/v0.16.5/assets/logo.svg new file mode 100644 index 00000000..a71e409c --- /dev/null +++ b/v0.16.5/assets/logo.svg @@ -0,0 +1,202 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="640" + height="150" + viewBox="0 0 169.333 39.688" + version="1.1" + id="svg34" + sodipodi:docname="KM3io.svg" + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title321">KM3io.jl logo</title> + <sodipodi:namedview + id="namedview36" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + showgrid="false" + inkscape:zoom="3.81875" + inkscape:cx="275.61375" + inkscape:cy="-18.461539" + inkscape:window-width="3832" + inkscape:window-height="2134" + inkscape:window-x="3840" + inkscape:window-y="18" + inkscape:window-maximized="1" + inkscape:current-layer="g32" /> + <defs + id="defs5"> + <clipPath + id="b" + clipPathUnits="userSpaceOnUse"> + <use + xlink:href="#a" + id="use2" /> + </clipPath> + </defs> + <path + d="m 41.233,9.632 h 5.445 v 8.3 l 9.788,-8.3 h 4.204 l -11.045,9.339 14.008,12.75 H 57.07 L 46.678,22.26 v 9.463 h -5.445 z m 23.982,0 h 5.274 l 7.632,15.094 7.54,-15.094 h 5.165 v 22.09 H 85.412 V 17.326 L 78.2,31.722 H 76.106 L 68.644,17.156 v 14.566 h -3.428 z m 34.717,10.471 q 1.194,-0.124 2.171,-0.496 0.993,-0.388 1.707,-0.978 0.713,-0.605 1.101,-1.396 0.388,-0.806 0.388,-1.753 0,-0.605 -0.217,-1.132 -0.202,-0.543 -0.574,-0.93 -0.373,-0.388 -0.9,-0.606 -0.527,-0.232 -1.163,-0.232 -0.45,0 -0.993,0.232 -0.543,0.233 -1.086,0.636 -0.527,0.388 -1.024,0.916 -0.496,0.527 -0.853,1.132 l -1.955,-0.884 q 0.388,-1.055 1.024,-1.97 0.636,-0.931 1.52,-1.614 0.9,-0.698 2.033,-1.085 1.147,-0.404 2.544,-0.404 1.334,0 2.497,0.373 1.163,0.356 2.032,1.008 0.869,0.651 1.365,1.536 0.512,0.884 0.512,1.923 0,0.45 -0.233,1.024 -0.217,0.558 -0.62,1.148 -0.388,0.59 -0.946,1.179 -0.559,0.59 -1.21,1.101 0.884,0.388 1.644,1.008 0.776,0.605 1.334,1.35 0.559,0.745 0.869,1.582 0.326,0.838 0.326,1.66 0,1.955 -0.807,3.413 -0.791,1.458 -2.187,2.435 -1.396,0.977 -3.304,1.458 -1.893,0.481 -4.08,0.481 -1.07,0 -1.924,-0.155 -0.853,-0.155 -1.458,-0.434 -0.59,-0.295 -0.9,-0.683 -0.31,-0.403 -0.31,-0.868 0,-0.466 0.248,-0.76 0.264,-0.31 0.652,-0.481 0.388,-0.187 0.838,-0.264 0.45,-0.078 0.837,-0.078 0.822,0 1.443,0.233 0.636,0.233 1.148,0.512 0.512,0.28 0.93,0.512 0.435,0.232 0.885,0.232 0.884,0 1.551,-0.325 0.683,-0.326 1.132,-0.869 0.466,-0.543 0.698,-1.241 0.233,-0.714 0.233,-1.49 0,-0.992 -0.419,-1.83 -0.419,-0.853 -1.272,-1.473 -0.853,-0.636 -2.156,-0.993 -1.303,-0.357 -3.071,-0.357 z m 16.396,-4.126 5.042,-1.396 v 17.14 h -5.042 z m -0.217,-6.22 q 0,-0.512 0.202,-0.962 0.217,-0.45 0.59,-0.776 0.371,-0.341 0.868,-0.527 0.496,-0.202 1.055,-0.202 0.558,0 1.054,0.202 0.497,0.186 0.87,0.527 0.371,0.326 0.589,0.776 0.217,0.45 0.217,0.961 0,0.512 -0.217,0.962 -0.218,0.45 -0.59,0.776 -0.372,0.326 -0.869,0.527 -0.496,0.186 -1.054,0.186 -0.559,0 -1.055,-0.186 -0.497,-0.201 -0.869,-0.527 -0.372,-0.326 -0.59,-0.776 -0.201,-0.45 -0.201,-0.962 z m 17.901,22.275 q -1.985,0 -3.676,-0.651 -1.691,-0.652 -2.917,-1.784 -1.225,-1.148 -1.923,-2.7 -0.683,-1.55 -0.683,-3.335 0,-1.923 0.683,-3.536 0.698,-1.63 1.923,-2.793 1.226,-1.179 2.901,-1.83 1.691,-0.667 3.677,-0.667 1.985,0 3.676,0.651 1.706,0.636 2.932,1.769 1.24,1.132 1.939,2.652 0.698,1.52 0.698,3.273 0,1.846 -0.698,3.475 -0.698,1.629 -1.94,2.855 -1.225,1.21 -2.915,1.923 -1.691,0.698 -3.677,0.698 z M 134.602,30 q 0.698,0 1.272,-0.45 0.59,-0.45 1.008,-1.21 0.419,-0.76 0.651,-1.753 0.249,-0.993 0.249,-2.078 0,-1.598 -0.233,-3.01 -0.233,-1.411 -0.776,-2.466 -0.527,-1.055 -1.396,-1.676 -0.853,-0.62 -2.094,-0.62 -0.59,0 -1.148,0.45 -0.543,0.434 -0.962,1.179 -0.418,0.744 -0.682,1.722 -0.248,0.977 -0.248,2.047 0,1.614 0.294,3.04 0.295,1.428 0.854,2.498 0.574,1.07 1.38,1.706 0.807,0.621 1.83,0.621 z m 10.92,-0.17 q 0,-0.466 0.17,-0.87 0.172,-0.418 0.466,-0.713 0.31,-0.31 0.714,-0.48 0.419,-0.187 0.884,-0.187 0.465,0 0.884,0.186 0.42,0.17 0.714,0.481 0.31,0.295 0.48,0.714 0.187,0.403 0.187,0.868 0,0.466 -0.186,0.885 -0.17,0.403 -0.481,0.713 -0.295,0.295 -0.714,0.465 -0.419,0.171 -0.884,0.171 -0.465,0 -0.884,-0.17 -0.403,-0.171 -0.714,-0.466 -0.294,-0.31 -0.465,-0.713 -0.17,-0.42 -0.17,-0.885 z" + id="path7" + style="font-size:31.7692px;line-height:1.25;font-family:'Tamil MN';-inkscape-font-specification:'Tamil MN';letter-spacing:0;word-spacing:0;stroke-width:0.794234" /> + <path + d="m 158.816,31.722 q 0,2.218 -0.512,3.568 -0.496,1.365 -1.411,2.11 -0.915,0.76 -2.203,1.008 -1.287,0.263 -2.854,0.263 -1.055,0 -1.877,-0.186 -0.822,-0.17 -1.38,-0.48 -0.56,-0.31 -0.838,-0.73 -0.295,-0.403 -0.295,-0.853 0,-0.791 0.62,-1.318 0.62,-0.528 1.691,-0.528 0.403,0 0.73,0.124 0.31,0.124 0.558,0.31 0.248,0.202 0.45,0.42 0.186,0.232 0.325,0.434 0.357,0.465 0.59,0.62 0.248,0.155 0.45,0.155 0.217,0 0.387,-0.108 0.171,-0.109 0.28,-0.388 0.108,-0.28 0.155,-0.745 0.062,-0.465 0.062,-1.194 V 15.977 l 5.072,-1.396 z m -5.29,-21.966 q 0,-0.511 0.202,-0.961 0.217,-0.45 0.59,-0.776 0.372,-0.341 0.868,-0.527 0.497,-0.202 1.055,-0.202 0.559,0 1.055,0.202 0.497,0.186 0.869,0.527 0.372,0.326 0.59,0.776 0.216,0.45 0.216,0.961 0,0.512 -0.217,0.962 -0.217,0.45 -0.59,0.776 -0.371,0.326 -0.868,0.527 -0.496,0.186 -1.055,0.186 -0.558,0 -1.055,-0.186 -0.496,-0.201 -0.868,-0.527 -0.373,-0.326 -0.59,-0.776 -0.201,-0.45 -0.201,-0.962 z m 14.489,21.966 h -5.01 V 8.376 l 5.01,-1.396 z" + id="path9" + style="font-size:31.7692px;line-height:1.25;font-family:'Tamil MN';-inkscape-font-specification:'Tamil MN';letter-spacing:0;word-spacing:0;stroke-width:0.794234" /> + <path + style="fill:#3f61d7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.194319" + d="m 122.12509,9.5034651 c 0,1.8882749 -1.51491,3.4179689 -3.38326,3.4179689 -1.86836,0 -3.38328,-1.529694 -3.38328,-3.4179689 0,-1.887515 1.51492,-3.4179718 3.38328,-3.4179718 1.86835,0 3.38326,1.5304568 3.38326,3.4179718" + id="path371" /> + <g + clip-path="url(#b)" + transform="translate(-22.078 -88.72)" + id="g32"> + <circle + id="a" + cx="39.401" + cy="106.043" + r="16" + style="fill:#b3b3b3;stroke-width:.350949;stroke-linejoin:round" /> + <path + style="fill:#3f61d7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.234504" + d="m 44.326967,123.25614 c 0,1.88828 -2.206268,3.41797 -4.927276,3.41797 -2.721021,0 -4.927304,-1.52969 -4.927304,-3.41797 0,-1.88751 2.206283,-3.41797 4.927304,-3.41797 2.721008,0 4.927276,1.53046 4.927276,3.41797" + id="path371-3" /> + <path + d="m 48.228135,113.5 a 3.675,3.675 0 1 1 3.678,-3.675 3.679,3.679 0 0 1 -3.678,3.675 z" + class="cls-3" + style="fill:#ca3c32;stroke-width:0.412882" + id="path14" /> + <path + d="m 57.060135,113.5 a 3.675,3.675 0 1 1 3.678,-3.675 3.679,3.679 0 0 1 -3.678,3.675 z" + class="cls-4" + style="fill:#9259a3;stroke-width:0.412882" + id="path16" /> + <path + d="m 52.650135,105.85 a 3.675,3.675 0 1 1 3.674,-3.675 3.67,3.67 0 0 1 -3.674,3.674 z" + class="cls-5" + style="fill:#399746;stroke-width:0.412882" + id="path18" /> + <path + d="m 21.731135,113.5 a 3.675,3.675 0 1 1 3.68,-3.675 3.679,3.679 0 0 1 -3.68,3.675 z" + class="cls-3" + style="fill:#ca3c32;stroke-width:0.412882" + id="path20" /> + <path + d="m 30.564135,113.5 a 3.675,3.675 0 1 1 3.678,-3.675 3.679,3.679 0 0 1 -3.678,3.675 z" + class="cls-4" + style="fill:#9259a3;stroke-width:0.412882" + id="path22" /> + <path + d="m 30.951598,98.056224 a 3.675,2.569137 0 1 1 3.678,-2.569136 3.679,2.5719333 0 0 1 -3.678,2.569136 z" + class="cls-4" + style="fill:#9259a3;stroke-width:0.345216" + id="path22-3" /> + <path + d="m 26.150126,119.0792 a 3.675,2.569137 0 1 1 3.678,-2.56914 3.679,2.5719333 0 0 1 -3.678,2.56914 z" + class="cls-4" + style="fill:#9259a3;stroke-width:0.345216" + id="path22-3-9" /> + <path + d="m 52.74135,119.08185 a 3.675,2.569137 0 1 1 3.678,-2.56914 3.679,2.5719333 0 0 1 -3.678,2.56914 z" + class="cls-4" + style="fill:#9259a3;stroke-width:0.345216" + id="path22-3-9-1" /> + <path + d="m 26.154135,105.85 a 3.675,3.675 0 1 1 3.674,-3.675 3.67,3.67 0 0 1 -3.674,3.674 z" + class="cls-5" + style="fill:#399746;stroke-width:0.412882" + id="path24" /> + <path + d="m 34.981135,98.5 a 3.675,3.675 0 1 0 3.68,3.675 3.679,3.679 0 0 0 -3.68,-3.675 z" + class="cls-3" + style="fill:#ca3c32;stroke-width:0.412882" + id="path26" /> + <path + d="m 48.402688,92.969702 a 3.675,2.5691377 0 1 0 3.68,2.569141 3.679,2.571934 0 0 0 -3.68,-2.569141 z" + class="cls-3" + style="fill:#ca3c32;stroke-width:0.345216" + id="path26-5" /> + <path + d="m 34.981087,113.94093 a 3.675,2.5691377 0 1 0 3.68,2.56914 3.679,2.571934 0 0 0 -3.68,-2.56914 z" + class="cls-3" + style="fill:#ca3c32;stroke-width:0.345216" + id="path26-5-6" /> + <path + d="m 43.813135,98.5 a 3.675,3.675 0 1 0 3.679,3.675 3.679,3.679 0 0 0 -3.679,-3.675 z" + class="cls-4" + style="fill:#9259a3;stroke-width:0.412882" + id="path28" /> + <path + d="m 39.399135,106.15 a 3.675,3.675 0 1 0 3.675,3.675 3.67,3.67 0 0 0 -3.675,-3.674 z" + class="cls-5" + style="fill:#399746;stroke-width:0.412882" + id="path30" /> + <path + d="m 39.710811,92.917932 a 3.675,2.5691842 0 1 0 3.675,2.569184 3.67,2.5656887 0 0 0 -3.675,-2.568485 z" + class="cls-5" + style="fill:#399746;stroke-width:0.345219" + id="path30-7" /> + <path + d="m 43.817196,113.94093 a 3.675,2.5691842 0 1 0 3.675,2.56919 3.67,2.5656887 0 0 0 -3.675,-2.56849 z" + class="cls-5" + style="fill:#399746;stroke-width:0.345219" + id="path30-7-2" /> + </g> + <metadata + id="metadata319"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:title>KM3io.jl logo</dc:title> + <dc:date>2023-04-12</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Johannes Schumann</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>KM3NeT </dc:title> + </cc:Agent> + </dc:rights> + <dc:publisher> + <cc:Agent> + <dc:title>KM3NeT </dc:title> + </cc:Agent> + </dc:publisher> + <dc:language>en</dc:language> + <dc:subject> + <rdf:Bag> + <rdf:li>neutrino km3net io dataformat root</rdf:li> + </rdf:Bag> + </dc:subject> + <cc:license + rdf:resource="http://creativecommons.org/licenses/by/4.0/" /> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/by/4.0/"> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Notice" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Attribution" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + </cc:License> + </rdf:RDF> + </metadata> +</svg> diff --git a/v0.16.5/assets/themes/documenter-dark.css b/v0.16.5/assets/themes/documenter-dark.css new file mode 100644 index 00000000..9f5449f4 --- /dev/null +++ b/v0.16.5/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +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:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.5em - 1px);padding-left:calc(0.75em - 1px);padding-right:calc(0.75em - 1px);padding-top:calc(0.5em - 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}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{-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 .pagination:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb: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{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:9999px;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:9999px;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 .navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}/*! minireset.css v0.0.6 | 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,video{height:auto;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:inherit}.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-primary-light{color:#f1f5f9 !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#cddbe9 !important}.has-background-primary-light{background-color:#f1f5f9 !important}.has-text-primary-dark{color:#4d7eb2 !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#7198c1 !important}.has-background-primary-dark{background-color:#4d7eb2 !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-link-light{color:#edfdf9 !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c0f6ec !important}.has-background-link-light{background-color:#edfdf9 !important}.has-text-link-dark{color:#15987e !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#1bc5a4 !important}.has-background-link-dark{background-color:#15987e !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-info-light{color:#ebf7ff !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#b9e2fe !important}.has-background-info-light{background-color:#ebf7ff !important}.has-text-info-dark{color:#0e9dfb !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#40b1fc !important}.has-background-info-dark{background-color:#0e9dfb !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-success-light{color:#ebfff3 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#b8ffd6 !important}.has-background-success-light{background-color:#ebfff3 !important}.has-text-success-dark{color:#00eb64 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#1fff7e !important}.has-background-success-dark{background-color:#00eb64 !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-warning-light{color:#fffaeb !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#ffedb8 !important}.has-background-warning-light{background-color:#fffaeb !important}.has-text-warning-dark{color:#d19c00 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#ffbf05 !important}.has-background-warning-dark{background-color:#d19c00 !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-danger-light{color:#fdeeec !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#fac3bd !important}.has-background-danger-light{background-color:#fdeeec !important}.has-text-danger-dark{color:#ec311d !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#f05c4c !important}.has-background-danger-dark{background-color:#ec311d !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}.is-flex-direction-row{flex-direction:row !important}.is-flex-direction-row-reverse{flex-direction:row-reverse !important}.is-flex-direction-column{flex-direction:column !important}.is-flex-direction-column-reverse{flex-direction:column-reverse !important}.is-flex-wrap-nowrap{flex-wrap:nowrap !important}.is-flex-wrap-wrap{flex-wrap:wrap !important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse !important}.is-justify-content-flex-start{justify-content:flex-start !important}.is-justify-content-flex-end{justify-content:flex-end !important}.is-justify-content-center{justify-content:center !important}.is-justify-content-space-between{justify-content:space-between !important}.is-justify-content-space-around{justify-content:space-around !important}.is-justify-content-space-evenly{justify-content:space-evenly !important}.is-justify-content-start{justify-content:start !important}.is-justify-content-end{justify-content:end !important}.is-justify-content-left{justify-content:left !important}.is-justify-content-right{justify-content:right !important}.is-align-content-flex-start{align-content:flex-start !important}.is-align-content-flex-end{align-content:flex-end !important}.is-align-content-center{align-content:center !important}.is-align-content-space-between{align-content:space-between !important}.is-align-content-space-around{align-content:space-around !important}.is-align-content-space-evenly{align-content:space-evenly !important}.is-align-content-stretch{align-content:stretch !important}.is-align-content-start{align-content:start !important}.is-align-content-end{align-content:end !important}.is-align-content-baseline{align-content:baseline !important}.is-align-items-stretch{align-items:stretch !important}.is-align-items-flex-start{align-items:flex-start !important}.is-align-items-flex-end{align-items:flex-end !important}.is-align-items-center{align-items:center !important}.is-align-items-baseline{align-items:baseline !important}.is-align-items-start{align-items:start !important}.is-align-items-end{align-items:end !important}.is-align-items-self-start{align-items:self-start !important}.is-align-items-self-end{align-items:self-end !important}.is-align-self-auto{align-self:auto !important}.is-align-self-flex-start{align-self:flex-start !important}.is-align-self-flex-end{align-self:flex-end !important}.is-align-self-center{align-self:center !important}.is-align-self-baseline{align-self:baseline !important}.is-align-self-stretch{align-self:stretch !important}.is-flex-grow-0{flex-grow:0 !important}.is-flex-grow-1{flex-grow:1 !important}.is-flex-grow-2{flex-grow:2 !important}.is-flex-grow-3{flex-grow:3 !important}.is-flex-grow-4{flex-grow:4 !important}.is-flex-grow-5{flex-grow:5 !important}.is-flex-shrink-0{flex-shrink:0 !important}.is-flex-shrink-1{flex-shrink:1 !important}.is-flex-shrink-2{flex-shrink:2 !important}.is-flex-shrink-3{flex-shrink:3 !important}.is-flex-shrink-4{flex-shrink:4 !important}.is-flex-shrink-5{flex-shrink:5 !important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-clickable{cursor:pointer !important;pointer-events:all !important}.is-clipped{overflow:hidden !important}.is-relative{position:relative !important}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:.25rem !important}.mt-1{margin-top:.25rem !important}.mr-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ml-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-2{margin:.5rem !important}.mt-2{margin-top:.5rem !important}.mr-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ml-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-3{margin:.75rem !important}.mt-3{margin-top:.75rem !important}.mr-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ml-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-6{margin:3rem !important}.mt-6{margin-top:3rem !important}.mr-6{margin-right:3rem !important}.mb-6{margin-bottom:3rem !important}.ml-6{margin-left:3rem !important}.mx-6{margin-left:3rem !important;margin-right:3rem !important}.my-6{margin-top:3rem !important;margin-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:.25rem !important}.pt-1{padding-top:.25rem !important}.pr-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.pl-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-2{padding:.5rem !important}.pt-2{padding-top:.5rem !important}.pr-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.pl-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-3{padding:.75rem !important}.pt-3{padding-top:.75rem !important}.pr-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.pl-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:3rem !important}.pt-6{padding-top:3rem !important}.pr-6{padding-right:3rem !important}.pb-6{padding-bottom:3rem !important}.pl-6{padding-left:3rem !important}.px-6{padding-left:3rem !important;padding-right:3rem !important}.py-6{padding-top:3rem !important;padding-bottom:3rem !important}.p-auto{padding:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-right:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-left:auto !important}.px-auto{padding-left:auto !important;padding-right:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !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,html.theme--documenter-dark .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}.is-underlined{text-decoration:underline !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}}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 optgroup,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:inherit}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 0.5em 1em -0.125em 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.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(0.5em - 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.5em - 1px);margin-right:.25em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 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-ghost{background:none;border-color:rgba(0,0,0,0);color:#1abc9c;text-decoration:none}html.theme--documenter-dark .button.is-ghost:hover,html.theme--documenter-dark .button.is-ghost.is-hovered{color:#1abc9c;text-decoration:underline}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:#fff;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:#0a0a0a;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:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:#ecf0f1;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);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:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !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:rgba(0,0,0,0.7)}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 rgba(0,0,0,0.7) rgba(0,0,0,0.7) !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:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7);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:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#fff}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:#fff}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:#fff}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:#fff}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:#282f2f;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#fff;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:#f2f2f2}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:#fff;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 #fff #fff !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:#fff}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 #fff #fff !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:#fff;color:#fff}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:#fff;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:#fff;box-shadow:none;color:#fff}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:#375a7f;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-primary.is-light,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink{background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .button.is-primary.is-light:hover,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-light.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e8eef5;border-color:transparent;color:#4d7eb2}html.theme--documenter-dark .button.is-primary.is-light:active,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-light.is-active,html.theme--documenter-dark .docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#dfe8f1;border-color:transparent;color:#4d7eb2}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:#1abc9c;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-link.is-light{background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .button.is-link.is-light:hover,html.theme--documenter-dark .button.is-link.is-light.is-hovered{background-color:#e2fbf6;border-color:transparent;color:#15987e}html.theme--documenter-dark .button.is-link.is-light:active,html.theme--documenter-dark .button.is-link.is-light.is-active{background-color:#d7f9f3;border-color:transparent;color:#15987e}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:#024c7d;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-info.is-light{background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .button.is-info.is-light:hover,html.theme--documenter-dark .button.is-info.is-light.is-hovered{background-color:#def2fe;border-color:transparent;color:#0e9dfb}html.theme--documenter-dark .button.is-info.is-light:active,html.theme--documenter-dark .button.is-info.is-light.is-active{background-color:#d2edfe;border-color:transparent;color:#0e9dfb}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:#008438;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-success.is-light{background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .button.is-success.is-light:hover,html.theme--documenter-dark .button.is-success.is-light.is-hovered{background-color:#deffec;border-color:transparent;color:#00eb64}html.theme--documenter-dark .button.is-success.is-light:active,html.theme--documenter-dark .button.is-success.is-light.is-active{background-color:#d1ffe5;border-color:transparent;color:#00eb64}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:#ad8100;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-warning.is-light{background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .button.is-warning.is-light:hover,html.theme--documenter-dark .button.is-warning.is-light.is-hovered{background-color:#fff7de;border-color:transparent;color:#d19c00}html.theme--documenter-dark .button.is-warning.is-light:active,html.theme--documenter-dark .button.is-warning.is-light.is-active{background-color:#fff3d1;border-color:transparent;color:#d19c00}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:#9e1b0d;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-danger.is-light{background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .button.is-danger.is-light:hover,html.theme--documenter-dark .button.is-danger.is-light.is-hovered{background-color:#fce3e0;border-color:transparent;color:#ec311d}html.theme--documenter-dark .button.is-danger.is-light:active,html.theme--documenter-dark .button.is-danger.is-light.is-active{background-color:#fcd8d5;border-color:transparent;color:#ec311d}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}html.theme--documenter-dark .button.is-small:not(.is-rounded),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:3px}html.theme--documenter-dark .button.is-normal{font-size:1rem}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:#5e6d6f;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 * 0.5));top:calc(50% - (1em * 0.5));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:9999px;padding-left:calc(1em + 0.25em);padding-right:calc(1em + 0.25em)}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:.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){font-size:.75rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:3px}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}@media screen and (max-width: 768px){html.theme--documenter-dark .button.is-responsive.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}html.theme--documenter-dark .button.is-responsive,html.theme--documenter-dark .button.is-responsive.is-normal{font-size:.65625rem}html.theme--documenter-dark .button.is-responsive.is-medium{font-size:.75rem}html.theme--documenter-dark .button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .button.is-responsive.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}html.theme--documenter-dark .button.is-responsive,html.theme--documenter-dark .button.is-responsive.is-normal{font-size:.75rem}html.theme--documenter-dark .button.is-responsive.is-medium{font-size:1rem}html.theme--documenter-dark .button.is-responsive.is-large{font-size:1.25rem}}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}html.theme--documenter-dark .container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container:not(.is-max-desktop):not(.is-max-widescreen){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:inherit}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:.75rem}html.theme--documenter-dark .content.is-normal{font-size:1rem}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 .icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}html.theme--documenter-dark .icon-text .icon{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .icon-text .icon:not(:last-child){margin-right:.25em}html.theme--documenter-dark .icon-text .icon:not(:first-child){margin-left:.25em}html.theme--documenter-dark div.icon-text{display:flex}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:9999px}html.theme--documenter-dark .image.is-fullwidth,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}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;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}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{right:.5rem;position:absolute;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:rgba(0,0,0,0.7)}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#fff}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-primary.is-light,html.theme--documenter-dark .docstring>section>a.notification.is-light.docs-sourcelink{background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-link.is-light{background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-info.is-light{background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-success.is-light{background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-warning.is-light{background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .notification.is-danger.is-light{background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#343c3d}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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 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%, #343c3d 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#343c3d;background-image:linear-gradient(to right, #fff 30%, #343c3d 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:indeterminate::-ms-fill{animation-name:none}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#fff}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 td.is-vcentered,html.theme--documenter-dark .table th.is-vcentered{vertical-align:middle}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:.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:1rem}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-top-left-radius:0;border-bottom-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-top-right-radius:0;border-bottom-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:.75rem;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:.25rem;margin-right:-.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:rgba(0,0,0,0.7)}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:#fff}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-primary.is-light:not(body),html.theme--documenter-dark .content kbd.is-primary.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f1f5f9;color:#4d7eb2}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-link.is-light:not(body),html.theme--documenter-dark .content kbd.is-link.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#edfdf9;color:#15987e}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-info.is-light:not(body),html.theme--documenter-dark .content kbd.is-info.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#ebf7ff;color:#0e9dfb}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-success.is-light:not(body),html.theme--documenter-dark .content kbd.is-success.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#ebfff3;color:#00eb64}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-warning.is-light:not(body),html.theme--documenter-dark .content kbd.is-warning.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fffaeb;color:#d19c00}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-danger.is-light:not(body),html.theme--documenter-dark .content kbd.is-danger.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#fdeeec;color:#ec311d}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:.75rem}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:1rem}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:-.375em;margin-right:.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:.1875em;margin-right:-.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:-.375em;margin-right:-.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:9999px}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: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:1rem}html.theme--documenter-dark .title.is-7{font-size:.75rem}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:1rem}html.theme--documenter-dark .subtitle.is-7{font-size:.75rem}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:9999px;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:#868c98}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:#868c98}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:#868c98}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:#868c98}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 0.0625em 0.125em rgba(10,10,10,0.05);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:.75rem}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:9999px;padding-left:calc(calc(0.75em - 1px) + 0.375em);padding-right:calc(calc(0.75em - 1px) + 0.375em)}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:calc(0.75em - 1px);resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:40em;min-height:8em}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,html.theme--documenter-dark .radio input[disabled],html.theme--documenter-dark .checkbox input[disabled]{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:.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.5em}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:9999px;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:.75rem}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 !important;opacity:0.5}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:.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:.75rem}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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:#fff}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:#fff}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:#fff}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:#fff}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:.75rem}html.theme--documenter-dark .file.is-normal{font-size:1rem}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:#232829;color:#f2f2f2}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#1d2122;color:#f2f2f2}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:#282f2f;color:#fff}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:inherit;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#f2f2f2;display:block;font-size:1rem;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:.75rem}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:.75rem;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:.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:.75rem;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:.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}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:#282f2f}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:.75rem}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:#5e6d6f;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;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.5em}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.5em}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:.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:.75rem}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:1rem;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:.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:.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:.75rem}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;border-radius:.25rem;box-shadow:#171717;color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-footer:first-child,html.theme--documenter-dark .card-content:first-child,html.theme--documenter-dark .card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--documenter-dark .card-footer:last-child,html.theme--documenter-dark .card-content:last-child,html.theme--documenter-dark .card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 0.125em 0.25em 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:0.75rem 1rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:0.75rem 1rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--documenter-dark .card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}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 #ededed;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 #ededed}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:#171717;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:inherit;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:#ededed;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 .media{align-items:flex-start;display:flex;text-align:inherit}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:.5rem}html.theme--documenter-dark .media .media .media{padding-top:.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:.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:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:1rem}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}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:1rem}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:.75rem}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}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}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1}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:#fff}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f1f5f9}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:#4d7eb2}html.theme--documenter-dark .message.is-link{background-color:#edfdf9}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:#15987e}html.theme--documenter-dark .message.is-info{background-color:#ebf7ff}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:#0e9dfb}html.theme--documenter-dark .message.is-success{background-color:#ebfff3}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:#00eb64}html.theme--documenter-dark .message.is-warning{background-color:#fffaeb}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:#d19c00}html.theme--documenter-dark .message.is-danger{background-color:#fdeeec}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:#ec311d}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:.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){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:.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:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#fff}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:#fff}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:#fff}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:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#fff}@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:#fff}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:#fff}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:#fff}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:#fff}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:#fff}}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;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;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{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.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:1rem;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}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:9999px}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:9999px}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.5em}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-previous.is-disabled,html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-next.is-disabled,html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-link.is-disabled{background-color:#5e6d6f;border-color:#5e6d6f;box-shadow:none;color:#fff;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:.75em;padding-right:.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}html.theme--documenter-dark .pagination-list li{list-style:none}@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,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{margin-bottom:0;margin-top:0}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;margin-bottom:0;margin-top:0}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{border-radius:8px;box-shadow:#171717;font-size:1rem}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}html.theme--documenter-dark .panel.is-white .panel-block.is-active .panel-icon{color:#fff}html.theme--documenter-dark .panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}html.theme--documenter-dark .panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}html.theme--documenter-dark .panel.is-light .panel-heading{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .panel.is-light .panel-tabs a.is-active{border-bottom-color:#ecf0f1}html.theme--documenter-dark .panel.is-light .panel-block.is-active .panel-icon{color:#ecf0f1}html.theme--documenter-dark .panel.is-dark .panel-heading,html.theme--documenter-dark .content kbd.panel .panel-heading{background-color:#282f2f;color:#fff}html.theme--documenter-dark .panel.is-dark .panel-tabs a.is-active,html.theme--documenter-dark .content kbd.panel .panel-tabs a.is-active{border-bottom-color:#282f2f}html.theme--documenter-dark .panel.is-dark .panel-block.is-active .panel-icon,html.theme--documenter-dark .content kbd.panel .panel-block.is-active .panel-icon{color:#282f2f}html.theme--documenter-dark .panel.is-primary .panel-heading,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#375a7f;color:#fff}html.theme--documenter-dark .panel.is-primary .panel-tabs a.is-active,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#375a7f}html.theme--documenter-dark .panel.is-primary .panel-block.is-active .panel-icon,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#375a7f}html.theme--documenter-dark .panel.is-link .panel-heading{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .panel.is-link .panel-tabs a.is-active{border-bottom-color:#1abc9c}html.theme--documenter-dark .panel.is-link .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark .panel.is-info .panel-heading{background-color:#024c7d;color:#fff}html.theme--documenter-dark .panel.is-info .panel-tabs a.is-active{border-bottom-color:#024c7d}html.theme--documenter-dark .panel.is-info .panel-block.is-active .panel-icon{color:#024c7d}html.theme--documenter-dark .panel.is-success .panel-heading{background-color:#008438;color:#fff}html.theme--documenter-dark .panel.is-success .panel-tabs a.is-active{border-bottom-color:#008438}html.theme--documenter-dark .panel.is-success .panel-block.is-active .panel-icon{color:#008438}html.theme--documenter-dark .panel.is-warning .panel-heading{background-color:#ad8100;color:#fff}html.theme--documenter-dark .panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ad8100}html.theme--documenter-dark .panel.is-warning .panel-block.is-active .panel-icon{color:#ad8100}html.theme--documenter-dark .panel.is-danger .panel-heading{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .panel.is-danger .panel-tabs a.is-active{border-bottom-color:#9e1b0d}html.theme--documenter-dark .panel.is-danger .panel-block.is-active .panel-icon{color:#9e1b0d}html.theme--documenter-dark .panel-tabs:not(:last-child),html.theme--documenter-dark .panel-block:not(:last-child){border-bottom:1px solid #ededed}html.theme--documenter-dark .panel-heading{background-color:#343c3d;border-radius:8px 8px 0 0;color:#f2f2f2;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}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:.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 .panel-block:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}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:.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:1rem;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:.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:.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-top-left-radius:.4em;border-bottom-left-radius:.4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-top-right-radius:.4em;border-bottom-right-radius:.4em}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:9999px;border-top-left-radius:9999px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;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:.75rem}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;width:unset}.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.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.66666674%}.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.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.66666674%}.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.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.66666674%}.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.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.66666674%}.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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.66666674%}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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.66666674%}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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.66666674%}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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.66666674%}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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.66666674%}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;width:unset}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.33333337%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.66666674%}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.33333337%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.66666674%}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.33333337%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.66666674%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.33333337%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.66666674%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.33333337%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.66666674%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.33333337%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.66666674%}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{color:#fff !important;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{color:#0a0a0a !important;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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(0,0,0,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@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(0,0,0,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:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .tabs a{color:rgba(0,0,0,0.7);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{color:#ecf0f1 !important;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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);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:#fff}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:#fff}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(255,255,255,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:#fff}@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(255,255,255,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:#fff}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#fff;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{color:#282f2f !important;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:#fff}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:#fff;border-color:#fff;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{color:#375a7f !important;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{color:#1abc9c !important;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{color:#024c7d !important;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{color:#008438 !important;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{color:#ad8100 !important;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{color:#9e1b0d !important;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:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding:18rem 6rem}}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}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-body{padding:3rem 3rem}}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section{padding:3rem 3rem}html.theme--documenter-dark .section.is-medium{padding:9rem 4.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 6rem}}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:rgba(0,0,0,0.7);text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#fff;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 6 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 6 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:1rem}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:.75rem}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 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark details.admonition.is-details>.admonition-header{list-style:none}html.theme--documenter-dark details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}html.theme--documenter-dark details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}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{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f;overflow:auto}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}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;overflow-x:hidden}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}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{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}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:1rem;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:.95rem;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:.75rem;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 6 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:.85rem;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}html.theme--documenter-dark #documenter .docs-sidebar #documenter-search-query{color:#868c98;width:14.4rem;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1)}@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 kbd.search-modal-key-hints{border-radius:0.25rem;border:1px solid rgba(245,245,245,0.6);box-shadow:0 2px 0 1px rgba(245,245,245,0.6);cursor:default;font-size:0.9rem;line-height:1.5;min-width:0.75rem;text-align:center;padding:0.1rem 0.3rem;position:relative;top:-1px}html.theme--documenter-dark .search-min-width-50{min-width:50%}html.theme--documenter-dark .search-min-height-100{min-height:100%}html.theme--documenter-dark .search-modal-card-body{max-height:calc(100vh - 15rem)}html.theme--documenter-dark .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--documenter-dark .search-result-link:hover,html.theme--documenter-dark .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--documenter-dark .search-result-link .property-search-result-badge,html.theme--documenter-dark .search-result-link .search-filter{transition:all 300ms}html.theme--documenter-dark .property-search-result-badge,html.theme--documenter-dark .search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:#f5f5f5;background-color:rgba(51,65,85,0.501961);border-radius:0.6rem}html.theme--documenter-dark .search-result-link:hover .property-search-result-badge,html.theme--documenter-dark .search-result-link:hover .search-filter,html.theme--documenter-dark .search-result-link:focus .property-search-result-badge,html.theme--documenter-dark .search-result-link:focus .search-filter{color:#333;background-color:#f1f5f9}html.theme--documenter-dark .search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}html.theme--documenter-dark .search-filter:hover,html.theme--documenter-dark .search-filter:focus{color:#333}html.theme--documenter-dark .search-filter-selected{color:#f5f5f5;background-color:rgba(139,0,139,0.5)}html.theme--documenter-dark .search-filter-selected:hover,html.theme--documenter-dark .search-filter-selected:focus{color:#f5f5f5}html.theme--documenter-dark .search-result-highlight{background-color:#ffdd57;color:black}html.theme--documenter-dark .search-divider{border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .search-result-title{width:85%;color:#f5f5f5}html.theme--documenter-dark .search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar-thumb,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar-track,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.6);background-color:transparent}html.theme--documenter-dark .w-100{width:100%}html.theme--documenter-dark .gap-2{gap:0.5rem}html.theme--documenter-dark .gap-4{gap:1rem}html.theme--documenter-dark .gap-8{gap:2rem}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}html.theme--documenter-dark .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--documenter-dark .search-result-link:hover,html.theme--documenter-dark .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--documenter-dark .search-result-link .property-search-result-badge,html.theme--documenter-dark .search-result-link .search-filter{transition:all 300ms}html.theme--documenter-dark .search-result-link:hover .property-search-result-badge,html.theme--documenter-dark .search-result-link:hover .search-filter,html.theme--documenter-dark .search-result-link:focus .property-search-result-badge,html.theme--documenter-dark .search-result-link:focus .search-filter{color:#333 !important;background-color:#f1f5f9 !important}html.theme--documenter-dark .property-search-result-badge,html.theme--documenter-dark .search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:whitesmoke;background-color:#33415580;border-radius:0.6rem}html.theme--documenter-dark .search-result-title{color:whitesmoke}html.theme--documenter-dark .search-result-highlight{background-color:greenyellow;color:black}html.theme--documenter-dark .search-divider{border-bottom:1px solid #5e6d6f50}html.theme--documenter-dark .w-100{width:100%}html.theme--documenter-dark .gap-2{gap:0.5rem}html.theme--documenter-dark .gap-4{gap:1rem} diff --git a/v0.16.5/assets/themes/documenter-light.css b/v0.16.5/assets/themes/documenter-light.css new file mode 100644 index 00000000..2f168c77 --- /dev/null +++ b/v0.16.5/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +.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.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.5em - 1px);padding-left:calc(0.75em - 1px);padding-right:calc(0.75em - 1px);padding-top:calc(0.5em - 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}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable{-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),.pagination:not(:last-child),.message:not(:last-child),.level:not(:last-child),.breadcrumb: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{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:9999px;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:9999px;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}.navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}.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-primary-light{color:#eef8fc !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#c3e6f4 !important}.has-background-primary-light{background-color:#eef8fc !important}.has-text-primary-dark{color:#1a6d8e !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#228eb9 !important}.has-background-primary-dark{background-color:#1a6d8e !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-link-light{color:#eff3fb !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c6d6f1 !important}.has-background-link-light{background-color:#eff3fb !important}.has-text-link-dark{color:#3169c4 !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#5485d4 !important}.has-background-link-dark{background-color:#3169c4 !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-info-light{color:#ecf7fe !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#bde2fa !important}.has-background-info-light{background-color:#ecf7fe !important}.has-text-info-dark{color:#0e72b4 !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#1190e3 !important}.has-background-info-dark{background-color:#0e72b4 !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-success-light{color:#eefcf3 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#c2f4d4 !important}.has-background-success-light{background-color:#eefcf3 !important}.has-text-success-dark{color:#198f43 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#21bb57 !important}.has-background-success-dark{background-color:#198f43 !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-warning-light{color:#fffbeb !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#fff1b8 !important}.has-background-warning-light{background-color:#fffbeb !important}.has-text-warning-dark{color:#947600 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#c79f00 !important}.has-background-warning-dark{background-color:#947600 !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-danger-light{color:#ffeceb !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#ffbbb8 !important}.has-background-danger-light{background-color:#ffeceb !important}.has-text-danger-dark{color:#f50c00 !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#ff3429 !important}.has-background-danger-dark{background-color:#f50c00 !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}.is-flex-direction-row{flex-direction:row !important}.is-flex-direction-row-reverse{flex-direction:row-reverse !important}.is-flex-direction-column{flex-direction:column !important}.is-flex-direction-column-reverse{flex-direction:column-reverse !important}.is-flex-wrap-nowrap{flex-wrap:nowrap !important}.is-flex-wrap-wrap{flex-wrap:wrap !important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse !important}.is-justify-content-flex-start{justify-content:flex-start !important}.is-justify-content-flex-end{justify-content:flex-end !important}.is-justify-content-center{justify-content:center !important}.is-justify-content-space-between{justify-content:space-between !important}.is-justify-content-space-around{justify-content:space-around !important}.is-justify-content-space-evenly{justify-content:space-evenly !important}.is-justify-content-start{justify-content:start !important}.is-justify-content-end{justify-content:end !important}.is-justify-content-left{justify-content:left !important}.is-justify-content-right{justify-content:right !important}.is-align-content-flex-start{align-content:flex-start !important}.is-align-content-flex-end{align-content:flex-end !important}.is-align-content-center{align-content:center !important}.is-align-content-space-between{align-content:space-between !important}.is-align-content-space-around{align-content:space-around !important}.is-align-content-space-evenly{align-content:space-evenly !important}.is-align-content-stretch{align-content:stretch !important}.is-align-content-start{align-content:start !important}.is-align-content-end{align-content:end !important}.is-align-content-baseline{align-content:baseline !important}.is-align-items-stretch{align-items:stretch !important}.is-align-items-flex-start{align-items:flex-start !important}.is-align-items-flex-end{align-items:flex-end !important}.is-align-items-center{align-items:center !important}.is-align-items-baseline{align-items:baseline !important}.is-align-items-start{align-items:start !important}.is-align-items-end{align-items:end !important}.is-align-items-self-start{align-items:self-start !important}.is-align-items-self-end{align-items:self-end !important}.is-align-self-auto{align-self:auto !important}.is-align-self-flex-start{align-self:flex-start !important}.is-align-self-flex-end{align-self:flex-end !important}.is-align-self-center{align-self:center !important}.is-align-self-baseline{align-self:baseline !important}.is-align-self-stretch{align-self:stretch !important}.is-flex-grow-0{flex-grow:0 !important}.is-flex-grow-1{flex-grow:1 !important}.is-flex-grow-2{flex-grow:2 !important}.is-flex-grow-3{flex-grow:3 !important}.is-flex-grow-4{flex-grow:4 !important}.is-flex-grow-5{flex-grow:5 !important}.is-flex-shrink-0{flex-shrink:0 !important}.is-flex-shrink-1{flex-shrink:1 !important}.is-flex-shrink-2{flex-shrink:2 !important}.is-flex-shrink-3{flex-shrink:3 !important}.is-flex-shrink-4{flex-shrink:4 !important}.is-flex-shrink-5{flex-shrink:5 !important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-clickable{cursor:pointer !important;pointer-events:all !important}.is-clipped{overflow:hidden !important}.is-relative{position:relative !important}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:.25rem !important}.mt-1{margin-top:.25rem !important}.mr-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ml-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-2{margin:.5rem !important}.mt-2{margin-top:.5rem !important}.mr-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ml-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-3{margin:.75rem !important}.mt-3{margin-top:.75rem !important}.mr-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ml-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-6{margin:3rem !important}.mt-6{margin-top:3rem !important}.mr-6{margin-right:3rem !important}.mb-6{margin-bottom:3rem !important}.ml-6{margin-left:3rem !important}.mx-6{margin-left:3rem !important;margin-right:3rem !important}.my-6{margin-top:3rem !important;margin-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:.25rem !important}.pt-1{padding-top:.25rem !important}.pr-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.pl-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-2{padding:.5rem !important}.pt-2{padding-top:.5rem !important}.pr-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.pl-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-3{padding:.75rem !important}.pt-3{padding-top:.75rem !important}.pr-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.pl-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:3rem !important}.pt-6{padding-top:3rem !important}.pr-6{padding-right:3rem !important}.pb-6{padding-bottom:3rem !important}.pl-6{padding-left:3rem !important}.px-6{padding-left:3rem !important;padding-right:3rem !important}.py-6{padding-top:3rem !important;padding-bottom:3rem !important}.p-auto{padding:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-right:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-left:auto !important}.px-auto{padding-left:auto !important;padding-right:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !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}.is-underlined{text-decoration:underline !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}}/*! minireset.css v0.0.6 | 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,video{height:auto;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:inherit}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,optgroup,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:inherit}table th{color:#222}@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:#bbb;color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 0.5em 1em -0.125em 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:#222;cursor:pointer;justify-content:center;padding-bottom:calc(0.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(0.5em - 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.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 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-ghost{background:none;border-color:rgba(0,0,0,0);color:#2e63b8;text-decoration:none}.button.is-ghost:hover,.button.is-ghost.is-hovered{color:#2e63b8;text-decoration:underline}.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:#fff;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:#0a0a0a;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:rgba(0,0,0,0.7)}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !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:rgba(0,0,0,0.7)}.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 rgba(0,0,0,0.7) rgba(0,0,0,0.7) !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:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7);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:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#fff}.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:#fff}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#fff}.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:#fff}.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:#363636;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#fff;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:#f2f2f2}.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:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !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:#fff}.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 #fff #fff !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:#fff;color:#fff}.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:#fff;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:#fff;box-shadow:none;color:#fff}.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:#4eb5de;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-primary.is-light,.docstring>section>a.button.is-light.docs-sourcelink{background-color:#eef8fc;color:#1a6d8e}.button.is-primary.is-light:hover,.docstring>section>a.button.is-light.docs-sourcelink:hover,.button.is-primary.is-light.is-hovered,.docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e3f3fa;border-color:transparent;color:#1a6d8e}.button.is-primary.is-light:active,.docstring>section>a.button.is-light.docs-sourcelink:active,.button.is-primary.is-light.is-active,.docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#d8eff8;border-color:transparent;color:#1a6d8e}.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:#2e63b8;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-link.is-light{background-color:#eff3fb;color:#3169c4}.button.is-link.is-light:hover,.button.is-link.is-light.is-hovered{background-color:#e4ecf8;border-color:transparent;color:#3169c4}.button.is-link.is-light:active,.button.is-link.is-light.is-active{background-color:#dae5f6;border-color:transparent;color:#3169c4}.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:#209cee;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-info.is-light{background-color:#ecf7fe;color:#0e72b4}.button.is-info.is-light:hover,.button.is-info.is-light.is-hovered{background-color:#e0f1fd;border-color:transparent;color:#0e72b4}.button.is-info.is-light:active,.button.is-info.is-light.is-active{background-color:#d4ecfc;border-color:transparent;color:#0e72b4}.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:#22c35b;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-success.is-light{background-color:#eefcf3;color:#198f43}.button.is-success.is-light:hover,.button.is-success.is-light.is-hovered{background-color:#e3faeb;border-color:transparent;color:#198f43}.button.is-success.is-light:active,.button.is-success.is-light.is-active{background-color:#d8f8e3;border-color:transparent;color:#198f43}.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:#ffdd57;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-warning.is-light{background-color:#fffbeb;color:#947600}.button.is-warning.is-light:hover,.button.is-warning.is-light.is-hovered{background-color:#fff8de;border-color:transparent;color:#947600}.button.is-warning.is-light:active,.button.is-warning.is-light.is-active{background-color:#fff6d1;border-color:transparent;color:#947600}.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:#da0b00;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-danger.is-light{background-color:#ffeceb;color:#f50c00}.button.is-danger.is-light:hover,.button.is-danger.is-light.is-hovered{background-color:#ffe0de;border-color:transparent;color:#f50c00}.button.is-danger.is-light:active,.button.is-danger.is-light.is-active{background-color:#ffd3d1;border-color:transparent;color:#f50c00}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}.button.is-small:not(.is-rounded),#documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:2px}.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 * 0.5));top:calc(50% - (1em * 0.5));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:9999px;padding-left:calc(1em + 0.25em);padding-right:calc(1em + 0.25em)}.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:.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){font-size:.75rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:2px}.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}@media screen and (max-width: 768px){.button.is-responsive.is-small,#documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.65625rem}.button.is-responsive.is-medium{font-size:.75rem}.button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.button.is-responsive.is-small,#documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.75rem}.button.is-responsive.is-medium{font-size:1rem}.button.is-responsive.is-large{font-size:1.25rem}}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){.container{max-width:992px}}@media screen and (max-width: 1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){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:inherit}.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-normal{font-size:1rem}.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}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-right:.25em}.icon-text .icon:not(:first-child){margin-left:.25em}div.icon-text{display:flex}.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:9999px}.image.is-fullwidth,#documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}.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;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.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{right:.5rem;position:absolute;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:rgba(0,0,0,0.7)}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#fff}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-primary.is-light,.docstring>section>a.notification.is-light.docs-sourcelink{background-color:#eef8fc;color:#1a6d8e}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-link.is-light{background-color:#eff3fb;color:#3169c4}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-info.is-light{background-color:#ecf7fe;color:#0e72b4}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-success.is-light{background-color:#eefcf3;color:#198f43}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-warning.is-light{background-color:#fffbeb;color:#947600}.notification.is-danger{background-color:#da0b00;color:#fff}.notification.is-danger.is-light{background-color:#ffeceb;color:#f50c00}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 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%, #ededed 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right, #222 30%, #ededed 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:indeterminate::-ms-fill{animation-name:none}.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:#222}.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:rgba(0,0,0,0.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.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 td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.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:.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-top-left-radius:0;border-bottom-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-top-right-radius:0;border-bottom-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:.25rem;margin-right:-.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:rgba(0,0,0,0.7)}.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:#fff}.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-primary.is-light:not(body),.content kbd.is-primary.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#eef8fc;color:#1a6d8e}.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-link.is-light:not(body),.content kbd.is-link.is-light:not(body),.docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#eff3fb;color:#3169c4}.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-info.is-light:not(body),.content kbd.is-info.is-light:not(body),.docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#ecf7fe;color:#0e72b4}.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-success.is-light:not(body),.content kbd.is-success.is-light:not(body),.docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#eefcf3;color:#198f43}.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-warning.is-light:not(body),.content kbd.is-warning.is-light:not(body),.docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fffbeb;color:#947600}.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-danger.is-light:not(body),.content kbd.is-danger.is-light:not(body),.docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#ffeceb;color:#f50c00}.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:-.375em;margin-right:.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:.1875em;margin-right:-.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:-.375em;margin-right:-.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:9999px}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:#222;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.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:#222;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#222;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}.number{align-items:center;background-color:#f5f5f5;border-radius:9999px;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:#222}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#707070}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#707070}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#707070}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#707070}.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 0.0625em 0.125em rgba(10,10,10,0.05);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:9999px;padding-left:calc(calc(0.75em - 1px) + 0.375em);padding-right:calc(calc(0.75em - 1px) + 0.375em)}.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:calc(0.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.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:#222}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox,.radio input[disabled],.checkbox input[disabled]{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.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:9999px;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:#222}.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 !important;opacity:0.5}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.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:rgba(0,0,0,0.7)}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#fff}.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:#fff}.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:#fff}.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:#fff}.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-normal{font-size:1rem}.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:#222}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#222}.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:#222}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#222;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:.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:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.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:#222}.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.5em;pointer-events:none;position:absolute;top:0;width:2.5em;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.5em}.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.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:.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:.5em}.breadcrumb .icon:last-child{margin-left:.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;border-radius:.25rem;box-shadow:#bbb;color:#222;max-width:100%;position:relative}.card-footer:first-child,.card-content:first-child,.card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-footer:last-child,.card-content:last-child,.card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 0.125em 0.25em 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:0.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:0.75rem 1rem}.card-image{display:block;position:relative}.card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.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 #ededed;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 #ededed}.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:#bbb;padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#222;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:inherit;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:#ededed;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}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.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:inherit}@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}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#eef8fc}.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:#1a6d8e}.message.is-link{background-color:#eff3fb}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#3169c4}.message.is-info{background-color:#ecf7fe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#0e72b4}.message.is-success{background-color:#eefcf3}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#198f43}.message.is-warning{background-color:#fffbeb}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#947600}.message.is-danger{background-color:#ffeceb}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#f50c00}.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:.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){.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:.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:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@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:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#fff}.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:#fff}.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:#fff}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#fff}@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:#fff}.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:#fff}.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:#fff}.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:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.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:#222;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;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:#222;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{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.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:9999px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}.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:#222;min-width:2.5em}.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-previous.is-disabled,.pagination-next[disabled],.pagination-next.is-disabled,.pagination-link[disabled],.pagination-link.is-disabled{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:.75em;padding-right:.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}.pagination-list li{list-style:none}@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,.pagination-next,.pagination-link,.pagination-ellipsis{margin-bottom:0;margin-top:0}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.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{border-radius:6px;box-shadow:#bbb;font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading,.content kbd.panel .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active,.content kbd.panel .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon,.content kbd.panel .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading,.docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#4eb5de;color:#fff}.panel.is-primary .panel-tabs a.is-active,.docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#4eb5de}.panel.is-primary .panel-block.is-active .panel-icon,.docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#4eb5de}.panel.is-link .panel-heading{background-color:#2e63b8;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#2e63b8}.panel.is-link .panel-block.is-active .panel-icon{color:#2e63b8}.panel.is-info .panel-heading{background-color:#209cee;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#209cee}.panel.is-info .panel-block.is-active .panel-icon{color:#209cee}.panel.is-success .panel-heading{background-color:#22c35b;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#22c35b}.panel.is-success .panel-block.is-active .panel-icon{color:#22c35b}.panel.is-warning .panel-heading{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffdd57}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffdd57}.panel.is-danger .panel-heading{background-color:#da0b00;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#da0b00}.panel.is-danger .panel-block.is-active .panel-icon{color:#da0b00}.panel-tabs:not(:last-child),.panel-block:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#222;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}.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:.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}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}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:.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:.5em}.tabs .icon:last-child{margin-left:.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-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.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:9999px;border-top-left-radius:9999px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;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;width:unset}.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.33333337%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>.column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66666674%}.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.33333337%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>.column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66666674%}.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.33333337%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>.column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66666674%}.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.33333337%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>.column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1-mobile{margin-left:8.33333337%}.column.is-2-mobile{flex:none;width:16.66666674%}.column.is-offset-2-mobile{margin-left:16.66666674%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333337%}.column.is-offset-4-mobile{margin-left:33.33333337%}.column.is-5-mobile{flex:none;width:41.66666674%}.column.is-offset-5-mobile{margin-left:41.66666674%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333337%}.column.is-offset-7-mobile{margin-left:58.33333337%}.column.is-8-mobile{flex:none;width:66.66666674%}.column.is-offset-8-mobile{margin-left:66.66666674%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333337%}.column.is-offset-10-mobile{margin-left:83.33333337%}.column.is-11-mobile{flex:none;width:91.66666674%}.column.is-offset-11-mobile{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333337%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66666674%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66666674%}.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.33333337%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333337%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66666674%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66666674%}.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.33333337%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333337%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66666674%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66666674%}.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.33333337%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333337%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66666674%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1-touch{margin-left:8.33333337%}.column.is-2-touch{flex:none;width:16.66666674%}.column.is-offset-2-touch{margin-left:16.66666674%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333337%}.column.is-offset-4-touch{margin-left:33.33333337%}.column.is-5-touch{flex:none;width:41.66666674%}.column.is-offset-5-touch{margin-left:41.66666674%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333337%}.column.is-offset-7-touch{margin-left:58.33333337%}.column.is-8-touch{flex:none;width:66.66666674%}.column.is-offset-8-touch{margin-left:66.66666674%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333337%}.column.is-offset-10-touch{margin-left:83.33333337%}.column.is-11-touch{flex:none;width:91.66666674%}.column.is-offset-11-touch{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1-desktop{margin-left:8.33333337%}.column.is-2-desktop{flex:none;width:16.66666674%}.column.is-offset-2-desktop{margin-left:16.66666674%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333337%}.column.is-offset-4-desktop{margin-left:33.33333337%}.column.is-5-desktop{flex:none;width:41.66666674%}.column.is-offset-5-desktop{margin-left:41.66666674%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333337%}.column.is-offset-7-desktop{margin-left:58.33333337%}.column.is-8-desktop{flex:none;width:66.66666674%}.column.is-offset-8-desktop{margin-left:66.66666674%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333337%}.column.is-offset-10-desktop{margin-left:83.33333337%}.column.is-11-desktop{flex:none;width:91.66666674%}.column.is-offset-11-desktop{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1-widescreen{margin-left:8.33333337%}.column.is-2-widescreen{flex:none;width:16.66666674%}.column.is-offset-2-widescreen{margin-left:16.66666674%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333337%}.column.is-offset-4-widescreen{margin-left:33.33333337%}.column.is-5-widescreen{flex:none;width:41.66666674%}.column.is-offset-5-widescreen{margin-left:41.66666674%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333337%}.column.is-offset-7-widescreen{margin-left:58.33333337%}.column.is-8-widescreen{flex:none;width:66.66666674%}.column.is-offset-8-widescreen{margin-left:66.66666674%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333337%}.column.is-offset-10-widescreen{margin-left:83.33333337%}.column.is-11-widescreen{flex:none;width:91.66666674%}.column.is-offset-11-widescreen{margin-left:91.66666674%}.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;width:unset}.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.33333337%}.column.is-offset-1-fullhd{margin-left:8.33333337%}.column.is-2-fullhd{flex:none;width:16.66666674%}.column.is-offset-2-fullhd{margin-left:16.66666674%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333337%}.column.is-offset-4-fullhd{margin-left:33.33333337%}.column.is-5-fullhd{flex:none;width:41.66666674%}.column.is-offset-5-fullhd{margin-left:41.66666674%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333337%}.column.is-offset-7-fullhd{margin-left:58.33333337%}.column.is-8-fullhd{flex:none;width:66.66666674%}.column.is-offset-8-fullhd{margin-left:66.66666674%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333337%}.column.is-offset-10-fullhd{margin-left:83.33333337%}.column.is-11-fullhd{flex:none;width:91.66666674%}.column.is-offset-11-fullhd{margin-left:91.66666674%}.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.33333337%}.tile.is-2{flex:none;width:16.66666674%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333337%}.tile.is-5{flex:none;width:41.66666674%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333337%}.tile.is-8{flex:none;width:66.66666674%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333337%}.tile.is-11{flex:none;width:91.66666674%}.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{color:#fff !important;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{color:#0a0a0a !important;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:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7)}.hero.is-light .subtitle{color:rgba(0,0,0,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@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(0,0,0,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:rgba(0,0,0,0.7)}.hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{color:#f5f5f5 !important;opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.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:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);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:#fff}.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:#fff}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(255,255,255,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:#fff}@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(255,255,255,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:#fff}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#fff;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{color:#363636 !important;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:#fff}.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:#fff;border-color:#fff;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{color:#4eb5de !important;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{color:#2e63b8 !important;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{color:#209cee !important;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{color:#22c35b !important;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{color:#ffdd57 !important;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{color:#da0b00 !important;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:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding:18rem 6rem}}.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}@media screen and (min-width: 769px),print{.hero-body{padding:3rem 3rem}}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section{padding:3rem 3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.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 6 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 6 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 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}details.admonition.is-details>.admonition-header{list-style:none}details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}.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{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb;overflow:auto}.docstring>header code{background-color:transparent}.docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}.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;overflow-x:hidden}#documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}#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 6 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}#documenter .docs-sidebar #documenter-search-query{color:#707070;width:14.4rem;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1)}@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}}kbd.search-modal-key-hints{border-radius:0.25rem;border:1px solid rgba(0,0,0,0.6);box-shadow:0 2px 0 1px rgba(0,0,0,0.6);cursor:default;font-size:0.9rem;line-height:1.5;min-width:0.75rem;text-align:center;padding:0.1rem 0.3rem;position:relative;top:-1px}.search-min-width-50{min-width:50%}.search-min-height-100{min-height:100%}.search-modal-card-body{max-height:calc(100vh - 15rem)}.search-result-link{border-radius:0.7em;transition:all 300ms}.search-result-link:hover,.search-result-link:focus{background-color:rgba(0,128,128,0.1)}.search-result-link .property-search-result-badge,.search-result-link .search-filter{transition:all 300ms}.property-search-result-badge,.search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:#f5f5f5;background-color:rgba(51,65,85,0.501961);border-radius:0.6rem}.search-result-link:hover .property-search-result-badge,.search-result-link:hover .search-filter,.search-result-link:focus .property-search-result-badge,.search-result-link:focus .search-filter{color:#f1f5f9;background-color:#333}.search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}.search-filter:hover,.search-filter:focus{color:#333}.search-filter-selected{color:#f5f5f5;background-color:rgba(139,0,139,0.5)}.search-filter-selected:hover,.search-filter-selected:focus{color:#f5f5f5}.search-result-highlight{background-color:#ffdd57;color:black}.search-divider{border-bottom:1px solid #dbdbdb}.search-result-title{width:85%;color:#333}.search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}#search-modal .modal-card-body::-webkit-scrollbar,#search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}#search-modal .modal-card-body::-webkit-scrollbar-thumb,#search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}#search-modal .modal-card-body::-webkit-scrollbar-track,#search-modal .filter-tabs::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.6);background-color:transparent}.w-100{width:100%}.gap-2{gap:0.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.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 <maniac@softwaremaniacs.org> + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#F3F3F3;color:#444}.hljs-comment{color:#697070}.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:#ab5656}.hljs-literal{color:#695}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}.gap-4{gap:1rem} diff --git a/v0.16.5/assets/themeswap.js b/v0.16.5/assets/themeswap.js new file mode 100644 index 00000000..9f5eebe6 --- /dev/null +++ b/v0.16.5/assets/themeswap.js @@ -0,0 +1,84 @@ +// Small function to quickly swap out themes. Gets put into the <head> tag.. +function set_theme_from_local_storage() { + // Initialize 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 users preference is for dark color scheme + var darkPreference = + window.matchMedia("(prefers-color-scheme: dark)").matches === 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 primaryLightTheme = null; + var primaryDarkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The <link> 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. + if (ss.ownerNode.getAttribute("data-theme-primary") !== null) { + primaryLightTheme = themename; + } + // Check if the theme is primary dark theme so that we could store its name in darkTheme + if (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null) { + primaryDarkTheme = 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); + } + var activeTheme = null; + if (active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to <html> + document.getElementsByTagName("html")[0].className = "theme--" + theme; + activeTheme = theme; + } else { + // If we did _not_ find an active theme, then we need to fall back to the primary theme + // which can either be dark or light, depending on the user's OS preference. + var activeTheme = darkPreference ? primaryDarkTheme : primaryLightTheme; + // In case it somehow happens that the relevant primary theme was not found in the + // preceding loop, we abort without doing anything. + if (activeTheme === null) { + console.error("Unable to determine primary theme."); + return; + } + // When switching to the primary light theme, then we must not have a class name + // for the <html> tag. That's only for non-primary or the primary dark theme. + if (darkPreference) { + document.getElementsByTagName("html")[0].className = + "theme--" + activeTheme; + } else { + document.getElementsByTagName("html")[0].className = ""; + } + } + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The <link> 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; + // we'll disable all the stylesheets, except for the active one + ss.disabled = !(themename == activeTheme); + } +} +set_theme_from_local_storage(); diff --git a/v0.16.5/assets/warner.js b/v0.16.5/assets/warner.js new file mode 100644 index 00000000..3f6f5d00 --- /dev/null +++ b/v0.16.5/assets/warner.js @@ -0,0 +1,52 @@ +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.<br><a href="' + + href + + '">Click here to go to the documentation for the latest stable release.</a>'; + div.appendChild(closer); + document.body.appendChild(div); +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", maybeAddWarning); +} else { + maybeAddWarning(); +} diff --git a/v0.16.5/examples/cherenkov.pdf b/v0.16.5/examples/cherenkov.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ca93c26c6bd7adf6b5e98d8d220a85e56ae8e89c GIT binary patch literal 28588 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 G=HCE2PYV73 literal 0 HcmV?d00001 diff --git a/v0.16.5/examples/cherenkov.svg b/v0.16.5/examples/cherenkov.svg new file mode 100644 index 00000000..6eb83671 --- /dev/null +++ b/v0.16.5/examples/cherenkov.svg @@ -0,0 +1,200 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="237.081pt" height="200.884pt" viewBox="0 0 237.081 200.884" version="1.2"> +<defs> +<g> +<symbol overflow="visible" id="glyph0-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph0-1"> +<path style="stroke:none;" d="M 6.53125 -2.28125 C 6.703125 -2.28125 6.890625 -2.28125 6.890625 -2.484375 C 6.890625 -2.671875 6.703125 -2.671875 6.53125 -2.671875 L 1.171875 -2.671875 C 1 -2.671875 0.828125 -2.671875 0.828125 -2.484375 C 0.828125 -2.28125 1 -2.28125 1.171875 -2.28125 Z M 6.53125 -2.28125 "/> +</symbol> +<symbol overflow="visible" id="glyph1-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph1-1"> +<path style="stroke:none;" d="M 2.921875 -6.34375 C 2.921875 -6.59375 2.921875 -6.609375 2.6875 -6.609375 C 2.078125 -5.96875 1.203125 -5.96875 0.890625 -5.96875 L 0.890625 -5.671875 C 1.078125 -5.671875 1.671875 -5.671875 2.1875 -5.921875 L 2.1875 -0.78125 C 2.1875 -0.421875 2.15625 -0.3125 1.265625 -0.3125 L 0.9375 -0.3125 L 0.9375 0 C 1.296875 -0.03125 2.15625 -0.03125 2.546875 -0.03125 C 2.953125 -0.03125 3.8125 -0.03125 4.15625 0 L 4.15625 -0.3125 L 3.84375 -0.3125 C 2.953125 -0.3125 2.921875 -0.421875 2.921875 -0.78125 Z M 2.921875 -6.34375 "/> +</symbol> +<symbol overflow="visible" id="glyph1-2"> +<path style="stroke:none;" d="M 4.5625 -3.171875 C 4.5625 -3.96875 4.515625 -4.765625 4.171875 -5.5 C 3.703125 -6.453125 2.890625 -6.609375 2.484375 -6.609375 C 1.890625 -6.609375 1.15625 -6.34375 0.75 -5.421875 C 0.4375 -4.75 0.390625 -3.96875 0.390625 -3.171875 C 0.390625 -2.4375 0.421875 -1.53125 0.828125 -0.78125 C 1.265625 0.015625 1.984375 0.21875 2.46875 0.21875 C 3 0.21875 3.765625 0.015625 4.203125 -0.9375 C 4.515625 -1.625 4.5625 -2.390625 4.5625 -3.171875 Z M 2.46875 0 C 2.078125 0 1.5 -0.25 1.3125 -1.203125 C 1.203125 -1.796875 1.203125 -2.703125 1.203125 -3.296875 C 1.203125 -3.921875 1.203125 -4.578125 1.296875 -5.125 C 1.484375 -6.296875 2.21875 -6.390625 2.46875 -6.390625 C 2.796875 -6.390625 3.453125 -6.21875 3.640625 -5.234375 C 3.734375 -4.671875 3.734375 -3.921875 3.734375 -3.296875 C 3.734375 -2.546875 3.734375 -1.875 3.625 -1.234375 C 3.484375 -0.296875 2.921875 0 2.46875 0 Z M 2.46875 0 "/> +</symbol> +<symbol overflow="visible" id="glyph1-3"> +<path style="stroke:none;" d="M 1.265625 -0.765625 L 2.3125 -1.78125 C 3.859375 -3.15625 4.453125 -3.6875 4.453125 -4.6875 C 4.453125 -5.8125 3.5625 -6.609375 2.34375 -6.609375 C 1.234375 -6.609375 0.5 -5.6875 0.5 -4.8125 C 0.5 -4.25 0.984375 -4.25 1.015625 -4.25 C 1.1875 -4.25 1.53125 -4.375 1.53125 -4.78125 C 1.53125 -5.046875 1.359375 -5.296875 1.015625 -5.296875 C 0.9375 -5.296875 0.90625 -5.296875 0.890625 -5.28125 C 1.109375 -5.9375 1.640625 -6.296875 2.21875 -6.296875 C 3.125 -6.296875 3.546875 -5.5 3.546875 -4.6875 C 3.546875 -3.890625 3.0625 -3.109375 2.515625 -2.484375 L 0.609375 -0.359375 C 0.5 -0.265625 0.5 -0.234375 0.5 0 L 4.171875 0 L 4.453125 -1.71875 L 4.203125 -1.71875 C 4.15625 -1.421875 4.09375 -0.984375 3.984375 -0.84375 C 3.921875 -0.765625 3.265625 -0.765625 3.046875 -0.765625 Z M 1.265625 -0.765625 "/> +</symbol> +<symbol overflow="visible" id="glyph1-4"> +<path style="stroke:none;" d="M 2.875 -3.5 C 3.6875 -3.765625 4.265625 -4.453125 4.265625 -5.234375 C 4.265625 -6.046875 3.390625 -6.609375 2.4375 -6.609375 C 1.4375 -6.609375 0.6875 -6.015625 0.6875 -5.265625 C 0.6875 -4.9375 0.90625 -4.75 1.1875 -4.75 C 1.5 -4.75 1.703125 -4.953125 1.703125 -5.25 C 1.703125 -5.75 1.234375 -5.75 1.078125 -5.75 C 1.390625 -6.234375 2.046875 -6.359375 2.40625 -6.359375 C 2.8125 -6.359375 3.359375 -6.140625 3.359375 -5.25 C 3.359375 -5.125 3.328125 -4.546875 3.078125 -4.125 C 2.78125 -3.640625 2.4375 -3.609375 2.1875 -3.609375 C 2.109375 -3.59375 1.875 -3.578125 1.8125 -3.578125 C 1.71875 -3.5625 1.65625 -3.546875 1.65625 -3.453125 C 1.65625 -3.34375 1.71875 -3.34375 1.890625 -3.34375 L 2.328125 -3.34375 C 3.140625 -3.34375 3.515625 -2.671875 3.515625 -1.703125 C 3.515625 -0.34375 2.828125 -0.0625 2.390625 -0.0625 C 1.96875 -0.0625 1.21875 -0.234375 0.875 -0.8125 C 1.21875 -0.765625 1.53125 -0.984375 1.53125 -1.359375 C 1.53125 -1.71875 1.265625 -1.921875 0.96875 -1.921875 C 0.734375 -1.921875 0.421875 -1.78125 0.421875 -1.34375 C 0.421875 -0.4375 1.34375 0.21875 2.421875 0.21875 C 3.625 0.21875 4.53125 -0.6875 4.53125 -1.703125 C 4.53125 -2.515625 3.90625 -3.28125 2.875 -3.5 Z M 2.875 -3.5 "/> +</symbol> +<symbol overflow="visible" id="glyph1-5"> +<path style="stroke:none;" d="M 2.921875 -1.640625 L 2.921875 -0.78125 C 2.921875 -0.421875 2.890625 -0.3125 2.15625 -0.3125 L 1.953125 -0.3125 L 1.953125 0 C 2.359375 -0.03125 2.875 -0.03125 3.296875 -0.03125 C 3.703125 -0.03125 4.234375 -0.03125 4.640625 0 L 4.640625 -0.3125 L 4.4375 -0.3125 C 3.703125 -0.3125 3.6875 -0.421875 3.6875 -0.78125 L 3.6875 -1.640625 L 4.671875 -1.640625 L 4.671875 -1.9375 L 3.6875 -1.9375 L 3.6875 -6.453125 C 3.6875 -6.65625 3.6875 -6.71875 3.515625 -6.71875 C 3.4375 -6.71875 3.40625 -6.71875 3.328125 -6.59375 L 0.28125 -1.9375 L 0.28125 -1.640625 Z M 2.96875 -1.9375 L 0.5625 -1.9375 L 2.96875 -5.640625 Z M 2.96875 -1.9375 "/> +</symbol> +<symbol overflow="visible" id="glyph1-6"> +<path style="stroke:none;" d="M 4.453125 -2 C 4.453125 -3.171875 3.640625 -4.171875 2.5625 -4.171875 C 2.09375 -4.171875 1.671875 -4.015625 1.3125 -3.65625 L 1.3125 -5.59375 C 1.515625 -5.53125 1.828125 -5.46875 2.15625 -5.46875 C 3.375 -5.46875 4.0625 -6.375 4.0625 -6.5 C 4.0625 -6.5625 4.03125 -6.609375 3.96875 -6.609375 C 3.953125 -6.609375 3.9375 -6.609375 3.890625 -6.578125 C 3.6875 -6.484375 3.203125 -6.296875 2.546875 -6.296875 C 2.140625 -6.296875 1.6875 -6.359375 1.21875 -6.5625 C 1.140625 -6.59375 1.125 -6.59375 1.09375 -6.59375 C 1 -6.59375 1 -6.515625 1 -6.359375 L 1 -3.421875 C 1 -3.25 1 -3.171875 1.140625 -3.171875 C 1.203125 -3.171875 1.234375 -3.1875 1.265625 -3.25 C 1.375 -3.40625 1.75 -3.953125 2.546875 -3.953125 C 3.0625 -3.953125 3.3125 -3.5 3.390625 -3.3125 C 3.546875 -2.953125 3.578125 -2.5625 3.578125 -2.0625 C 3.578125 -1.71875 3.578125 -1.125 3.328125 -0.703125 C 3.09375 -0.3125 2.734375 -0.0625 2.265625 -0.0625 C 1.546875 -0.0625 0.984375 -0.578125 0.8125 -1.171875 C 0.84375 -1.15625 0.875 -1.15625 0.984375 -1.15625 C 1.3125 -1.15625 1.484375 -1.40625 1.484375 -1.640625 C 1.484375 -1.875 1.3125 -2.125 0.984375 -2.125 C 0.84375 -2.125 0.5 -2.046875 0.5 -1.59375 C 0.5 -0.75 1.1875 0.21875 2.296875 0.21875 C 3.4375 0.21875 4.453125 -0.734375 4.453125 -2 Z M 4.453125 -2 "/> +</symbol> +<symbol overflow="visible" id="glyph1-7"> +<path style="stroke:none;" d="M 1.3125 -3.25 L 1.3125 -3.5 C 1.3125 -6 2.546875 -6.359375 3.046875 -6.359375 C 3.28125 -6.359375 3.703125 -6.296875 3.921875 -5.96875 C 3.765625 -5.96875 3.375 -5.96875 3.375 -5.515625 C 3.375 -5.203125 3.609375 -5.0625 3.828125 -5.0625 C 3.984375 -5.0625 4.28125 -5.15625 4.28125 -5.53125 C 4.28125 -6.125 3.84375 -6.609375 3.03125 -6.609375 C 1.75 -6.609375 0.421875 -5.328125 0.421875 -3.140625 C 0.421875 -0.484375 1.5625 0.21875 2.484375 0.21875 C 3.59375 0.21875 4.53125 -0.71875 4.53125 -2.03125 C 4.53125 -3.28125 3.65625 -4.234375 2.546875 -4.234375 C 1.875 -4.234375 1.515625 -3.734375 1.3125 -3.25 Z M 2.484375 -0.0625 C 1.859375 -0.0625 1.5625 -0.65625 1.515625 -0.796875 C 1.328125 -1.265625 1.328125 -2.0625 1.328125 -2.25 C 1.328125 -3.015625 1.640625 -4.015625 2.546875 -4.015625 C 2.703125 -4.015625 3.15625 -4.015625 3.46875 -3.390625 C 3.640625 -3.03125 3.640625 -2.515625 3.640625 -2.03125 C 3.640625 -1.5625 3.640625 -1.0625 3.46875 -0.703125 C 3.171875 -0.109375 2.71875 -0.0625 2.484375 -0.0625 Z M 2.484375 -0.0625 "/> +</symbol> +<symbol overflow="visible" id="glyph1-8"> +<path style="stroke:none;" d="M 1.625 -4.53125 C 1.15625 -4.828125 1.125 -5.171875 1.125 -5.34375 C 1.125 -5.9375 1.765625 -6.359375 2.46875 -6.359375 C 3.1875 -6.359375 3.828125 -5.84375 3.828125 -5.125 C 3.828125 -4.5625 3.4375 -4.09375 2.84375 -3.734375 Z M 3.0625 -3.59375 C 3.78125 -3.953125 4.265625 -4.46875 4.265625 -5.125 C 4.265625 -6.046875 3.390625 -6.609375 2.484375 -6.609375 C 1.484375 -6.609375 0.6875 -5.875 0.6875 -4.953125 C 0.6875 -4.765625 0.703125 -4.328125 1.125 -3.859375 C 1.234375 -3.734375 1.59375 -3.5 1.84375 -3.328125 C 1.265625 -3.03125 0.421875 -2.484375 0.421875 -1.5 C 0.421875 -0.453125 1.421875 0.21875 2.46875 0.21875 C 3.59375 0.21875 4.53125 -0.609375 4.53125 -1.671875 C 4.53125 -2.03125 4.421875 -2.46875 4.046875 -2.890625 C 3.859375 -3.09375 3.703125 -3.1875 3.0625 -3.59375 Z M 2.078125 -3.171875 L 3.296875 -2.40625 C 3.578125 -2.21875 4.03125 -1.921875 4.03125 -1.3125 C 4.03125 -0.578125 3.296875 -0.0625 2.484375 -0.0625 C 1.625 -0.0625 0.90625 -0.671875 0.90625 -1.5 C 0.90625 -2.078125 1.234375 -2.703125 2.078125 -3.171875 Z M 2.078125 -3.171875 "/> +</symbol> +<symbol overflow="visible" id="glyph1-9"> +<path style="stroke:none;" d="M 4.390625 -6.921875 C 4.3125 -7.046875 4.296875 -7.109375 4.125 -7.109375 C 3.953125 -7.109375 3.9375 -7.046875 3.875 -6.921875 L 0.515625 -0.203125 C 0.46875 -0.109375 0.46875 -0.09375 0.46875 -0.078125 C 0.46875 0 0.53125 0 0.6875 0 L 7.578125 0 C 7.734375 0 7.78125 0 7.78125 -0.078125 C 7.78125 -0.09375 7.78125 -0.109375 7.734375 -0.203125 Z M 3.8125 -6.109375 L 6.484375 -0.75 L 1.125 -0.75 Z M 3.8125 -6.109375 "/> +</symbol> +<symbol overflow="visible" id="glyph2-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph2-1"> +<path style="stroke:none;" d="M 2.015625 -0.015625 C 2.015625 -0.671875 1.765625 -1.046875 1.375 -1.046875 C 1.046875 -1.046875 0.859375 -0.796875 0.859375 -0.53125 C 0.859375 -0.265625 1.046875 0 1.375 0 C 1.5 0 1.625 -0.046875 1.71875 -0.125 C 1.75 -0.15625 1.765625 -0.15625 1.78125 -0.15625 C 1.78125 -0.15625 1.796875 -0.15625 1.796875 -0.015625 C 1.796875 0.71875 1.453125 1.3125 1.125 1.640625 C 1.015625 1.75 1.015625 1.78125 1.015625 1.8125 C 1.015625 1.875 1.0625 1.921875 1.109375 1.921875 C 1.21875 1.921875 2.015625 1.15625 2.015625 -0.015625 Z M 2.015625 -0.015625 "/> +</symbol> +<symbol overflow="visible" id="glyph3-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph3-1"> +<path style="stroke:none;" d="M 3.296875 -1.234375 L 3.296875 -1.796875 L 3.046875 -1.796875 L 3.046875 -1.25 C 3.046875 -0.515625 2.75 -0.140625 2.375 -0.140625 C 1.71875 -0.140625 1.71875 -1.046875 1.71875 -1.203125 L 1.71875 -3.96875 L 3.140625 -3.96875 L 3.140625 -4.28125 L 1.71875 -4.28125 L 1.71875 -6.109375 L 1.46875 -6.109375 C 1.453125 -5.28125 1.15625 -4.234375 0.1875 -4.1875 L 0.1875 -3.96875 L 1.03125 -3.96875 L 1.03125 -1.234375 C 1.03125 -0.015625 1.953125 0.109375 2.3125 0.109375 C 3.015625 0.109375 3.296875 -0.59375 3.296875 -1.234375 Z M 3.296875 -1.234375 "/> +</symbol> +<symbol overflow="visible" id="glyph3-2"> +<path style="stroke:none;" d="M 4.390625 -7.25 C 4.390625 -7.359375 4.3125 -7.4375 4.203125 -7.4375 C 4.0625 -7.4375 4.015625 -7.34375 3.984375 -7.25 L 0.609375 2.109375 C 0.5625 2.234375 0.5625 2.28125 0.5625 2.28125 C 0.5625 2.390625 0.640625 2.484375 0.75 2.484375 C 0.890625 2.484375 0.9375 2.375 0.96875 2.28125 L 4.34375 -7.0625 C 4.390625 -7.1875 4.390625 -7.25 4.390625 -7.25 Z M 4.390625 -7.25 "/> +</symbol> +<symbol overflow="visible" id="glyph3-3"> +<path style="stroke:none;" d="M 5.3125 0 L 5.3125 -0.3125 C 4.796875 -0.3125 4.546875 -0.3125 4.53125 -0.609375 L 4.53125 -2.5 C 4.53125 -3.359375 4.53125 -3.65625 4.234375 -4.015625 C 4.09375 -4.1875 3.765625 -4.390625 3.1875 -4.390625 C 2.453125 -4.390625 2 -3.953125 1.71875 -3.34375 L 1.71875 -4.390625 L 0.3125 -4.28125 L 0.3125 -3.96875 C 1.015625 -3.96875 1.09375 -3.90625 1.09375 -3.40625 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.3125 -0.3125 L 0.3125 0 L 1.4375 -0.03125 L 2.546875 0 L 2.546875 -0.3125 C 1.890625 -0.3125 1.78125 -0.3125 1.78125 -0.75 L 1.78125 -2.578125 C 1.78125 -3.609375 2.484375 -4.171875 3.109375 -4.171875 C 3.734375 -4.171875 3.84375 -3.625 3.84375 -3.0625 L 3.84375 -0.75 C 3.84375 -0.3125 3.734375 -0.3125 3.078125 -0.3125 L 3.078125 0 L 4.203125 -0.03125 Z M 5.3125 0 "/> +</symbol> +<symbol overflow="visible" id="glyph3-4"> +<path style="stroke:none;" d="M 3.578125 -1.265625 C 3.578125 -1.796875 3.28125 -2.09375 3.15625 -2.21875 C 2.828125 -2.53125 2.4375 -2.609375 2.03125 -2.6875 C 1.46875 -2.796875 0.796875 -2.921875 0.796875 -3.5 C 0.796875 -3.84375 1.0625 -4.25 1.921875 -4.25 C 3 -4.25 3.0625 -3.359375 3.078125 -3.0625 C 3.078125 -2.96875 3.1875 -2.96875 3.1875 -2.96875 C 3.328125 -2.96875 3.328125 -3.015625 3.328125 -3.203125 L 3.328125 -4.203125 C 3.328125 -4.375 3.328125 -4.4375 3.21875 -4.4375 C 3.171875 -4.4375 3.140625 -4.4375 3.015625 -4.328125 C 2.984375 -4.28125 2.890625 -4.203125 2.84375 -4.171875 C 2.46875 -4.4375 2.0625 -4.4375 1.921875 -4.4375 C 0.703125 -4.4375 0.328125 -3.78125 0.328125 -3.21875 C 0.328125 -2.875 0.484375 -2.59375 0.75 -2.375 C 1.078125 -2.125 1.34375 -2.0625 2.0625 -1.921875 C 2.28125 -1.890625 3.09375 -1.71875 3.09375 -1.015625 C 3.09375 -0.5 2.75 -0.109375 1.96875 -0.109375 C 1.140625 -0.109375 0.78125 -0.671875 0.59375 -1.515625 C 0.5625 -1.640625 0.5625 -1.6875 0.453125 -1.6875 C 0.328125 -1.6875 0.328125 -1.625 0.328125 -1.4375 L 0.328125 -0.125 C 0.328125 0.046875 0.328125 0.109375 0.4375 0.109375 C 0.484375 0.109375 0.5 0.09375 0.6875 -0.09375 C 0.703125 -0.109375 0.703125 -0.125 0.890625 -0.3125 C 1.3125 0.09375 1.765625 0.109375 1.96875 0.109375 C 3.109375 0.109375 3.578125 -0.5625 3.578125 -1.265625 Z M 3.578125 -1.265625 "/> +</symbol> +<symbol overflow="visible" id="glyph4-0"> +<path style="stroke:none;" d=""/> +</symbol> +<symbol overflow="visible" id="glyph4-1"> +<path style="stroke:none;" d="M -1.1875 -4.125 C -1.28125 -4.125 -1.28125 -4.015625 -1.28125 -3.984375 C -1.28125 -3.90625 -1.234375 -3.875 -1.1875 -3.859375 C -0.265625 -3.578125 -0.140625 -2.921875 -0.140625 -2.5625 C -0.140625 -2.03125 -0.5625 -1.15625 -2.15625 -1.15625 C -3.78125 -1.15625 -4.203125 -1.96875 -4.203125 -2.5 C -4.203125 -2.59375 -4.1875 -3.21875 -3.828125 -3.5625 C -3.796875 -3.15625 -3.5 -3.09375 -3.375 -3.09375 C -3.109375 -3.09375 -2.921875 -3.28125 -2.921875 -3.546875 C -2.921875 -3.8125 -3.078125 -4.015625 -3.390625 -4.015625 C -4.0625 -4.015625 -4.4375 -3.25 -4.4375 -2.484375 C -4.4375 -1.25 -3.375 -0.34375 -2.140625 -0.34375 C -0.875 -0.34375 0.109375 -1.3125 0.109375 -2.46875 C 0.109375 -3.796875 -1.078125 -4.125 -1.1875 -4.125 Z M -1.1875 -4.125 "/> +</symbol> +<symbol overflow="visible" id="glyph4-2"> +<path style="stroke:none;" d="M -2.125 -4.671875 C -3.390625 -4.671875 -4.4375 -3.6875 -4.4375 -2.484375 C -4.4375 -1.234375 -3.359375 -0.28125 -2.125 -0.28125 C -0.84375 -0.28125 0.109375 -1.3125 0.109375 -2.46875 C 0.109375 -3.671875 -0.859375 -4.671875 -2.125 -4.671875 Z M -2.203125 -3.84375 C -1.84375 -3.84375 -1.3125 -3.84375 -0.875 -3.625 C -0.421875 -3.40625 -0.140625 -2.96875 -0.140625 -2.484375 C -0.140625 -2.046875 -0.34375 -1.625 -0.796875 -1.34375 C -1.234375 -1.09375 -1.84375 -1.09375 -2.203125 -1.09375 C -2.59375 -1.09375 -3.125 -1.09375 -3.5625 -1.34375 C -4.015625 -1.609375 -4.234375 -2.078125 -4.234375 -2.46875 C -4.234375 -2.90625 -4.015625 -3.328125 -3.578125 -3.59375 C -3.15625 -3.84375 -2.578125 -3.84375 -2.203125 -3.84375 Z M -2.203125 -3.84375 "/> +</symbol> +<symbol overflow="visible" id="glyph4-3"> +<path style="stroke:none;" d="M 0 -5.3125 L -0.3125 -5.3125 C -0.3125 -4.609375 -0.375 -4.53125 -0.859375 -4.53125 L -4.390625 -4.53125 L -4.28125 -3.078125 L -3.96875 -3.078125 C -3.96875 -3.765625 -3.90625 -3.84375 -3.40625 -3.84375 L -1.640625 -3.84375 C -0.78125 -3.84375 -0.109375 -3.375 -0.109375 -2.65625 C -0.109375 -1.8125 -0.578125 -1.78125 -1.09375 -1.78125 L -4.390625 -1.78125 L -4.28125 -0.3125 L -3.96875 -0.3125 C -3.96875 -1.09375 -3.9375 -1.09375 -3.0625 -1.09375 L -1.5625 -1.09375 C -0.796875 -1.09375 0.109375 -1.09375 0.109375 -2.59375 C 0.109375 -3.15625 -0.171875 -3.59375 -0.78125 -3.875 L 0.109375 -3.875 Z M 0 -5.3125 "/> +</symbol> +<symbol overflow="visible" id="glyph4-4"> +<path style="stroke:none;" d="M 0 -5.3125 L -0.3125 -5.3125 C -0.3125 -4.796875 -0.3125 -4.546875 -0.609375 -4.53125 L -2.5 -4.53125 C -3.359375 -4.53125 -3.65625 -4.53125 -4.015625 -4.234375 C -4.1875 -4.09375 -4.390625 -3.765625 -4.390625 -3.1875 C -4.390625 -2.453125 -3.953125 -2 -3.34375 -1.71875 L -4.390625 -1.71875 L -4.28125 -0.3125 L -3.96875 -0.3125 C -3.96875 -1.015625 -3.90625 -1.09375 -3.40625 -1.09375 L -0.75 -1.09375 C -0.3125 -1.09375 -0.3125 -0.984375 -0.3125 -0.3125 L 0 -0.3125 L -0.03125 -1.4375 L 0 -2.546875 L -0.3125 -2.546875 C -0.3125 -1.890625 -0.3125 -1.78125 -0.75 -1.78125 L -2.578125 -1.78125 C -3.609375 -1.78125 -4.171875 -2.484375 -4.171875 -3.109375 C -4.171875 -3.734375 -3.625 -3.84375 -3.0625 -3.84375 L -0.75 -3.84375 C -0.3125 -3.84375 -0.3125 -3.734375 -0.3125 -3.078125 L 0 -3.078125 L -0.03125 -4.203125 Z M 0 -5.3125 "/> +</symbol> +<symbol overflow="visible" id="glyph4-5"> +<path style="stroke:none;" d="M -1.234375 -3.296875 L -1.796875 -3.296875 L -1.796875 -3.046875 L -1.25 -3.046875 C -0.515625 -3.046875 -0.140625 -2.75 -0.140625 -2.375 C -0.140625 -1.71875 -1.046875 -1.71875 -1.203125 -1.71875 L -3.96875 -1.71875 L -3.96875 -3.140625 L -4.28125 -3.140625 L -4.28125 -1.71875 L -6.109375 -1.71875 L -6.109375 -1.46875 C -5.28125 -1.453125 -4.234375 -1.15625 -4.1875 -0.1875 L -3.96875 -0.1875 L -3.96875 -1.03125 L -1.234375 -1.03125 C -0.015625 -1.03125 0.109375 -1.953125 0.109375 -2.3125 C 0.109375 -3.015625 -0.59375 -3.296875 -1.234375 -3.296875 Z M -1.234375 -3.296875 "/> +</symbol> +<symbol overflow="visible" id="glyph4-6"> +<path style="stroke:none;" d="M -1.265625 -3.578125 C -1.796875 -3.578125 -2.09375 -3.28125 -2.21875 -3.15625 C -2.53125 -2.828125 -2.609375 -2.4375 -2.6875 -2.03125 C -2.796875 -1.46875 -2.921875 -0.796875 -3.5 -0.796875 C -3.84375 -0.796875 -4.25 -1.0625 -4.25 -1.921875 C -4.25 -3 -3.359375 -3.0625 -3.0625 -3.078125 C -2.96875 -3.078125 -2.96875 -3.1875 -2.96875 -3.1875 C -2.96875 -3.328125 -3.015625 -3.328125 -3.203125 -3.328125 L -4.203125 -3.328125 C -4.375 -3.328125 -4.4375 -3.328125 -4.4375 -3.21875 C -4.4375 -3.171875 -4.4375 -3.140625 -4.328125 -3.015625 C -4.28125 -2.984375 -4.203125 -2.890625 -4.171875 -2.84375 C -4.4375 -2.46875 -4.4375 -2.0625 -4.4375 -1.921875 C -4.4375 -0.703125 -3.78125 -0.328125 -3.21875 -0.328125 C -2.875 -0.328125 -2.59375 -0.484375 -2.375 -0.75 C -2.125 -1.078125 -2.0625 -1.34375 -1.921875 -2.0625 C -1.890625 -2.28125 -1.71875 -3.09375 -1.015625 -3.09375 C -0.5 -3.09375 -0.109375 -2.75 -0.109375 -1.96875 C -0.109375 -1.140625 -0.671875 -0.78125 -1.515625 -0.59375 C -1.640625 -0.5625 -1.6875 -0.5625 -1.6875 -0.453125 C -1.6875 -0.328125 -1.625 -0.328125 -1.4375 -0.328125 L -0.125 -0.328125 C 0.046875 -0.328125 0.109375 -0.328125 0.109375 -0.4375 C 0.109375 -0.484375 0.09375 -0.5 -0.09375 -0.6875 C -0.109375 -0.703125 -0.125 -0.703125 -0.3125 -0.890625 C 0.09375 -1.3125 0.109375 -1.765625 0.109375 -1.96875 C 0.109375 -3.109375 -0.5625 -3.578125 -1.265625 -3.578125 Z M -1.265625 -3.578125 "/> +</symbol> +</g> +<clipPath id="clip1"> + <path d="M 42 10 L 236.164062 10 L 236.164062 153 L 42 153 Z M 42 10 "/> +</clipPath> +<clipPath id="clip2"> + <path d="M 57 0.328125 L 222 0.328125 L 222 170 L 57 170 Z M 57 0.328125 "/> +</clipPath> +<clipPath id="clip3"> + <path d="M 42 10 L 236.164062 10 L 236.164062 153 L 42 153 Z M 42 10 "/> +</clipPath> +<clipPath id="clip4"> + <path d="M 42 4 L 236.164062 4 L 236.164062 166 L 42 166 Z M 42 4 "/> +</clipPath> +</defs> +<g id="surface1"> +<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(75%,75%,75%);stroke-opacity:1;stroke-miterlimit:10;" d="M -1.371216 -13.4506 L -1.371216 147.938203 M 26.066762 -13.4506 L 26.066762 147.938203 M 53.508662 -13.4506 L 53.508662 147.938203 M 80.946641 -13.4506 L 80.946641 147.938203 M 108.38462 -13.4506 L 108.38462 147.938203 M 135.82652 -13.4506 L 135.82652 147.938203 M 163.264499 -13.4506 L 163.264499 147.938203 " transform="matrix(0.996139,0,0,-0.996139,58.572953,152.031025)"/> +<g clip-path="url(#clip1)" clip-rule="nonzero"> +<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(75%,75%,75%);stroke-opacity:1;stroke-miterlimit:10;" d="M -16.190156 -0.427658 L 178.083439 -0.427658 M -16.190156 27.978905 L 178.083439 27.978905 M -16.190156 56.381546 L 178.083439 56.381546 M -16.190156 84.784187 L 178.083439 84.784187 M -16.190156 113.186828 L 178.083439 113.186828 M -16.190156 141.589469 L 178.083439 141.589469 " transform="matrix(0.996139,0,0,-0.996139,58.572953,152.031025)"/> +</g> +<g clip-path="url(#clip2)" clip-rule="nonzero"> +<path style="fill:none;stroke-width:0.19925;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(50%,50%,50%);stroke-opacity:1;stroke-miterlimit:10;" d="M -1.371216 -17.701389 L -1.371216 -13.4506 M 26.066762 -17.701389 L 26.066762 -13.4506 M 53.508662 -17.701389 L 53.508662 -13.4506 M 80.946641 -17.701389 L 80.946641 -13.4506 M 108.38462 -17.701389 L 108.38462 -13.4506 M 135.82652 -17.701389 L 135.82652 -13.4506 M 163.264499 -17.701389 L 163.264499 -13.4506 M -1.371216 152.192913 L -1.371216 147.938203 M 26.066762 152.192913 L 26.066762 147.938203 M 53.508662 152.192913 L 53.508662 147.938203 M 80.946641 152.192913 L 80.946641 147.938203 M 108.38462 152.192913 L 108.38462 147.938203 M 135.82652 152.192913 L 135.82652 147.938203 M 163.264499 152.192913 L 163.264499 147.938203 " transform="matrix(0.996139,0,0,-0.996139,58.572953,152.031025)"/> +</g> +<g clip-path="url(#clip3)" clip-rule="nonzero"> +<path style="fill:none;stroke-width:0.19925;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(50%,50%,50%);stroke-opacity:1;stroke-miterlimit:10;" d="M -16.190156 -0.427658 L -11.939367 -0.427658 M -16.190156 27.978905 L -11.939367 27.978905 M -16.190156 56.381546 L -11.939367 56.381546 M -16.190156 84.784187 L -11.939367 84.784187 M -16.190156 113.186828 L -11.939367 113.186828 M -16.190156 141.589469 L -11.939367 141.589469 M 178.083439 -0.427658 L 173.83265 -0.427658 M 178.083439 27.978905 L 173.83265 27.978905 M 178.083439 56.381546 L 173.83265 56.381546 M 178.083439 84.784187 L 173.83265 84.784187 M 178.083439 113.186828 L 173.83265 113.186828 M 178.083439 141.589469 L 173.83265 141.589469 " transform="matrix(0.996139,0,0,-0.996139,58.572953,152.031025)"/> +</g> +<g clip-path="url(#clip4)" clip-rule="nonzero"> +<path style="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -16.190156 -13.4506 L -16.190156 147.938203 L 178.083439 147.938203 L 178.083439 -13.4506 Z M -16.190156 -13.4506 " transform="matrix(0.996139,0,0,-0.996139,58.572953,152.031025)"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph0-1" x="48.384447" y="179.565293"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-1" x="56.103525" y="179.565293"/> + <use xlink:href="#glyph1-2" x="61.065611" y="179.565293"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-2" x="82.058914" y="179.565293"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-1" x="106.910581" y="179.565293"/> + <use xlink:href="#glyph1-2" x="111.872667" y="179.565293"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-3" x="134.24363" y="179.565293"/> + <use xlink:href="#glyph1-2" x="139.205715" y="179.565293"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-4" x="161.577674" y="179.565293"/> + <use xlink:href="#glyph1-2" x="166.53976" y="179.565293"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-5" x="188.910723" y="179.565293"/> + <use xlink:href="#glyph1-2" x="193.872808" y="179.565293"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-6" x="216.243772" y="179.565293"/> + <use xlink:href="#glyph1-2" x="221.205857" y="179.565293"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-2" x="33.977293" y="155.652985"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-3" x="24.052764" y="127.359659"/> + <use xlink:href="#glyph1-2" x="29.014849" y="127.359659"/> + <use xlink:href="#glyph1-2" x="33.976935" y="127.359659"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-5" x="24.052764" y="99.066333"/> + <use xlink:href="#glyph1-2" x="29.014849" y="99.066333"/> + <use xlink:href="#glyph1-2" x="33.976935" y="99.066333"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-7" x="24.052764" y="70.773006"/> + <use xlink:href="#glyph1-2" x="29.014849" y="70.773006"/> + <use xlink:href="#glyph1-2" x="33.976935" y="70.773006"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-8" x="24.052764" y="42.47968"/> + <use xlink:href="#glyph1-2" x="29.014849" y="42.47968"/> + <use xlink:href="#glyph1-2" x="33.976935" y="42.47968"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-1" x="16.333686" y="13.221095"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph2-1" x="21.296448" y="13.221095"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-2" x="24.052764" y="13.221095"/> + <use xlink:href="#glyph1-2" x="29.014849" y="13.221095"/> + <use xlink:href="#glyph1-2" x="33.976935" y="13.221095"/> +</g> +<path style="fill-rule:nonzero;fill:rgb(69.999695%,69.999695%,100%);fill-opacity:1;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,100%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00127072 -0.000226045 L 2.742324 -0.000226045 L 2.742324 0.282114 L 5.487298 0.282114 L 5.487298 0.427206 L 8.232272 0.427206 L 8.232272 0.282114 L 10.977246 0.282114 L 10.977246 4.403497 L 13.718299 4.403497 L 13.718299 11.077706 L 16.463274 11.077706 L 16.463274 28.261245 L 19.208248 28.261245 L 19.208248 58.228521 L 21.953222 58.228521 L 21.953222 98.846298 L 24.694275 98.846298 L 24.694275 134.49175 L 27.439249 134.49175 L 27.439249 123.70008 L 30.184224 123.70008 L 30.184224 110.0654 L 32.929198 110.0654 L 32.929198 84.929279 L 35.670251 84.929279 L 35.670251 59.930406 L 38.415225 59.930406 L 38.415225 44.876182 L 41.1602 44.876182 L 41.1602 32.378706 L 43.901252 32.378706 L 43.901252 25.280987 L 46.646227 25.280987 L 46.646227 23.857522 L 49.391201 23.857522 L 49.391201 18.602857 L 52.136175 18.602857 L 52.136175 16.900973 L 54.877228 16.900973 L 54.877228 12.783511 L 57.622202 12.783511 L 57.622202 12.49725 L 60.367177 12.49725 L 60.367177 11.928648 L 63.112151 11.928648 L 63.112151 8.803299 L 65.853204 8.803299 L 65.853204 9.658162 L 68.598178 9.658162 L 68.598178 8.520958 L 71.343153 8.520958 L 71.343153 7.952357 L 74.088127 7.952357 L 74.088127 7.242585 L 76.82918 7.242585 L 76.82918 6.673983 L 79.574154 6.673983 L 79.574154 4.685837 L 82.319128 4.685837 L 82.319128 5.823041 L 85.064103 5.823041 L 85.064103 5.540701 L 87.805156 5.540701 L 87.805156 4.827007 L 90.55013 4.827007 L 90.55013 5.254439 L 93.295104 5.254439 L 93.295104 5.540701 L 96.036157 5.540701 L 96.036157 4.544667 L 98.781131 4.544667 L 98.781131 4.827007 L 101.526106 4.827007 L 101.526106 2.983953 L 104.27108 2.983953 L 104.27108 4.685837 L 109.757107 4.685837 L 109.757107 5.823041 L 112.502081 5.823041 L 112.502081 2.838862 L 115.247056 2.838862 L 115.247056 3.834895 L 117.988109 3.834895 L 117.988109 3.548634 L 120.733083 3.548634 L 120.733083 2.983953 L 123.478057 2.983953 L 123.478057 3.125123 L 126.223031 3.125123 L 126.223031 2.12909 L 128.964084 2.12909 L 128.964084 1.98792 L 131.709059 1.98792 L 131.709059 1.84675 L 134.454033 1.84675 L 134.454033 2.415351 L 137.199007 2.415351 L 137.199007 1.419318 L 139.94006 1.419318 L 139.94006 1.98792 L 142.685034 1.98792 L 142.685034 1.136978 L 145.430009 1.136978 L 145.430009 1.705579 L 148.174983 1.705579 L 148.174983 1.560488 L 150.916036 1.560488 L 150.916036 1.419318 L 153.66101 1.419318 L 153.66101 0.427206 L 156.405984 0.427206 L 156.405984 1.136978 L 159.147037 1.136978 L 159.147037 0.568376 L 161.892012 0.568376 L 161.892012 1.705579 L 161.892012 -0.427658 L 0.00127072 -0.427658 Z M 0.00127072 -0.000226045 " transform="matrix(0.996139,0,0,-0.996139,58.572953,152.031025)"/> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph1-9" x="122.640607" y="194.649821"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph3-1" x="130.911546" y="194.649821"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph3-2" x="138.076797" y="194.649821"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph3-3" x="146.343632" y="194.649821"/> + <use xlink:href="#glyph3-4" x="151.861471" y="194.649821"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph4-1" x="9.411518" y="98.994611"/> + <use xlink:href="#glyph4-2" x="9.411518" y="94.588279"/> + <use xlink:href="#glyph4-3" x="9.411518" y="89.626193"/> + <use xlink:href="#glyph4-4" x="9.411518" y="84.108354"/> +</g> +<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> + <use xlink:href="#glyph4-5" x="9.411518" y="78.868392"/> + <use xlink:href="#glyph4-6" x="9.411518" y="75.00789"/> +</g> +</g> +</svg> diff --git a/v0.16.5/examples/cherenkov.tex b/v0.16.5/examples/cherenkov.tex new file mode 100644 index 00000000..63232611 --- /dev/null +++ b/v0.16.5/examples/cherenkov.tex @@ -0,0 +1,82 @@ +\RequirePackage{luatex85} +\documentclass[tikz]{standalone} +% Default preamble +\usepackage{pgfplots} +\pgfplotsset{compat=newest} +\usepgfplotslibrary{groupplots} +\usepgfplotslibrary{polar} +\usepgfplotslibrary{smithchart} +\usepgfplotslibrary{statistics} +\usepgfplotslibrary{dateplot} +\usepgfplotslibrary{ternary} +\begin{document} +\begin{tikzpicture} +\begin{axis}[ybar, const plot, grid, xlabel={\Delta t / ns}, ylabel={counts}] + \addplot+ + coordinates { + (-9.5,3.0) + (-8.5,5.0) + (-7.5,6.0) + (-6.5,5.0) + (-5.5,34.0) + (-4.5,81.0) + (-3.5,202.0) + (-2.5,413.0) + (-1.5,699.0) + (-0.5,950.0) + (0.5,874.0) + (1.5,778.0) + (2.5,601.0) + (3.5,425.0) + (4.5,319.0) + (5.5,231.0) + (6.5,181.0) + (7.5,171.0) + (8.5,134.0) + (9.5,122.0) + (10.5,93.0) + (11.5,91.0) + (12.5,87.0) + (13.5,65.0) + (14.5,71.0) + (15.5,63.0) + (16.5,59.0) + (17.5,54.0) + (18.5,50.0) + (19.5,36.0) + (20.5,44.0) + (21.5,42.0) + (22.5,37.0) + (23.5,40.0) + (24.5,42.0) + (25.5,35.0) + (26.5,37.0) + (27.5,24.0) + (28.5,36.0) + (29.5,36.0) + (30.5,44.0) + (31.5,23.0) + (32.5,30.0) + (33.5,28.0) + (34.5,24.0) + (35.5,25.0) + (36.5,18.0) + (37.5,17.0) + (38.5,16.0) + (39.5,20.0) + (40.5,13.0) + (41.5,17.0) + (42.5,11.0) + (43.5,15.0) + (44.5,14.0) + (45.5,13.0) + (46.5,6.0) + (47.5,11.0) + (48.5,7.0) + (49.5,15.0) + } + \closedcycle + ; +\end{axis} +\end{tikzpicture} +\end{document} diff --git a/v0.16.5/examples/cherenkov_times/index.html b/v0.16.5/examples/cherenkov_times/index.html new file mode 100644 index 00000000..b7fd2156 --- /dev/null +++ b/v0.16.5/examples/cherenkov_times/index.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Cherenkov times · KM3io.jl</title><meta name="title" content="Cherenkov times · KM3io.jl"/><meta property="og:title" content="Cherenkov times · KM3io.jl"/><meta property="twitter:title" content="Cherenkov times · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img src="../../assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../../manual/rootfiles/">ROOT Files</a></li><li><a class="tocitem" href="../../manual/detector/">Detector and its Components</a></li><li><a class="tocitem" href="../../manual/calibration/">Calibration</a></li><li><a class="tocitem" href="../../manual/tools/">Tools</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../offline_data/">Offline data</a></li><li class="is-active"><a class="tocitem" href>Cherenkov times</a></li><li><a class="tocitem" href="../controlhost/">Accessing Live Data</a></li><li><a class="tocitem" href="../hdf5/">HDF5</a></li></ul></li><li><a class="tocitem" href="../../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Examples</a></li><li class="is-active"><a href>Cherenkov times</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Cherenkov times</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/examples/cherenkov_times.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Cherenkov-times"><a class="docs-heading-anchor" href="#Cherenkov-times">Cherenkov times</a><a id="Cherenkov-times-1"></a><a class="docs-heading-anchor-permalink" href="#Cherenkov-times" title="Permalink"></a></h1><p>In this example, we will pick the best reconstructed muon (from the Jpp muon reconstruction chain <code>JMuon</code>) in each event and calculate the Cherenkov hit time residuals for each triggered hit.</p><p>We open the a sample file from the <code>KM3NeTTestData</code> package:</p><pre><code class="language-julia hljs">using KM3io, KM3NeTTestData + +f = ROOTFile(datapath("offline", "mcv6.0.gsg_muon_highE-CC_50-500GeV.km3sim.jterbr00008357.jorcarec.aanet.905.root"))</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">ROOTFile{OfflineTree (140 events)}</code></pre><p>Each event holds a vector of reconstructed tracks (<code>Vector{Trk}</code>) behind the <code>.trks</code> field. This vector contains different stages of reconstruction results from a variety of reconstruction algorithms (<code>JMuon</code>, <code>JShower</code>, <code>aashower</code> etc.). <code>KM3io.jl</code> exports helper functions to pick the best reconstructed track for a given reconstruction algorithm. The logic is based on the reference implementation in <a href="https://git.km3net.de/common/km3net-dataformat/-/blob/master/tools/reconstruction.hh">KM3NeT DataFormat tools</a>. The function <code>bestjppmuon()</code> can be used to select the best reconstructed <code>JMuon</code> for a given event:</p><pre><code class="language-julia hljs">evt = f.offline[1] +best_muon = bestjppmuon(evt)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Trk(1, [472.38683488288035, 526.1421552520982, 198.52185151902515], [0.14146977403136585, 0.9861486218588713, 0.0865863652162581], 5.8796099548102595e7, 544.9525806125414, 0.0, 40.55672709261793, 4000, Int32[1, 2, 5, 3, 5, 4], [0.014885871185356527, 0.010385140089653992, -40.55672709261793, 21.0, 544.9525806125414, 62.53353460788458, 3.9927948910593534, 14.0, 0.0, 8.658344340729155, 45.03600640024326, 0.0, 0.0, 1501.6459845444228, -60.9373245973645, 602.0, 18.0])</code></pre><p>We now use this track as a seed to calculate the Cherenkov photon (see <a href="../../api/#KM3io.CherenkovPhoton"><code>CherenkovPhoton</code></a>) parameters using <a href="../../api/#KM3io.cherenkov"><code>cherenkov()</code></a> for each hit triggered hit in the event. To select only triggered hits, we use the <a href="../../api/#KM3io.triggered"><code>triggered()</code></a> function together withe <code>filter()</code> which returns a new vector of triggered hits:</p><pre><code class="language-julia hljs">cherenkov(best_muon, filter(triggered, evt.hits))</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">18-element Vector{CherenkovPhoton}: + CherenkovPhoton(27.456056524385705, 40.873619315665835, 23.01132932189433, 5.879636441354458e7, -3.3185445815324783, -0.6308750235550007, [-0.5280726983220052, 0.8386645132949296, -0.1333456389489177]) + CherenkovPhoton(19.589541083469918, 29.162798528739554, 34.066894977706106, 5.879634739559217e7, -3.233592174947262, -0.5615835242962758, [-0.10332584557538887, 0.8159650107370725, -0.5687924673279173]) + CherenkovPhoton(10.86335249693415, 16.17218896884205, 44.610162820726465, 5.879632277897501e7, -13.470975004136562, -0.7747565822537276, [-0.2741635374885438, 0.8327626017287875, -0.48097900564751106]) + CherenkovPhoton(10.958658115674492, 16.31406970745347, 44.59234480366246, 5.879632337250174e7, -12.580501735210419, -0.12671424342178933, [-0.2699696583845673, 0.8324204577911087, -0.4839344635408405]) + CherenkovPhoton(10.944182695875304, 16.29252026178632, 44.40568465253136, 5.879632265069598e7, 3.0913040190935135, -0.9323746132442533, [-0.28061324969503537, 0.8332805365263898, -0.4763399537534972]) + CherenkovPhoton(11.17928745250317, 16.642518897357846, 44.22007515662778, 5.8796323642327406e7, 15.824672594666481, 0.13091951330569712, [-0.28166643233811883, 0.8333641475329505, -0.47557146518750953]) + CherenkovPhoton(10.90295605293336, 16.23114647681559, 44.79747555408915, 5.8796323675116315e7, 23.333883680403233, 0.21074029444645023, [-0.27966746730903425, 0.8332052197790003, -0.4770274305131501]) + CherenkovPhoton(10.834690812223172, 16.129520540155593, 44.741227103812335, 5.879632301979044e7, 35.40920955687761, -0.5058063194444712, [-0.27591434972063633, 0.8329041936340702, -0.4797310453212485]) + CherenkovPhoton(38.84032185176909, 57.82128719239538, -7.3748303011806655, 5.879634105250908e7, 2.452490918338299, -0.869871832680696, [-0.49768036486114947, 0.8411698501975048, -0.21153613769372911]) + CherenkovPhoton(28.22562353198971, 42.01926777682648, 4.187186042072117, 5.879630689544618e7, 0.01255381852388382, 0.010809985106091385, [-0.20536281574231854, 0.826660216630483, -0.5238883470271404]) + CherenkovPhoton(14.785344110263079, 22.01082759562596, 20.557497574678035, 5.8796269418408036e7, 1.031591959297657, -0.8687222096306455, [-0.49539706637778913, 0.8412721768556203, -0.2164321396486352]) + CherenkovPhoton(14.88094434135218, 22.153146921365803, 20.51061784167785, 5.879626991701378e7, 6.563986226916313, -0.3270806917438915, [-0.49376584703803356, 0.8413399367600128, -0.21986904991715162]) + CherenkovPhoton(15.035038797101658, 22.382546147629952, 20.413422353617566, 5.8796270648541935e7, 10.363458067178726, 0.45681008948052304, [-0.49501594042850555, 0.841288399552909, -0.21723960849575105]) + CherenkovPhoton(35.48962576204839, 52.8331317997193, -2.014094840107113, 5.879633597758977e7, 1.9564102292060852, -0.4138351012632555, [0.2341920351405915, 0.7697450484845674, -0.5938405939393154]) + CherenkovPhoton(35.32252555236435, 52.58437100801102, -1.7938275339033325, 5.879633556747952e7, 3.269520476460457, -0.8429145215271237, [0.23451716273478773, 0.7696930575084193, -0.5937796709269916]) + CherenkovPhoton(25.877763469142074, 38.52402663285318, 9.45499183787367, 5.8796308381212674e7, -0.5812126770615578, -0.9686719491474437, [0.27451879989430933, 0.7631813220745428, -0.5849732456626894]) + CherenkovPhoton(26.084505456694867, 38.83180183313701, 9.19462645688342, 5.8796308929165296e7, 2.361834704875946, -0.39414201377088814, [0.2777981674998186, 0.7626371978873142, -0.5841341306004368]) + CherenkovPhoton(17.507053914837183, 26.062615963014824, 19.40524417300148, 5.8796284221979275e7, 1.8830207213759422, -0.9165095376090591, [0.3547191740867844, 0.7494025149884511, -0.5590797600201369])</code></pre><p>To obtain more statistics, we iterate through all the events and calculate the Cherenkov time residuals for each set of hits based on the best reconstruction track. We fill the time residuals in a 1D histogram using the <a href="https://github.com/Moelf/FHist.jl">FHist</a> package.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>This example uses <a href="https://github.com/KristofferC/PGFPlotsX.jl">PGFPlotsX</a> which is a wrapper for the LaTeX library PGFPlots. Feel free to adapt the example to use your favourite plotting library.</p></div></div><pre><code class="language-julia hljs">using FHist + +Δts = Hist1D(;bins=-10:50) + +for evt ∈ f.offline + m = bestjppmuon(evt) + cherenkov_photons = cherenkov(m, filter(triggered, evt.hits)) + for cp ∈ cherenkov_photons + push!(Δts, cp.Δt) + end +end + +axis = @pgf Axis( + { + ybar, const_plot, grid, + xlabel=raw"\Delta t / ns", + ylabel="counts", + }, + PlotInc(Coordinates(bincenters(Δts), bincounts(Δts)), raw"\closedcycle") +) +axis</code></pre><p><a href="../cherenkov.pdf">[.pdf]</a>, <a href="../cherenkov.tex">[generated .tex]</a></p><p><img src="../cherenkov.svg" alt/></p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../offline_data/">« Offline data</a><a class="docs-footer-nextpage" href="../controlhost/">Accessing Live Data »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/examples/controlhost/index.html b/v0.16.5/examples/controlhost/index.html new file mode 100644 index 00000000..c829dc6d --- /dev/null +++ b/v0.16.5/examples/controlhost/index.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Accessing Live Data · KM3io.jl</title><meta name="title" content="Accessing Live Data · KM3io.jl"/><meta property="og:title" content="Accessing Live Data · KM3io.jl"/><meta property="twitter:title" content="Accessing Live Data · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img src="../../assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../../manual/rootfiles/">ROOT Files</a></li><li><a class="tocitem" href="../../manual/detector/">Detector and its Components</a></li><li><a class="tocitem" href="../../manual/calibration/">Calibration</a></li><li><a class="tocitem" href="../../manual/tools/">Tools</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../offline_data/">Offline data</a></li><li><a class="tocitem" href="../cherenkov_times/">Cherenkov times</a></li><li class="is-active"><a class="tocitem" href>Accessing Live Data</a><ul class="internal"><li><a class="tocitem" href="#Launching-JLigier"><span>Launching <code>JLigier</code></span></a></li><li><a class="tocitem" href="#Simulating-the-DAQ"><span>Simulating the DAQ</span></a></li><li><a class="tocitem" href="#Retrieving-Events"><span>Retrieving Events</span></a></li></ul></li><li><a class="tocitem" href="../hdf5/">HDF5</a></li></ul></li><li><a class="tocitem" href="../../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Examples</a></li><li class="is-active"><a href>Accessing Live Data</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Accessing Live Data</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/examples/controlhost.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Accessing-Live-Data"><a class="docs-heading-anchor" href="#Accessing-Live-Data">Accessing Live Data</a><a id="Accessing-Live-Data-1"></a><a class="docs-heading-anchor-permalink" href="#Accessing-Live-Data" title="Permalink"></a></h1><p>This example shows how to access and process live data (events) from the KM3NeT DAQ system. We will use two Jpp command line tools (<a href="https://common.pages.km3net.de/jpp/#JLigier"><code>JLigier</code></a> and <a href="https://common.pages.km3net.de/jpp/#JRegurgitate"><code>JRegurgitate</code></a>) to create a ligier dispatcher and send triggered DAQ events to it.</p><p>This example uses Jpp v14.4.3 and real data from a KM3NeT detector (online ROOT format) with the filename <code>KM3NeT_00000075_00010275.root</code> which can be found on the HPSS storage.</p><h2 id="Launching-JLigier"><a class="docs-heading-anchor" href="#Launching-JLigier">Launching <code>JLigier</code></a><a id="Launching-JLigier-1"></a><a class="docs-heading-anchor-permalink" href="#Launching-JLigier" title="Permalink"></a></h2><p>We open a terminal and launch the <code>JLigier</code> process with a high debug level. This ligier is the central communication point and it will receive messages which are tagged with short label of maximum 8 characters.</p><pre><code class="language-shell hljs">$ JLigier -P 5553 -d 3 +Port 5553 +Memory limit 16760735744 +Queue limit 100</code></pre><p>The ligier is now running and and listening on port 5553 of all host IP addresses (including the localhost <code>127.0.0.1</code>). Clients can connect to it and subscribe for a given set of message tags. Leave this terminal open.</p><h2 id="Simulating-the-DAQ"><a class="docs-heading-anchor" href="#Simulating-the-DAQ">Simulating the DAQ</a><a id="Simulating-the-DAQ-1"></a><a class="docs-heading-anchor-permalink" href="#Simulating-the-DAQ" title="Permalink"></a></h2><p>The first client we start in new terminal session is the <a href="https://common.pages.km3net.de/jpp/#JRegurgitate"><code>JRegurgitate</code></a> process which takes a ROOT file (in online format), a class identifier, a few other parameters like the frequency and timeout of the messages and also the IP and port of the ligier to send to. We will use this application to simulate the KM3NeT DAQ – at least the output of the <a href="https://common.pages.km3net.de/jpp/#JDataFilter"><code>JDataFilter</code></a> which is responsible for triggering events and sending them downstreams to a <code>JLigier</code> so that they can be picked up by the <a href="https://common.pages.km3net.de/jpp/#JDataWriter"><code>JDataWriter</code></a> to store them in <a href="../../manual/rootfiles/#online_dataformat">ROOT files (online format)</a>.</p><pre><code class="language-shell hljs">$ JRegurgitate -f /data/sea/KM3NeT_00000075_00010275.root -C JDAQEvent -R 2 -T 10000000 -H 127.0.0.1:5553</code></pre><p>This program is fairly quite but if you look at the terminal where the <code>JLigier</code> is running, you'll see a flood of messages, showing that a new client has connected and data is received (tagged with <code>IO_EVT</code>). It also prints the number of bytes of each message:</p><pre><code class="language-shell hljs">$ JLigier -P 5553 -d 3 +Port 30001 +Memory limit 16760735744 +Queue limit 100 +New client[4] +Client[4].read(0,1,1756) +Client[4].read(1,2,0) +Message[4] IO_EVT 1772 +Client[4].read(0,1,1394) +Client[4].read(1,2,0) +Message[4] IO_EVT 1410 +Client[4].read(0,1,1716) +... +... +...</code></pre><h2 id="Retrieving-Events"><a class="docs-heading-anchor" href="#Retrieving-Events">Retrieving Events</a><a id="Retrieving-Events-1"></a><a class="docs-heading-anchor-permalink" href="#Retrieving-Events" title="Permalink"></a></h2><p>Now open a thrid terminal and fire up the Julia REPL. With a few lines, we will able to connect to the ligier and receive DAQ events interactively.</p><pre><code class="language-julia-repl hljs">julia> using KM3io + +julia> c = CHClient{KM3io.DAQEvent}(ip"127.0.0.1", 5553) +CHClient{DAQEvent}(ip"127.0.0.1", 0x7531, CHTag[CHTag("IO_EVT")], Sockets.TCPSocket(RawFD(20) open, 0 bytes waiting)) + +julia> for e in c + @show e + end +e = DAQEvent with 126 snapshot and 7 triggered hits +e = DAQEvent with 138 snapshot and 6 triggered hits +e = DAQEvent with 149 snapshot and 6 triggered hits +e = DAQEvent with 149 snapshot and 6 triggered hits +e = DAQEvent with 136 snapshot and 6 triggered hits +... +... +...</code></pre></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../cherenkov_times/">« Cherenkov times</a><a class="docs-footer-nextpage" href="../hdf5/">HDF5 »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/examples/foo.h5 b/v0.16.5/examples/foo.h5 new file mode 100644 index 0000000000000000000000000000000000000000..b103c4d074aebb882a799405b15da4e6814b85f8 GIT binary patch literal 20472 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�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 UuTp!CKRGJ}iht%$I?wjM09#XCkN^Mx literal 0 HcmV?d00001 diff --git a/v0.16.5/examples/hdf5/index.html b/v0.16.5/examples/hdf5/index.html new file mode 100644 index 00000000..cdb813e1 --- /dev/null +++ b/v0.16.5/examples/hdf5/index.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>HDF5 · KM3io.jl</title><meta name="title" content="HDF5 · KM3io.jl"/><meta property="og:title" content="HDF5 · KM3io.jl"/><meta property="twitter:title" content="HDF5 · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img src="../../assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../../manual/rootfiles/">ROOT Files</a></li><li><a class="tocitem" href="../../manual/detector/">Detector and its Components</a></li><li><a class="tocitem" href="../../manual/calibration/">Calibration</a></li><li><a class="tocitem" href="../../manual/tools/">Tools</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../offline_data/">Offline data</a></li><li><a class="tocitem" href="../cherenkov_times/">Cherenkov times</a></li><li><a class="tocitem" href="../controlhost/">Accessing Live Data</a></li><li class="is-active"><a class="tocitem" href>HDF5</a><ul class="internal"><li><a class="tocitem" href="#Creating-datasets"><span>Creating datasets</span></a></li><li><a class="tocitem" href="#Reading-datasets"><span>Reading datasets</span></a></li><li><a class="tocitem" href="#Adding-metadata"><span>Adding metadata</span></a></li></ul></li></ul></li><li><a class="tocitem" href="../../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Examples</a></li><li class="is-active"><a href>HDF5</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>HDF5</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/examples/hdf5.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="HDF5"><a class="docs-heading-anchor" href="#HDF5">HDF5</a><a id="HDF5-1"></a><a class="docs-heading-anchor-permalink" href="#HDF5" title="Permalink"></a></h1><p>Plain ASCII (CSV) files are often perfectly fine for small, tabular datasets but when dealing with larger amounts of data, HDF5 comes in handy with compression, metadata and hierachical datasets. KM3NeT uses HDF5 in many analysis chains, often to store intermediate or end results.</p><p>This example shows how to create an HDF5 file and write some vectors of structs into different datasets.</p><pre><code class="language-julia hljs">using KM3io +using Random + +Random.seed!(23) # to make things reproducible ;) + +f = H5File("foo.h5", "w")</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">H5File(HDF5.File: (read-write) foo.h5, Dict{String, H5CompoundDataset}())</code></pre><p>We now have an <code>H5File</code> instance which we can use to store datasets.</p><p>Let's say we have our custom data type (<code>struct</code>) like</p><pre><code class="language-julia hljs">struct Particle + x::Float32 + y::Float32 + E::Int64 +end</code></pre><p>and we generate instances of <code>Particle</code> in a loop which we want to dump directly into an HDF5 file to the dataset stored at <code>simulation/particles</code>, meaning that <code>simulation</code> is the group name and <code>particles</code> the dataset name.</p><h2 id="Creating-datasets"><a class="docs-heading-anchor" href="#Creating-datasets">Creating datasets</a><a id="Creating-datasets-1"></a><a class="docs-heading-anchor-permalink" href="#Creating-datasets" title="Permalink"></a></h2><p>First, we create our dataset with our type <code>Particle</code>. This is a so called <code>H5CompoundDataset</code> and resembles a dataset wich has a compound type (<code>struct</code>) associated with it:</p><pre><code class="language-julia hljs">dset = create_dataset(f, "simulation/particles", Particle)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">H5CompoundDataset{Main.Particle}(HDF5.Dataset: /simulation/particles (file: foo.h5 xfer_mode: 0), KM3io.H5CompoundDatasetCache{Main.Particle}(Main.Particle[], 1000))</code></pre><p>We fill some random particles using the dummy loop:</p><pre><code class="language-julia hljs">for i in 1:1000 + # creates some random particle + particle = Particle(rand(), rand(), rand(1:1000)) + # we push to the dataset, just like if it was an Array + push!(dset, particle) +end</code></pre><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>To avoid excessive I/O, KM3io uses a cache for each <code>H5CompoundDataset</code>. If you don't close the <code>H5File</code> properly, you might lose data which is still sitting in the cache. Therefore, always use <code>close(f)</code> to make sure that all the caches are dumped to the HDF5 file. The methods <code>flush(d::H5CompoundDataset)</code> and <code>flush(f::H5File)</code> can be used to manually to prematurely flush the cache of a dataset or all caches of an HDF5 file respectively.</p></div></div><p>Let's close the file</p><pre><code class="language-julia hljs">close(f)</code></pre><h2 id="Reading-datasets"><a class="docs-heading-anchor" href="#Reading-datasets">Reading datasets</a><a id="Reading-datasets-1"></a><a class="docs-heading-anchor-permalink" href="#Reading-datasets" title="Permalink"></a></h2><p>We open the file from the previous example with <code>HDF5.jl</code>, just to demonstrate that we can read it without any <code>KM3NeT</code> related libraries:</p><pre><code class="language-julia hljs">using HDF5 + +f = h5open("foo.h5") +particles = f["simulation/particles"] + +@show particles[1:5]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">5-element Vector{NamedTuple{(:x, :y, :E), Tuple{Float32, Float32, Int64}}}: + (x = 0.6173128, y = 0.7017544, E = 846) + (x = 0.15231268, y = 0.5729589, E = 919) + (x = 0.3698977, y = 0.9852652, E = 29) + (x = 0.20275348, y = 0.61091214, E = 43) + (x = 0.9130694, y = 0.80798453, E = 492)</code></pre><p>Notice that <code>HDF5.jl</code> automatically created <code>NamedTuple</code> instances with the same fieldnames as our own <code>struct</code> definition of <code>Particle</code>. This means that the elements behave just like the original one regarding the field access:</p><pre><code class="language-julia hljs">particles[2].E</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">919</code></pre><p>The whole vector can also be reinterpreted to the original <code>struct</code> definition with zero-cost. This can be mandatory if the data is then passed to other methods which require a specific type (in this case <code>Particle</code>). The following line will only work if <code>Particle</code> is already defined (i.e. the correspoinding module has been loaded). It is also mandatory to pass a slice (here, we pass the full slice by using <code>[:]</code>) to <code>reinterpret</code> and not the dataset itself:</p><pre><code class="language-julia hljs">reinterpreted_particles = reinterpret(Particle, particles[:])</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">1000-element reinterpret(Main.Particle, ::Vector{NamedTuple{(:x, :y, :E), Tuple{Float32, Float32, Int64}}}): + Main.Particle(0.6173128f0, 0.7017544f0, 846) + Main.Particle(0.15231268f0, 0.5729589f0, 919) + Main.Particle(0.3698977f0, 0.9852652f0, 29) + Main.Particle(0.20275348f0, 0.61091214f0, 43) + Main.Particle(0.9130694f0, 0.80798453f0, 492) + Main.Particle(0.64656323f0, 0.22889934f0, 645) + Main.Particle(0.6973233f0, 0.50635964f0, 273) + Main.Particle(0.40650654f0, 0.3752744f0, 761) + Main.Particle(0.95921856f0, 0.50115997f0, 367) + Main.Particle(0.33829075f0, 0.14806244f0, 259) + â‹® + Main.Particle(0.3361519f0, 0.85591096f0, 550) + Main.Particle(0.6328468f0, 0.9447911f0, 602) + Main.Particle(0.77841556f0, 0.89120376f0, 336) + Main.Particle(0.6592056f0, 0.43078482f0, 478) + Main.Particle(0.39405528f0, 0.71947837f0, 995) + Main.Particle(0.8272534f0, 0.04592278f0, 144) + Main.Particle(0.10343988f0, 0.1650157f0, 186) + Main.Particle(0.81352913f0, 0.4152046f0, 815) + Main.Particle(0.9511939f0, 0.5394598f0, 921)</code></pre><p>Each element is now a proper <code>Particle</code> instance:</p><pre><code class="language-julia hljs">reinterpreted_particles[4]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Main.Particle(0.20275348f0, 0.61091214f0, 43)</code></pre><p><code>KM3io</code> also writes the name of the <code>struct</code> into the attributes of the dataset:</p><pre><code class="language-julia hljs">attrs(particles)["struct_name"]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">"Particle"</code></pre><h2 id="Adding-metadata"><a class="docs-heading-anchor" href="#Adding-metadata">Adding metadata</a><a id="Adding-metadata-1"></a><a class="docs-heading-anchor-permalink" href="#Adding-metadata" title="Permalink"></a></h2><p>Sometimes it's useful to keep track of additional metadata, e.g. a given set of parameters for a specific dataset. The <code>addmeta()</code> function can be used to attach key-value-pairs from a struct to a variety of HDF5 structures, like files, datasets or groups. The following example demonstrates it:</p><pre><code class="language-julia hljs">using KM3io +using HDF5 + +struct SimulationParameters + can_height::Int32 + can_radius::Int32 + minimum_energy::Float64 + maximum_energy::Float64 +end + +simparams = SimulationParameters(800, 200, 1e3, 1e7) + +f = h5open("simulation.h5", "w") +addmeta(f, simparams) + +attributes(f)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">ðŸ—‚ï¸ Attributes of HDF5.File: (read-write) simulation.h5 +├─ ðŸ·ï¸ can_height +├─ ðŸ·ï¸ can_radius +├─ ðŸ·ï¸ maximum_energy +└─ ðŸ·ï¸ minimum_energy</code></pre><p>To access individual attributes, use <code>HDF5.read_attribute</code>:</p><pre><code class="language-julia hljs">read_attribute(f, "can_radius")</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">200</code></pre><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>It is possible to add metadata to datasets and groups too. Make sure that the struct you pass to <code>addmeta()</code> only contains primitive types or strings in their fields. Arrays and other nested or compound fieldtypes are not supported by HDF5.</p></div></div></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../controlhost/">« Accessing Live Data</a><a class="docs-footer-nextpage" href="../../api/">API »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/examples/offline_data/index.html b/v0.16.5/examples/offline_data/index.html new file mode 100644 index 00000000..30a1a711 --- /dev/null +++ b/v0.16.5/examples/offline_data/index.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Offline data · KM3io.jl</title><meta name="title" content="Offline data · KM3io.jl"/><meta property="og:title" content="Offline data · KM3io.jl"/><meta property="twitter:title" content="Offline data · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img src="../../assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../../manual/rootfiles/">ROOT Files</a></li><li><a class="tocitem" href="../../manual/detector/">Detector and its Components</a></li><li><a class="tocitem" href="../../manual/calibration/">Calibration</a></li><li><a class="tocitem" href="../../manual/tools/">Tools</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li class="is-active"><a class="tocitem" href>Offline data</a><ul class="internal"><li><a class="tocitem" href="#Events"><span>Events</span></a></li></ul></li><li><a class="tocitem" href="../cherenkov_times/">Cherenkov times</a></li><li><a class="tocitem" href="../controlhost/">Accessing Live Data</a></li><li><a class="tocitem" href="../hdf5/">HDF5</a></li></ul></li><li><a class="tocitem" href="../../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Examples</a></li><li class="is-active"><a href>Offline data</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Offline data</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/examples/offline_data.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Offline-data"><a class="docs-heading-anchor" href="#Offline-data">Offline data</a><a id="Offline-data-1"></a><a class="docs-heading-anchor-permalink" href="#Offline-data" title="Permalink"></a></h1><p>Let's use the <code>KM3NeTTestData</code> Julia package which contains all kinds of KM3NeT related sample files. The <code>datapath()</code> function can be used to get a path to such a file. In the following, we will discover the <code>numucc.root</code> file which contains 10 muon neutrino charged current interaction events.</p><pre><code class="language-julia hljs">using KM3io, KM3NeTTestData + +f = ROOTFile(datapath("offline", "numucc.root"))</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">ROOTFile{OnlineTree (0 events, 0 summaryslices), OfflineTree (10 events)}</code></pre><p>The <code>ROOTFile</code> is the container object which gives access to both the online and offline tree. In this case, the online tree is empty</p><pre><code class="language-julia hljs">f.online</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">OnlineTree (0 events, 0 summaryslices)</code></pre><p>and the offline tree holds our 10 MC events:</p><pre><code class="language-julia hljs">f.offline</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">OfflineTree (10 events)</code></pre><h2 id="Events"><a class="docs-heading-anchor" href="#Events">Events</a><a id="Events-1"></a><a class="docs-heading-anchor-permalink" href="#Events" title="Permalink"></a></h2><p>To access a single event, you can use the usual indexing syntax:</p><pre><code class="language-julia hljs">some_event = f.offline[5]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Evt (4105 hits, 78 MC hits, 0 tracks, 10 MC tracks)</code></pre><p>or ranges of events:</p><pre><code class="language-julia hljs">events = f.offline[6:9]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">4-element Vector{Evt}: + Evt (4301 hits, 50 MC hits, 60 tracks, 13 MC tracks) + Evt (3949 hits, 58 MC hits, 59 tracks, 11 MC tracks) + Evt (4180 hits, 49 MC hits, 66 tracks, 10 MC tracks) + Evt (4210 hits, 35 MC hits, 38 tracks, 13 MC tracks)</code></pre><h3 id="Hits"><a class="docs-heading-anchor" href="#Hits">Hits</a><a id="Hits-1"></a><a class="docs-heading-anchor-permalink" href="#Hits" title="Permalink"></a></h3><p>Each event consists of a vector of hits, MC hits, tracks and MC tracks. Depending on the file, they may be empty. They are accessible via the fields <code>.hit</code>, <code>.mc_hits</code>, <code>.trks</code> and <code>.mc_trks</code>.</p><p>Let's grab an event:</p><pre><code class="language-julia hljs">evt = f.offline[3]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Evt (3680 hits, 28 MC hits, 38 tracks, 12 MC tracks)</code></pre><p>and have a look at its contents:</p><pre><code class="language-julia hljs">evt.hits</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">3680-element Vector{CalibratedHit}: + CalibratedHit(101, 0x00000014, 0x00000000, 0x0000001c, 0x0000000000000000, 4.1278339e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(101, 0x00000013, 0x00000000, 0x0000001a, 0x0000000000000000, 4.1283561e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(102, 0x00000012, 0x00000000, 0x00000019, 0x0000000000000000, 4.1282618e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(103, 0x00000002, 0x00000000, 0x0000001b, 0x0000000000000000, 4.1278687e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(103, 0x00000012, 0x00000000, 0x00000018, 0x0000000000000000, 4.1285088e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(104, 0x0000000c, 0x00000000, 0x00000015, 0x0000000000000000, 4.1280852e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(105, 0x00000013, 0x00000000, 0x0000001a, 0x0000000000000000, 4.1279503e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(105, 0x00000003, 0x00000000, 0x0000001b, 0x0000000000000000, 4.12895e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(106, 0x00000005, 0x00000000, 0x0000001c, 0x0000000000000000, 4.1280505e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(106, 0x0000001a, 0x00000000, 0x00000015, 0x0000000000000000, 4.1285236e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + â‹® + CalibratedHit(11513, 0x00000016, 0x00000000, 0x0000000a, 0x0000000000000000, 4.1283562e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(11514, 0x00000003, 0x00000000, 0x00000012, 0x0000000000000000, 4.1278657e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(11514, 0x00000012, 0x00000000, 0x00000019, 0x0000000000000000, 4.1286932e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(11515, 0x00000003, 0x00000000, 0x00000013, 0x0000000000000000, 4.1278167e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(11516, 0x00000015, 0x00000000, 0x0000001b, 0x0000000000000000, 4.1288682e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(11517, 0x00000001, 0x00000000, 0x00000015, 0x0000000000000000, 4.1282884e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(11518, 0x00000013, 0x00000000, 0x00000015, 0x0000000000000000, 4.1281458e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(11518, 0x00000002, 0x00000000, 0x0000001d, 0x0000000000000000, 4.1281468e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]) + CalibratedHit(11518, 0x00000013, 0x00000000, 0x00000019, 0x0000000000000000, 4.1284348e7, [0.0, 0.0, 0.0], [0.0, 0.0, 0.0])</code></pre><p>Let's close this file properly:</p><pre><code class="language-julia hljs">close(f)</code></pre><h3 id="Usr-data"><a class="docs-heading-anchor" href="#Usr-data">Usr data</a><a id="Usr-data-1"></a><a class="docs-heading-anchor-permalink" href="#Usr-data" title="Permalink"></a></h3><p>You can also access "usr"-data, which is a dynamic placeholder (<code>Dict{String, Float64}</code>) to store arbitrary data. Some software store values here which are only losely defined. Ideally, if these fields are used regulary by a software, a proper definition in the KM3NeT dataformat should be created and added to the according <code>Struct</code> as a field.</p><p>Here is an example how to access the "usr"-data of a single event:</p><pre><code class="language-julia hljs">f = ROOTFile(datapath("offline", "usr-sample.root")) + +f.offline[1].usr</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Dict{String, Float64} with 17 entries: + "NTrigDOMs" => 7.0 + "NTrigLines" => 6.0 + "ChargeBelow" => 649.0 + "ClassficationScore" => 0.168634 + "NTrigHits" => 30.0 + "NGeometryVetoHits" => 0.0 + "ChargeRatio" => 0.213333 + "ToT" => 825.0 + "DeltaPosZ" => 37.5197 + "RecoQuality" => 85.4596 + "LastPartPosZ" => 97.7753 + "NSnapHits" => 51.0 + "NSpeedVetoHits" => 0.0 + "RecoNDF" => 37.0 + "FirstPartPosZ" => 135.295 + "CoC" => 118.63 + "ChargeAbove" => 176.0</code></pre><pre><code class="language-julia hljs">close(f)</code></pre></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../manual/tools/">« Tools</a><a class="docs-footer-nextpage" href="../cherenkov_times/">Cherenkov times »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/examples/simulation.h5 b/v0.16.5/examples/simulation.h5 new file mode 100644 index 0000000000000000000000000000000000000000..be0074833bf66b50298ed033df397da40c7472f4 GIT binary patch literal 96 wcmeD5aB<`1lHy_j0S*oZ76t(ZMlc6L{D%St4m3VgO#+mL>FI#-S1>^s00G<+M*si- literal 0 HcmV?d00001 diff --git a/v0.16.5/index.html b/v0.16.5/index.html new file mode 100644 index 00000000..74df9c35 --- /dev/null +++ b/v0.16.5/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Home · KM3io.jl</title><meta name="title" content="Home · KM3io.jl"/><meta property="og:title" content="Home · KM3io.jl"/><meta property="twitter:title" content="Home · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="search_index.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script><link href="assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href><img src="assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li class="is-active"><a class="tocitem" href>Home</a><ul class="internal"><li><a class="tocitem" href="#Installation"><span>Installation</span></a></li><li><a class="tocitem" href="#Quickstart"><span>Quickstart</span></a></li><li><a class="tocitem" href="#Acknowledgements"><span>Acknowledgements</span></a></li></ul></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="manual/rootfiles/">ROOT Files</a></li><li><a class="tocitem" href="manual/detector/">Detector and its Components</a></li><li><a class="tocitem" href="manual/calibration/">Calibration</a></li><li><a class="tocitem" href="manual/tools/">Tools</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="examples/offline_data/">Offline data</a></li><li><a class="tocitem" href="examples/cherenkov_times/">Cherenkov times</a></li><li><a class="tocitem" href="examples/controlhost/">Accessing Live Data</a></li><li><a class="tocitem" href="examples/hdf5/">HDF5</a></li></ul></li><li><a class="tocitem" href="api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Home</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Home</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/index.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="KM3io.jl"><a class="docs-heading-anchor" href="#KM3io.jl">KM3io.jl</a><a id="KM3io.jl-1"></a><a class="docs-heading-anchor-permalink" href="#KM3io.jl" title="Permalink"></a></h1><p><code>KM3io.jl</code> is a Julia library which implements high-performance I/O functions and additional utilities to deal with dataformats used in KM3NeT, e.g. <a href="https://root.cern.ch">ROOT</a> (online/offline files), <a href="https://wiki.km3net.de/index.php/Dataformats#Detector_Description_.28.detx_and_.datx.29">DETX</a> (detector geometry and calibrations) and acoustics (waveforms and hardware). In contrast to Python, you are free to utilise as many (nested) <code>for</code>-loops as you like while still being as fast as in e.g. in C++.</p><p>Apropos <a href="https://root.cern.ch">ROOT</a> and C++, the <a href="https://git.km3net.de/common/km3net-dataformat">KM3NeT Dataformat</a> is defined in C++ and uses the I/O functionality of the ROOT framework to create the online and offline ROOT files. Luckily, there is a pure Julia library named <a href="https://github.com/JuliaHEP/UnROOT.jl">UnROOT.jl</a> that provides access the the ROOT files without the need to install ROOT or the corresponding C++ library. This allows <code>KM3io.jl</code> to be completely free from these external dependencies.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>The library is still under development so that the API might slightly change. Feedback and contributions are highly welcome!</p></div></div><h2 id="Installation"><a class="docs-heading-anchor" href="#Installation">Installation</a><a id="Installation-1"></a><a class="docs-heading-anchor-permalink" href="#Installation" title="Permalink"></a></h2><p><code>KM3io.jl</code> is <strong>not an officially registered Julia package</strong> but it's available via the <strong><a href="https://git.km3net.de/common/julia-registry">KM3NeT Julia registry</a></strong>. To add the KM3NeT Julia registry to your local Julia registry list, follow the instructions in its <a href="https://git.km3net.de/common/julia-registry#adding-the-registry">README</a> or simply do</p><pre><code class="nohighlight hljs">git clone https://git.km3net.de/common/julia-registry ~/.julia/registries/KM3NeT</code></pre><p>After that, you can instal <code>KM3io.jl</code> just like any other Julia package:</p><pre><code class="nohighlight hljs">julia> import Pkg; Pkg.add("KM3io")</code></pre><h2 id="Quickstart"><a class="docs-heading-anchor" href="#Quickstart">Quickstart</a><a id="Quickstart-1"></a><a class="docs-heading-anchor-permalink" href="#Quickstart" title="Permalink"></a></h2><pre><code class="language-julia-repl hljs">julia> using KM3io, KM3NeTTestData + +julia> f = ROOTFile(datapath("offline", "numucc.root")) +ROOTFile{OnlineTree (0 events, 0 summaryslices), OfflineTree (10 events)} + +julia> f.offline +OfflineTree (10 events) + +julia> some_event = f.offline[3] +KM3io.Evt (3680 hits, 28 MC hits, 38 tracks, 12 MC tracks)</code></pre><h2 id="Acknowledgements"><a class="docs-heading-anchor" href="#Acknowledgements">Acknowledgements</a><a id="Acknowledgements-1"></a><a class="docs-heading-anchor-permalink" href="#Acknowledgements" title="Permalink"></a></h2><p>Thanks to <a href="https://git.km3net.de/jschumann">Johannes Schumann</a> for providing the awesome project logo!</p></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="manual/rootfiles/">ROOT Files »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/manual/calibration/index.html b/v0.16.5/manual/calibration/index.html new file mode 100644 index 00000000..5bc0328c --- /dev/null +++ b/v0.16.5/manual/calibration/index.html @@ -0,0 +1,2 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Calibration · KM3io.jl</title><meta name="title" content="Calibration · KM3io.jl"/><meta property="og:title" content="Calibration · KM3io.jl"/><meta property="twitter:title" content="Calibration · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img src="../../assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../rootfiles/">ROOT Files</a></li><li><a class="tocitem" href="../detector/">Detector and its Components</a></li><li class="is-active"><a class="tocitem" href>Calibration</a></li><li><a class="tocitem" href="../tools/">Tools</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../../examples/offline_data/">Offline data</a></li><li><a class="tocitem" href="../../examples/cherenkov_times/">Cherenkov times</a></li><li><a class="tocitem" href="../../examples/controlhost/">Accessing Live Data</a></li><li><a class="tocitem" href="../../examples/hdf5/">HDF5</a></li></ul></li><li><a class="tocitem" href="../../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Manual</a></li><li class="is-active"><a href>Calibration</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Calibration</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/manual/calibration.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Calibration"><a class="docs-heading-anchor" href="#Calibration">Calibration</a><a id="Calibration-1"></a><a class="docs-heading-anchor-permalink" href="#Calibration" title="Permalink"></a></h1><p>It's implemented but not documented here yet. Check out the docs <code>calibrate</code> function's docstring!</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../detector/">« Detector and its Components</a><a class="docs-footer-nextpage" href="../tools/">Tools »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/manual/detector/index.html b/v0.16.5/manual/detector/index.html new file mode 100644 index 00000000..eb565078 --- /dev/null +++ b/v0.16.5/manual/detector/index.html @@ -0,0 +1,185 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Detector and its Components · KM3io.jl</title><meta name="title" content="Detector and its Components · KM3io.jl"/><meta property="og:title" content="Detector and its Components · KM3io.jl"/><meta property="twitter:title" content="Detector and its Components · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img src="../../assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../rootfiles/">ROOT Files</a></li><li class="is-active"><a class="tocitem" href>Detector and its Components</a><ul class="internal"><li><a class="tocitem" href="#Loading-a-DETX/DATX-File"><span>Loading a <code>DETX/DATX</code> File</span></a></li><li><a class="tocitem" href="#Accessing-Modules"><span>Accessing Modules</span></a></li></ul></li><li><a class="tocitem" href="../calibration/">Calibration</a></li><li><a class="tocitem" href="../tools/">Tools</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../../examples/offline_data/">Offline data</a></li><li><a class="tocitem" href="../../examples/cherenkov_times/">Cherenkov times</a></li><li><a class="tocitem" href="../../examples/controlhost/">Accessing Live Data</a></li><li><a class="tocitem" href="../../examples/hdf5/">HDF5</a></li></ul></li><li><a class="tocitem" href="../../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Manual</a></li><li class="is-active"><a href>Detector and its Components</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Detector and its Components</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/manual/detector.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Detector-and-its-Components"><a class="docs-heading-anchor" href="#Detector-and-its-Components">Detector and its Components</a><a id="Detector-and-its-Components-1"></a><a class="docs-heading-anchor-permalink" href="#Detector-and-its-Components" title="Permalink"></a></h1><p>In this example, we will explore the components of a KM3NeT detector, which is represented by the <a href="../../api/#KM3io.Detector"><code>Detector</code></a> type in <code>KM3io.jl</code>. The detector description is stored in so-called <a href="https://wiki.km3net.de/index.php/Dataformats#Detector_Description_.28.detx_and_.datx.29"><code>DETX</code> and <code>DATX</code> files</a>, named after their filename extensions <code>.detx</code> (ASCII) and <code>.datx</code> (binary) respectively. By time of writing this example, <code>v5</code> is the latest format version.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p><code>KM3io.jl</code> offers conversions between the different <code>DETX</code> format versions. Typically, each major version brings a new set of parameters. Downgrading is therefore not lossless. When when upgrading from one version to another, the new parameters needs to be filled in. Some of these can be calculated from existing ones, like the module position, which was introduced in <code>v4</code> and is equal to the crossing point of the PMT axes. Otherwise, these parameters are either set to meaningful default values or to <code>missing</code>.</p></div></div><h2 id="Loading-a-DETX/DATX-File"><a class="docs-heading-anchor" href="#Loading-a-DETX/DATX-File">Loading a <code>DETX/DATX</code> File</a><a id="Loading-a-DETX/DATX-File-1"></a><a class="docs-heading-anchor-permalink" href="#Loading-a-DETX/DATX-File" title="Permalink"></a></h2><p>The <a href="../../api/#KM3io.Detector"><code>Detector</code></a> type has a constructor which takes a filepath to a <code>DETX</code> or <code>DATX</code> file. The <a href="https://git.km3net.de/km3py/km3net-testdata">KM3NeTTestData.jl</a> offers a collection of detector sample files, so let's pick one of them:</p><pre><code class="language-julia hljs">using KM3io, KM3NeTTestData + +det = Detector(datapath("detx", "detx_v5.detx"))</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Detector 49 (v5) with 6 strings and 114 modules.</code></pre><p>A detector configuration (format version 5) has been loaded with 6 strings (sometimes also called detection unit or DU) holding a total 114 modules.</p><h2 id="Accessing-Modules"><a class="docs-heading-anchor" href="#Accessing-Modules">Accessing Modules</a><a id="Accessing-Modules-1"></a><a class="docs-heading-anchor-permalink" href="#Accessing-Modules" title="Permalink"></a></h2><h3 id="Iterating-over-all-modules"><a class="docs-heading-anchor" href="#Iterating-over-all-modules">Iterating over all modules</a><a id="Iterating-over-all-modules-1"></a><a class="docs-heading-anchor-permalink" href="#Iterating-over-all-modules" title="Permalink"></a></h3><p>There are multiple ways to access modules within a <a href="../../api/#KM3io.Detector"><code>Detector</code></a>. One of them is iterating over it, which yields <a href="../../api/#KM3io.DetectorModule"><code>DetectorModule</code></a> instances in no specific order:</p><pre><code class="language-julia hljs">for m in det + println(m) +end</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Detectormodule (optical, 31 PMTs) on string 3 floor 5 +Detectormodule (optical, 31 PMTs) on string 2 floor 5 +Detectormodule (optical, 31 PMTs) on string 1 floor 4 +Detectormodule (optical, 31 PMTs) on string 1 floor 12 +Detectormodule (optical, 31 PMTs) on string 9 floor 6 +Detectormodule (optical, 31 PMTs) on string 2 floor 8 +Detectormodule (optical, 31 PMTs) on string 11 floor 11 +Detectormodule (optical, 31 PMTs) on string 9 floor 12 +Detectormodule (optical, 31 PMTs) on string 3 floor 15 +Detectormodule (optical, 31 PMTs) on string 1 floor 1 +Detectormodule (optical, 31 PMTs) on string 10 floor 7 +Detectormodule (optical, 31 PMTs) on string 3 floor 14 +Detectormodule (base) on string 9 floor 0 +Detectormodule (optical, 31 PMTs) on string 3 floor 9 +Detectormodule (optical, 31 PMTs) on string 2 floor 13 +Detectormodule (base) on string 10 floor 0 +Detectormodule (optical, 31 PMTs) on string 3 floor 18 +Detectormodule (optical, 31 PMTs) on string 10 floor 5 +Detectormodule (optical, 31 PMTs) on string 1 floor 2 +Detectormodule (optical, 31 PMTs) on string 1 floor 7 +Detectormodule (optical, 31 PMTs) on string 10 floor 9 +Detectormodule (optical, 31 PMTs) on string 2 floor 9 +Detectormodule (optical, 31 PMTs) on string 11 floor 18 +Detectormodule (optical, 31 PMTs) on string 1 floor 15 +Detectormodule (optical, 31 PMTs) on string 1 floor 8 +Detectormodule (optical, 31 PMTs) on string 1 floor 3 +Detectormodule (optical, 31 PMTs) on string 11 floor 2 +Detectormodule (optical, 31 PMTs) on string 10 floor 13 +Detectormodule (optical, 31 PMTs) on string 9 floor 9 +Detectormodule (optical, 31 PMTs) on string 9 floor 1 +Detectormodule (base) on string 2 floor 0 +Detectormodule (optical, 31 PMTs) on string 9 floor 18 +Detectormodule (optical, 31 PMTs) on string 10 floor 8 +Detectormodule (optical, 31 PMTs) on string 10 floor 15 +Detectormodule (optical, 31 PMTs) on string 1 floor 6 +Detectormodule (optical, 31 PMTs) on string 2 floor 11 +Detectormodule (base) on string 11 floor 0 +Detectormodule (optical, 31 PMTs) on string 9 floor 10 +Detectormodule (optical, 31 PMTs) on string 9 floor 16 +Detectormodule (optical, 31 PMTs) on string 3 floor 16 +Detectormodule (optical, 31 PMTs) on string 11 floor 5 +Detectormodule (optical, 31 PMTs) on string 2 floor 2 +Detectormodule (optical, 31 PMTs) on string 1 floor 10 +Detectormodule (optical, 31 PMTs) on string 10 floor 2 +Detectormodule (optical, 31 PMTs) on string 2 floor 14 +Detectormodule (optical, 31 PMTs) on string 3 floor 6 +Detectormodule (optical, 31 PMTs) on string 11 floor 17 +Detectormodule (optical, 31 PMTs) on string 9 floor 2 +Detectormodule (optical, 31 PMTs) on string 11 floor 14 +Detectormodule (optical, 31 PMTs) on string 10 floor 11 +Detectormodule (optical, 31 PMTs) on string 3 floor 1 +Detectormodule (optical, 31 PMTs) on string 11 floor 10 +Detectormodule (optical, 31 PMTs) on string 11 floor 6 +Detectormodule (optical, 31 PMTs) on string 9 floor 4 +Detectormodule (optical, 31 PMTs) on string 2 floor 12 +Detectormodule (optical, 31 PMTs) on string 2 floor 7 +Detectormodule (optical, 31 PMTs) on string 10 floor 17 +Detectormodule (optical, 31 PMTs) on string 2 floor 16 +Detectormodule (optical, 31 PMTs) on string 11 floor 3 +Detectormodule (optical, 31 PMTs) on string 11 floor 8 +Detectormodule (optical, 31 PMTs) on string 11 floor 13 +Detectormodule (optical, 31 PMTs) on string 11 floor 9 +Detectormodule (optical, 31 PMTs) on string 3 floor 13 +Detectormodule (optical, 31 PMTs) on string 1 floor 5 +Detectormodule (optical, 31 PMTs) on string 1 floor 16 +Detectormodule (optical, 31 PMTs) on string 10 floor 6 +Detectormodule (optical, 31 PMTs) on string 10 floor 10 +Detectormodule (optical, 31 PMTs) on string 2 floor 18 +Detectormodule (optical, 31 PMTs) on string 2 floor 3 +Detectormodule (optical, 31 PMTs) on string 1 floor 18 +Detectormodule (optical, 31 PMTs) on string 11 floor 16 +Detectormodule (optical, 31 PMTs) on string 3 floor 7 +Detectormodule (optical, 31 PMTs) on string 9 floor 7 +Detectormodule (optical, 31 PMTs) on string 9 floor 13 +Detectormodule (optical, 31 PMTs) on string 10 floor 12 +Detectormodule (optical, 31 PMTs) on string 9 floor 3 +Detectormodule (optical, 31 PMTs) on string 1 floor 17 +Detectormodule (optical, 31 PMTs) on string 9 floor 15 +Detectormodule (optical, 31 PMTs) on string 3 floor 10 +Detectormodule (optical, 31 PMTs) on string 1 floor 14 +Detectormodule (optical, 31 PMTs) on string 10 floor 18 +Detectormodule (optical, 31 PMTs) on string 3 floor 4 +Detectormodule (optical, 31 PMTs) on string 11 floor 1 +Detectormodule (optical, 31 PMTs) on string 9 floor 8 +Detectormodule (optical, 31 PMTs) on string 10 floor 1 +Detectormodule (optical, 31 PMTs) on string 9 floor 14 +Detectormodule (optical, 31 PMTs) on string 3 floor 8 +Detectormodule (optical, 31 PMTs) on string 9 floor 11 +Detectormodule (optical, 31 PMTs) on string 10 floor 16 +Detectormodule (optical, 31 PMTs) on string 2 floor 6 +Detectormodule (optical, 31 PMTs) on string 11 floor 4 +Detectormodule (optical, 31 PMTs) on string 2 floor 15 +Detectormodule (optical, 31 PMTs) on string 1 floor 13 +Detectormodule (optical, 31 PMTs) on string 3 floor 3 +Detectormodule (optical, 31 PMTs) on string 11 floor 7 +Detectormodule (optical, 31 PMTs) on string 3 floor 11 +Detectormodule (optical, 31 PMTs) on string 10 floor 14 +Detectormodule (base) on string 3 floor 0 +Detectormodule (optical, 31 PMTs) on string 11 floor 15 +Detectormodule (optical, 31 PMTs) on string 11 floor 12 +Detectormodule (optical, 31 PMTs) on string 10 floor 3 +Detectormodule (optical, 31 PMTs) on string 9 floor 5 +Detectormodule (optical, 31 PMTs) on string 2 floor 1 +Detectormodule (optical, 31 PMTs) on string 1 floor 9 +Detectormodule (optical, 31 PMTs) on string 1 floor 11 +Detectormodule (optical, 31 PMTs) on string 10 floor 4 +Detectormodule (optical, 31 PMTs) on string 3 floor 12 +Detectormodule (optical, 31 PMTs) on string 2 floor 4 +Detectormodule (optical, 31 PMTs) on string 2 floor 10 +Detectormodule (base) on string 1 floor 0 +Detectormodule (optical, 31 PMTs) on string 3 floor 17 +Detectormodule (optical, 31 PMTs) on string 3 floor 2 +Detectormodule (optical, 31 PMTs) on string 2 floor 17 +Detectormodule (optical, 31 PMTs) on string 9 floor 17</code></pre><div class="admonition is-warning"><header class="admonition-header">Warning</header><div class="admonition-body"><p><code>module</code> is a reserved keyword in Julia and <code>mod</code> is the "modulo function", so keep this in mind when chosing a variable name for a <a href="../../api/#KM3io.DetectorModule"><code>DetectorModule</code></a>. Most of the time <code>m</code> is fine, or just be verbose with <code>detector_module</code> and use your editors tab-completion.</p></div></div><p>As we can see in the output, there are two types of modules: optical modules and base modules. The main difference between the two in the detector file context is that base modules do not contain PMTs and are always sitting on floor 0.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>Although iterating over a <a href="../../api/#KM3io.Detector"><code>Detector</code></a> feels like iterating over a vector, accessing single elements via <code>det[idx]</code> will not work as such since it requires the <code>idx</code> to be a module ID. This design was chosen since the detector dataformat specification does not specify module ordering, so there is no such thing as the "n-th module". Accessing modules by their module ID however is the standard use case, see below.</p></div></div><h3 id="Detector-Modules"><a class="docs-heading-anchor" href="#Detector-Modules">Detector Modules</a><a id="Detector-Modules-1"></a><a class="docs-heading-anchor-permalink" href="#Detector-Modules" title="Permalink"></a></h3><p>Modules have a unique identification number called module ID (sometimes also called "DOM ID", where DOM stands for "Digital Optical Module") and we can use this ID to access individual modules within a <a href="../../api/#KM3io.Detector"><code>Detector</code></a> instance.</p><p>The <code>.modules</code> field is a dictionary which maps the modules to their module IDs:</p><pre><code class="language-julia hljs">det.modules</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Dict{Int32, DetectorModule} with 114 entries: + 808971294 => Detectormodule (optical, 31 PMTs) on string 3 floor 5 + 806483369 => Detectormodule (optical, 31 PMTs) on string 2 floor 5 + 808974773 => Detectormodule (optical, 31 PMTs) on string 1 floor 4 + 809503416 => Detectormodule (optical, 31 PMTs) on string 1 floor 12 + 808982547 => Detectormodule (optical, 31 PMTs) on string 9 floor 6 + 808447180 => Detectormodule (optical, 31 PMTs) on string 2 floor 8 + 808976933 => Detectormodule (optical, 31 PMTs) on string 11 floor 11 + 808472260 => Detectormodule (optical, 31 PMTs) on string 9 floor 12 + 808468425 => Detectormodule (optical, 31 PMTs) on string 3 floor 15 + 808972698 => Detectormodule (optical, 31 PMTs) on string 1 floor 1 + 808961655 => Detectormodule (optical, 31 PMTs) on string 10 floor 7 + 808956925 => Detectormodule (optical, 31 PMTs) on string 3 floor 14 + 808967761 => Detectormodule (base) on string 9 floor 0 + 808469947 => Detectormodule (optical, 31 PMTs) on string 3 floor 9 + 806487231 => Detectormodule (optical, 31 PMTs) on string 2 floor 13 + 808981528 => Detectormodule (base) on string 10 floor 0 + 808977319 => Detectormodule (optical, 31 PMTs) on string 3 floor 18 + 808489117 => Detectormodule (optical, 31 PMTs) on string 10 floor 5 + 808982077 => Detectormodule (optical, 31 PMTs) on string 1 floor 2 + â‹® => â‹®</code></pre><p>A flat vector of modules can be obtained with:</p><pre><code class="language-julia hljs">modules(det)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">114-element Vector{DetectorModule}: + Detectormodule (optical, 31 PMTs) on string 3 floor 5 + Detectormodule (optical, 31 PMTs) on string 2 floor 5 + Detectormodule (optical, 31 PMTs) on string 1 floor 4 + Detectormodule (optical, 31 PMTs) on string 1 floor 12 + Detectormodule (optical, 31 PMTs) on string 9 floor 6 + Detectormodule (optical, 31 PMTs) on string 2 floor 8 + Detectormodule (optical, 31 PMTs) on string 11 floor 11 + Detectormodule (optical, 31 PMTs) on string 9 floor 12 + Detectormodule (optical, 31 PMTs) on string 3 floor 15 + Detectormodule (optical, 31 PMTs) on string 1 floor 1 + â‹® + Detectormodule (optical, 31 PMTs) on string 10 floor 4 + Detectormodule (optical, 31 PMTs) on string 3 floor 12 + Detectormodule (optical, 31 PMTs) on string 2 floor 4 + Detectormodule (optical, 31 PMTs) on string 2 floor 10 + Detectormodule (base) on string 1 floor 0 + Detectormodule (optical, 31 PMTs) on string 3 floor 17 + Detectormodule (optical, 31 PMTs) on string 3 floor 2 + Detectormodule (optical, 31 PMTs) on string 2 floor 17 + Detectormodule (optical, 31 PMTs) on string 9 floor 17</code></pre><p>To access a module with a given module ID, one can either use the dictionary or index the <a href="../../api/#KM3io.Detector"><code>Detector</code></a> directly, which is the recommended way:</p><pre><code class="language-julia hljs">detector_module = det[808468425]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Detectormodule (optical, 31 PMTs) on string 3 floor 15</code></pre><p>Or for a given string and floor:</p><pre><code class="language-julia hljs">det[3, 15]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Detectormodule (optical, 31 PMTs) on string 3 floor 15</code></pre><p>It is possible to select all modules for a given floor on all strings using the <code>:</code> syntax. Here we select all the base modules on each string:</p><pre><code class="language-julia hljs">det[:, 0]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">6-element Vector{DetectorModule}: + Detectormodule (base) on string 1 floor 0 + Detectormodule (base) on string 2 floor 0 + Detectormodule (base) on string 3 floor 0 + Detectormodule (base) on string 9 floor 0 + Detectormodule (base) on string 10 floor 0 + Detectormodule (base) on string 11 floor 0</code></pre><p>Another way is using the <code>getmodule(d::Detector, string::Integer, floor::Integer)</code> function to access a module on a given string and floor:</p><pre><code class="language-julia hljs">detector_module = getmodule(det, 3, 15)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Detectormodule (optical, 31 PMTs) on string 3 floor 15</code></pre><h3 id="PMTs"><a class="docs-heading-anchor" href="#PMTs">PMTs</a><a id="PMTs-1"></a><a class="docs-heading-anchor-permalink" href="#PMTs" title="Permalink"></a></h3><p>Each optical module consists of PMTs, which can be access using the <code>getpmts(m::DetectorModule)</code> function:</p><pre><code class="language-julia hljs">getpmts(detector_module)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">31-element Vector{PMT}: + PMT(891, [474.314, 583.421, 161.816], [0.819287, -0.144441, 0.554893], 208297.659, 0) + PMT(894, [474.117, 583.262, 161.764], [-0.16594, -0.940939, 0.295133], 208298.035, 0) + PMT(899, [474.296, 583.327, 161.764], [0.731952, -0.614198, 0.29496], 208298.364, 0) + PMT(7305, [474.33, 583.515, 161.764], [0.897936, 0.326775, 0.294827], 208301.042, 0) + PMT(895, [474.257, 583.577, 161.816], [0.534834, 0.637258, 0.554846], 208298.339, 0) + PMT(7314, [474.207, 583.294, 161.816], [0.284546, -0.781637, 0.555047], 208302.498, 0) + PMT(6061, [474.183, 583.638, 161.764], [0.166029, 0.941006, 0.294867], 208298.82, 0) + PMT(6069, [474.043, 583.323, 161.816], [-0.534666, -0.63713, 0.555154], 208298.532, 0) + PMT(7311, [474.093, 583.606, 161.816], [-0.284378, 0.781764, 0.554953], 208298.132, 0) + PMT(7312, [473.986, 583.479, 161.816], [-0.819119, 0.144568, 0.555107], 208295.693, 0) + â‹® + PMT(7297, [474.15, 583.45, 161.505], [-0.000151, -0.000115, -1.0], 208296.718, 0) + PMT(2400, [474.273, 583.596, 161.646], [0.614187, 0.731873, -0.295177], 208296.598, 0) + PMT(3257, [474.254, 583.432, 161.535], [0.518642, -0.091607, -0.850068], 208295.534, 0) + PMT(3249, [474.218, 583.531, 161.535], [0.338507, 0.403422, -0.850097], 208296.387, 0) + PMT(7298, [474.186, 583.351, 161.535], [0.180006, -0.495126, -0.849971], 208299.494, 0) + PMT(787, [474.215, 583.27, 161.646], [0.326696, -0.897925, -0.294947], 208298.439, 0) + PMT(7293, [474.277, 583.343, 161.594], [0.63711, -0.534814, -0.555035], 208297.429, 0) + PMT(7161, [474.306, 583.507, 161.594], [0.781616, 0.284399, -0.555151], 208298.477, 0) + PMT(5068, [474.338, 583.417, 161.646], [0.940928, -0.166018, -0.295123], 208297.061, 0)</code></pre><p>To access a specific PMT with a given channel ID (TDC ID), use the <code>getpmt(m::DetectorModule, channel_id::Integer)</code> function. Here, we access the PMT at DAQ channel 0 of our previously obtained detector module:</p><pre><code class="language-julia hljs">getpmt(detector_module, 0)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">PMT(891, [474.314, 583.421, 161.816], [0.819287, -0.144441, 0.554893], 208297.659, 0)</code></pre></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../rootfiles/">« ROOT Files</a><a class="docs-footer-nextpage" href="../calibration/">Calibration »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/manual/hdf5/index.html b/v0.16.5/manual/hdf5/index.html new file mode 100644 index 00000000..458ed36b --- /dev/null +++ b/v0.16.5/manual/hdf5/index.html @@ -0,0 +1,2 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>HDF5 Files · KM3io.jl</title><meta name="title" content="HDF5 Files · KM3io.jl"/><meta property="og:title" content="HDF5 Files · KM3io.jl"/><meta property="twitter:title" content="HDF5 Files · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img src="../../assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../rootfiles/">ROOT Files</a></li><li><a class="tocitem" href="../detector/">Detector and its Components</a></li><li><a class="tocitem" href="../calibration/">Calibration</a></li><li><a class="tocitem" href="../tools/">Tools</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../../examples/offline_data/">Offline data</a></li><li><a class="tocitem" href="../../examples/cherenkov_times/">Cherenkov times</a></li><li><a class="tocitem" href="../../examples/controlhost/">Accessing Live Data</a></li><li><a class="tocitem" href="../../examples/hdf5/">HDF5</a></li></ul></li><li><a class="tocitem" href="../../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>HDF5 Files</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>HDF5 Files</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/manual/hdf5.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="HDF5-Files"><a class="docs-heading-anchor" href="#HDF5-Files">HDF5 Files</a><a id="HDF5-Files-1"></a><a class="docs-heading-anchor-permalink" href="#HDF5-Files" title="Permalink"></a></h1><p>...</p></article><nav class="docs-footer"><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/manual/rootfiles/index.html b/v0.16.5/manual/rootfiles/index.html new file mode 100644 index 00000000..ba52ba09 --- /dev/null +++ b/v0.16.5/manual/rootfiles/index.html @@ -0,0 +1,184 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>ROOT Files · KM3io.jl</title><meta name="title" content="ROOT Files · KM3io.jl"/><meta property="og:title" content="ROOT Files · KM3io.jl"/><meta property="twitter:title" content="ROOT Files · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img src="../../assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">Manual</span><ul><li class="is-active"><a class="tocitem" href>ROOT Files</a><ul class="internal"><li><a class="tocitem" href="#offline-dataformat"><span>Offline Dataformat</span></a></li><li><a class="tocitem" href="#online_dataformat"><span>Online Dataformat</span></a></li><li><a class="tocitem" href="#xrootd-access"><span>xrootd access</span></a></li></ul></li><li><a class="tocitem" href="../detector/">Detector and its Components</a></li><li><a class="tocitem" href="../calibration/">Calibration</a></li><li><a class="tocitem" href="../tools/">Tools</a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../../examples/offline_data/">Offline data</a></li><li><a class="tocitem" href="../../examples/cherenkov_times/">Cherenkov times</a></li><li><a class="tocitem" href="../../examples/controlhost/">Accessing Live Data</a></li><li><a class="tocitem" href="../../examples/hdf5/">HDF5</a></li></ul></li><li><a class="tocitem" href="../../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Manual</a></li><li class="is-active"><a href>ROOT Files</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>ROOT Files</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/manual/rootfiles.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="ROOT-Files"><a class="docs-heading-anchor" href="#ROOT-Files">ROOT Files</a><a id="ROOT-Files-1"></a><a class="docs-heading-anchor-permalink" href="#ROOT-Files" title="Permalink"></a></h1><p>The two main types of ROOT files in KM3NeT are the online and offline files, however, both types can be mixed together as the data is stored in distinct ROOT trees. <code>UnROOT</code> has a single <code>ROOTFile</code> type to represent a KM3NeT ROOT file which can be used to access both the online and offline information. This section describes what kind of data is stored in each tree and how to access them.</p><h2 id="offline-dataformat"><a class="docs-heading-anchor" href="#offline-dataformat">Offline Dataformat</a><a id="offline-dataformat-1"></a><a class="docs-heading-anchor-permalink" href="#offline-dataformat" title="Permalink"></a></h2><p>The <a href="https://git.km3net.de/common/km3net-dataformat/-/tree/master/offline">offline dataformat</a> is used to store Monte Carlo (MC) simulations and reconstruction results. The <code>OfflineTree</code> type represents an actual offline file and it is essentially a vector of events (<code>Vector{Evt}</code>) with some fancy caching, lazy access and slicing magic. The offline tree is accessible via the <code>.offline</code> field of the <code>ROOTFile</code> type.</p><h3 id="MC-Header"><a class="docs-heading-anchor" href="#MC-Header">MC Header</a><a id="MC-Header-1"></a><a class="docs-heading-anchor-permalink" href="#MC-Header" title="Permalink"></a></h3><p>The MC header stores metadata related to the simulation chain. The individual entries can be accessed as properties, as shown below.</p><pre><code class="language-julia-repl hljs">julia> using KM3io, KM3NeTTestData + +julia> f = ROOTFile(datapath("offline", "numucc.root")) +ROOTFile{OnlineTree (0 events, 0 summaryslices), OfflineTree (10 events)} + +julia> f.offline +OfflineTree (10 events) + +julia> f.offline.header +MCHeader + DAQ => (livetime = 394,) + PDF => (i1 = 4, i2 = 58) + XSecFile => Any[] + can => (zmin = 0, zmax = 1027, r = 888.4) + can_user => [0.0, 1027.0, 888.4] + coord_origin => (x = 0, y = 0, z = 0) + cut_in => (Emin = 0, Emax = 0, cosTmin = 0, cosTmax = 0) + cut_nu => (Emin = 100, Emax = 1.0e8, cosTmin = -1, cosTmax = 1) + cut_primary => (Emin = 0, Emax = 0, cosTmin = 0, cosTmax = 0) + cut_seamuon => (Emin = 0, Emax = 0, cosTmin = 0, cosTmax = 0) + decay => ["doesnt", "happen"] + detector => NOT + drawing => Volume + end_event => Any[] + genhencut => (gDir = 2000, Emin = 0) + genvol => (zmin = 0, zmax = 1027, r = 888.4, volume = 2.649e9, numberOfEvents = 100000) + kcut => 2 + livetime => (numberOfSeconds = 0, errorOfSeconds = 0) + model => (interaction = 1, muon = 2, scattering = 0, numberOfEnergyBins = 1, field_4 = 12) + muon_desc_file => Any[] + ngen => 100000.0 + norma => (primaryFlux = 0, numberOfPrimaries = 0) + nuflux => Real[0, 3, 0, 0.5, 0.0, 1.0, 3.0] + physics => (program = "GENHEN", version = "7.2-220514", date = 181116, time = 1138) + seed => (program = "GENHEN", level = 3, iseed = 305765867, field_3 = 0, field_4 = 0) + simul => (program = "JSirene", version = 11012, date = "11/17/18", time = 7) + sourcemode => diffuse + spectrum => (alpha = -1.4,) + start_run => 1 + target => isoscalar + usedetfile => false + xlat_user => 0.63297 + xparam => OFF + zed_user => [0.0, 3450.0] + + +julia> f.offline.header.genvol +(zmin = 0, zmax = 1027, r = 888.4, volume = 2.649e9, numberOfEvents = 100000) + +julia> f.offline.header.genvol.volume +2.649e9</code></pre><h3 id="Event-data"><a class="docs-heading-anchor" href="#Event-data">Event data</a><a id="Event-data-1"></a><a class="docs-heading-anchor-permalink" href="#Event-data" title="Permalink"></a></h3><p>The following REPL session shows how to open a file, access individual events or slices of events, loop through events and access e.g. the tracks which are stored in the events.</p><pre><code class="language-julia-repl hljs">julia> using KM3io, KM3NeTTestData + +julia> f = ROOTFile(datapath("offline", "km3net_offline.root")) +ROOTFile{OfflineTree (10 events)} + +julia> f.offline[5] +KM3io.Evt (83 hits, 0 MC hits, 56 tracks, 0 MC tracks) + +julia> f.offline[3:5] +3-element Vector{KM3io.Evt}: + KM3io.Evt (318 hits, 0 MC hits, 56 tracks, 0 MC tracks) + KM3io.Evt (157 hits, 0 MC hits, 56 tracks, 0 MC tracks) + KM3io.Evt (83 hits, 0 MC hits, 56 tracks, 0 MC tracks) + +julia> event = f.offline[1] +KM3io.Evt (176 hits, 0 MC hits, 56 tracks, 0 MC tracks) + +julia> event.trks[1:4] +4-element Vector{KM3io.Trk}: + KM3io.Trk(1, [445.835395997812, ... , 294.6407542676734, 4000) + KM3io.Trk(2, [445.835395997812, ... , 294.6407542676734, 4000) + KM3io.Trk(3, [448.136188112227, ... , 294.6407542676734, 4000) + KM3io.Trk(4, [448.258348900570, ... , 291.64653112688273, 4000) + +julia> for event in f.offline + @show event + end +event = KM3io.Evt (176 hits, 0 MC hits, 56 tracks, 0 MC tracks) +event = KM3io.Evt (125 hits, 0 MC hits, 55 tracks, 0 MC tracks) +event = KM3io.Evt (318 hits, 0 MC hits, 56 tracks, 0 MC tracks) +event = KM3io.Evt (157 hits, 0 MC hits, 56 tracks, 0 MC tracks) +event = KM3io.Evt (83 hits, 0 MC hits, 56 tracks, 0 MC tracks) +event = KM3io.Evt (60 hits, 0 MC hits, 56 tracks, 0 MC tracks) +event = KM3io.Evt (71 hits, 0 MC hits, 56 tracks, 0 MC tracks) +event = KM3io.Evt (84 hits, 0 MC hits, 56 tracks, 0 MC tracks) +event = KM3io.Evt (255 hits, 0 MC hits, 54 tracks, 0 MC tracks) +event = KM3io.Evt (105 hits, 0 MC hits, 56 tracks, 0 MC tracks)</code></pre><h2 id="online_dataformat"><a class="docs-heading-anchor" href="#online_dataformat">Online Dataformat</a><a id="online_dataformat-1"></a><a class="docs-heading-anchor-permalink" href="#online_dataformat" title="Permalink"></a></h2><p>The <a href="https://git.km3net.de/common/km3net-dataformat/-/tree/master/online">online dataformat</a> refers to the dataformat which is written by the data acquisition system (DAQ) of the KM3NeT detectors, more precisely, the ROOT files produced by the <code>JDataFilter</code> which is part of the <a href="https://git.km3net.de/common/jpp"><code>Jpp</code></a> framework. The very same format is used in run-by-run (RBR) Monte Carlo (MC) productions, which mimic the detector response and therefore produce similarly structured data. The online data can be accessed via the <code>.online</code> field of the <code>ROOTFile</code> type.</p><h3 id="Event-data-2"><a class="docs-heading-anchor" href="#Event-data-2">Event data</a><a class="docs-heading-anchor-permalink" href="#Event-data-2" title="Permalink"></a></h3><p>The events are accessible via <code>ROOTFile(filename).online.events</code> which supports indexing, slicing and iteration, just like the we have seen above, in case of the offline events. Notice however that the online format also contains other types of trees, that's why the explicit <code>.events</code> field is needed. Everything is lazily loaded so that the data is only occupying memory when it's actually accessed, similar to the offline access. In the examples below, we use <strong><a href="https://git.km3net.de/km3py/km3net-testdata"><code>KM3NeTTestdata</code></a></strong> to get access to small sample files.</p><pre><code class="language-julia hljs">julia> using KM3io, KM3NeTTestData + +julia> f = ROOTFile(datapath("online", "km3net_online.root")) +ROOTFile{OnlineTree (3 events, 3 summaryslices), OfflineTree (0 events)} + +julia> event = f.online.events[1] +KM3io.DAQEvent with 96 snapshot and 18 triggered hits + +julia> event.triggered_hits[4:8] +5-element Vector{KM3io.TriggeredHit}: + KM3io.TriggeredHit(808447186, 0x00, 30733214, 0x19, 0x0000000000000016) + KM3io.TriggeredHit(808447186, 0x01, 30733214, 0x15, 0x0000000000000016) + KM3io.TriggeredHit(808447186, 0x02, 30733215, 0x15, 0x0000000000000016) + KM3io.TriggeredHit(808447186, 0x03, 30733214, 0x1c, 0x0000000000000016) + KM3io.TriggeredHit(808451907, 0x07, 30733441, 0x1e, 0x0000000000000004) + +julia> for event ∈ f.online.events + @show event.header.frame_index length(event.snapshot_hits) + end +event.header.frame_index = 127 +length(event.snapshot_hits) = 96 +event.header.frame_index = 127 +length(event.snapshot_hits) = 124 +event.header.frame_index = 129 +length(event.snapshot_hits) = 78</code></pre><h3 id="Summaryslices-and-Summary-Frames"><a class="docs-heading-anchor" href="#Summaryslices-and-Summary-Frames">Summaryslices and Summary Frames</a><a id="Summaryslices-and-Summary-Frames-1"></a><a class="docs-heading-anchor-permalink" href="#Summaryslices-and-Summary-Frames" title="Permalink"></a></h3><p>Summaryslices are generated from timeslices (raw hit data) and are produced by the DataFilter. A slice contains the data of 100ms and is divided into so-called frames, each corresponding to the data of a single optical module. Due to the high amount of data, the storage of timeslices is usually reduced by a factor of 10-100 after the event triggering stage. However, summaryslices are covering the full data taking period. They however do not contain hit data but only the rates of the PMTs encoded into a single byte, which therefore is only capable to store 256 different values. The actual rate is calcuated by the helper functions <code>pmtrate()</code> and <code>pmtrates()</code> which take a <code>SummaryFrame</code> and optionally a PMT channel ID as arguments.</p><p>The summaryslices are accessible using the <code>.summaryslices</code> attribute of the <code>OnlineTree</code> instance, which again is hidden behind the <code>.online</code> field of a <code>ROOTFile</code>:</p><pre><code class="language-julia hljs">julia> using KM3io, KM3NeTTestData + +julia> f = ROOTFile(datapath("online", "km3net_online.root")) +ROOTFile{OnlineTree (3 events, 3 summaryslices), OfflineTree (0 events)} + +julia> f.online.summaryslices +KM3io.SummarysliceContainer with 3 summaryslices + +julia> for s ∈ f.online.summaryslices + @show s.header + end +s.header = KM3io.SummarysliceHeader(44, 6633, 126, KM3io.UTCExtended(0x5dc6018c, 0x23c34600, false)) +s.header = KM3io.SummarysliceHeader(44, 6633, 127, KM3io.UTCExtended(0x5dc6018c, 0x29b92700, false)) +s.header = KM3io.SummarysliceHeader(44, 6633, 128, KM3io.UTCExtended(0x5dc6018c, 0x2faf0800, false))</code></pre><p>Each summaryslice consists of multiple frames, one for every optical module which has sent data during the recording time of the corresponding timeslice.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>During run transistions, the number of summaryframes in a summaryslice is fluctuating a lot until it eventually saturates, usually within a few seconds or minutes. Therefore, it is expected that the number of summaryframes (i.e. active DOMs) is low at the beginning of the file and stabilises after a few summaryslices.</p></div></div><p>To access the actual PMT rates and flags (e.g. for high-rate veto or FIFO status) of a summaryframe, several helper functions exist. Let's grab a summaryslice:</p><pre><code class="language-julia hljs">using KM3io, KM3NeTTestData + +f = ROOTFile(datapath("online", "km3net_online.root")) + +s = f.online.summaryslices[1]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Summaryslice(SummarysliceHeader(44, 6633, 126, UTCExtended(1573257612, 600000000, 0)), SummaryFrame[SummaryFrame(806451572, 0x00160017, 0x80000000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x46, 0x42, 0x40, 0x35, 0x3a, 0x4b, 0x2d, 0x44, 0x38, 0x43 … 0x39, 0x3e, 0x32, 0x38, 0x3e, 0x39, 0x34, 0x35, 0x34, 0x2e]), SummaryFrame(806455814, 0x00140015, 0x80000010, 0x80000000, 0x00000000, 0x00000000, UInt8[0x3d, 0x3b, 0x37, 0x3a, 0xdf, 0x3e, 0x3f, 0x41, 0x40, 0x3f … 0x2c, 0x38, 0x2c, 0x35, 0x31, 0x37, 0x37, 0x37, 0x31, 0x33]), SummaryFrame(806465101, 0x00140015, 0x84000000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x33, 0x33, 0x31, 0x31, 0x31, 0x37, 0x2e, 0x3b, 0x39, 0x46 … 0x33, 0x3a, 0x2d, 0x31, 0x34, 0x61, 0x30, 0x37, 0x36, 0x2f]), SummaryFrame(806483369, 0x00160017, 0x80000000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x2f, 0x33, 0x2e, 0x2c, 0x31, 0x35, 0x2b, 0x3d, 0x33, 0x3c … 0x2f, 0x48, 0x31, 0x3e, 0x3b, 0x45, 0x3f, 0x3f, 0x35, 0x35]), SummaryFrame(806487219, 0x00220023, 0xa7eff400, 0x80000000, 0x00000000, 0x00000000, UInt8[0x37, 0x36, 0x3a, 0x36, 0x34, 0x3a, 0x3f, 0x38, 0x42, 0x48 … 0xd8, 0xe1, 0x59, 0x84, 0xd0, 0x84, 0x41, 0x4d, 0x59, 0x44]), SummaryFrame(806487226, 0x001a001b, 0x84440000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x35, 0x33, 0x37, 0x32, 0x35, 0x37, 0x2e, 0x39, 0x35, 0x39 … 0x46, 0x63, 0x33, 0x53, 0x52, 0x5e, 0x37, 0x3f, 0x42, 0x3d]), SummaryFrame(806487231, 0x00200021, 0xff7e7000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x31, 0x33, 0x30, 0x2f, 0x34, 0x36, 0x2f, 0x3c, 0x32, 0x3d … 0x5e, 0x85, 0x4a, 0x6b, 0x72, 0x71, 0x56, 0x65, 0x5a, 0x56]), SummaryFrame(808432835, 0x00130014, 0x80004000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x37, 0x39, 0x33, 0x2c, 0x30, 0x3a, 0x33, 0x3a, 0x34, 0x37 … 0x38, 0x3e, 0x32, 0x39, 0x3a, 0x39, 0x38, 0x3b, 0x37, 0x31]), SummaryFrame(808435278, 0x00170018, 0x80000880, 0x80000000, 0x00000000, 0x00000000, UInt8[0x3f, 0x49, 0x39, 0x34, 0x38, 0x44, 0x31, 0x5a, 0x3f, 0x4f … 0x32, 0x40, 0x2e, 0x38, 0x37, 0x3b, 0x34, 0x36, 0x37, 0x34]), SummaryFrame(808447180, 0x001a001b, 0xa0000ab7, 0x80000000, 0x00000000, 0x00000000, UInt8[0x6f, 0x5d, 0x64, 0x50, 0x65, 0x79, 0x37, 0x70, 0x52, 0x67 … 0x2c, 0x37, 0x3a, 0x34, 0x36, 0x00, 0x35, 0x37, 0xff, 0x35]) … SummaryFrame(808996773, 0x001f0020, 0xa3eaf000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x30, 0x31, 0x2f, 0x32, 0x35, 0x2c, 0x34, 0x3b, 0x44, 0x45 … 0x63, 0x85, 0x55, 0x62, 0x70, 0x49, 0x31, 0x43, 0x68, 0x53]), SummaryFrame(808997793, 0x00150016, 0x80000000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x3f, 0x3a, 0x33, 0x35, 0x39, 0x42, 0x34, 0x48, 0x3b, 0x44 … 0x34, 0x37, 0x33, 0x3a, 0x38, 0x3c, 0x39, 0x3c, 0x36, 0x37]), SummaryFrame(809006037, 0x001a001b, 0x80000002, 0x80000000, 0x00000000, 0x00000000, UInt8[0x3a, 0x57, 0x45, 0x31, 0x32, 0x4f, 0x30, 0x54, 0x34, 0x46 … 0x30, 0x42, 0x31, 0x41, 0x38, 0x4c, 0x53, 0x4e, 0x3b, 0x40]), SummaryFrame(809007627, 0x00120013, 0x80000000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x3b, 0x3a, 0x37, 0x2c, 0x35, 0x3f, 0x2d, 0x3f, 0x30, 0x36 … 0x35, 0x3d, 0x34, 0x33, 0x38, 0x35, 0x3d, 0x36, 0x35, 0x31]), SummaryFrame(809503416, 0x001c001d, 0x80000a91, 0x80000000, 0x00000000, 0x00000000, UInt8[0x78, 0x44, 0x3c, 0x49, 0x5a, 0x40, 0x33, 0x61, 0x54, 0x87 … 0x38, 0x4b, 0x33, 0x42, 0x3d, 0x4a, 0x3d, 0x41, 0x3d, 0x35]), SummaryFrame(809521500, 0x001f0020, 0x874e4000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x47, 0x34, 0x41, 0x3f, 0x3e, 0x42, 0x34, 0x39, 0x38, 0x3e … 0x4c, 0x62, 0x42, 0x5b, 0x57, 0x59, 0x42, 0x4b, 0x52, 0x50]), SummaryFrame(809524432, 0x00150016, 0x80000000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x3a, 0x3e, 0x37, 0x33, 0x38, 0x39, 0x2c, 0x3c, 0x2f, 0x36 … 0x37, 0x4b, 0x31, 0x3c, 0x3c, 0x42, 0x46, 0x3e, 0x37, 0x37]), SummaryFrame(809526097, 0x00170018, 0x84040000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x38, 0x39, 0x3d, 0x30, 0x34, 0x3e, 0x2e, 0x3c, 0x49, 0x3c … 0x34, 0x46, 0x33, 0x41, 0x38, 0x56, 0x3d, 0x39, 0x38, 0x31]), SummaryFrame(809544058, 0x00150016, 0x80000000, 0x80000000, 0x00000000, 0x00000000, UInt8[0x35, 0x33, 0x33, 0x33, 0x35, 0x37, 0x46, 0x3c, 0x48, 0x3e … 0x39, 0x46, 0x37, 0x3c, 0x40, 0x3e, 0x32, 0x39, 0x36, 0x35]), SummaryFrame(809544061, 0x00170018, 0x80208022, 0x80000000, 0x00000000, 0x00000000, UInt8[0x2e, 0xd1, 0x2f, 0x2c, 0x2e, 0x97, 0x26, 0x3e, 0x30, 0x35 … 0x90, 0x40, 0x52, 0x34, 0x47, 0x3e, 0x35, 0x3c, 0x35, 0x2e])])</code></pre><p>and have a look at one of the frames, the 23rd of the first summaryslice:</p><pre><code class="language-julia hljs">frame = s.frames[23]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">SummaryFrame(808951460, 0x00240025, 0xc8bffc08, 0xb7400000, 0x00000000, 0x00000000, UInt8[0x48, 0x4d, 0x52, 0x57, 0x4a, 0x41, 0x4e, 0x49, 0x51, 0x51 … 0xff, 0xff, 0xee, 0xfd, 0xff, 0xf9, 0x81, 0xe7, 0xff, 0xd8])</code></pre><p>The White Rabbit status:</p><pre><code class="language-julia hljs">wrstatus(frame)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">true</code></pre><p>Checking if any of the PMTs is in high rate veto:</p><pre><code class="language-julia hljs">hrvstatus(frame)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">true</code></pre><p>The number of PMTs in high rate veto:</p><pre><code class="language-julia hljs">count_hrvstatus(frame)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">16</code></pre><p>Checking if any of the TDC FIFOs were almost full:</p><pre><code class="language-julia hljs">fifostatus(frame)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">true</code></pre><p>Counting the number of TDCs which had FIFO almost full:</p><pre><code class="language-julia hljs">count_fifostatus(frame)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">6</code></pre><p>The rates of each individual PMT channel ordered by increasing channel ID:</p><pre><code class="language-julia hljs">pmtrates(frame)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">31-element StaticArraysCore.SVector{31, Float64} with indices SOneTo(31): + 14063.351095892936 + 16103.205997541078 + 18438.93689569998 + 21113.45988466659 + 14846.299960355871 + 11634.182658748716 + 16545.391748267397 + 14449.523480635129 + 17946.144988571265 + 17946.144988571265 + â‹® + 1.9999999999999995e6 + 1.2619146889603864e6 + 1.8945260615030485e6 + 1.9999999999999995e6 + 1.69997196921803e6 + 65868.39094601915 + 1.0439436440871295e6 + 1.9999999999999995e6 + 695354.8149531552</code></pre><p>Individual PMT parameters can be accessed as well, by passing the summaryframe and the PMT ID (DAQ channel ID):</p><pre><code class="language-julia hljs">pmtrate(frame, 3)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">21113.45988466659</code></pre><p>Here is an example of a simple summary output:</p><pre><code class="language-julia hljs">for pmt in 0:30 + println("PMT $(pmt): HRV($(hrvstatus(frame, pmt))) FIFO($(fifostatus(frame, pmt)))") +end</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">PMT 0: HRV(false) FIFO(false) +PMT 1: HRV(false) FIFO(false) +PMT 2: HRV(false) FIFO(false) +PMT 3: HRV(true) FIFO(false) +PMT 4: HRV(false) FIFO(false) +PMT 5: HRV(false) FIFO(false) +PMT 6: HRV(false) FIFO(false) +PMT 7: HRV(false) FIFO(false) +PMT 8: HRV(false) FIFO(false) +PMT 9: HRV(false) FIFO(false) +PMT 10: HRV(true) FIFO(false) +PMT 11: HRV(true) FIFO(false) +PMT 12: HRV(true) FIFO(false) +PMT 13: HRV(true) FIFO(false) +PMT 14: HRV(true) FIFO(false) +PMT 15: HRV(true) FIFO(false) +PMT 16: HRV(true) FIFO(false) +PMT 17: HRV(true) FIFO(false) +PMT 18: HRV(true) FIFO(false) +PMT 19: HRV(true) FIFO(false) +PMT 20: HRV(true) FIFO(false) +PMT 21: HRV(true) FIFO(false) +PMT 22: HRV(false) FIFO(true) +PMT 23: HRV(true) FIFO(false) +PMT 24: HRV(false) FIFO(true) +PMT 25: HRV(false) FIFO(true) +PMT 26: HRV(false) FIFO(true) +PMT 27: HRV(true) FIFO(false) +PMT 28: HRV(false) FIFO(true) +PMT 29: HRV(false) FIFO(true) +PMT 30: HRV(true) FIFO(false)</code></pre><h2 id="xrootd-access"><a class="docs-heading-anchor" href="#xrootd-access">xrootd access</a><a id="xrootd-access-1"></a><a class="docs-heading-anchor-permalink" href="#xrootd-access" title="Permalink"></a></h2><p>You can access files directly via <code>xrootd</code> by providing the URL on e.g. HPSS. Be aware that URL has to be typed correctly, <code>/</code> instead of <code>//</code> results in an error!), so it should always start with something like <code>root://ccxroot:1999//hpss/...</code>.</p><pre><code class="language-julia hljs">julia> using KM3io + +julia> f = ROOTFile("root://ccxroot:1999//hpss/in2p3.fr/group/km3net/data/raw/sea/KM3NeT_00000132/14/KM3NeT_00000132_00014481.root") +ROOTFile{OnlineTree (136335 events, 107632 summaryslices)}</code></pre><p>Now you can use it as if it was on your local filesystem. <code>UnROOT.jl</code> will take care of loading only the needed data from the server.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../../">« Home</a><a class="docs-footer-nextpage" href="../detector/">Detector and its Components »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/manual/tools/index.html b/v0.16.5/manual/tools/index.html new file mode 100644 index 00000000..f3109e9d --- /dev/null +++ b/v0.16.5/manual/tools/index.html @@ -0,0 +1,8 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Tools · KM3io.jl</title><meta name="title" content="Tools · KM3io.jl"/><meta property="og:title" content="Tools · KM3io.jl"/><meta property="twitter:title" content="Tools · KM3io.jl"/><meta name="description" content="Documentation for KM3io.jl."/><meta property="og:description" content="Documentation for KM3io.jl."/><meta property="twitter:description" content="Documentation for KM3io.jl."/><script data-outdated-warner src="../../assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../search_index.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/custom.css" rel="stylesheet" type="text/css"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img src="../../assets/logo.svg" alt="KM3io.jl logo"/></a><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">Manual</span><ul><li><a class="tocitem" href="../rootfiles/">ROOT Files</a></li><li><a class="tocitem" href="../detector/">Detector and its Components</a></li><li><a class="tocitem" href="../calibration/">Calibration</a></li><li class="is-active"><a class="tocitem" href>Tools</a><ul class="internal"><li><a class="tocitem" href="#Best-track/shower"><span>Best track/shower</span></a></li><li><a class="tocitem" href="#Trigger-masks/flags"><span>Trigger masks/flags</span></a></li></ul></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="../../examples/offline_data/">Offline data</a></li><li><a class="tocitem" href="../../examples/cherenkov_times/">Cherenkov times</a></li><li><a class="tocitem" href="../../examples/controlhost/">Accessing Live Data</a></li><li><a class="tocitem" href="../../examples/hdf5/">HDF5</a></li></ul></li><li><a class="tocitem" href="../../api/">API</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">Manual</a></li><li class="is-active"><a href>Tools</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Tools</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl" title="View the repository"><span class="docs-icon fa-brands">ï¡</span><span class="docs-label is-hidden-touch">Repository</span></a><a class="docs-navbar-link" href="https://git.km3net.de/common/KM3io.jl/blob/main/docs/src/manual/tools.md#L" title="Edit source"><span class="docs-icon fa-solid">ï„</span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="Tools"><a class="docs-heading-anchor" href="#Tools">Tools</a><a id="Tools-1"></a><a class="docs-heading-anchor-permalink" href="#Tools" title="Permalink"></a></h1><p>There are many commonly used routines to find for example the best reconstructed muon track or find out if a given hit was flagged by a specific trigger algorithm. This section will show some helper functions available in <code>KM3io.jl</code>.</p><h2 id="Best-track/shower"><a class="docs-heading-anchor" href="#Best-track/shower">Best track/shower</a><a id="Best-track/shower-1"></a><a class="docs-heading-anchor-permalink" href="#Best-track/shower" title="Permalink"></a></h2><p>In KM3NeT, the best reconstructed track or shower of a given set of tracks respectively showers is the one with the highest value of the likelihood parameter (<code>lik</code>) and the longest reconstruction history (<code>rec_stages</code>) which is a record of reconstruction stages performed during the whole fitting procedure.</p><p>The offline dataformat, which is used to store reconstruction information, has only a single <code>Vector{Trk}</code> per event which is a flat list of reconstructed tracks and showers. This vector can be a mix of different reconstruction algorithms (JGandalf, aashower, FibonacciFit, ...) and different stages of each, like prefit candidates, intermediate fits and final results. Therefore it is necessary to take the reconstruction type (<code>rec_type</code>) and also the values of the reconstruction stages (<code>rec_stages</code>) into account. Each reconstruction algorithm and each of their reconstruction stages have their own unique identifiers, which are stored in these two fields.</p><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>Both tracks and showers are stored as <code>Trk</code>. This comes from the fact that the original KM3NeT dataformat defintion for offline files uses the same C++ class (named <code>Trk</code>).</p></div></div><p>The helper functions in <code>KM3io.jl</code> to pick the best track/shower always start with the prefix <code>best</code>, followed by the common name of the reconstruction routine, like <code>jppmuon</code>, or <code>aashower</code>. For example <a href="../../api/#KM3io.bestjppmuon"><code>bestjppmuon()</code></a>, <a href="../../api/#KM3io.bestjppshower"><code>bestjppshower()</code></a> or <a href="../../api/#KM3io.besttrack"><code>besttrack()</code></a>, latter being a more general function which gives the possibility to fine tune the selection criteria.</p><p>The API documentation of all related functions can be found in the <a href="../../api/#Reconstruction">Reconstruction</a> section.</p><p>The input can be an event (<code>Evt</code>) or a vector of reconstructed tracks (<code>Vector{Trk}</code>). If no track/shower could be found, <code>missing</code> is returned instead.</p><p>Below are some examples of how to use these functions.</p><pre><code class="language-julia hljs">using KM3io, KM3NeTTestData + +f = ROOTFile(datapath("offline", "km3net_offline.root"))</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">ROOTFile{OfflineTree (10 events)}</code></pre><pre><code class="language-julia hljs">event = f.offline[1]</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Evt (176 hits, 0 MC hits, 56 tracks, 0 MC tracks)</code></pre><pre><code class="language-julia hljs">bestjppmuon(event)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Trk(1, [445.835395997812, 615.1089636184813, 125.1448339836911], [0.0368711082700674, -0.48653048395923415, -0.872885221293917], 7.031144646401498e7, 99.10458562488608, 0.0, 294.6407542676734, 4000, Int32[1, 3, 5, 4], [0.004957442219414389, 0.003417848024252858, -294.6407542676734, 142.0, 99.10458562488608, 1.7976931348623157e308, 4.2409761837248484e-12, 10.0, 24.88469697331908, 55.88169412579765, 98.89582506402911, 0.0, 0.0, 344.9767431592819, -333.87773581129136, 1471.0, 101.0])</code></pre><pre><code class="language-julia hljs">bestjppshower(event)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">missing</code></pre><pre><code class="language-julia hljs">bestaashower(event)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">missing</code></pre><pre><code class="language-julia hljs">bestjppshower(event.trks)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">missing</code></pre><pre><code class="language-julia hljs">bestaashower(event.trks)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">missing</code></pre><p>Additonally, there are helper functions which can be used to check if a specific reconstruction stage or result is present in an event or a given set of tracks/showers.</p><pre><code class="language-julia hljs">track = event.trks |> first</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Trk(1, [445.835395997812, 615.1089636184813, 125.1448339836911], [0.0368711082700674, -0.48653048395923415, -0.872885221293917], 7.031144646401498e7, 99.10458562488608, 0.0, 294.6407542676734, 4000, Int32[1, 3, 5, 4], [0.004957442219414389, 0.003417848024252858, -294.6407542676734, 142.0, 99.10458562488608, 1.7976931348623157e308, 4.2409761837248484e-12, 10.0, 24.88469697331908, 55.88169412579765, 98.89582506402911, 0.0, 0.0, 344.9767431592819, -333.87773581129136, 1471.0, 101.0])</code></pre><pre><code class="language-julia hljs">hasjppmuonprefit(track)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">true</code></pre><pre><code class="language-julia hljs">hasjppmuonsimplex(track)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">false</code></pre><pre><code class="language-julia hljs">hasjppmuongandalf(track)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">true</code></pre><pre><code class="language-julia hljs">hasjppmuonfit(track)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">true</code></pre><pre><code class="language-julia hljs">hasaashowerfit(track)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">false</code></pre><pre><code class="language-julia hljs">hasreconstructedjppmuon(event)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">true</code></pre><pre><code class="language-julia hljs">hasreconstructedjppshower(event)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">false</code></pre><pre><code class="language-julia hljs">hasreconstructedaashower(event)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">false</code></pre><div class="admonition is-info"><header class="admonition-header">Note</header><div class="admonition-body"><p>To check multiple events in one go, use the <a href="https://docs.julialang.org/en/v1/manual/arrays/#Broadcasting">Broadcasting</a> feature of the Julia language by putting a dot (<code>.</code>) at the end of the function name, e.g. <code>bestjppmuon.(f.offline)</code> which will find the best Jpp muon reconstruction result for each event in the offline tree.</p></div></div><pre><code class="language-julia hljs">bestjppmuon.(f.offline[2:5])</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">4-element Vector{Trk}: + Trk(1, [465.0566061903734, 532.6821160545169, 80.73206374676195], [-0.17513834417756996, 0.5213137941218786, -0.8351996698137462], 8.106927901568094e7, 99.10458562488608, 0.0, 96.75133289411137, 4000, Int32[1, 3, 5, 4], [0.01837814570268761, 0.009401304503949024, -96.75133289411137, 72.0, 99.10458562488608, 1.7976931348623157e308, 259.2943164149993, 59.0, 16.87128649083537, 24.773873409176925, 59.43893182922881, 0.0, 0.0, 344.9767431592819, -178.51901912484058, 790.0, 54.0]) + Trk(1, [456.97627814791457, 592.7509917096395, 193.82544167917783], [-0.08167688401007625, -0.12212161487029954, -0.989148723802379], 2.128187723727164e7, 99.10458562488608, 0.0, 560.2775306614813, 4000, Int32[1, 3, 5, 4], [0.0022862363916181096, 0.0015619992272287897, -560.2775306614813, 261.0, 99.10458562488608, 1.7976931348623157e308, 5.84464995424756, 52.0, 91.37269495454369, 148.1224810941145, 165.70400027827318, 0.0, 0.0, 344.9767431592819, -654.1882814711497, 2526.0, 198.0]) + Trk(1, [439.7470230806774, 590.4753779242533, 203.83469855517993], [-0.10236158585739397, -0.23020978384961455, -0.9677425076747808], 1.6513108700491736e7, 37.8551524925863, 0.0, 278.2872951665753, 4000, Int32[1, 3, 5, 4], [0.006041091149104179, 0.0035514113196960105, -278.2872951665753, 118.0, 37.8551524925863, 265.5559310077148, 52.601849588228035, 53.0, 40.65396902507262, 46.54735947527185, 97.27912085164719, 0.0, 0.0, 141.61500301253315, -Inf, 2713.0, 88.0]) + Trk(1, [439.7429669399687, 546.3344243172004, 58.644786708814664], [0.18720483239615998, 0.5400660706130554, -0.8205382319551601], 4.717893801990337e7, 99.10458562488608, 0.0, 99.59098153341449, 4000, Int32[1, 3, 5, 4], [0.024623519864386552, 0.014331655995648987, -99.59098153341449, 47.0, 99.10458562488608, 1.7976931348623157e308, 64.29114949672314, 51.0, 22.75185164189341, 22.75185164189341, 33.78774068100958, 0.0, 0.0, 344.9767431592819, -115.80151219196675, 480.0, 35.0])</code></pre><p>Let's close our file <code>;)</code></p><pre><code class="language-julia hljs">close(f)</code></pre><h2 id="Trigger-masks/flags"><a class="docs-heading-anchor" href="#Trigger-masks/flags">Trigger masks/flags</a><a id="Trigger-masks/flags-1"></a><a class="docs-heading-anchor-permalink" href="#Trigger-masks/flags" title="Permalink"></a></h2><p>KM3NeT uses a 64bit integer type to store information about which triggers have fired for a given event or hit. The index of the bit which indicates if a specific trigger has fired is defined in the <a href="https://git.km3net.de/common/km3net-dataformat">KM3NeT Dataformat</a> specification which is used in <code>KM3io.jl</code>.</p><p>Functions to check if a trigger has fired are for example</p><ul><li><a href="../../api/#KM3io.is3dmuon"><code>is3dmuon()</code></a></li><li><a href="../../api/#KM3io.is3dshower"><code>is3dshower()</code></a></li><li><a href="../../api/#KM3io.ismxshower"><code>ismxshower()</code></a></li><li><a href="../../api/#KM3io.isnb"><code>isnb()</code></a></li></ul><p>which all accept either an event is input or something which has a <code>.trigger_mask</code> field, like a triggered hit.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../calibration/">« Calibration</a><a class="docs-footer-nextpage" href="../../examples/offline_data/">Offline data »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.2.1 on <span class="colophon-date" title="Friday 23 February 2024 14:17">Friday 23 February 2024</span>. Using Julia version 1.9.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html> diff --git a/v0.16.5/search_index.js b/v0.16.5/search_index.js new file mode 100644 index 00000000..c217a7de --- /dev/null +++ b/v0.16.5/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"manual/detector/#Detector-and-its-Components","page":"Detector and its Components","title":"Detector and its Components","text":"","category":"section"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"In this example, we will explore the components of a KM3NeT detector, which is represented by the Detector type in KM3io.jl. The detector description is stored in so-called DETX and DATX files, named after their filename extensions .detx (ASCII) and .datx (binary) respectively. By time of writing this example, v5 is the latest format version.","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"note: Note\nKM3io.jl offers conversions between the different DETX format versions. Typically, each major version brings a new set of parameters. Downgrading is therefore not lossless. When when upgrading from one version to another, the new parameters needs to be filled in. Some of these can be calculated from existing ones, like the module position, which was introduced in v4 and is equal to the crossing point of the PMT axes. Otherwise, these parameters are either set to meaningful default values or to missing.","category":"page"},{"location":"manual/detector/#Loading-a-DETX/DATX-File","page":"Detector and its Components","title":"Loading a DETX/DATX File","text":"","category":"section"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"The Detector type has a constructor which takes a filepath to a DETX or DATX file. The KM3NeTTestData.jl offers a collection of detector sample files, so let's pick one of them:","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"using KM3io, KM3NeTTestData\n\ndet = Detector(datapath(\"detx\", \"detx_v5.detx\"))","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"A detector configuration (format version 5) has been loaded with 6 strings (sometimes also called detection unit or DU) holding a total 114 modules.","category":"page"},{"location":"manual/detector/#Accessing-Modules","page":"Detector and its Components","title":"Accessing Modules","text":"","category":"section"},{"location":"manual/detector/#Iterating-over-all-modules","page":"Detector and its Components","title":"Iterating over all modules","text":"","category":"section"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"There are multiple ways to access modules within a Detector. One of them is iterating over it, which yields DetectorModule instances in no specific order:","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"for m in det\n println(m)\nend","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"warning: Warning\nmodule is a reserved keyword in Julia and mod is the \"modulo function\", so keep this in mind when chosing a variable name for a DetectorModule. Most of the time m is fine, or just be verbose with detector_module and use your editors tab-completion.","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"As we can see in the output, there are two types of modules: optical modules and base modules. The main difference between the two in the detector file context is that base modules do not contain PMTs and are always sitting on floor 0.","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"note: Note\nAlthough iterating over a Detector feels like iterating over a vector, accessing single elements via det[idx] will not work as such since it requires the idx to be a module ID. This design was chosen since the detector dataformat specification does not specify module ordering, so there is no such thing as the \"n-th module\". Accessing modules by their module ID however is the standard use case, see below.","category":"page"},{"location":"manual/detector/#Detector-Modules","page":"Detector and its Components","title":"Detector Modules","text":"","category":"section"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"Modules have a unique identification number called module ID (sometimes also called \"DOM ID\", where DOM stands for \"Digital Optical Module\") and we can use this ID to access individual modules within a Detector instance.","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"The .modules field is a dictionary which maps the modules to their module IDs:","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"det.modules","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"A flat vector of modules can be obtained with:","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"modules(det)","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"To access a module with a given module ID, one can either use the dictionary or index the Detector directly, which is the recommended way:","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"detector_module = det[808468425]","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"Or for a given string and floor:","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"det[3, 15]","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"It is possible to select all modules for a given floor on all strings using the : syntax. Here we select all the base modules on each string:","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"det[:, 0]","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"Another way is using the getmodule(d::Detector, string::Integer, floor::Integer) function to access a module on a given string and floor:","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"detector_module = getmodule(det, 3, 15)","category":"page"},{"location":"manual/detector/#PMTs","page":"Detector and its Components","title":"PMTs","text":"","category":"section"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"Each optical module consists of PMTs, which can be access using the getpmts(m::DetectorModule) function:","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"getpmts(detector_module)","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"To access a specific PMT with a given channel ID (TDC ID), use the getpmt(m::DetectorModule, channel_id::Integer) function. Here, we access the PMT at DAQ channel 0 of our previously obtained detector module:","category":"page"},{"location":"manual/detector/","page":"Detector and its Components","title":"Detector and its Components","text":"getpmt(detector_module, 0)","category":"page"},{"location":"manual/calibration/#Calibration","page":"Calibration","title":"Calibration","text":"","category":"section"},{"location":"manual/calibration/","page":"Calibration","title":"Calibration","text":"It's implemented but not documented here yet. Check out the docs calibrate function's docstring!","category":"page"},{"location":"examples/controlhost/#Accessing-Live-Data","page":"Accessing Live Data","title":"Accessing Live Data","text":"","category":"section"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"This example shows how to access and process live data (events) from the KM3NeT DAQ system. We will use two Jpp command line tools (JLigier and JRegurgitate) to create a ligier dispatcher and send triggered DAQ events to it.","category":"page"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"This example uses Jpp v14.4.3 and real data from a KM3NeT detector (online ROOT format) with the filename KM3NeT_00000075_00010275.root which can be found on the HPSS storage.","category":"page"},{"location":"examples/controlhost/#Launching-JLigier","page":"Accessing Live Data","title":"Launching JLigier","text":"","category":"section"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"We open a terminal and launch the JLigier process with a high debug level. This ligier is the central communication point and it will receive messages which are tagged with short label of maximum 8 characters.","category":"page"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"$ JLigier -P 5553 -d 3\nPort 5553\nMemory limit 16760735744\nQueue limit 100","category":"page"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"The ligier is now running and and listening on port 5553 of all host IP addresses (including the localhost 127.0.0.1). Clients can connect to it and subscribe for a given set of message tags. Leave this terminal open.","category":"page"},{"location":"examples/controlhost/#Simulating-the-DAQ","page":"Accessing Live Data","title":"Simulating the DAQ","text":"","category":"section"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"The first client we start in new terminal session is the JRegurgitate process which takes a ROOT file (in online format), a class identifier, a few other parameters like the frequency and timeout of the messages and also the IP and port of the ligier to send to. We will use this application to simulate the KM3NeT DAQ – at least the output of the JDataFilter which is responsible for triggering events and sending them downstreams to a JLigier so that they can be picked up by the JDataWriter to store them in ROOT files (online format).","category":"page"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"$ JRegurgitate -f /data/sea/KM3NeT_00000075_00010275.root -C JDAQEvent -R 2 -T 10000000 -H 127.0.0.1:5553","category":"page"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"This program is fairly quite but if you look at the terminal where the JLigier is running, you'll see a flood of messages, showing that a new client has connected and data is received (tagged with IO_EVT). It also prints the number of bytes of each message:","category":"page"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"$ JLigier -P 5553 -d 3\nPort 30001\nMemory limit 16760735744\nQueue limit 100\nNew client[4]\nClient[4].read(0,1,1756)\nClient[4].read(1,2,0)\nMessage[4] IO_EVT 1772\nClient[4].read(0,1,1394)\nClient[4].read(1,2,0)\nMessage[4] IO_EVT 1410\nClient[4].read(0,1,1716)\n...\n...\n...","category":"page"},{"location":"examples/controlhost/#Retrieving-Events","page":"Accessing Live Data","title":"Retrieving Events","text":"","category":"section"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"Now open a thrid terminal and fire up the Julia REPL. With a few lines, we will able to connect to the ligier and receive DAQ events interactively.","category":"page"},{"location":"examples/controlhost/","page":"Accessing Live Data","title":"Accessing Live Data","text":"julia> using KM3io\n\njulia> c = CHClient{KM3io.DAQEvent}(ip\"127.0.0.1\", 5553)\nCHClient{DAQEvent}(ip\"127.0.0.1\", 0x7531, CHTag[CHTag(\"IO_EVT\")], Sockets.TCPSocket(RawFD(20) open, 0 bytes waiting))\n\njulia> for e in c\n @show e\n end\ne = DAQEvent with 126 snapshot and 7 triggered hits\ne = DAQEvent with 138 snapshot and 6 triggered hits\ne = DAQEvent with 149 snapshot and 6 triggered hits\ne = DAQEvent with 149 snapshot and 6 triggered hits\ne = DAQEvent with 136 snapshot and 6 triggered hits\n...\n...\n...","category":"page"},{"location":"api/#API","page":"API","title":"API","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"","category":"page"},{"location":"api/#Basic-Data-Structures","page":"API","title":"Basic Data Structures","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Position\nDirection\nLocation","category":"page"},{"location":"api/#KM3io.Position","page":"API","title":"KM3io.Position","text":"struct Position{T} <: StaticArraysCore.FieldVector{3, T}\n\nA vector to represent a position in 3D.\n\nFields\n\nx::Any\ny::Any\nz::Any\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.Direction","page":"API","title":"KM3io.Direction","text":"struct Direction{T<:AbstractFloat} <: StaticArraysCore.FieldVector{3, T<:AbstractFloat}\n\nA vector to represent a direction in 3D.\n\nFields\n\nx::AbstractFloat\ny::AbstractFloat\nz::AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.Location","page":"API","title":"KM3io.Location","text":"struct Location\n\nA module's location in the detector where string represents the detection unit identifier and floor counts from 0 from the bottom to top. Base modules are sitting on floor 0 and optical modules on floor 1 and higher.\n\nFields\n\nstring::Int32\nfloor::Int8\n\n\n\n\n\n","category":"type"},{"location":"api/#Offline-Format","page":"API","title":"Offline Format","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Evt\nCalibratedHit\nCalibratedMCHit\nXCalibratedHit\nTrk\nMCTrk","category":"page"},{"location":"api/#KM3io.Evt","page":"API","title":"KM3io.Evt","text":"struct Evt\n\nAn offline event.\n\nFields\n\nid::Int64\ndet_id::Int64\nmc_id::Int64\nrun_id::Int64\nmc_run_id::Int64\nframe_index::Int64\ntrigger_mask::UInt64\ntrigger_counter::UInt64\noverlays::UInt64\nt::UTCTime\nhits::Vector{CalibratedHit}\ntrks::Vector{Trk}\nw::Vector{Float64}\nw2list::Vector{Float64}\nw3list::Vector{Float64}\nmc_event_time::UTCTime\nmc_t::Float64\nmc_hits::Vector{CalibratedMCHit}\nmc_trks::Vector{MCTrk}\nindex::Int64\nflags::Int64\nusr::Dict{String, Float64}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.CalibratedHit","page":"API","title":"KM3io.CalibratedHit","text":"struct CalibratedHit <: AbstractCalibratedHit\n\nA calibrated hit of the offline dataformat. Caveat: the position, direction and t fields might still be 0 due to the design philosophy of the offline format (one class for all).\n\nFields\n\ndom_id::Int32\nchannel_id::UInt32\ntdc::UInt32\ntot::UInt32\ntrigger_mask::UInt64\nt::Float64\npos::Position{Float64}\ndir::Direction{Float64}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.CalibratedMCHit","page":"API","title":"KM3io.CalibratedMCHit","text":"struct CalibratedMCHit\n\nA calibrated MC hit of the offline dataformat. Caveat: the position and direction fields might still be 0 due to the design philosophy of the offline format (one class for all).\n\nFields\n\npmt_id::Int32\nt::Float64\na::Float64\ntype::Int32\norigin::Int32\npos::Position{Float64}\ndir::Direction{Float64}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.XCalibratedHit","page":"API","title":"KM3io.XCalibratedHit","text":"struct XCalibratedHit <: AbstractCalibratedHit\n\nA fully dressed hit with all calibration information which can be obtained. This structure is similar to the Hit structure in aanet and should be used wisely. Most of the time it's much more performant to use dedicated (simplified) structures.\n\nFields\n\ndom_id::UInt32\nchannel_id::UInt32\nt::Float64\ntot::UInt8\ntrigger_mask::UInt64\npos::Position{Float64}\ndir::Direction{Float64}\nt0::Float64\nstring::UInt8\nfloor::UInt8\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.Trk","page":"API","title":"KM3io.Trk","text":"struct Trk\n\nRepresents a reconstructed \"track\", which can be e.g. a muon track but also a shower.\n\nFields\n\nid::Int64\npos::Position{Float64}\ndir::Direction{Float64}\nt::Float64\nE::Float64\nlen::Float64\nlik::Float64\nrec_type::Int32\nrec_stages::Vector{Int32}\nfitinf::Vector{Float64}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.MCTrk","page":"API","title":"KM3io.MCTrk","text":"struct MCTrk\n\nA simulated (Monte Carlo, hence \"MC\") track (or shower).\n\nFields\n\nid::Int64\npos::Position{Float64}\ndir::Direction{Float64}\nt::Float64\nE::Float64\nlen::Float64\ntype::Int32\nstatus::Int32\nmother_id::Int32\ncounter::Int32\n\n\n\n\n\n","category":"type"},{"location":"api/#Online-Format","page":"API","title":"Online Format","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"DAQEvent\nEventHeader\nSnapshotHit\nTriggeredHit\nCalibratedSnapshotHit\nCalibratedTriggeredHit\nUTCTime\nUTCExtended\nSummaryslice\nSummarysliceHeader\nSummaryFrame","category":"page"},{"location":"api/#KM3io.DAQEvent","page":"API","title":"KM3io.DAQEvent","text":"struct DAQEvent\n\nA (triggered) event holding snapshot hits and triggered hits. The triggered hits are a subset of the snapshot hits.\n\nFields\n\nheader::EventHeader\nsnapshot_hits::Vector{SnapshotHit}\ntriggered_hits::Vector{TriggeredHit}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.EventHeader","page":"API","title":"KM3io.EventHeader","text":"struct EventHeader\n\nThe header of an event.\n\nFields\n\ndetector_id::Int32\nrun::Int32\nframe_index::Int32\nt::UTCExtended\ntrigger_counter::UInt64\ntrigger_mask::UInt64\noverlays::UInt32\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.SnapshotHit","page":"API","title":"KM3io.SnapshotHit","text":"struct SnapshotHit <: KM3io.AbstractDAQHit\n\nA snapshot hit.\n\nFields\n\ndom_id::UInt32\nchannel_id::UInt8\nt::Int32\ntot::UInt8\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.TriggeredHit","page":"API","title":"KM3io.TriggeredHit","text":"struct TriggeredHit <: KM3io.AbstractDAQHit\n\nA hit which was triggered.\n\nFields\n\ndom_id::Int32\nchannel_id::UInt8\nt::Int32\ntot::UInt8\ntrigger_mask::UInt64\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.CalibratedSnapshotHit","page":"API","title":"KM3io.CalibratedSnapshotHit","text":"struct CalibratedSnapshotHit <: AbstractCalibratedHit\n\nA calibrated snapshot hit.\n\nFields\n\ndom_id::UInt32\nchannel_id::UInt8\nt::Float64\ntot::UInt8\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.CalibratedTriggeredHit","page":"API","title":"KM3io.CalibratedTriggeredHit","text":"struct CalibratedTriggeredHit <: AbstractCalibratedHit\n\nA calibrated triggered hit.\n\nFields\n\ndom_id::UInt32\nchannel_id::UInt8\nt::Float64\ntot::UInt8\ntrigger_mask::UInt64\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.UTCTime","page":"API","title":"KM3io.UTCTime","text":"struct UTCTime\n\nA basic time structure with seconds and nanoseconds. The seconds are counting from the start of the epoch, just like the UNIX time.\n\nFields\n\ns::UInt64\nns::UInt64\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.UTCExtended","page":"API","title":"KM3io.UTCExtended","text":"struct UTCExtended\n\nAn extended time structure which contains the White Rabbit time synchronisation status. wr_status == 0 means that the synchronisation is OK.\n\nFields\n\ns::UInt32\nns::UInt32\nwr_status::Int64\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.Summaryslice","page":"API","title":"KM3io.Summaryslice","text":"struct Summaryslice\n\nA summaryslice is a condensed timeslice with the header information of the corresponding timeslice and a summary frame for each optical module. The hit information of the original timeslice is reduced so that for each PMT a single byte is used to encode the hit rate.\n\nFields\n\nheader::SummarysliceHeader\nframes::Vector{SummaryFrame}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.SummarysliceHeader","page":"API","title":"KM3io.SummarysliceHeader","text":"struct SummarysliceHeader\n\nThe header of a summaryslice.\n\nFields\n\ndetector_id::Int32\nrun::Int32\nframe_index::Int32\nt::UTCExtended\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.SummaryFrame","page":"API","title":"KM3io.SummaryFrame","text":"struct SummaryFrame\n\nA SummaryFrame contains reduced timeslice data from an optical module.\n\nThe PMT rates are encoded as single bytes and can be converted to real hit rates using the rates(s::SummaryFrame) function.\n\nFields\n\ndom_id::Int32\ndaq::UInt32\nstatus::UInt32\nfifo::UInt32\nstatus3::UInt32\nstatus4::UInt32\nrates::StaticArraysCore.SVector{31, UInt8}\n\n\n\n\n\n","category":"type"},{"location":"api/#HDF5","page":"API","title":"HDF5","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"H5File\nH5CompoundDataset\naddmeta\ncreate_dataset\nflush","category":"page"},{"location":"api/#KM3io.H5File","page":"API","title":"KM3io.H5File","text":"struct H5File\n\nA wrapper for an HDF5 file used in KM3NeT.\n\nFields\n\n_h5f::HDF5.File\n_datasets::Dict{String, H5CompoundDataset}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.H5CompoundDataset","page":"API","title":"KM3io.H5CompoundDataset","text":"struct H5CompoundDataset{T}\n\nA flat HDF5 compound dataset which is essentially a vector of structs. It has a cache which is filled when elements are pushed to it. The cache is automatically written to the target HDF5 path when full.\n\nFields\n\ndset::HDF5.Dataset\ncache::KM3io.H5CompoundDatasetCache\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.addmeta","page":"API","title":"KM3io.addmeta","text":"addmeta(\n dset::Union{HDF5.Dataset, HDF5.Datatype, HDF5.File, HDF5.Group},\n object\n)\n\n\nAttaches key-value-pair meta entries to an HDF5 instance for each field of the given object.\n\n\n\n\n\n","category":"function"},{"location":"api/#HDF5.create_dataset","page":"API","title":"HDF5.create_dataset","text":"create_dataset(\n f::H5File,\n path::AbstractString,\n ::Type{T};\n cache_size\n) -> H5CompoundDataset\n\n\nCreates a one-dimensional compound dataset H5CompoundDataset of a given type which can be extended one-by-one. The cache is used to accumulate data and reduce the number of dataset extensions. Each time the cache is full, the HDF5 dataset will be extended, the buffer written and cleared.\n\nTo force the writing, use flush\n\n\n\n\n\n","category":"function"},{"location":"api/#Base.flush","page":"API","title":"Base.flush","text":"flush(d::H5CompoundDataset) -> Vector\n\n\nForces the cache to be written to the HDF5 file.\n\n\n\n\n\n","category":"function"},{"location":"api/#Hardware","page":"API","title":"Hardware","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"PMT\nDetectorModule\nDetector\nmodules\ngetmodule\ngetpmt\nhaslocation\nisbasemodule\nisopticalmodule\nwrite(::AbstractString, ::Detector)\nwrite(::IO, ::Detector)\nHydrophone\nread(::AbstractString, ::Type{Hydrophone})\nTripod\nread(::AbstractString, ::Type{Tripod})\nwrite(::AbstractString, ::Vector{Tripod})\npiezoenabled\nhydrophoneenabled\ncenter\nStringMechanics\nStringMechanicsParameters\nread(::AbstractString, ::Type{StringMechanics})","category":"page"},{"location":"api/#KM3io.PMT","page":"API","title":"KM3io.PMT","text":"struct PMT\n\nThe photomultiplier tube of an optical module. The id stands for the DAQ channel ID.\n\nA non-zero status means the PMT is \"not OK\". Individual bits can be read out to identify the problem (see definitions/pmt_status.jl for the bit positions and check them using the nthbitset() function).\n\nFields\n\nid::Int32\npos::Position{Float64}\ndir::Direction{Float64}\ntâ‚€::Float64\nstatus::Union{Missing, Int32}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.DetectorModule","page":"API","title":"KM3io.DetectorModule","text":"struct DetectorModule\n\nEither a base module or an optical module. A non-zero status means the module is \"not OK\". Individual bits can be read out to identify the problem (see definitions/module_status.jl for the bit positions and check them using the nthbitset() function).\n\nFields\n\nid::Int32\npos::Position{Float64}\nlocation::Location\nn_pmts::Int8\npmts::Vector{PMT}\nq::Union{Missing, Quaternion{Float64}}\nstatus::Int32\ntâ‚€::Float64\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.Detector","page":"API","title":"KM3io.Detector","text":"struct Detector\n\nA KM3NeT detector.\n\nFields\n\nversion::Int8\nid::Int32\nvalidity::Union{Missing, KM3io.DateRange}\npos::Union{Missing, UTMPosition{Float64}}\nutm_ref_grid::Union{Missing, String}\nn_modules::Int32\nmodules::Dict{Int32, DetectorModule}\nlocations::Dict{Tuple{Int64, Int64}, DetectorModule}\nstrings::Vector{Int64}\ncomments::Vector{String}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.modules","page":"API","title":"KM3io.modules","text":"modules(d::Detector) -> Vector{DetectorModule}\n\n\nReturn a vector of all modules of a given detector.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.getmodule","page":"API","title":"KM3io.getmodule","text":"getmodule(d::Detector, module_id::Integer) -> DetectorModule\n\n\nReturn the detector module for a given module ID.\n\n\n\n\n\ngetmodule(\n d::Detector,\n string::Integer,\n floor::Integer\n) -> DetectorModule\n\n\nReturn the detector module for a given string and floor.\n\n\n\n\n\ngetmodule(\n d::Detector,\n loc::Tuple{T<:Integer, T<:Integer}\n) -> DetectorModule\n\n\nReturn the detector module for a given string and floor (as Tuple).\n\n\n\n\n\ngetmodule(d::Detector, loc::Location) -> DetectorModule\n\n\nReturn the detector module for a given location.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.getpmt","page":"API","title":"KM3io.getpmt","text":"getpmt(d::DetectorModule, channel_id::Integer) -> Any\n\n\nGet the PMT for a given DAQ channel ID (TDC)\n\n\n\n\n\ngetpmt(d::Detector, hit) -> Any\n\n\nReturn the PMT for a given hit.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.haslocation","page":"API","title":"KM3io.haslocation","text":"haslocation(d::Detector, loc::Location) -> Bool\n\n\nReturns true if there is a module at the given location.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.isbasemodule","page":"API","title":"KM3io.isbasemodule","text":"isbasemodule(d::DetectorModule) -> Bool\n\n\nReturns true if the module is a basemodule.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.isopticalmodule","page":"API","title":"KM3io.isopticalmodule","text":"isopticalmodule(d::DetectorModule) -> Bool\n\n\nReturns true if the module is an optical module.\n\n\n\n\n\n","category":"function"},{"location":"api/#Base.write-Tuple{AbstractString, Detector}","page":"API","title":"Base.write","text":"write(filename::AbstractString, d::Detector; version)\n\n\nWrites the detector definition to a file, according to the DETX format specification. The version parameter can be a version number or :same, which is the default value and writes the same version as the provided detector has.\n\n\n\n\n\n","category":"method"},{"location":"api/#Base.write-Tuple{IO, Detector}","page":"API","title":"Base.write","text":"write(io::IO, d::Detector; version)\n\n\nfunction write(io::IO, d::Detector; version=:same)\n\nWrites the detector to a DETX formatted file. The target version can be specified via the version keyword. Note that if converting to higher versions, missing parameters will be filled with reasonable default values. In case of downgrading, information will be lost.\n\n\n\n\n\n","category":"method"},{"location":"api/#KM3io.Hydrophone","page":"API","title":"KM3io.Hydrophone","text":"struct Hydrophone\n\nA hydrophone, typically installed in the base module of a KM3NeT detector's string.\n\nFields\n\nlocation::Location\npos::Position{Float64}\n\n\n\n\n\n","category":"type"},{"location":"api/#Base.read-Tuple{AbstractString, Type{Hydrophone}}","page":"API","title":"Base.read","text":"read(\n filename::AbstractString,\n T::Type{Hydrophone}\n) -> Vector{Hydrophone}\n\n\nfunction read(filename::AbstractString, T::Type{Hydrophone})\n\nReads a vector of Hydrophones from an ASCII file.\n\n\n\n\n\n","category":"method"},{"location":"api/#KM3io.Tripod","page":"API","title":"KM3io.Tripod","text":"struct Tripod\n\nA tripod installed on the seabed which sends acoustic signals to modules.\n\nFields\n\nid::Int8\npos::Position{Float64}\n\n\n\n\n\n","category":"type"},{"location":"api/#Base.read-Tuple{AbstractString, Type{Tripod}}","page":"API","title":"Base.read","text":"read(\n filename::AbstractString,\n T::Type{Tripod}\n) -> Vector{Tripod}\n\n\nfunction read(filename:AbstractString, T::Type{Tripod})\n\nReads a vector of Tripods from an ASCII file.\n\n\n\n\n\n","category":"method"},{"location":"api/#Base.write-Tuple{AbstractString, Vector{Tripod}}","page":"API","title":"Base.write","text":"write(filename::AbstractString, tripods::Vector{Tripod})\n\n\nfunction write(filename::AbstractString, tripods::Dict{Int8, Tripod})\n\nWrites the position of tripods out into an ASCII file.\n\n\n\n\n\n","category":"method"},{"location":"api/#KM3io.piezoenabled","page":"API","title":"KM3io.piezoenabled","text":"piezoenabled(m::DetectorModule) -> Bool\n\n\nfunction piezoenabled(m::DetectorModule)\n\nReturn true if the piezo is enabled, false otherwise.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.hydrophoneenabled","page":"API","title":"KM3io.hydrophoneenabled","text":"hydrophoneenabled(m::DetectorModule) -> Bool\n\n\nfunction hydrophonenabled(m::DetectorModule)\n\nReturn true if the hydrophone is enabled, false otherwise.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.center","page":"API","title":"KM3io.center","text":"center(m::DetectorModule) -> Position{Float64}\n\n\nCalculate the centre of a module by fitting the crossing point of the PMT axes.\n\n\n\n\n\ncenter(d::Detector) -> Position{Float64}\n\n\nCalculate the center of the detector based on the location of the optical modules.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.StringMechanics","page":"API","title":"KM3io.StringMechanics","text":"struct StringMechanics\n\nA container structure which holds the mechanical model parameters for multiple strings, including a default value for strings which have specific parameters.\n\nFields\n\ndefault::StringMechanicsParameters\nstringparams::Dict{Int64, StringMechanicsParameters}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.StringMechanicsParameters","page":"API","title":"KM3io.StringMechanicsParameters","text":"struct StringMechanicsParameters\n\nData structure for parameters of the mechanical model of strings. This data structure is used to calculate the effective height conform to the mechanical model of the string.\n\nFields\n\na::Float64\nb::Float64\n\n\n\n\n\n","category":"type"},{"location":"api/#Base.read-Tuple{AbstractString, Type{StringMechanics}}","page":"API","title":"Base.read","text":"read(\n filename::AbstractString,\n T::Type{StringMechanics}\n) -> StringMechanics\n\n\nReads the mechanical models from a text file.\n\n\n\n\n\n","category":"method"},{"location":"api/#Optical-Data","page":"API","title":"Optical Data","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"","category":"page"},{"location":"api/#Acoustics","page":"API","title":"Acoustics","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Waveform\nread(filename::AbstractString, T::Type{Waveform})\nAcousticSignal\nAcousticsTriggerParameter\nread(filename::AbstractString, T::Type{AcousticsTriggerParameter})","category":"page"},{"location":"api/#KM3io.Waveform","page":"API","title":"KM3io.Waveform","text":"struct Waveform\n\nWaveform translates Emitter ID to Tripod ID.\n\nFields\n\nids::Dict{Int8, Int8}\n\n\n\n\n\n","category":"type"},{"location":"api/#Base.read-Tuple{AbstractString, Type{Waveform}}","page":"API","title":"Base.read","text":"read(\n filename::AbstractString,\n T::Type{Waveform}\n) -> Waveform\n\n\nfunction read(filename::AbstractString, T::Type{Waveform})\n\nReads the waveform ASCII file.\n\n\n\n\n\n","category":"method"},{"location":"api/#KM3io.AcousticSignal","page":"API","title":"KM3io.AcousticSignal","text":"struct AcousticSignal\n\nAcousticSignal is a custom type with four fields to store all the information inside the raw acoustic binary files.\n\ndom_id::Int32 ID of the module\nutc_seconds:: UInt32 storing the first 4 Bytes and is a UNIX time stamp\nns_cycles:: UInt32 storing the second 4 Bytes\nsamples:: UInt32 storing the third 4 Bytes, corresponding to the number of data points accuired during the measring window\npcm:: Vector of Float32 of length frame_length, storing all other 4 Byte blocks. Each entry is a data point of the acoustic signal.\n\nFields\n\ndom_id::Int32\nutc_seconds::UInt32\nns_cycles::UInt32\nsamples::UInt32\npcm::Vector{Float32}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.AcousticsTriggerParameter","page":"API","title":"KM3io.AcousticsTriggerParameter","text":"struct AcousticsTriggerParameter\n\nCertain parameters which define an acoustic event.\n\nFields\n\nq::Float64\ntmax::Float64\nnmin::Int32\n\n\n\n\n\n","category":"type"},{"location":"api/#Base.read-Tuple{AbstractString, Type{AcousticsTriggerParameter}}","page":"API","title":"Base.read","text":"read(\n filename::AbstractString,\n T::Type{AcousticsTriggerParameter}\n) -> AcousticsTriggerParameter\n\n\nfunction read(filename::AbstractString, T::Type{AcousticsTriggerParameter})\n\nReads the 'acousticstriggerparameters.txt' file.\n\n\n\n\n\n","category":"method"},{"location":"api/#Calibration","page":"API","title":"Calibration","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"calibrate\ncalibratetime\ncombine\nfloordist\nslew","category":"page"},{"location":"api/#KM3io.calibrate","page":"API","title":"KM3io.calibrate","text":"calibrate(det::Detector, hits) -> Vector{XCalibratedHit}\n\n\nApply full geometry and time calibration to given hits. This way of calibration should be used wisely since it creates a very bloaded XCalibratedHit object, which might not be necessary. Often, we only need time the calibration to be applied.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.calibratetime","page":"API","title":"KM3io.calibratetime","text":"calibratetime(\n det::Detector,\n hits::Array{T<:SnapshotHit, 1}\n) -> Vector{CalibratedSnapshotHit}\n\n\nCalibrate the time of a given array of snapshot hits.\n\n\n\n\n\ncalibratetime(\n det::Detector,\n hits::Array{T<:TriggeredHit, 1}\n) -> Vector{CalibratedTriggeredHit}\n\n\nCalibrate the time of a given array of triggered hits.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.combine","page":"API","title":"KM3io.combine","text":"combine(\n snapshot_hits::Vector{SnapshotHit},\n triggered_hits::Vector{TriggeredHit}\n) -> Vector{TriggeredHit}\n\n\nCombine snapshot and triggered hits to a single hits-vector.\n\nThis should be used to transfer the trigger information to the snapshot hits from a DAQEvent. The triggered hits are a subset of the snapshot hits.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.floordist","page":"API","title":"KM3io.floordist","text":"floordist(det::Detector) -> Float64\n\n\nCalculates the average floor distance between neighboured modules.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.slew","page":"API","title":"KM3io.slew","text":"slew(tot::Integer) -> Any\n\n\nReturn the time slewing for a ToT.\n\n\n\n\n\n","category":"function"},{"location":"api/#Physics","page":"API","title":"Physics","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"azimuth\nzenith\nphi\ntheta\ncherenkov\nCherenkovPhoton\nK40Rates","category":"page"},{"location":"api/#KM3io.azimuth","page":"API","title":"KM3io.azimuth","text":"azimuth(d::Direction) -> Any\n\n\nCalculates the azimuth from a given Direction according to KM3NeT conventions.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.zenith","page":"API","title":"KM3io.zenith","text":"zenith(d::Direction) -> Any\n\n\nCalculates the zenith from a given Direction according to KM3NeT conventions.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.phi","page":"API","title":"KM3io.phi","text":"phi(d::Direction) -> Any\n\n\nCalculate the phi angle for a given direction\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.theta","page":"API","title":"KM3io.theta","text":"theta(d::Direction) -> Any\n\n\nCalculate the theta angle for a given direction\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.cherenkov","page":"API","title":"KM3io.cherenkov","text":"cherenkov(\n track,\n hits::Array{T<:AbstractCalibratedHit, 1}\n) -> Any\n\n\nCalculates the parameters of cherenkov photons emitted from a track and hitting the PMTs represented as (calibrated) hits. The returned cherenkov photons hold information about the closest distance to track, the time residual, arrival time, impact angle, photon travel distance, track travel distance and photon travel direction. See CherenkovPhoton for more information.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.CherenkovPhoton","page":"API","title":"KM3io.CherenkovPhoton","text":"struct CherenkovPhoton\n\nA Cherenkov photon with parameters calculated from its inducing track. See cherenkov() for more information.\n\nFields\n\nd_closest::Float64\nd_photon::Float64\nd_track::Float64\nt::Float64\nΔt::Float64\nimpact_angle::Float64\ndir::Direction{Float64}\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.K40Rates","page":"API","title":"KM3io.K40Rates","text":"struct K40Rates\n\nK40 rates with L0 and higher level rates (with increasing multiplicities).\n\nFields\n\nL0::Float64\nL1::Vector{Float64}\n\n\n\n\n\n","category":"type"},{"location":"api/#Trigger","page":"API","title":"Trigger","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"triggered\nis3dmuon\nis3dshower\nismxshower\nisnb","category":"page"},{"location":"api/#KM3io.triggered","page":"API","title":"KM3io.triggered","text":"triggered(e) -> Vector\n\n\nReturn true if the passed object (hit, event, ...) was triggered by any trigger algorithm.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.is3dmuon","page":"API","title":"KM3io.is3dmuon","text":"is3dmuon(e::DAQEvent) -> Bool\n\n\nis3dmuon(e)\n\ndefined at /builds/common/KM3io.jl/src/tools/trigger.jl:12.\n\nReturn true the 3D Muon trigger bit is set.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.is3dshower","page":"API","title":"KM3io.is3dshower","text":"is3dshower(e::DAQEvent) -> Bool\n\n\nis3dshower(e)\n\ndefined at /builds/common/KM3io.jl/src/tools/trigger.jl:20.\n\nReturn true if the 3D Shower trigger bit is set.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.ismxshower","page":"API","title":"KM3io.ismxshower","text":"ismxshower(x) -> Bool\n\n\nismxshower(x)\n\ndefined at /builds/common/KM3io.jl/src/tools/trigger.jl:28.\n\nismxshower(e)\n\ndefined at /builds/common/KM3io.jl/src/tools/trigger.jl:29.\n\nReturn true if the MX Shower trigger bit is set.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.isnb","page":"API","title":"KM3io.isnb","text":"isnb(x) -> Bool\n\n\nisnb(x)\n\ndefined at /builds/common/KM3io.jl/src/tools/trigger.jl:36.\n\nisnb(e)\n\ndefined at /builds/common/KM3io.jl/src/tools/trigger.jl:37.\n\nReturn true if the NanoBeacon trigger bit is set.\n\n\n\n\n\n","category":"function"},{"location":"api/#ControlHost","page":"API","title":"ControlHost","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"CHClient","category":"page"},{"location":"api/#KM3io.CHClient","page":"API","title":"KM3io.CHClient","text":"struct CHClient{T}\n\nA ControlHost client which can communicate with a Ligier dispatcher to receive messages for all the subscribed tags.\n\nTo connect to a Ligier which is receiving triggered DAQ events e.g. in the KM3NeT monitoring system or in a test setup consisting of a JLigier dispatcher and a JRegurgitate instance which is redispatching DAQ events (JDAQEvent) from a ROOT file in online format to the JLigier, a CHClient can be created to subscribe the event messages with\n\njulia> using KM3io\n\njulia> c = CHClient{DAQEvent}(ip\"127.0.0.1\", 5553)\n\njulia> for event in c\n @show event\n end\ne = KM3io.DAQEvent with 127 snapshot and 6 triggered hits\ne = KM3io.DAQEvent with 147 snapshot and 6 triggered hits\ne = KM3io.DAQEvent with 154 snapshot and 8 triggered hits\ne = KM3io.DAQEvent with 152 snapshot and 6 triggered hits\n...\n...\n...\n\nFields\n\nip::Sockets.IPv4\nport::UInt16\ntags::Vector{CHTag}\nsocket::Sockets.TCPSocket\n\n\n\n\n\n","category":"type"},{"location":"api/#Tools","page":"API","title":"Tools","text":"","category":"section"},{"location":"api/#General-tools","page":"API","title":"General tools","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"categorize\nnthbitset\nmost_frequent","category":"page"},{"location":"api/#KM3io.categorize","page":"API","title":"KM3io.categorize","text":"categorize(field::Symbol, elements::Vector) -> Dict\n\n\nCategorise the struct elements of a vector by a given field into a dictionary of T.field => Vector{T}.\n\nExamples\n\njulia> using KM3io\n\njulia> struct PMT # just an ad-hoc PMT struct for demonstration purposes\n dom_id\n time\n end\n\njulia> pmts = [PMT(2, 10.4), PMT(4, 23.5), PMT(2, 42.0)];\n\njulia> categorize(:dom_id, pmts)\nDict{Any, Vector{PMT}} with 2 entries:\n 4 => [PMT(4, 23.5)]\n 2 => [PMT(2, 10.4), PMT(2, 42.0)]\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.nthbitset","page":"API","title":"KM3io.nthbitset","text":"nthbitset(n, a) -> Any\n\n\nReturn true if the n-th bit of a is set, false otherwise.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.most_frequent","page":"API","title":"KM3io.most_frequent","text":"most_frequent(iterable) -> Any\n\n\nReturn the most frequent value of a given iterable.\n\n\n\n\n\nmost_frequent(f::Function, iterable; rettype) -> Int64\n\n\nReturn the most frequent value of a given iterable based on the return value of a function f which returns (hashable) values of rettype.\n\n\n\n\n\n","category":"function"},{"location":"api/#DAQ","page":"API","title":"DAQ","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"pmtrate\npmtrates\nhrvstatus\nfifostatus\ntdcstatus\nwrstatus\nhasudptrailer\ncount_active_channels\ncount_fifostatus\ncount_hrvstatus\nstatus\nnumber_of_udp_packets_received\nmaximal_udp_sequence_number","category":"page"},{"location":"api/#KM3io.pmtrate","page":"API","title":"KM3io.pmtrate","text":"pmtrate(r::UInt8) -> Float64\n\n\nCalculate the PMT hit rate from the raw byte stored in a summary frame.\n\nThe rate of each PMT is encoded in a single byte to reduce the size of the summary frame, therefore only 256 values are possible which are mapped to an exponential function. The values are precalculated by the _getrate() function for the best performance.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.pmtrates","page":"API","title":"KM3io.pmtrates","text":"pmtrates(\n s::SummaryFrame\n) -> StaticArraysCore.SVector{31, Float64}\n\n\nReturn the actual rates (in Hz) for each PMT in a summary frame.\n\n\n\n\n\npmtrates(\n s::Summaryslice\n) -> Dict{Int32, StaticArraysCore.SVector{31, Float64}}\n\n\nReturn a dictionary of DOM IDs as keys and PMT rates [Hz] as values (Vector{Float64}).\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.hrvstatus","page":"API","title":"KM3io.hrvstatus","text":"hrvstatus(f::SummaryFrame, tdc) -> Any\n\n\nReturn true if the TDC is in high rate veto.\n\n\n\n\n\nhrvstatus(f::SummaryFrame) -> Bool\n\n\nReturn true if any of the TDCs is in high rate veto.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.fifostatus","page":"API","title":"KM3io.fifostatus","text":"fifostatus(f::SummaryFrame, tdc) -> Any\n\n\nReturn true if the TDC has FIFO almost full.\n\n\n\n\n\nfifostatus(f::SummaryFrame) -> Bool\n\n\nReturn true if any of the TDCs is in high rate veto.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.tdcstatus","page":"API","title":"KM3io.tdcstatus","text":"tdcstatus(f::SummaryFrame) -> Bool\n\n\nReturn true if TDC status is OK.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.wrstatus","page":"API","title":"KM3io.wrstatus","text":"wrstatus(f::SummaryFrame) -> Bool\n\n\nReturn true if White Rabbit status is OK.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.hasudptrailer","page":"API","title":"KM3io.hasudptrailer","text":"hasudptrailer(f::SummaryFrame) -> Bool\n\n\nReturn true if the UDP trailer is present.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.count_active_channels","page":"API","title":"KM3io.count_active_channels","text":"count_active_channels(f::SummaryFrame) -> Int64\n\n\nNumber of TDCs without high rate veto or FIFO almost full.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.count_fifostatus","page":"API","title":"KM3io.count_fifostatus","text":"count_fifostatus(f::SummaryFrame) -> Int64\n\n\nNumber of TDCs with FIFO almost full.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.count_hrvstatus","page":"API","title":"KM3io.count_hrvstatus","text":"count_hrvstatus(f::SummaryFrame) -> Int64\n\n\nNumber of TDCs with high rate veto.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.status","page":"API","title":"KM3io.status","text":"status(f::SummaryFrame) -> Bool\n\n\nReturn true if TDC and White Rabbit status are OK.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.number_of_udp_packets_received","page":"API","title":"KM3io.number_of_udp_packets_received","text":"number_of_udp_packets_received(f::SummaryFrame) -> Int32\n\n\nNumber of received UDP packets (excluding the trailer).\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.maximal_udp_sequence_number","page":"API","title":"KM3io.maximal_udp_sequence_number","text":"maximal_udp_sequence_number(f::SummaryFrame) -> Int32\n\n\nMaximal sequence number of all received UDP packets.\n\n\n\n\n\n","category":"function"},{"location":"api/#Reconstruction","page":"API","title":"Reconstruction","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"besttrack\nbestjppmuon\nbestjppshower\nbestaashower\nRecStageRange\nhashistory","category":"page"},{"location":"api/#KM3io.besttrack","page":"API","title":"KM3io.besttrack","text":"besttrack(\n e::Evt,\n rec_type::Integer,\n rsr::RecStageRange\n) -> Union{Missing, Trk}\n\n\nReturn the best reconstructed track for a given reconstruction type and reconstruction stage range. If no track could be found, missing is returned.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.bestjppmuon","page":"API","title":"KM3io.bestjppmuon","text":"bestjppmuon(e::Evt) -> Union{Missing, Trk}\n\n\nReturns the best reconstructed JMuon track of an event or missing if there are none.\n\n\n\n\n\nbestjppmuon(trks::Vector{Trk}) -> Union{Missing, Trk}\n\n\nReturns the best reconstructed JMuon track or missing if there are none.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.bestjppshower","page":"API","title":"KM3io.bestjppshower","text":"bestjppshower(e::Evt) -> Union{Missing, Trk}\n\n\nReturns the best reconstructed JShower \"track\" of an event or missing if there are none.\n\n\n\n\n\nbestjppshower(trks::Vector{Trk}) -> Union{Missing, Trk}\n\n\nReturns the best reconstructed JShower \"track\" or missing if there are none.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.bestaashower","page":"API","title":"KM3io.bestaashower","text":"bestaashower(e::Evt) -> Union{Missing, Trk}\n\n\nReturns the best reconstructed aashower \"track\" of an event or missing if there are none.\n\n\n\n\n\nbestaashower(trks::Vector{Trk}) -> Union{Missing, Trk}\n\n\nReturns the best reconstructed aashower \"track\" or missing if there are none.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.RecStageRange","page":"API","title":"KM3io.RecStageRange","text":"struct RecStageRange{T<:Integer}\n\nThis struct is used to represent a range of reconstruction stages. These are well-defined integers (see KM3NeT Dataformat) for each reconstruction algorithm and are stored in a vector named rec_stages of each Trk.\n\njulia> using KM3io\n\njulia> rsr = RecStageRange(KM3io.RECONSTRUCTION.JMUONBEGIN, KM3io.RECONSTRUCTION.JMUONEND)\nRecStageRange{Int64}(0, 99)\n\njulia> KM3io.RECONSTRUCTION.JMUONSIMPLEX ∈ rsr\ntrue\n\njulia> KM3io.RECONSTRUCTION.AASHOWERFITPREFIT ∈ rsr\nfalse\n\njulia> 23 ∈ rsr\ntrue\n\njulia> 523 ∈ rsr\nfalse\n\nFields\n\nlower::Integer\nupper::Integer\n\n\n\n\n\n","category":"type"},{"location":"api/#KM3io.hashistory","page":"API","title":"KM3io.hashistory","text":"hashistory(\n t::Trk,\n rec_type::Integer,\n rsr::RecStageRange\n) -> Bool\n\n\nReturns true if a track with a given rec_type contains all the reconstruction stages in rsr::RecStageRange.\n\n\n\n\n\nhashistory(\n t::Trk,\n rec_type::Integer,\n rec_stage::Integer\n) -> Bool\n\n\nReturns true if a track with a given rec_type contains the rec_stage.\n\n\n\n\n\n","category":"function"},{"location":"api/#Math","page":"API","title":"Math","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"angle\ndistance","category":"page"},{"location":"api/#Base.angle","page":"API","title":"Base.angle","text":"angle(d1::Direction, d2::Direction) -> Any\n\n\nCalculate the angle between two vectors.\n\n\n\n\n\n","category":"function"},{"location":"api/#KM3io.distance","page":"API","title":"KM3io.distance","text":"distance(a::Position, b::Position) -> Any\n\n\nCalculates the disance between two points.\n\n\n\n\n\n","category":"function"},{"location":"examples/cherenkov_times/#Cherenkov-times","page":"Cherenkov times","title":"Cherenkov times","text":"","category":"section"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"using PGFPlotsX\nsavefigs = (figname, obj) -> begin\n pgfsave(figname * \".pdf\", obj)\n run(`pdftocairo -svg -l 1 $(figname * \".pdf\") $(figname * \".svg\")`)\n pgfsave(figname * \".tex\", obj);\n return nothing\nend","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"In this example, we will pick the best reconstructed muon (from the Jpp muon reconstruction chain JMuon) in each event and calculate the Cherenkov hit time residuals for each triggered hit.","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"We open the a sample file from the KM3NeTTestData package:","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"using KM3io, KM3NeTTestData\n\nf = ROOTFile(datapath(\"offline\", \"mcv6.0.gsg_muon_highE-CC_50-500GeV.km3sim.jterbr00008357.jorcarec.aanet.905.root\"))","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"Each event holds a vector of reconstructed tracks (Vector{Trk}) behind the .trks field. This vector contains different stages of reconstruction results from a variety of reconstruction algorithms (JMuon, JShower, aashower etc.). KM3io.jl exports helper functions to pick the best reconstructed track for a given reconstruction algorithm. The logic is based on the reference implementation in KM3NeT DataFormat tools. The function bestjppmuon() can be used to select the best reconstructed JMuon for a given event:","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"evt = f.offline[1]\nbest_muon = bestjppmuon(evt)","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"We now use this track as a seed to calculate the Cherenkov photon (see CherenkovPhoton) parameters using cherenkov() for each hit triggered hit in the event. To select only triggered hits, we use the triggered() function together withe filter() which returns a new vector of triggered hits:","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"cherenkov(best_muon, filter(triggered, evt.hits))","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"To obtain more statistics, we iterate through all the events and calculate the Cherenkov time residuals for each set of hits based on the best reconstruction track. We fill the time residuals in a 1D histogram using the FHist package.","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"note: Note\nThis example uses PGFPlotsX which is a wrapper for the LaTeX library PGFPlots. Feel free to adapt the example to use your favourite plotting library.","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"using FHist\n\nΔts = Hist1D(;bins=-10:50)\n\nfor evt ∈ f.offline\n m = bestjppmuon(evt)\n cherenkov_photons = cherenkov(m, filter(triggered, evt.hits))\n for cp ∈ cherenkov_photons\n push!(Δts, cp.Δt)\n end\nend\n\naxis = @pgf Axis(\n {\n ybar, const_plot, grid,\n xlabel=raw\"\\Delta t / ns\",\n ylabel=\"counts\",\n },\n PlotInc(Coordinates(bincenters(Δts), bincounts(Δts)), raw\"\\closedcycle\")\n)\naxis\nsavefigs(\"cherenkov\", ans) # hide","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"[.pdf], [generated .tex]","category":"page"},{"location":"examples/cherenkov_times/","page":"Cherenkov times","title":"Cherenkov times","text":"(Image: )","category":"page"},{"location":"manual/rootfiles/#ROOT-Files","page":"ROOT Files","title":"ROOT Files","text":"","category":"section"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"The two main types of ROOT files in KM3NeT are the online and offline files, however, both types can be mixed together as the data is stored in distinct ROOT trees. UnROOT has a single ROOTFile type to represent a KM3NeT ROOT file which can be used to access both the online and offline information. This section describes what kind of data is stored in each tree and how to access them.","category":"page"},{"location":"manual/rootfiles/#offline-dataformat","page":"ROOT Files","title":"Offline Dataformat","text":"","category":"section"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"The offline dataformat is used to store Monte Carlo (MC) simulations and reconstruction results. The OfflineTree type represents an actual offline file and it is essentially a vector of events (Vector{Evt}) with some fancy caching, lazy access and slicing magic. The offline tree is accessible via the .offline field of the ROOTFile type.","category":"page"},{"location":"manual/rootfiles/#MC-Header","page":"ROOT Files","title":"MC Header","text":"","category":"section"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"The MC header stores metadata related to the simulation chain. The individual entries can be accessed as properties, as shown below.","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"julia> using KM3io, KM3NeTTestData\n\njulia> f = ROOTFile(datapath(\"offline\", \"numucc.root\"))\nROOTFile{OnlineTree (0 events, 0 summaryslices), OfflineTree (10 events)}\n\njulia> f.offline\nOfflineTree (10 events)\n\njulia> f.offline.header\nMCHeader\n DAQ => (livetime = 394,)\n PDF => (i1 = 4, i2 = 58)\n XSecFile => Any[]\n can => (zmin = 0, zmax = 1027, r = 888.4)\n can_user => [0.0, 1027.0, 888.4]\n coord_origin => (x = 0, y = 0, z = 0)\n cut_in => (Emin = 0, Emax = 0, cosTmin = 0, cosTmax = 0)\n cut_nu => (Emin = 100, Emax = 1.0e8, cosTmin = -1, cosTmax = 1)\n cut_primary => (Emin = 0, Emax = 0, cosTmin = 0, cosTmax = 0)\n cut_seamuon => (Emin = 0, Emax = 0, cosTmin = 0, cosTmax = 0)\n decay => [\"doesnt\", \"happen\"]\n detector => NOT\n drawing => Volume\n end_event => Any[]\n genhencut => (gDir = 2000, Emin = 0)\n genvol => (zmin = 0, zmax = 1027, r = 888.4, volume = 2.649e9, numberOfEvents = 100000)\n kcut => 2\n livetime => (numberOfSeconds = 0, errorOfSeconds = 0)\n model => (interaction = 1, muon = 2, scattering = 0, numberOfEnergyBins = 1, field_4 = 12)\n muon_desc_file => Any[]\n ngen => 100000.0\n norma => (primaryFlux = 0, numberOfPrimaries = 0)\n nuflux => Real[0, 3, 0, 0.5, 0.0, 1.0, 3.0]\n physics => (program = \"GENHEN\", version = \"7.2-220514\", date = 181116, time = 1138)\n seed => (program = \"GENHEN\", level = 3, iseed = 305765867, field_3 = 0, field_4 = 0)\n simul => (program = \"JSirene\", version = 11012, date = \"11/17/18\", time = 7)\n sourcemode => diffuse\n spectrum => (alpha = -1.4,)\n start_run => 1\n target => isoscalar\n usedetfile => false\n xlat_user => 0.63297\n xparam => OFF\n zed_user => [0.0, 3450.0]\n\n\njulia> f.offline.header.genvol\n(zmin = 0, zmax = 1027, r = 888.4, volume = 2.649e9, numberOfEvents = 100000)\n\njulia> f.offline.header.genvol.volume\n2.649e9","category":"page"},{"location":"manual/rootfiles/#Event-data","page":"ROOT Files","title":"Event data","text":"","category":"section"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"The following REPL session shows how to open a file, access individual events or slices of events, loop through events and access e.g. the tracks which are stored in the events.","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"julia> using KM3io, KM3NeTTestData\n\njulia> f = ROOTFile(datapath(\"offline\", \"km3net_offline.root\"))\nROOTFile{OfflineTree (10 events)}\n\njulia> f.offline[5]\nKM3io.Evt (83 hits, 0 MC hits, 56 tracks, 0 MC tracks)\n\njulia> f.offline[3:5]\n3-element Vector{KM3io.Evt}:\n KM3io.Evt (318 hits, 0 MC hits, 56 tracks, 0 MC tracks)\n KM3io.Evt (157 hits, 0 MC hits, 56 tracks, 0 MC tracks)\n KM3io.Evt (83 hits, 0 MC hits, 56 tracks, 0 MC tracks)\n\njulia> event = f.offline[1]\nKM3io.Evt (176 hits, 0 MC hits, 56 tracks, 0 MC tracks)\n\njulia> event.trks[1:4]\n4-element Vector{KM3io.Trk}:\n KM3io.Trk(1, [445.835395997812, ... , 294.6407542676734, 4000)\n KM3io.Trk(2, [445.835395997812, ... , 294.6407542676734, 4000)\n KM3io.Trk(3, [448.136188112227, ... , 294.6407542676734, 4000)\n KM3io.Trk(4, [448.258348900570, ... , 291.64653112688273, 4000)\n\njulia> for event in f.offline\n @show event\n end\nevent = KM3io.Evt (176 hits, 0 MC hits, 56 tracks, 0 MC tracks)\nevent = KM3io.Evt (125 hits, 0 MC hits, 55 tracks, 0 MC tracks)\nevent = KM3io.Evt (318 hits, 0 MC hits, 56 tracks, 0 MC tracks)\nevent = KM3io.Evt (157 hits, 0 MC hits, 56 tracks, 0 MC tracks)\nevent = KM3io.Evt (83 hits, 0 MC hits, 56 tracks, 0 MC tracks)\nevent = KM3io.Evt (60 hits, 0 MC hits, 56 tracks, 0 MC tracks)\nevent = KM3io.Evt (71 hits, 0 MC hits, 56 tracks, 0 MC tracks)\nevent = KM3io.Evt (84 hits, 0 MC hits, 56 tracks, 0 MC tracks)\nevent = KM3io.Evt (255 hits, 0 MC hits, 54 tracks, 0 MC tracks)\nevent = KM3io.Evt (105 hits, 0 MC hits, 56 tracks, 0 MC tracks)","category":"page"},{"location":"manual/rootfiles/#online_dataformat","page":"ROOT Files","title":"Online Dataformat","text":"","category":"section"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"The online dataformat refers to the dataformat which is written by the data acquisition system (DAQ) of the KM3NeT detectors, more precisely, the ROOT files produced by the JDataFilter which is part of the Jpp framework. The very same format is used in run-by-run (RBR) Monte Carlo (MC) productions, which mimic the detector response and therefore produce similarly structured data. The online data can be accessed via the .online field of the ROOTFile type.","category":"page"},{"location":"manual/rootfiles/#Event-data-2","page":"ROOT Files","title":"Event data","text":"","category":"section"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"The events are accessible via ROOTFile(filename).online.events which supports indexing, slicing and iteration, just like the we have seen above, in case of the offline events. Notice however that the online format also contains other types of trees, that's why the explicit .events field is needed. Everything is lazily loaded so that the data is only occupying memory when it's actually accessed, similar to the offline access. In the examples below, we use KM3NeTTestdata to get access to small sample files.","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"julia> using KM3io, KM3NeTTestData\n\njulia> f = ROOTFile(datapath(\"online\", \"km3net_online.root\"))\nROOTFile{OnlineTree (3 events, 3 summaryslices), OfflineTree (0 events)}\n\njulia> event = f.online.events[1]\nKM3io.DAQEvent with 96 snapshot and 18 triggered hits\n\njulia> event.triggered_hits[4:8]\n5-element Vector{KM3io.TriggeredHit}:\n KM3io.TriggeredHit(808447186, 0x00, 30733214, 0x19, 0x0000000000000016)\n KM3io.TriggeredHit(808447186, 0x01, 30733214, 0x15, 0x0000000000000016)\n KM3io.TriggeredHit(808447186, 0x02, 30733215, 0x15, 0x0000000000000016)\n KM3io.TriggeredHit(808447186, 0x03, 30733214, 0x1c, 0x0000000000000016)\n KM3io.TriggeredHit(808451907, 0x07, 30733441, 0x1e, 0x0000000000000004)\n\njulia> for event ∈ f.online.events\n @show event.header.frame_index length(event.snapshot_hits)\n end\nevent.header.frame_index = 127\nlength(event.snapshot_hits) = 96\nevent.header.frame_index = 127\nlength(event.snapshot_hits) = 124\nevent.header.frame_index = 129\nlength(event.snapshot_hits) = 78","category":"page"},{"location":"manual/rootfiles/#Summaryslices-and-Summary-Frames","page":"ROOT Files","title":"Summaryslices and Summary Frames","text":"","category":"section"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"Summaryslices are generated from timeslices (raw hit data) and are produced by the DataFilter. A slice contains the data of 100ms and is divided into so-called frames, each corresponding to the data of a single optical module. Due to the high amount of data, the storage of timeslices is usually reduced by a factor of 10-100 after the event triggering stage. However, summaryslices are covering the full data taking period. They however do not contain hit data but only the rates of the PMTs encoded into a single byte, which therefore is only capable to store 256 different values. The actual rate is calcuated by the helper functions pmtrate() and pmtrates() which take a SummaryFrame and optionally a PMT channel ID as arguments.","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"The summaryslices are accessible using the .summaryslices attribute of the OnlineTree instance, which again is hidden behind the .online field of a ROOTFile:","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"julia> using KM3io, KM3NeTTestData\n\njulia> f = ROOTFile(datapath(\"online\", \"km3net_online.root\"))\nROOTFile{OnlineTree (3 events, 3 summaryslices), OfflineTree (0 events)}\n\njulia> f.online.summaryslices\nKM3io.SummarysliceContainer with 3 summaryslices\n\njulia> for s ∈ f.online.summaryslices\n @show s.header\n end\ns.header = KM3io.SummarysliceHeader(44, 6633, 126, KM3io.UTCExtended(0x5dc6018c, 0x23c34600, false))\ns.header = KM3io.SummarysliceHeader(44, 6633, 127, KM3io.UTCExtended(0x5dc6018c, 0x29b92700, false))\ns.header = KM3io.SummarysliceHeader(44, 6633, 128, KM3io.UTCExtended(0x5dc6018c, 0x2faf0800, false))","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"Each summaryslice consists of multiple frames, one for every optical module which has sent data during the recording time of the corresponding timeslice.","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"note: Note\nDuring run transistions, the number of summaryframes in a summaryslice is fluctuating a lot until it eventually saturates, usually within a few seconds or minutes. Therefore, it is expected that the number of summaryframes (i.e. active DOMs) is low at the beginning of the file and stabilises after a few summaryslices.","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"To access the actual PMT rates and flags (e.g. for high-rate veto or FIFO status) of a summaryframe, several helper functions exist. Let's grab a summaryslice:","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"using KM3io, KM3NeTTestData\n\nf = ROOTFile(datapath(\"online\", \"km3net_online.root\"))\n\ns = f.online.summaryslices[1]","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"and have a look at one of the frames, the 23rd of the first summaryslice:","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"frame = s.frames[23]","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"The White Rabbit status:","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"wrstatus(frame)","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"Checking if any of the PMTs is in high rate veto:","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"hrvstatus(frame)","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"The number of PMTs in high rate veto:","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"count_hrvstatus(frame)","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"Checking if any of the TDC FIFOs were almost full:","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"fifostatus(frame)","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"Counting the number of TDCs which had FIFO almost full:","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"count_fifostatus(frame)","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"The rates of each individual PMT channel ordered by increasing channel ID:","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"pmtrates(frame)","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"Individual PMT parameters can be accessed as well, by passing the summaryframe and the PMT ID (DAQ channel ID):","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"pmtrate(frame, 3)","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"Here is an example of a simple summary output:","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"for pmt in 0:30\n println(\"PMT $(pmt): HRV($(hrvstatus(frame, pmt))) FIFO($(fifostatus(frame, pmt)))\")\nend","category":"page"},{"location":"manual/rootfiles/#xrootd-access","page":"ROOT Files","title":"xrootd access","text":"","category":"section"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"You can access files directly via xrootd by providing the URL on e.g. HPSS. Be aware that URL has to be typed correctly, / instead of // results in an error!), so it should always start with something like root://ccxroot:1999//hpss/....","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"julia> using KM3io\n\njulia> f = ROOTFile(\"root://ccxroot:1999//hpss/in2p3.fr/group/km3net/data/raw/sea/KM3NeT_00000132/14/KM3NeT_00000132_00014481.root\")\nROOTFile{OnlineTree (136335 events, 107632 summaryslices)}","category":"page"},{"location":"manual/rootfiles/","page":"ROOT Files","title":"ROOT Files","text":"Now you can use it as if it was on your local filesystem. UnROOT.jl will take care of loading only the needed data from the server.","category":"page"},{"location":"examples/hdf5/#HDF5","page":"HDF5","title":"HDF5","text":"","category":"section"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"Plain ASCII (CSV) files are often perfectly fine for small, tabular datasets but when dealing with larger amounts of data, HDF5 comes in handy with compression, metadata and hierachical datasets. KM3NeT uses HDF5 in many analysis chains, often to store intermediate or end results.","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"This example shows how to create an HDF5 file and write some vectors of structs into different datasets.","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"using KM3io\nusing Random\n\nRandom.seed!(23) # to make things reproducible ;)\n\nf = H5File(\"foo.h5\", \"w\")","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"We now have an H5File instance which we can use to store datasets.","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"Let's say we have our custom data type (struct) like","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"struct Particle\n x::Float32\n y::Float32\n E::Int64\nend","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"and we generate instances of Particle in a loop which we want to dump directly into an HDF5 file to the dataset stored at simulation/particles, meaning that simulation is the group name and particles the dataset name.","category":"page"},{"location":"examples/hdf5/#Creating-datasets","page":"HDF5","title":"Creating datasets","text":"","category":"section"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"First, we create our dataset with our type Particle. This is a so called H5CompoundDataset and resembles a dataset wich has a compound type (struct) associated with it:","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"dset = create_dataset(f, \"simulation/particles\", Particle)","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"We fill some random particles using the dummy loop:","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"for i in 1:1000\n # creates some random particle\n particle = Particle(rand(), rand(), rand(1:1000))\n # we push to the dataset, just like if it was an Array\n push!(dset, particle)\nend","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"note: Note\nTo avoid excessive I/O, KM3io uses a cache for each H5CompoundDataset. If you don't close the H5File properly, you might lose data which is still sitting in the cache. Therefore, always use close(f) to make sure that all the caches are dumped to the HDF5 file. The methods flush(d::H5CompoundDataset) and flush(f::H5File) can be used to manually to prematurely flush the cache of a dataset or all caches of an HDF5 file respectively.","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"Let's close the file","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"close(f)","category":"page"},{"location":"examples/hdf5/#Reading-datasets","page":"HDF5","title":"Reading datasets","text":"","category":"section"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"We open the file from the previous example with HDF5.jl, just to demonstrate that we can read it without any KM3NeT related libraries:","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"using HDF5\n\nf = h5open(\"foo.h5\")\nparticles = f[\"simulation/particles\"]\n\n@show particles[1:5]","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"Notice that HDF5.jl automatically created NamedTuple instances with the same fieldnames as our own struct definition of Particle. This means that the elements behave just like the original one regarding the field access:","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"particles[2].E","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"The whole vector can also be reinterpreted to the original struct definition with zero-cost. This can be mandatory if the data is then passed to other methods which require a specific type (in this case Particle). The following line will only work if Particle is already defined (i.e. the correspoinding module has been loaded). It is also mandatory to pass a slice (here, we pass the full slice by using [:]) to reinterpret and not the dataset itself:","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"reinterpreted_particles = reinterpret(Particle, particles[:])","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"Each element is now a proper Particle instance:","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"reinterpreted_particles[4]","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"KM3io also writes the name of the struct into the attributes of the dataset:","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"attrs(particles)[\"struct_name\"]","category":"page"},{"location":"examples/hdf5/#Adding-metadata","page":"HDF5","title":"Adding metadata","text":"","category":"section"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"Sometimes it's useful to keep track of additional metadata, e.g. a given set of parameters for a specific dataset. The addmeta() function can be used to attach key-value-pairs from a struct to a variety of HDF5 structures, like files, datasets or groups. The following example demonstrates it:","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"using KM3io\nusing HDF5\n\nstruct SimulationParameters\n can_height::Int32\n can_radius::Int32\n minimum_energy::Float64\n maximum_energy::Float64\nend\n\nsimparams = SimulationParameters(800, 200, 1e3, 1e7)\n\nf = h5open(\"simulation.h5\", \"w\")\naddmeta(f, simparams)\n\nattributes(f)","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"To access individual attributes, use HDF5.read_attribute:","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"read_attribute(f, \"can_radius\")","category":"page"},{"location":"examples/hdf5/","page":"HDF5","title":"HDF5","text":"note: Note\nIt is possible to add metadata to datasets and groups too. Make sure that the struct you pass to addmeta() only contains primitive types or strings in their fields. Arrays and other nested or compound fieldtypes are not supported by HDF5.","category":"page"},{"location":"examples/offline_data/#Offline-data","page":"Offline data","title":"Offline data","text":"","category":"section"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"Let's use the KM3NeTTestData Julia package which contains all kinds of KM3NeT related sample files. The datapath() function can be used to get a path to such a file. In the following, we will discover the numucc.root file which contains 10 muon neutrino charged current interaction events.","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"using KM3io, KM3NeTTestData\n\nf = ROOTFile(datapath(\"offline\", \"numucc.root\"))","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"The ROOTFile is the container object which gives access to both the online and offline tree. In this case, the online tree is empty","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"f.online","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"and the offline tree holds our 10 MC events:","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"f.offline","category":"page"},{"location":"examples/offline_data/#Events","page":"Offline data","title":"Events","text":"","category":"section"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"To access a single event, you can use the usual indexing syntax:","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"some_event = f.offline[5]","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"or ranges of events:","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"events = f.offline[6:9]","category":"page"},{"location":"examples/offline_data/#Hits","page":"Offline data","title":"Hits","text":"","category":"section"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"Each event consists of a vector of hits, MC hits, tracks and MC tracks. Depending on the file, they may be empty. They are accessible via the fields .hit, .mc_hits, .trks and .mc_trks.","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"Let's grab an event:","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"evt = f.offline[3]","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"and have a look at its contents:","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"evt.hits","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"Let's close this file properly:","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"close(f)","category":"page"},{"location":"examples/offline_data/#Usr-data","page":"Offline data","title":"Usr data","text":"","category":"section"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"You can also access \"usr\"-data, which is a dynamic placeholder (Dict{String, Float64}) to store arbitrary data. Some software store values here which are only losely defined. Ideally, if these fields are used regulary by a software, a proper definition in the KM3NeT dataformat should be created and added to the according Struct as a field.","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"Here is an example how to access the \"usr\"-data of a single event:","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"f = ROOTFile(datapath(\"offline\", \"usr-sample.root\"))\n\nf.offline[1].usr","category":"page"},{"location":"examples/offline_data/","page":"Offline data","title":"Offline data","text":"close(f)","category":"page"},{"location":"manual/hdf5/#HDF5-Files","page":"HDF5 Files","title":"HDF5 Files","text":"","category":"section"},{"location":"manual/hdf5/","page":"HDF5 Files","title":"HDF5 Files","text":"...","category":"page"},{"location":"#KM3io.jl","page":"Home","title":"KM3io.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"KM3io.jl is a Julia library which implements high-performance I/O functions and additional utilities to deal with dataformats used in KM3NeT, e.g. ROOT (online/offline files), DETX (detector geometry and calibrations) and acoustics (waveforms and hardware). In contrast to Python, you are free to utilise as many (nested) for-loops as you like while still being as fast as in e.g. in C++.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Apropos ROOT and C++, the KM3NeT Dataformat is defined in C++ and uses the I/O functionality of the ROOT framework to create the online and offline ROOT files. Luckily, there is a pure Julia library named UnROOT.jl that provides access the the ROOT files without the need to install ROOT or the corresponding C++ library. This allows KM3io.jl to be completely free from these external dependencies.","category":"page"},{"location":"","page":"Home","title":"Home","text":"note: Note\nThe library is still under development so that the API might slightly change. Feedback and contributions are highly welcome!","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"KM3io.jl is not an officially registered Julia package but it's available via the KM3NeT Julia registry. To add the KM3NeT Julia registry to your local Julia registry list, follow the instructions in its README or simply do","category":"page"},{"location":"","page":"Home","title":"Home","text":"git clone https://git.km3net.de/common/julia-registry ~/.julia/registries/KM3NeT","category":"page"},{"location":"","page":"Home","title":"Home","text":"After that, you can instal KM3io.jl just like any other Julia package:","category":"page"},{"location":"","page":"Home","title":"Home","text":"julia> import Pkg; Pkg.add(\"KM3io\")","category":"page"},{"location":"#Quickstart","page":"Home","title":"Quickstart","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"julia> using KM3io, KM3NeTTestData\n\njulia> f = ROOTFile(datapath(\"offline\", \"numucc.root\"))\nROOTFile{OnlineTree (0 events, 0 summaryslices), OfflineTree (10 events)}\n\njulia> f.offline\nOfflineTree (10 events)\n\njulia> some_event = f.offline[3]\nKM3io.Evt (3680 hits, 28 MC hits, 38 tracks, 12 MC tracks)","category":"page"},{"location":"#Acknowledgements","page":"Home","title":"Acknowledgements","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Thanks to Johannes Schumann for providing the awesome project logo!","category":"page"},{"location":"manual/tools/#Tools","page":"Tools","title":"Tools","text":"","category":"section"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"There are many commonly used routines to find for example the best reconstructed muon track or find out if a given hit was flagged by a specific trigger algorithm. This section will show some helper functions available in KM3io.jl.","category":"page"},{"location":"manual/tools/#Best-track/shower","page":"Tools","title":"Best track/shower","text":"","category":"section"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"In KM3NeT, the best reconstructed track or shower of a given set of tracks respectively showers is the one with the highest value of the likelihood parameter (lik) and the longest reconstruction history (rec_stages) which is a record of reconstruction stages performed during the whole fitting procedure.","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"The offline dataformat, which is used to store reconstruction information, has only a single Vector{Trk} per event which is a flat list of reconstructed tracks and showers. This vector can be a mix of different reconstruction algorithms (JGandalf, aashower, FibonacciFit, ...) and different stages of each, like prefit candidates, intermediate fits and final results. Therefore it is necessary to take the reconstruction type (rec_type) and also the values of the reconstruction stages (rec_stages) into account. Each reconstruction algorithm and each of their reconstruction stages have their own unique identifiers, which are stored in these two fields.","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"note: Note\nBoth tracks and showers are stored as Trk. This comes from the fact that the original KM3NeT dataformat defintion for offline files uses the same C++ class (named Trk).","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"The helper functions in KM3io.jl to pick the best track/shower always start with the prefix best, followed by the common name of the reconstruction routine, like jppmuon, or aashower. For example bestjppmuon(), bestjppshower() or besttrack(), latter being a more general function which gives the possibility to fine tune the selection criteria.","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"The API documentation of all related functions can be found in the Reconstruction section.","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"The input can be an event (Evt) or a vector of reconstructed tracks (Vector{Trk}). If no track/shower could be found, missing is returned instead.","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"Below are some examples of how to use these functions.","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"using KM3io, KM3NeTTestData\n\nf = ROOTFile(datapath(\"offline\", \"km3net_offline.root\"))","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"event = f.offline[1]","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"bestjppmuon(event)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"bestjppshower(event)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"bestaashower(event)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"bestjppshower(event.trks)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"bestaashower(event.trks)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"Additonally, there are helper functions which can be used to check if a specific reconstruction stage or result is present in an event or a given set of tracks/showers.","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"track = event.trks |> first","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"hasjppmuonprefit(track)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"hasjppmuonsimplex(track)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"hasjppmuongandalf(track)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"hasjppmuonfit(track)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"hasaashowerfit(track)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"hasreconstructedjppmuon(event)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"hasreconstructedjppshower(event)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"hasreconstructedaashower(event)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"note: Note\nTo check multiple events in one go, use the Broadcasting feature of the Julia language by putting a dot (.) at the end of the function name, e.g. bestjppmuon.(f.offline) which will find the best Jpp muon reconstruction result for each event in the offline tree.","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"bestjppmuon.(f.offline[2:5])","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"Let's close our file ;)","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"close(f)","category":"page"},{"location":"manual/tools/#Trigger-masks/flags","page":"Tools","title":"Trigger masks/flags","text":"","category":"section"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"KM3NeT uses a 64bit integer type to store information about which triggers have fired for a given event or hit. The index of the bit which indicates if a specific trigger has fired is defined in the KM3NeT Dataformat specification which is used in KM3io.jl.","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"Functions to check if a trigger has fired are for example","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"is3dmuon()\nis3dshower()\nismxshower()\nisnb()","category":"page"},{"location":"manual/tools/","page":"Tools","title":"Tools","text":"which all accept either an event is input or something which has a .trigger_mask field, like a triggered hit.","category":"page"}] +} diff --git a/v0.16.5/siteinfo.js b/v0.16.5/siteinfo.js new file mode 100644 index 00000000..1d6459b4 --- /dev/null +++ b/v0.16.5/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "v0.16.5"; diff --git a/versions.js b/versions.js index 5ac8b49a..f19af2f0 100644 --- a/versions.js +++ b/versions.js @@ -14,5 +14,5 @@ var DOC_VERSIONS = [ "v0.2", "dev", ]; -var DOCUMENTER_NEWEST = "v0.16.4"; +var DOCUMENTER_NEWEST = "v0.16.5"; var DOCUMENTER_STABLE = "stable"; -- GitLab